Files
monkeygg2.github.io/games/friday-night-funkin/Funkin.js
T
2023-08-25 13:31:04 +05:30

154314 lines
4.9 MiB
Plaintext

(function ($hx_exports, $global) { "use strict"; var $hx_script = (function (exports, global) { // Generated by Haxe 4.1.5
(function ($hx_exports, $global) { "use strict";
$hx_exports["lime"] = $hx_exports["lime"] || {};
var $hxClasses = {},$estr = function() { return js_Boot.__string_rec(this,''); },$hxEnums = $hxEnums || {},$_;
function $extend(from, fields) {
var proto = Object.create(from);
for (var name in fields) proto[name] = fields[name];
if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString;
return proto;
}
var APIStuff = function() { };
$hxClasses["APIStuff"] = APIStuff;
APIStuff.__name__ = "APIStuff";
var flixel_util_IFlxDestroyable = function() { };
$hxClasses["flixel.util.IFlxDestroyable"] = flixel_util_IFlxDestroyable;
flixel_util_IFlxDestroyable.__name__ = "flixel.util.IFlxDestroyable";
flixel_util_IFlxDestroyable.__isInterface__ = true;
flixel_util_IFlxDestroyable.prototype = {
destroy: null
,__class__: flixel_util_IFlxDestroyable
};
var flixel_FlxBasic = function() {
this.flixelType = 0;
this.exists = true;
this.alive = true;
this.visible = true;
this.active = true;
this.ID = -1;
};
$hxClasses["flixel.FlxBasic"] = flixel_FlxBasic;
flixel_FlxBasic.__name__ = "flixel.FlxBasic";
flixel_FlxBasic.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_FlxBasic.prototype = {
ID: null
,active: null
,visible: null
,alive: null
,exists: null
,flixelType: null
,_cameras: null
,destroy: function() {
this.set_exists(false);
this._cameras = null;
}
,kill: function() {
this.set_alive(false);
this.set_exists(false);
}
,revive: function() {
this.set_alive(true);
this.set_exists(true);
}
,update: function(elapsed) {
}
,draw: function() {
}
,toString: function() {
var value = this.active;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "active";
_this.value = value;
var value = this.visible;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "visible";
_this1.value = value;
var value = this.alive;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "alive";
_this2.value = value;
var value = this.exists;
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "exists";
_this3.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]);
}
,set_visible: function(Value) {
return this.visible = Value;
}
,set_active: function(Value) {
return this.active = Value;
}
,set_exists: function(Value) {
return this.exists = Value;
}
,set_alive: function(Value) {
return this.alive = Value;
}
,get_camera: function() {
if(this._cameras == null || this._cameras.length == 0) {
return flixel_FlxCamera.defaultCameras[0];
} else {
return this._cameras[0];
}
}
,set_camera: function(Value) {
if(this._cameras == null) {
this._cameras = [Value];
} else {
this._cameras[0] = Value;
}
return Value;
}
,get_cameras: function() {
if(this._cameras == null) {
return flixel_FlxCamera.defaultCameras;
} else {
return this._cameras;
}
}
,set_cameras: function(Value) {
return this._cameras = Value;
}
,__class__: flixel_FlxBasic
,__properties__: {set_cameras:"set_cameras",get_cameras:"get_cameras",set_camera:"set_camera",get_camera:"get_camera",set_exists:"set_exists",set_alive:"set_alive",set_visible:"set_visible",set_active:"set_active"}
};
var flixel_util_IFlxPooled = function() { };
$hxClasses["flixel.util.IFlxPooled"] = flixel_util_IFlxPooled;
flixel_util_IFlxPooled.__name__ = "flixel.util.IFlxPooled";
flixel_util_IFlxPooled.__isInterface__ = true;
flixel_util_IFlxPooled.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_util_IFlxPooled.prototype = {
put: null
,_inPool: null
,__class__: flixel_util_IFlxPooled
};
var flixel_util_IFlxPool = function() { };
$hxClasses["flixel.util.IFlxPool"] = flixel_util_IFlxPool;
flixel_util_IFlxPool.__name__ = "flixel.util.IFlxPool";
flixel_util_IFlxPool.__isInterface__ = true;
flixel_util_IFlxPool.prototype = {
preAllocate: null
,clear: null
,__class__: flixel_util_IFlxPool
};
var flixel_util_FlxPool_$flixel_$math_$FlxRect = function(classObj) {
this._count = 0;
this._pool = [];
this._class = classObj;
};
$hxClasses["flixel.util.FlxPool_flixel_math_FlxRect"] = flixel_util_FlxPool_$flixel_$math_$FlxRect;
flixel_util_FlxPool_$flixel_$math_$FlxRect.__name__ = "flixel.util.FlxPool_flixel_math_FlxRect";
flixel_util_FlxPool_$flixel_$math_$FlxRect.__interfaces__ = [flixel_util_IFlxPool];
flixel_util_FlxPool_$flixel_$math_$FlxRect.prototype = {
_pool: null
,_class: null
,_count: null
,get: function() {
if(this._count == 0) {
return Type.createInstance(this._class,[]);
}
return this._pool[--this._count];
}
,put: function(obj) {
if(obj != null) {
var i = this._pool.indexOf(obj);
if(i == -1 || i >= this._count) {
obj.destroy();
this._pool[this._count++] = obj;
}
}
}
,putUnsafe: function(obj) {
if(obj != null) {
obj.destroy();
this._pool[this._count++] = obj;
}
}
,preAllocate: function(numObjects) {
while(numObjects-- > 0) this._pool[this._count++] = Type.createInstance(this._class,[]);
}
,clear: function() {
this._count = 0;
var oldPool = this._pool;
this._pool = [];
return oldPool;
}
,get_length: function() {
return this._count;
}
,__class__: flixel_util_FlxPool_$flixel_$math_$FlxRect
,__properties__: {get_length:"get_length"}
};
var flixel_math_FlxRect = 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._inPool = false;
this._weak = false;
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
this.x = X1;
this.y = Y1;
this.width = Width1;
this.height = Height1;
};
$hxClasses["flixel.math.FlxRect"] = flixel_math_FlxRect;
flixel_math_FlxRect.__name__ = "flixel.math.FlxRect";
flixel_math_FlxRect.__interfaces__ = [flixel_util_IFlxPooled];
flixel_math_FlxRect.__properties__ = {get_pool:"get_pool"};
flixel_math_FlxRect.get = 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;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
return rect;
};
flixel_math_FlxRect.weak = 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;
}
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X = X1;
var Y = Y1;
var Width = Width1;
var Height = Height1;
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;
var rect = _this;
rect._inPool = false;
var rect1 = rect;
rect1._weak = true;
return rect1;
};
flixel_math_FlxRect.get_pool = function() {
return flixel_math_FlxRect._pool;
};
flixel_math_FlxRect.prototype = {
x: null
,y: null
,width: null
,height: null
,_weak: null
,_inPool: null
,put: function() {
if(!this._inPool) {
this._inPool = true;
this._weak = false;
flixel_math_FlxRect._pool.putUnsafe(this);
}
}
,putWeak: function() {
if(this._weak) {
if(!this._inPool) {
this._inPool = true;
this._weak = false;
flixel_math_FlxRect._pool.putUnsafe(this);
}
}
}
,setSize: function(Width,Height) {
this.width = Width;
this.height = Height;
return this;
}
,setPosition: function(x,y) {
this.x = x;
this.y = y;
return this;
}
,set: 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;
return this;
}
,copyFrom: function(Rect) {
this.x = Rect.x;
this.y = Rect.y;
this.width = Rect.width;
this.height = Rect.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
return this;
}
,copyTo: function(Rect) {
Rect.x = this.x;
Rect.y = this.y;
Rect.width = this.width;
Rect.height = this.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
return Rect;
}
,copyFromFlash: function(FlashRect) {
this.x = FlashRect.x;
this.y = FlashRect.y;
this.width = FlashRect.width;
this.height = FlashRect.height;
return this;
}
,copyToFlash: function(FlashRect) {
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = this.x;
FlashRect.y = this.y;
FlashRect.width = this.width;
FlashRect.height = this.height;
return FlashRect;
}
,overlaps: function(Rect) {
var result = Rect.x + Rect.width > this.x && Rect.x < this.x + this.width && Rect.y + Rect.height > this.y && Rect.y < this.y + this.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
return result;
}
,containsPoint: function(Point) {
var result = flixel_math_FlxMath.pointInFlxRect(Point.x,Point.y,this);
if(Point._weak) {
Point.put();
}
return result;
}
,union: function(Rect) {
var minX = Math.min(this.x,Rect.x);
var minY = Math.min(this.y,Rect.y);
var maxX = Math.max(this.x + this.width,Rect.x + Rect.width);
var maxY = Math.max(this.y + this.height,Rect.y + Rect.height);
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
var X = minX;
var Y = minY;
var Width = maxX - minX;
var Height = maxY - minY;
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;
return this;
}
,floor: function() {
this.x = Math.floor(this.x);
this.y = Math.floor(this.y);
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this;
}
,ceil: function() {
this.x = Math.ceil(this.x);
this.y = Math.ceil(this.y);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this;
}
,round: function() {
this.x = Math.round(this.x);
this.y = Math.round(this.y);
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this;
}
,fromTwoPoints: function(Point1,Point2) {
var minX = Math.min(Point1.x,Point2.x);
var minY = Math.min(Point1.y,Point2.y);
var maxX = Math.max(Point1.x,Point2.x);
var maxY = Math.max(Point1.y,Point2.y);
if(Point1._weak) {
Point1.put();
}
if(Point2._weak) {
Point2.put();
}
var X = minX;
var Y = minY;
var Width = maxX - minX;
var Height = maxY - minY;
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;
return this;
}
,unionWithPoint: function(Point) {
var minX = Math.min(this.x,Point.x);
var minY = Math.min(this.y,Point.y);
var maxX = Math.max(this.x + this.width,Point.x);
var maxY = Math.max(this.y + this.height,Point.y);
if(Point._weak) {
Point.put();
}
var X = minX;
var Y = minY;
var Width = maxX - minX;
var Height = maxY - minY;
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;
return this;
}
,offset: function(dx,dy) {
this.x += dx;
this.y += dy;
return this;
}
,destroy: function() {
}
,equals: function(rect) {
var result = Math.abs(this.x - rect.x) <= 0.0000001 && Math.abs(this.y - rect.y) <= 0.0000001 && Math.abs(this.width - rect.width) <= 0.0000001 && Math.abs(this.height - rect.height) <= 0.0000001;
if(rect._weak) {
if(!rect._inPool) {
rect._inPool = true;
rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(rect);
}
}
return result;
}
,intersection: function(rect,result) {
if(result == null) {
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect1 = _this;
rect1._inPool = false;
result = rect1;
}
var x0 = this.x < rect.x ? rect.x : this.x;
var x1 = this.x + this.width > rect.x + rect.width ? rect.x + rect.width : this.x + this.width;
if(x1 <= x0) {
if(rect._weak) {
if(!rect._inPool) {
rect._inPool = true;
rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(rect);
}
}
return result;
}
var y0 = this.y < rect.y ? rect.y : this.y;
var y1 = this.y + this.height > rect.y + rect.height ? rect.y + rect.height : this.y + this.height;
if(y1 <= y0) {
if(rect._weak) {
if(!rect._inPool) {
rect._inPool = true;
rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(rect);
}
}
return result;
}
if(rect._weak) {
if(!rect._inPool) {
rect._inPool = true;
rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(rect);
}
}
var X = x0;
var Y = y0;
var Width = x1 - x0;
var Height = y1 - y0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
result.x = X;
result.y = Y;
result.width = Width;
result.height = Height;
return result;
}
,toString: function() {
var value = this.x;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "x";
_this.value = value;
var value = this.y;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "y";
_this1.value = value;
var value = this.width;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "w";
_this2.value = value;
var value = this.height;
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "h";
_this3.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]);
}
,get_left: function() {
return this.x;
}
,set_left: function(Value) {
this.width -= Value - this.x;
return this.x = Value;
}
,get_right: function() {
return this.x + this.width;
}
,set_right: function(Value) {
this.width = Value - this.x;
return Value;
}
,get_top: function() {
return this.y;
}
,set_top: function(Value) {
this.height -= Value - this.y;
return this.y = Value;
}
,get_bottom: function() {
return this.y + this.height;
}
,set_bottom: function(Value) {
this.height = Value - this.y;
return Value;
}
,get_isEmpty: function() {
if(this.width != 0) {
return this.height == 0;
} else {
return true;
}
}
,__class__: flixel_math_FlxRect
,__properties__: {get_isEmpty:"get_isEmpty",set_bottom:"set_bottom",get_bottom:"get_bottom",set_top:"set_top",get_top:"get_top",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left"}
};
var flixel_FlxObject = 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;
}
var _this = flixel_math_FlxRect._pool.get();
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
_this._inPool = false;
this._rect = _this;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this._point = point;
this.path = null;
this.collisonXDrag = true;
this.allowCollisions = 4369;
this.wasTouching = 0;
this.touching = 0;
this.health = 1;
this.maxAngular = 10000;
this.angularDrag = 0;
this.angularAcceleration = 0;
this.angularVelocity = 0;
this.elasticity = 0;
this.mass = 1;
this.immovable = false;
this.moves = true;
this.angle = 0;
this.pixelPerfectPosition = true;
this.y = 0;
this.x = 0;
flixel_FlxBasic.call(this);
this.set_x(X);
this.set_y(Y);
this.set_width(Width);
this.set_height(Height);
this.initVars();
};
$hxClasses["flixel.FlxObject"] = flixel_FlxObject;
flixel_FlxObject.__name__ = "flixel.FlxObject";
flixel_FlxObject.separate = function(Object1,Object2) {
var separatedX = flixel_FlxObject.separateX(Object1,Object2);
var separatedY = flixel_FlxObject.separateY(Object1,Object2);
if(!separatedX) {
return separatedY;
} else {
return true;
}
};
flixel_FlxObject.updateTouchingFlags = function(Object1,Object2) {
var touchingX = flixel_FlxObject.updateTouchingFlagsX(Object1,Object2);
var touchingY = flixel_FlxObject.updateTouchingFlagsY(Object1,Object2);
if(!touchingX) {
return touchingY;
} else {
return true;
}
};
flixel_FlxObject.computeOverlapX = function(Object1,Object2,checkMaxOverlap) {
if(checkMaxOverlap == null) {
checkMaxOverlap = true;
}
var overlap = 0;
var obj1delta = Object1.x - Object1.last.x;
var obj2delta = Object2.x - Object2.last.x;
if(obj1delta != obj2delta) {
var obj1deltaAbs = obj1delta > 0 ? obj1delta : -obj1delta;
var obj2deltaAbs = obj2delta > 0 ? obj2delta : -obj2delta;
var _this = flixel_FlxObject._firstSeparateFlxRect;
var X = Object1.x - (obj1delta > 0 ? obj1delta : 0);
var Y = Object1.last.y;
var Width = Object1.get_width() + obj1deltaAbs;
var Height = Object1.get_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;
var obj1rect = _this;
var _this = flixel_FlxObject._secondSeparateFlxRect;
var X = Object2.x - (obj2delta > 0 ? obj2delta : 0);
var Y = Object2.last.y;
var Width = Object2.get_width() + obj2deltaAbs;
var Height = Object2.get_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;
var obj2rect = _this;
if(obj1rect.x + obj1rect.width > obj2rect.x && obj1rect.x < obj2rect.x + obj2rect.width && obj1rect.y + obj1rect.height > obj2rect.y && obj1rect.y < obj2rect.y + obj2rect.height) {
var maxOverlap = checkMaxOverlap ? obj1deltaAbs + obj2deltaAbs + flixel_FlxObject.SEPARATE_BIAS : 0;
if(obj1delta > obj2delta) {
overlap = Object1.x + Object1.get_width() - Object2.x;
if(checkMaxOverlap && overlap > maxOverlap || (Object1.allowCollisions & 16) == 0 || (Object2.allowCollisions & 1) == 0) {
overlap = 0;
} else {
Object1.touching |= 16;
Object2.touching |= 1;
}
} else if(obj1delta < obj2delta) {
overlap = Object1.x - Object2.get_width() - Object2.x;
if(checkMaxOverlap && -overlap > maxOverlap || (Object1.allowCollisions & 1) == 0 || (Object2.allowCollisions & 16) == 0) {
overlap = 0;
} else {
Object1.touching |= 1;
Object2.touching |= 16;
}
}
}
}
return overlap;
};
flixel_FlxObject.separateX = function(Object1,Object2) {
var obj1immovable = Object1.immovable;
var obj2immovable = Object2.immovable;
if(obj1immovable && obj2immovable) {
return false;
}
if(Object1.flixelType == 3) {
var tilemap = Object1;
return tilemap.overlapsWithCallback(Object2,flixel_FlxObject.separateX);
}
if(Object2.flixelType == 3) {
var tilemap = Object2;
return tilemap.overlapsWithCallback(Object1,flixel_FlxObject.separateX,true);
}
var overlap = flixel_FlxObject.computeOverlapX(Object1,Object2);
if(overlap != 0) {
var obj1v = Object1.velocity.x;
var obj2v = Object2.velocity.x;
if(!obj1immovable && !obj2immovable) {
overlap *= 0.5;
Object1.set_x(Object1.x - overlap);
var _g = Object2;
_g.set_x(_g.x + overlap);
var obj1velocity = Math.sqrt(obj2v * obj2v * Object2.mass / Object1.mass) * (obj2v > 0 ? 1 : -1);
var obj2velocity = Math.sqrt(obj1v * obj1v * Object1.mass / Object2.mass) * (obj1v > 0 ? 1 : -1);
var average = (obj1velocity + obj2velocity) * 0.5;
obj1velocity -= average;
obj2velocity -= average;
Object1.velocity.set_x(average + obj1velocity * Object1.elasticity);
Object2.velocity.set_x(average + obj2velocity * Object2.elasticity);
} else if(!obj1immovable) {
Object1.set_x(Object1.x - overlap);
Object1.velocity.set_x(obj2v - obj1v * Object1.elasticity);
} else if(!obj2immovable) {
var _g = Object2;
_g.set_x(_g.x + overlap);
Object2.velocity.set_x(obj1v - obj2v * Object2.elasticity);
}
return true;
}
return false;
};
flixel_FlxObject.updateTouchingFlagsX = function(Object1,Object2) {
if(Object1.flixelType == 3) {
var tilemap = Object1;
return tilemap.overlapsWithCallback(Object2,flixel_FlxObject.updateTouchingFlagsX);
}
if(Object2.flixelType == 3) {
var tilemap = Object2;
return tilemap.overlapsWithCallback(Object1,flixel_FlxObject.updateTouchingFlagsX,true);
}
return flixel_FlxObject.computeOverlapX(Object1,Object2,false) != 0;
};
flixel_FlxObject.computeOverlapY = function(Object1,Object2,checkMaxOverlap) {
if(checkMaxOverlap == null) {
checkMaxOverlap = true;
}
var overlap = 0;
var obj1delta = Object1.y - Object1.last.y;
var obj2delta = Object2.y - Object2.last.y;
if(obj1delta != obj2delta) {
var obj1deltaAbs = obj1delta > 0 ? obj1delta : -obj1delta;
var obj2deltaAbs = obj2delta > 0 ? obj2delta : -obj2delta;
var _this = flixel_FlxObject._firstSeparateFlxRect;
var X = Object1.x;
var Y = Object1.y - (obj1delta > 0 ? obj1delta : 0);
var Width = Object1.get_width();
var Height = Object1.get_height() + obj1deltaAbs;
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;
var obj1rect = _this;
var _this = flixel_FlxObject._secondSeparateFlxRect;
var X = Object2.x;
var Y = Object2.y - (obj2delta > 0 ? obj2delta : 0);
var Width = Object2.get_width();
var Height = Object2.get_height() + obj2deltaAbs;
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;
var obj2rect = _this;
if(obj1rect.x + obj1rect.width > obj2rect.x && obj1rect.x < obj2rect.x + obj2rect.width && obj1rect.y + obj1rect.height > obj2rect.y && obj1rect.y < obj2rect.y + obj2rect.height) {
var maxOverlap = checkMaxOverlap ? obj1deltaAbs + obj2deltaAbs + flixel_FlxObject.SEPARATE_BIAS : 0;
if(obj1delta > obj2delta) {
overlap = Object1.y + Object1.get_height() - Object2.y;
if(checkMaxOverlap && overlap > maxOverlap || (Object1.allowCollisions & 4096) == 0 || (Object2.allowCollisions & 256) == 0) {
overlap = 0;
} else {
Object1.touching |= 4096;
Object2.touching |= 256;
}
} else if(obj1delta < obj2delta) {
overlap = Object1.y - Object2.get_height() - Object2.y;
if(checkMaxOverlap && -overlap > maxOverlap || (Object1.allowCollisions & 256) == 0 || (Object2.allowCollisions & 4096) == 0) {
overlap = 0;
} else {
Object1.touching |= 256;
Object2.touching |= 4096;
}
}
}
}
return overlap;
};
flixel_FlxObject.separateY = function(Object1,Object2) {
var obj1immovable = Object1.immovable;
var obj2immovable = Object2.immovable;
if(obj1immovable && obj2immovable) {
return false;
}
if(Object1.flixelType == 3) {
var tilemap = Object1;
return tilemap.overlapsWithCallback(Object2,flixel_FlxObject.separateY);
}
if(Object2.flixelType == 3) {
var tilemap = Object2;
return tilemap.overlapsWithCallback(Object1,flixel_FlxObject.separateY,true);
}
var overlap = flixel_FlxObject.computeOverlapY(Object1,Object2);
if(overlap != 0) {
var obj1delta = Object1.y - Object1.last.y;
var obj2delta = Object2.y - Object2.last.y;
var obj1v = Object1.velocity.y;
var obj2v = Object2.velocity.y;
if(!obj1immovable && !obj2immovable) {
overlap *= 0.5;
Object1.set_y(Object1.y - overlap);
var _g = Object2;
_g.set_y(_g.y + overlap);
var obj1velocity = Math.sqrt(obj2v * obj2v * Object2.mass / Object1.mass) * (obj2v > 0 ? 1 : -1);
var obj2velocity = Math.sqrt(obj1v * obj1v * Object1.mass / Object2.mass) * (obj1v > 0 ? 1 : -1);
var average = (obj1velocity + obj2velocity) * 0.5;
obj1velocity -= average;
obj2velocity -= average;
Object1.velocity.set_y(average + obj1velocity * Object1.elasticity);
Object2.velocity.set_y(average + obj2velocity * Object2.elasticity);
} else if(!obj1immovable) {
Object1.set_y(Object1.y - overlap);
Object1.velocity.set_y(obj2v - obj1v * Object1.elasticity);
if(Object1.collisonXDrag && Object2.active && Object2.moves && obj1delta > obj2delta) {
var _g = Object1;
_g.set_x(_g.x + (Object2.x - Object2.last.x));
}
} else if(!obj2immovable) {
var _g = Object2;
_g.set_y(_g.y + overlap);
Object2.velocity.set_y(obj1v - obj2v * Object2.elasticity);
if(Object2.collisonXDrag && Object1.active && Object1.moves && obj1delta < obj2delta) {
var _g = Object2;
_g.set_x(_g.x + (Object1.x - Object1.last.x));
}
}
return true;
}
return false;
};
flixel_FlxObject.updateTouchingFlagsY = function(Object1,Object2) {
if(Object1.flixelType == 3) {
var tilemap = Object1;
return tilemap.overlapsWithCallback(Object2,flixel_FlxObject.updateTouchingFlagsY);
}
if(Object2.flixelType == 3) {
var tilemap = Object2;
return tilemap.overlapsWithCallback(Object1,flixel_FlxObject.updateTouchingFlagsY,true);
}
return flixel_FlxObject.computeOverlapY(Object1,Object2,false) != 0;
};
flixel_FlxObject.__super__ = flixel_FlxBasic;
flixel_FlxObject.prototype = $extend(flixel_FlxBasic.prototype,{
x: null
,y: null
,width: null
,height: null
,pixelPerfectRender: null
,pixelPerfectPosition: null
,angle: null
,moves: null
,immovable: null
,scrollFactor: null
,velocity: null
,acceleration: null
,drag: null
,maxVelocity: null
,last: null
,mass: null
,elasticity: null
,angularVelocity: null
,angularAcceleration: null
,angularDrag: null
,maxAngular: null
,health: null
,touching: null
,wasTouching: null
,allowCollisions: null
,collisonXDrag: null
,path: null
,_point: null
,_rect: null
,initVars: function() {
this.flixelType = 1;
var X = this.x;
var Y = this.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.last = point;
var X = 1;
var Y = 1;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.scrollFactor = point;
this.pixelPerfectPosition = flixel_FlxObject.defaultPixelPerfectPosition;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.velocity = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.acceleration = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.drag = point;
var X = 10000;
var Y = 10000;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.maxVelocity = point;
}
,initMotionVars: function() {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.velocity = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.acceleration = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.drag = point;
var X = 10000;
var Y = 10000;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.maxVelocity = point;
}
,destroy: function() {
flixel_FlxBasic.prototype.destroy.call(this);
this.velocity = flixel_util_FlxDestroyUtil.put(this.velocity);
this.acceleration = flixel_util_FlxDestroyUtil.put(this.acceleration);
this.drag = flixel_util_FlxDestroyUtil.put(this.drag);
this.maxVelocity = flixel_util_FlxDestroyUtil.put(this.maxVelocity);
this.scrollFactor = flixel_util_FlxDestroyUtil.put(this.scrollFactor);
this.last = flixel_util_FlxDestroyUtil.put(this.last);
this._point = flixel_util_FlxDestroyUtil.put(this._point);
this._rect = flixel_util_FlxDestroyUtil.put(this._rect);
}
,update: function(elapsed) {
this.last.set(this.x,this.y);
if(this.path != null && this.path.active) {
this.path.update(elapsed);
}
if(this.moves) {
this.updateMotion(elapsed);
}
this.wasTouching = this.touching;
this.touching = 0;
}
,updateMotion: function(elapsed) {
var velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.angularVelocity,this.angularAcceleration,this.angularDrag,this.maxAngular,elapsed) - this.angularVelocity);
this.angularVelocity += velocityDelta;
var _g = this;
_g.set_angle(_g.angle + this.angularVelocity * elapsed);
this.angularVelocity += velocityDelta;
velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.velocity.x,this.acceleration.x,this.drag.x,this.maxVelocity.x,elapsed) - this.velocity.x);
var _g = this.velocity;
_g.set_x(_g.x + velocityDelta);
var delta = this.velocity.x * elapsed;
var _g = this.velocity;
_g.set_x(_g.x + velocityDelta);
var _g = this;
_g.set_x(_g.x + delta);
velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.velocity.y,this.acceleration.y,this.drag.y,this.maxVelocity.y,elapsed) - this.velocity.y);
var _g = this.velocity;
_g.set_y(_g.y + velocityDelta);
delta = this.velocity.y * elapsed;
var _g = this.velocity;
_g.set_y(_g.y + velocityDelta);
var _g = this;
_g.set_y(_g.y + delta);
}
,draw: function() {
}
,overlaps: function(ObjectOrGroup,InScreenSpace,Camera) {
if(InScreenSpace == null) {
InScreenSpace = false;
}
var group = flixel_group_FlxTypedGroup.resolveGroup(ObjectOrGroup);
if(group != null) {
return flixel_group_FlxTypedGroup.overlaps($bind(this,this.overlapsCallback),group,0,0,InScreenSpace,Camera);
}
if(ObjectOrGroup.flixelType == 3) {
var tilemap = ObjectOrGroup;
return tilemap.overlaps(this,InScreenSpace,Camera);
}
var object = ObjectOrGroup;
if(!InScreenSpace) {
if(object.x + object.get_width() > this.x && object.x < this.x + this.get_width() && object.y + object.get_height() > this.y) {
return object.y < this.y + this.get_height();
} else {
return false;
}
}
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
var objectScreenPos = object.getScreenPosition(null,Camera);
this.getScreenPosition(this._point,Camera);
if(objectScreenPos.x + object.get_width() > this._point.x && objectScreenPos.x < this._point.x + this.get_width() && objectScreenPos.y + object.get_height() > this._point.y) {
return objectScreenPos.y < this._point.y + this.get_height();
} else {
return false;
}
}
,overlapsCallback: function(ObjectOrGroup,X,Y,InScreenSpace,Camera) {
return this.overlaps(ObjectOrGroup,InScreenSpace,Camera);
}
,overlapsAt: function(X,Y,ObjectOrGroup,InScreenSpace,Camera) {
if(InScreenSpace == null) {
InScreenSpace = false;
}
var group = flixel_group_FlxTypedGroup.resolveGroup(ObjectOrGroup);
if(group != null) {
return flixel_group_FlxTypedGroup.overlaps($bind(this,this.overlapsAtCallback),group,X,Y,InScreenSpace,Camera);
}
if(ObjectOrGroup.flixelType == 3) {
var tilemap = ObjectOrGroup;
return tilemap.overlapsAt(tilemap.x - (X - this.x),tilemap.y - (Y - this.y),this,InScreenSpace,Camera);
}
var object = ObjectOrGroup;
if(!InScreenSpace) {
if(object.x + object.get_width() > X && object.x < X + this.get_width() && object.y + object.get_height() > Y) {
return object.y < Y + this.get_height();
} else {
return false;
}
}
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
var objectScreenPos = object.getScreenPosition(null,Camera);
this.getScreenPosition(this._point,Camera);
if(objectScreenPos.x + object.get_width() > this._point.x && objectScreenPos.x < this._point.x + this.get_width() && objectScreenPos.y + object.get_height() > this._point.y) {
return objectScreenPos.y < this._point.y + this.get_height();
} else {
return false;
}
}
,overlapsAtCallback: function(ObjectOrGroup,X,Y,InScreenSpace,Camera) {
return this.overlapsAt(X,Y,ObjectOrGroup,InScreenSpace,Camera);
}
,overlapsPoint: function(point,InScreenSpace,Camera) {
if(InScreenSpace == null) {
InScreenSpace = false;
}
if(!InScreenSpace) {
if(point.x >= this.x && point.x < this.x + this.get_width() && point.y >= this.y) {
return point.y < this.y + this.get_height();
} else {
return false;
}
}
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
var xPos = point.x - Camera.scroll.x;
var yPos = point.y - Camera.scroll.y;
this.getScreenPosition(this._point,Camera);
if(point._weak) {
point.put();
}
if(xPos >= this._point.x && xPos < this._point.x + this.get_width() && yPos >= this._point.y) {
return yPos < this._point.y + this.get_height();
} else {
return false;
}
}
,inWorldBounds: function() {
var tmp;
if(this.x + this.get_width() > flixel_FlxG.worldBounds.x) {
var _this = flixel_FlxG.worldBounds;
tmp = this.x < _this.x + _this.width;
} else {
tmp = false;
}
if(tmp && this.y + this.get_height() > flixel_FlxG.worldBounds.y) {
var _this = flixel_FlxG.worldBounds;
return this.y < _this.y + _this.height;
} else {
return false;
}
}
,getScreenPosition: function(point,Camera) {
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
point.set(this.x,this.y);
if(this.pixelPerfectPosition) {
point.set_x(Math.floor(point.x));
point.set_y(Math.floor(point.y));
}
var X = Camera.scroll.x * this.scrollFactor.x;
var Y = Camera.scroll.y * this.scrollFactor.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = point;
_g.set_x(_g.x - X);
var _g = point;
_g.set_y(_g.y - Y);
return point;
}
,getPosition: function(point) {
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
return point.set(this.x,this.y);
}
,getMidpoint: function(point) {
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
return point.set(this.x + this.get_width() * 0.5,this.y + this.get_height() * 0.5);
}
,getHitbox: function(rect) {
if(rect == null) {
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect1 = _this;
rect1._inPool = false;
rect = rect1;
}
var X = this.x;
var Y = this.y;
var Width = this.get_width();
var Height = this.get_height();
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
rect.x = X;
rect.y = Y;
rect.width = Width;
rect.height = Height;
return rect;
}
,reset: function(X,Y) {
this.touching = 0;
this.wasTouching = 0;
this.setPosition(X,Y);
this.last.set(this.x,this.y);
this.velocity.set();
this.revive();
}
,isOnScreen: function(Camera) {
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
this.getScreenPosition(this._point,Camera);
var point = this._point;
var width = this.get_width();
var height = this.get_height();
if(height == null) {
height = 0;
}
if(width == null) {
width = 0;
}
if(point.x + width > Camera.viewOffsetX && point.x < Camera.viewOffsetWidth && point.y + height > Camera.viewOffsetY) {
return point.y < Camera.viewOffsetHeight;
} else {
return false;
}
}
,isPixelPerfectRender: function(Camera) {
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
if(this.pixelPerfectRender == null) {
return Camera.pixelPerfectRender;
} else {
return this.pixelPerfectRender;
}
}
,isTouching: function(Direction) {
return (this.touching & Direction) > 0;
}
,justTouched: function(Direction) {
if((this.touching & Direction) > 0) {
return (this.wasTouching & Direction) <= 0;
} else {
return false;
}
}
,hurt: function(Damage) {
this.health -= Damage;
if(this.health <= 0) {
this.kill();
}
}
,screenCenter: function(axes) {
if(axes == null) {
axes = flixel_util_FlxAxes.XY;
}
if(axes != flixel_util_FlxAxes.Y) {
this.set_x(flixel_FlxG.width / 2 - this.get_width() / 2);
}
if(axes != flixel_util_FlxAxes.X) {
this.set_y(flixel_FlxG.height / 2 - this.get_height() / 2);
}
return this;
}
,setPosition: function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.set_x(X);
this.set_y(Y);
}
,setSize: function(Width,Height) {
this.set_width(Width);
this.set_height(Height);
}
,getBoundingBox: function(camera) {
this.getScreenPosition(this._point,camera);
var _this = this._rect;
var X = this._point.x;
var Y = this._point.y;
var Width = this.get_width();
var Height = this.get_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;
this._rect = camera.transformRect(this._rect);
if(this.isPixelPerfectRender(camera)) {
var _this = this._rect;
_this.x = Math.floor(_this.x);
_this.y = Math.floor(_this.y);
_this.width = Math.floor(_this.width);
_this.height = Math.floor(_this.height);
}
return this._rect;
}
,toString: function() {
var value = this.x;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "x";
_this.value = value;
var value = this.y;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "y";
_this1.value = value;
var value = this.get_width();
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "w";
_this2.value = value;
var value = this.get_height();
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "h";
_this3.value = value;
var value = this.visible;
var _this4 = flixel_util_LabelValuePair._pool.get();
_this4.label = "visible";
_this4.value = value;
var value = this.velocity;
var _this5 = flixel_util_LabelValuePair._pool.get();
_this5.label = "velocity";
_this5.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5]);
}
,set_x: function(NewX) {
return this.x = NewX;
}
,set_y: function(NewY) {
return this.y = NewY;
}
,set_width: function(Width) {
return this.width = Width;
}
,set_height: function(Height) {
return this.height = Height;
}
,get_width: function() {
return this.width;
}
,get_height: function() {
return this.height;
}
,get_solid: function() {
return (this.allowCollisions & 4369) > 0;
}
,set_solid: function(Solid) {
this.set_allowCollisions(Solid ? 4369 : 0);
return Solid;
}
,set_angle: function(Value) {
return this.angle = Value;
}
,set_moves: function(Value) {
return this.moves = Value;
}
,set_immovable: function(Value) {
return this.immovable = Value;
}
,set_pixelPerfectRender: function(Value) {
return this.pixelPerfectRender = Value;
}
,set_allowCollisions: function(Value) {
return this.allowCollisions = Value;
}
,set_path: function(path) {
if(this.path == path) {
return path;
}
if(this.path != null) {
this.path.object = null;
}
if(path != null) {
path.object = this;
}
return this.path = path;
}
,__class__: flixel_FlxObject
,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{set_path:"set_path",set_allowCollisions:"set_allowCollisions",set_solid:"set_solid",get_solid:"get_solid",set_immovable:"set_immovable",set_moves:"set_moves",set_angle:"set_angle",set_pixelPerfectRender:"set_pixelPerfectRender",set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",set_y:"set_y",set_x:"set_x"})
});
var flixel_FlxSprite = function(X,Y,SimpleGraphic) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._facingFlip = new haxe_ds_IntMap();
this._angleChanged = true;
this._cosAngle = 1;
this._sinAngle = 0;
this._facingVerticalMult = 1;
this._facingHorizontalMult = 1;
this.useColorTransform = false;
this.color = 16777215;
this.flipY = false;
this.flipX = false;
this.facing = 16;
this.alpha = 1.0;
this.bakedRotationAngle = 0;
this.numFrames = 0;
this.frameHeight = 0;
this.frameWidth = 0;
this.dirty = true;
this.antialiasing = false;
this.useFramePixels = true;
flixel_FlxObject.call(this,X,Y);
this.set_useFramePixels(flixel_FlxG.renderBlit);
if(SimpleGraphic != null) {
this.loadGraphic(SimpleGraphic);
}
};
$hxClasses["flixel.FlxSprite"] = flixel_FlxSprite;
flixel_FlxSprite.__name__ = "flixel.FlxSprite";
flixel_FlxSprite.__super__ = flixel_FlxObject;
flixel_FlxSprite.prototype = $extend(flixel_FlxObject.prototype,{
animation: null
,framePixels: null
,useFramePixels: null
,antialiasing: null
,dirty: null
,frame: null
,frameWidth: null
,frameHeight: null
,numFrames: null
,frames: null
,graphic: null
,bakedRotationAngle: null
,alpha: null
,facing: null
,flipX: null
,flipY: null
,origin: null
,offset: null
,scale: null
,blend: null
,color: null
,colorTransform: null
,useColorTransform: null
,clipRect: null
,shader: null
,_frame: null
,_frameGraphic: null
,_facingHorizontalMult: null
,_facingVerticalMult: null
,_flashPoint: null
,_flashRect: null
,_flashRect2: null
,_flashPointZero: null
,_matrix: null
,_halfSize: null
,_sinAngle: null
,_cosAngle: null
,_angleChanged: null
,_facingFlip: null
,initVars: function() {
flixel_FlxObject.prototype.initVars.call(this);
this.animation = new flixel_animation_FlxAnimationController(this);
this._flashPoint = new openfl_geom_Point();
this._flashRect = new openfl_geom_Rectangle();
this._flashRect2 = new openfl_geom_Rectangle();
this._flashPointZero = new openfl_geom_Point();
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.offset = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.origin = point;
var X = 1;
var Y = 1;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.scale = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this._halfSize = point;
this._matrix = new flixel_math_FlxMatrix();
this.colorTransform = new openfl_geom_ColorTransform();
}
,destroy: function() {
flixel_FlxObject.prototype.destroy.call(this);
this.animation = flixel_util_FlxDestroyUtil.destroy(this.animation);
this.offset = flixel_util_FlxDestroyUtil.put(this.offset);
this.origin = flixel_util_FlxDestroyUtil.put(this.origin);
this.scale = flixel_util_FlxDestroyUtil.put(this.scale);
this._halfSize = flixel_util_FlxDestroyUtil.put(this._halfSize);
this.framePixels = flixel_util_FlxDestroyUtil.dispose(this.framePixels);
this._flashPoint = null;
this._flashRect = null;
this._flashRect2 = null;
this._flashPointZero = null;
this._matrix = null;
this.colorTransform = null;
this.set_blend(null);
this.set_frames(null);
this.set_graphic(null);
this._frame = flixel_util_FlxDestroyUtil.destroy(this._frame);
this._frameGraphic = flixel_util_FlxDestroyUtil.destroy(this._frameGraphic);
this.shader = null;
}
,clone: function() {
return new flixel_FlxSprite().loadGraphicFromSprite(this);
}
,loadGraphicFromSprite: function(Sprite) {
this.set_frames(Sprite.frames);
this.bakedRotationAngle = Sprite.bakedRotationAngle;
if(this.bakedRotationAngle > 0) {
this.set_width(Sprite.get_width());
this.set_height(Sprite.get_height());
this.centerOffsets();
}
this.set_antialiasing(Sprite.antialiasing);
this.animation.copyFrom(Sprite.animation);
this.graphicLoaded();
this.set_clipRect(Sprite.clipRect);
return this;
}
,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) {
if(Unique == null) {
Unique = false;
}
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Animated == null) {
Animated = false;
}
var graph = flixel_FlxG.bitmap.add(Graphic,Unique,Key);
if(graph == null) {
return this;
}
if(Width == 0) {
Width = Animated ? graph.height : graph.width;
if(Width > graph.width) {
Width = graph.width;
}
}
if(Height == 0) {
Height = Animated ? Width : graph.height;
if(Height > graph.height) {
Height = graph.height;
}
}
if(Animated) {
var X = Width;
var Y = Height;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.set_frames(flixel_graphics_frames_FlxTileFrames.fromGraphic(graph,point));
} else {
this.set_frames(graph.get_imageFrame());
}
return this;
}
,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) {
if(AutoBuffer == null) {
AutoBuffer = false;
}
if(AntiAliasing == null) {
AntiAliasing = false;
}
if(Frame == null) {
Frame = -1;
}
if(Rotations == null) {
Rotations = 16;
}
var brushGraphic = flixel_FlxG.bitmap.add(Graphic,false,Key);
if(brushGraphic == null) {
return this;
}
var brush = brushGraphic.bitmap;
var key = brushGraphic.key;
if(Frame >= 0) {
var brushSize = brush.height;
var framesNum = brush.width / brushSize | 0;
if(framesNum <= Frame) {
Frame %= framesNum;
}
key += ":" + Frame;
var full = brush;
brush = new openfl_display_BitmapData(brushSize,brushSize,true,0);
this._flashRect.setTo(Frame * brushSize,0,brushSize,brushSize);
brush.copyPixels(full,this._flashRect,this._flashPointZero);
}
key += ":" + Rotations + ":" + (AutoBuffer == null ? "null" : "" + AutoBuffer);
var tempGraph = flixel_FlxG.bitmap._cache.h[key];
if(tempGraph == null) {
var bitmap = flixel_util_FlxBitmapDataUtil.generateRotations(brush,Rotations,AntiAliasing,AutoBuffer);
tempGraph = flixel_graphics_FlxGraphic.fromBitmapData(bitmap,false,key);
}
var max = brush.height > brush.width ? brush.height : brush.width;
if(AutoBuffer) {
max = max * 1.5 | 0;
}
var X = max;
var Y = max;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.set_frames(flixel_graphics_frames_FlxTileFrames.fromGraphic(tempGraph,point));
if(AutoBuffer) {
this.set_width(brush.width);
this.set_height(brush.height);
this.centerOffsets();
}
this.bakedRotationAngle = 360 / Rotations;
this.animation.createPrerotated();
return this;
}
,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) {
if(AutoBuffer == null) {
AutoBuffer = false;
}
if(AntiAliasing == null) {
AntiAliasing = false;
}
if(Rotations == null) {
Rotations = 16;
}
var key = Frame.parent.key;
if(Frame.name != null) {
key += ":" + Frame.name;
} else {
var _this = Frame.frame;
var value = _this.x;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "x";
_this1.value = value;
var value = _this.y;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "y";
_this2.value = value;
var value = _this.width;
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "w";
_this3.value = value;
var value = _this.height;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "h";
_this.value = value;
key += ":" + flixel_util_FlxStringUtil.getDebugString([_this1,_this2,_this3,_this]);
}
var graphic = flixel_FlxG.bitmap._cache.h[key];
if(graphic == null) {
graphic = flixel_graphics_FlxGraphic.fromBitmapData(Frame.paint(),false,key);
}
return this.loadRotatedGraphic(graphic,Rotations,-1,AntiAliasing,AutoBuffer);
}
,makeGraphic: function(Width,Height,Color,Unique,Key) {
if(Unique == null) {
Unique = false;
}
if(Color == null) {
Color = -1;
}
var graph = flixel_FlxG.bitmap.create(Width,Height,Color,Unique,Key);
this.set_frames(graph.get_imageFrame());
return this;
}
,graphicLoaded: function() {
}
,resetSize: function() {
this._flashRect.x = 0;
this._flashRect.y = 0;
this._flashRect.width = this.frameWidth;
this._flashRect.height = this.frameHeight;
}
,resetFrameSize: function() {
if(this.frame != null) {
this.frameWidth = this.frame.sourceSize.x | 0;
this.frameHeight = this.frame.sourceSize.y | 0;
}
this._halfSize.set(0.5 * this.frameWidth,0.5 * this.frameHeight);
this._flashRect.x = 0;
this._flashRect.y = 0;
this._flashRect.width = this.frameWidth;
this._flashRect.height = this.frameHeight;
}
,resetSizeFromFrame: function() {
this.set_width(this.frameWidth);
this.set_height(this.frameHeight);
}
,resetFrame: function() {
this.set_frame(this.frame);
}
,setGraphicSize: function(Width,Height) {
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Width <= 0 && Height <= 0) {
return;
}
var newScaleX = Width / this.frameWidth;
var newScaleY = Height / this.frameHeight;
this.scale.set(newScaleX,newScaleY);
if(Width <= 0) {
this.scale.set_x(newScaleY);
} else if(Height <= 0) {
this.scale.set_y(newScaleX);
}
}
,updateHitbox: function() {
this.set_width(Math.abs(this.scale.x) * this.frameWidth);
this.set_height(Math.abs(this.scale.y) * this.frameHeight);
this.offset.set(-0.5 * (this.get_width() - this.frameWidth),-0.5 * (this.get_height() - this.frameHeight));
this.origin.set(this.frameWidth * 0.5,this.frameHeight * 0.5);
}
,resetHelpers: function() {
if(this.frame != null) {
this.frameWidth = this.frame.sourceSize.x | 0;
this.frameHeight = this.frame.sourceSize.y | 0;
}
this._halfSize.set(0.5 * this.frameWidth,0.5 * this.frameHeight);
this._flashRect.x = 0;
this._flashRect.y = 0;
this._flashRect.width = this.frameWidth;
this._flashRect.height = this.frameHeight;
this.set_width(this.frameWidth);
this.set_height(this.frameHeight);
this._flashRect2.x = 0;
this._flashRect2.y = 0;
if(this.graphic != null) {
this._flashRect2.width = this.graphic.width;
this._flashRect2.height = this.graphic.height;
}
this.origin.set(this.frameWidth * 0.5,this.frameHeight * 0.5);
if(flixel_FlxG.renderBlit) {
this.dirty = true;
this.updateFramePixels();
}
}
,update: function(elapsed) {
flixel_FlxObject.prototype.update.call(this,elapsed);
this.updateAnimation(elapsed);
}
,updateAnimation: function(elapsed) {
this.animation.update(elapsed);
}
,checkEmptyFrame: function() {
if(this._frame == null) {
this.loadGraphic("flixel/images/logo/default.png");
}
}
,draw: function() {
this.checkEmptyFrame();
if(this.alpha == 0 || this._frame.type == 2) {
return;
}
if(this.dirty) {
this.calcFrame(this.useFramePixels);
}
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(!camera.visible || !camera.exists || !this.isOnScreen(camera)) {
continue;
}
this.getScreenPosition(this._point,camera).subtractPoint(this.offset);
if(this.isSimpleRender(camera)) {
this.drawSimple(camera);
} else {
this.drawComplex(camera);
}
}
}
,drawSimple: function(camera) {
if(this.isPixelPerfectRender(camera)) {
var _this = this._point;
_this.set_x(Math.floor(_this.x));
_this.set_y(Math.floor(_this.y));
}
var _this = this._point;
var FlashPoint = this._flashPoint;
if(FlashPoint == null) {
FlashPoint = new openfl_geom_Point();
}
FlashPoint.x = _this.x;
FlashPoint.y = _this.y;
camera.copyPixels(this._frame,this.framePixels,this._flashRect,this._flashPoint,this.colorTransform,this.blend,this.antialiasing);
}
,drawComplex: function(camera) {
var doFlipX = this.flipX != this._frame.flipX;
var doFlipY = this.flipY != this._frame.flipY;
this._frame.prepareMatrix(this._matrix,0,this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX,this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY);
this._matrix.translate(-this.origin.x,-this.origin.y);
this._matrix.scale(this.scale.x,this.scale.y);
if(this.bakedRotationAngle <= 0) {
if(this._angleChanged) {
var radians = this.angle * (Math.PI / 180);
this._sinAngle = Math.sin(radians);
this._cosAngle = Math.cos(radians);
this._angleChanged = false;
}
if(this.angle != 0) {
var _this = this._matrix;
var cos = this._cosAngle;
var sin = this._sinAngle;
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;
}
}
var _this = this._point;
var X = this.origin.x;
var Y = this.origin.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = _this;
_g.set_x(_g.x + X);
var _g = _this;
_g.set_y(_g.y + Y);
this._matrix.translate(this._point.x,this._point.y);
if(this.isPixelPerfectRender(camera)) {
this._matrix.tx = Math.floor(this._matrix.tx);
this._matrix.ty = Math.floor(this._matrix.ty);
}
camera.drawPixels(this._frame,this.framePixels,this._matrix,this.colorTransform,this.blend,this.antialiasing,this.shader);
}
,stamp: function(Brush,X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
Brush.drawFrame();
if(this.graphic == null || Brush.graphic == null) {
throw haxe_Exception.thrown("Cannot stamp to or from a FlxSprite with no graphics.");
}
var bitmapData = Brush.framePixels;
if(this.isSimpleRenderBlit()) {
this._flashPoint.x = X + this.frame.frame.x;
this._flashPoint.y = Y + this.frame.frame.y;
this._flashRect2.width = bitmapData.width;
this._flashRect2.height = bitmapData.height;
this.graphic.bitmap.copyPixels(bitmapData,this._flashRect2,this._flashPoint,null,null,true);
this._flashRect2.width = this.graphic.bitmap.width;
this._flashRect2.height = this.graphic.bitmap.height;
} else {
this._matrix.identity();
this._matrix.translate(-Brush.origin.x,-Brush.origin.y);
this._matrix.scale(Brush.scale.x,Brush.scale.y);
if(Brush.angle != 0) {
this._matrix.rotate(Brush.angle * (Math.PI / 180));
}
this._matrix.translate(X + this.frame.frame.x + Brush.origin.x,Y + this.frame.frame.y + Brush.origin.y);
var brushBlend = Brush.blend;
this.graphic.bitmap.draw(bitmapData,this._matrix,null,brushBlend,null,Brush.antialiasing);
}
if(flixel_FlxG.renderBlit) {
this.dirty = true;
this.calcFrame();
}
}
,drawFrame: function(Force) {
if(Force == null) {
Force = false;
}
if(flixel_FlxG.renderBlit) {
if(Force || this.dirty) {
this.dirty = true;
this.calcFrame();
}
} else {
this.dirty = true;
this.calcFrame(true);
}
}
,centerOffsets: function(AdjustPosition) {
if(AdjustPosition == null) {
AdjustPosition = false;
}
this.offset.set_x((this.frameWidth - this.get_width()) * 0.5);
this.offset.set_y((this.frameHeight - this.get_height()) * 0.5);
if(AdjustPosition) {
var _g = this;
_g.set_x(_g.x + this.offset.x);
var _g = this;
_g.set_y(_g.y + this.offset.y);
}
}
,centerOrigin: function() {
this.origin.set(this.frameWidth * 0.5,this.frameHeight * 0.5);
}
,replaceColor: function(Color,NewColor,FetchPositions) {
if(FetchPositions == null) {
FetchPositions = false;
}
var positions = flixel_util_FlxBitmapDataUtil.replaceColor(this.graphic.bitmap,Color,NewColor,FetchPositions);
if(positions != null) {
this.dirty = true;
}
return positions;
}
,setColorTransform: 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.0;
}
if(blueMultiplier == null) {
blueMultiplier = 1.0;
}
if(greenMultiplier == null) {
greenMultiplier = 1.0;
}
if(redMultiplier == null) {
redMultiplier = 1.0;
}
var color = flixel_util_FlxColor._new();
var Alpha = 1;
if(Alpha == null) {
Alpha = 1;
}
var Value = Math.round(redMultiplier * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(greenMultiplier * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(blueMultiplier * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
this.set_color(color & 16777215);
this.set_alpha(alphaMultiplier);
flixel_util_FlxColorTransformUtil.setMultipliers(this.colorTransform,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
flixel_util_FlxColorTransformUtil.setOffsets(this.colorTransform,redOffset,greenOffset,blueOffset,alphaOffset);
this.useColorTransform = this.alpha != 1 || this.color != 16777215 || flixel_util_FlxColorTransformUtil.hasRGBOffsets(this.colorTransform);
this.dirty = true;
}
,updateColorTransform: function() {
if(this.colorTransform == null) {
this.colorTransform = new openfl_geom_ColorTransform();
}
this.useColorTransform = this.alpha != 1 || this.color != 16777215;
if(this.useColorTransform) {
flixel_util_FlxColorTransformUtil.setMultipliers(this.colorTransform,(this.color >> 16 & 255) / 255,(this.color >> 8 & 255) / 255,(this.color & 255) / 255,this.alpha);
} else {
flixel_util_FlxColorTransformUtil.setMultipliers(this.colorTransform,1,1,1,1);
}
this.dirty = true;
}
,pixelsOverlapPoint: function(point,Mask,Camera) {
if(Mask == null) {
Mask = 255;
}
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
this.getScreenPosition(this._point,Camera);
this._point.subtractPoint(this.offset);
this._flashPoint.x = point.x - Camera.scroll.x - this._point.x;
this._flashPoint.y = point.y - Camera.scroll.y - this._point.y;
if(point._weak) {
point.put();
}
if(this._flashPoint.x < 0 || this._flashPoint.x > this.frameWidth || this._flashPoint.y < 0 || this._flashPoint.y > this.frameHeight) {
return false;
} else {
var frameData = this.updateFramePixels();
var pixelColor = frameData.getPixel32(this._flashPoint.x | 0,this._flashPoint.y | 0);
return (pixelColor >> 24 & 255) * this.alpha >= Mask;
}
}
,calcFrame: function(RunOnCpp) {
if(RunOnCpp == null) {
RunOnCpp = false;
}
this.checkEmptyFrame();
if(flixel_FlxG.renderTile && !RunOnCpp) {
return;
}
this.updateFramePixels();
}
,updateFramePixels: function() {
if(this._frame == null || !this.dirty) {
return this.framePixels;
}
if(flixel_FlxG.renderTile && this._frameGraphic != null) {
this.dirty = false;
return this.framePixels;
}
var doFlipX = this.flipX != this._frame.flipX;
var doFlipX1 = this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX;
var doFlipY = this.flipY != this._frame.flipY;
var doFlipY1 = this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY;
if(!doFlipX1 && !doFlipY1 && this._frame.type == 0) {
this.framePixels = this._frame.paint(this.framePixels,this._flashPointZero,false,true);
} else {
this.framePixels = this._frame.paintRotatedAndFlipped(this.framePixels,this._flashPointZero,0,doFlipX1,doFlipY1,false,true);
}
if(this.useColorTransform) {
this.framePixels.colorTransform(this._flashRect,this.colorTransform);
}
if(flixel_FlxG.renderTile && this.useFramePixels) {
this._frameGraphic = flixel_util_FlxDestroyUtil.destroy(this._frameGraphic);
this._frameGraphic = flixel_graphics_FlxGraphic.fromBitmapData(this.framePixels,false,null,false);
this._frame = this._frameGraphic.get_imageFrame().get_frame().copyTo(this._frame);
}
this.dirty = false;
return this.framePixels;
}
,getGraphicMidpoint: function(point) {
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
return point.set(this.x + this.frameWidth * 0.5,this.y + this.frameHeight * 0.5);
}
,isOnScreen: function(Camera) {
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
var minX = this.x - this.offset.x - Camera.scroll.x * this.scrollFactor.x;
var minY = this.y - this.offset.y - Camera.scroll.y * this.scrollFactor.y;
if((this.angle == 0 || this.bakedRotationAngle > 0) && this.scale.x == 1 && this.scale.y == 1) {
this._point.set(minX,minY);
var point = this._point;
var width = this.frameWidth;
var height = this.frameHeight;
if(height == null) {
height = 0;
}
if(width == null) {
width = 0;
}
if(point.x + width > Camera.viewOffsetX && point.x < Camera.viewOffsetWidth && point.y + height > Camera.viewOffsetY) {
return point.y < Camera.viewOffsetHeight;
} else {
return false;
}
}
var radiusX = this._halfSize.x;
var radiusY = this._halfSize.y;
var ox = this.origin.x;
if(ox != radiusX) {
var x1 = Math.abs(ox);
var x2 = Math.abs(this.frameWidth - ox);
radiusX = Math.max(x2,x1);
}
var oy = this.origin.y;
if(oy != radiusY) {
var y1 = Math.abs(oy);
var y2 = Math.abs(this.frameHeight - oy);
radiusY = Math.max(y2,y1);
}
radiusX *= Math.abs(this.scale.x);
radiusY *= Math.abs(this.scale.y);
var radius = Math.max(radiusX,radiusY);
radius *= 1.41421356237;
minX += ox - radius;
minY += oy - radius;
var doubleRadius = 2 * radius;
this._point.set(minX,minY);
var point = this._point;
var width = doubleRadius;
var height = doubleRadius;
if(height == null) {
height = 0;
}
if(width == null) {
width = 0;
}
if(point.x + width > Camera.viewOffsetX && point.x < Camera.viewOffsetWidth && point.y + height > Camera.viewOffsetY) {
return point.y < Camera.viewOffsetHeight;
} else {
return false;
}
}
,isSimpleRender: function(camera) {
if(flixel_FlxG.renderTile) {
return false;
}
return this.isSimpleRenderBlit(camera);
}
,isSimpleRenderBlit: function(camera) {
var result = (this.angle == 0 || this.bakedRotationAngle > 0) && this.scale.x == 1 && this.scale.y == 1 && this.blend == null;
result = result && (camera != null ? this.isPixelPerfectRender(camera) : this.pixelPerfectRender);
return result;
}
,setFacingFlip: function(Direction,FlipX,FlipY) {
this._facingFlip.h[Direction] = { x : FlipX, y : FlipY};
}
,setFrames: function(Frames,saveAnimations) {
if(saveAnimations == null) {
saveAnimations = true;
}
if(saveAnimations) {
var animations = this.animation._animations;
var reverse = false;
var index = 0;
var frameIndex = this.animation.frameIndex;
var currName = null;
if(this.animation._curAnim != null) {
reverse = this.animation._curAnim.reversed;
index = this.animation._curAnim.curFrame;
currName = this.animation._curAnim.name;
}
this.animation._animations = null;
this.set_frames(Frames);
this.set_frame(this.frames.frames[frameIndex]);
this.animation._animations = animations;
if(currName != null) {
this.animation.play(currName,false,reverse,index);
}
} else {
this.set_frames(Frames);
}
return this;
}
,get_pixels: function() {
if(this.graphic == null) {
return null;
} else {
return this.graphic.bitmap;
}
}
,set_pixels: function(Pixels) {
var key = flixel_FlxG.bitmap.findKeyForBitmap(Pixels);
if(key == null) {
key = flixel_FlxG.bitmap.getUniqueKey();
this.set_graphic(flixel_FlxG.bitmap.add(Pixels,false,key));
} else {
this.set_graphic(flixel_FlxG.bitmap._cache.h[key]);
}
this.set_frames(this.graphic.get_imageFrame());
return Pixels;
}
,set_frame: function(Value) {
this.frame = Value;
if(this.frame != null) {
if(this.frame != null) {
this.frameWidth = this.frame.sourceSize.x | 0;
this.frameHeight = this.frame.sourceSize.y | 0;
}
this._halfSize.set(0.5 * this.frameWidth,0.5 * this.frameHeight);
this._flashRect.x = 0;
this._flashRect.y = 0;
this._flashRect.width = this.frameWidth;
this._flashRect.height = this.frameHeight;
this.dirty = true;
} else if(this.frames != null && this.frames.frames != null && this.numFrames > 0) {
this.frame = this.frames.frames[0];
this.dirty = true;
} else {
return null;
}
if(flixel_FlxG.renderTile) {
this._frameGraphic = flixel_util_FlxDestroyUtil.destroy(this._frameGraphic);
}
if(this.clipRect != null) {
this._frame = this.frame.clipTo(this.clipRect,this._frame);
} else {
this._frame = this.frame.copyTo(this._frame);
}
return this.frame;
}
,set_facing: function(Direction) {
var flip = this._facingFlip.h[Direction];
if(flip != null) {
this.set_flipX(flip.x);
this.set_flipY(flip.y);
}
return this.facing = Direction;
}
,set_alpha: function(Alpha) {
if(this.alpha == Alpha) {
return Alpha;
}
var lowerBound = Alpha < 0 ? 0 : Alpha;
this.alpha = lowerBound > 1 ? 1 : lowerBound;
this.updateColorTransform();
return this.alpha;
}
,set_color: function(Color) {
if(this.color == Color) {
return Color;
}
this.color = Color;
this.updateColorTransform();
return this.color;
}
,set_angle: function(Value) {
var newAngle = this.angle != Value;
var ret = flixel_FlxObject.prototype.set_angle.call(this,Value);
if(newAngle) {
this._angleChanged = true;
this.animation.update(0);
}
return ret;
}
,updateTrig: function() {
if(this._angleChanged) {
var radians = this.angle * (Math.PI / 180);
this._sinAngle = Math.sin(radians);
this._cosAngle = Math.cos(radians);
this._angleChanged = false;
}
}
,set_blend: function(Value) {
return this.blend = Value;
}
,set_graphic: function(Value) {
var oldGraphic = this.graphic;
if(this.graphic != Value && Value != null) {
var _g = Value;
_g.set_useCount(_g.get_useCount() + 1);
}
if(oldGraphic != null && oldGraphic != Value) {
var _g = oldGraphic;
_g.set_useCount(_g.get_useCount() - 1);
}
return this.graphic = Value;
}
,set_clipRect: function(rect) {
if(rect != null) {
rect.x = Math.round(rect.x);
rect.y = Math.round(rect.y);
rect.width = Math.round(rect.width);
rect.height = Math.round(rect.height);
this.clipRect = rect;
} else {
this.clipRect = null;
}
if(this.frames != null) {
this.set_frame(this.frames.frames[this.animation.frameIndex]);
}
return rect;
}
,set_frames: function(Frames) {
if(this.animation != null) {
this.animation.destroyAnimations();
}
if(Frames != null) {
this.set_graphic(Frames.parent);
this.frames = Frames;
this.set_frame(this.frames.frames[0]);
this.numFrames = this.frames.frames.length;
this.resetHelpers();
this.bakedRotationAngle = 0;
this.animation.set_frameIndex(0);
this.graphicLoaded();
} else {
this.frames = null;
this.set_frame(null);
this.set_graphic(null);
}
return Frames;
}
,set_flipX: function(Value) {
if(flixel_FlxG.renderTile) {
this._facingHorizontalMult = Value ? -1 : 1;
}
this.dirty = this.flipX != Value || this.dirty;
return this.flipX = Value;
}
,set_flipY: function(Value) {
if(flixel_FlxG.renderTile) {
this._facingVerticalMult = Value ? -1 : 1;
}
this.dirty = this.flipY != Value || this.dirty;
return this.flipY = Value;
}
,set_antialiasing: function(value) {
return this.antialiasing = value;
}
,set_useFramePixels: function(value) {
if(flixel_FlxG.renderTile) {
if(value != this.useFramePixels) {
this.useFramePixels = value;
this.set_frame(this.frame);
if(value) {
this.updateFramePixels();
}
}
return value;
} else {
this.useFramePixels = true;
return true;
}
}
,checkFlipX: function() {
var doFlipX = this.flipX != this._frame.flipX;
if(this.animation._curAnim != null) {
return doFlipX != this.animation._curAnim.flipX;
}
return doFlipX;
}
,checkFlipY: function() {
var doFlipY = this.flipY != this._frame.flipY;
if(this.animation._curAnim != null) {
return doFlipY != this.animation._curAnim.flipY;
}
return doFlipY;
}
,__class__: flixel_FlxSprite
,__properties__: $extend(flixel_FlxObject.prototype.__properties__,{set_clipRect:"set_clipRect",set_color:"set_color",set_blend:"set_blend",set_flipY:"set_flipY",set_flipX:"set_flipX",set_facing:"set_facing",set_alpha:"set_alpha",set_graphic:"set_graphic",set_frames:"set_frames",set_frame:"set_frame",set_pixels:"set_pixels",get_pixels:"get_pixels",set_antialiasing:"set_antialiasing",set_useFramePixels:"set_useFramePixels"})
});
var flixel_group_FlxTypedSpriteGroup = function(X,Y,MaxSize) {
if(MaxSize == null) {
MaxSize = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._skipTransformChildren = false;
this.directAlpha = false;
flixel_FlxSprite.call(this,X,Y);
this.group = new flixel_group_FlxTypedGroup(MaxSize);
this._sprites = this.group.members;
};
$hxClasses["flixel.group.FlxTypedSpriteGroup"] = flixel_group_FlxTypedSpriteGroup;
flixel_group_FlxTypedSpriteGroup.__name__ = "flixel.group.FlxTypedSpriteGroup";
flixel_group_FlxTypedSpriteGroup.__super__ = flixel_FlxSprite;
flixel_group_FlxTypedSpriteGroup.prototype = $extend(flixel_FlxSprite.prototype,{
transformChildren_flixel_math_FlxRect: function(Function1,Value) {
if(this.group == null) {
return;
}
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
Function1(sprite,Value);
}
}
}
,transformChildren_flash_display_BlendMode: function(Function1,Value) {
if(this.group == null) {
return;
}
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
Function1(sprite,Value);
}
}
}
,transformChildren_flixel_FlxCamera: function(Function1,Value) {
if(this.group == null) {
return;
}
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
Function1(sprite,Value);
}
}
}
,multiTransformChildren_Float: function(FunctionArray,ValueArray) {
if(this.group == null) {
return;
}
var numProps = FunctionArray.length;
if(numProps > ValueArray.length) {
return;
}
var lambda;
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null && sprite.exists) {
var _g2 = 0;
var _g3 = numProps;
while(_g2 < _g3) {
var i = _g2++;
lambda = FunctionArray[i];
lambda(sprite,ValueArray[i]);
}
}
}
}
,transformChildren_flixel_math_FlxPoint: function(Function1,Value) {
if(this.group == null) {
return;
}
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
Function1(sprite,Value);
}
}
}
,transformChildren_Int: function(Function1,Value) {
if(this.group == null) {
return;
}
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
Function1(sprite,Value);
}
}
}
,transformChildren_Float: function(Function1,Value) {
if(this.group == null) {
return;
}
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
Function1(sprite,Value);
}
}
}
,transformChildren_Array_flixel_FlxCamera: function(Function1,Value) {
if(this.group == null) {
return;
}
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
Function1(sprite,Value);
}
}
}
,transformChildren_Bool: function(Function1,Value) {
if(this.group == null) {
return;
}
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
Function1(sprite,Value);
}
}
}
,group: null
,directAlpha: null
,_skipTransformChildren: null
,_sprites: null
,initVars: function() {
this.flixelType = 4;
this.offset = new flixel_math_FlxCallbackPoint($bind(this,this.offsetCallback));
this.origin = new flixel_math_FlxCallbackPoint($bind(this,this.originCallback));
this.scale = new flixel_math_FlxCallbackPoint($bind(this,this.scaleCallback));
this.scrollFactor = new flixel_math_FlxCallbackPoint($bind(this,this.scrollFactorCallback));
this.scale.set(1,1);
this.scrollFactor.set(1,1);
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.velocity = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.acceleration = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.drag = point;
var X = 10000;
var Y = 10000;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.maxVelocity = point;
}
,destroy: function() {
this.offset = flixel_util_FlxDestroyUtil.destroy(this.offset);
this.origin = flixel_util_FlxDestroyUtil.destroy(this.origin);
this.scale = flixel_util_FlxDestroyUtil.destroy(this.scale);
this.scrollFactor = flixel_util_FlxDestroyUtil.destroy(this.scrollFactor);
this.group = flixel_util_FlxDestroyUtil.destroy(this.group);
this._sprites = null;
flixel_FlxSprite.prototype.destroy.call(this);
}
,clone: function() {
var newGroup = new flixel_group_FlxTypedSpriteGroup(this.x,this.y,this.group.maxSize);
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
newGroup.add(sprite.clone());
}
}
return newGroup;
}
,isOnScreen: function(Camera) {
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null && sprite.exists && sprite.visible && sprite.isOnScreen(Camera)) {
return true;
}
}
return false;
}
,overlapsPoint: function(point,InScreenSpace,Camera) {
if(InScreenSpace == null) {
InScreenSpace = false;
}
var result = false;
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null && sprite.exists && sprite.visible) {
result = result || sprite.overlapsPoint(point,InScreenSpace,Camera);
}
}
return result;
}
,pixelsOverlapPoint: function(point,Mask,Camera) {
if(Mask == null) {
Mask = 255;
}
var result = false;
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null && sprite.exists && sprite.visible) {
result = result || sprite.pixelsOverlapPoint(point,Mask,Camera);
}
}
return result;
}
,update: function(elapsed) {
this.group.update(elapsed);
if(this.moves) {
this.updateMotion(elapsed);
}
}
,draw: function() {
this.group.draw();
}
,replaceColor: function(Color,NewColor,FetchPositions) {
if(FetchPositions == null) {
FetchPositions = false;
}
var positions = null;
if(FetchPositions) {
positions = [];
}
var spritePositions;
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
spritePositions = sprite.replaceColor(Color,NewColor,FetchPositions);
if(FetchPositions) {
positions = positions.concat(spritePositions);
}
}
}
return positions;
}
,add: function(Sprite) {
this.preAdd(Sprite);
return this.group.add(Sprite);
}
,insert: function(Position,Sprite) {
this.preAdd(Sprite);
return this.group.insert(Position,Sprite);
}
,preAdd: function(Sprite) {
var sprite = Sprite;
var _g = sprite;
_g.set_x(_g.x + this.x);
var _g = sprite;
_g.set_y(_g.y + this.y);
var _g = sprite;
_g.set_alpha(_g.alpha * this.alpha);
var _this = sprite.scrollFactor;
var point = this.scrollFactor;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
sprite.set_cameras(this._cameras);
if(this.clipRect != null) {
var ClipRect = this.clipRect;
if(ClipRect == null) {
sprite.set_clipRect(null);
} else {
var X = ClipRect.x - sprite.x + this.x;
var Y = ClipRect.y - sprite.y + this.y;
var Width = ClipRect.width;
var Height = ClipRect.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
sprite.set_clipRect(rect);
}
}
}
,recycle: function(ObjectClass,ObjectFactory,Force) {
if(Force == null) {
Force = false;
}
return this.group.recycle(ObjectClass,ObjectFactory,Force);
}
,remove: function(Sprite,Splice) {
if(Splice == null) {
Splice = false;
}
var sprite = Sprite;
var _g = sprite;
_g.set_x(_g.x - this.x);
var _g = sprite;
_g.set_y(_g.y - this.y);
sprite.set_cameras(null);
return this.group.remove(Sprite,Splice);
}
,replace: function(OldObject,NewObject) {
return this.group.replace(OldObject,NewObject);
}
,sort: function(Function1,Order) {
if(Order == null) {
Order = -1;
}
var Order1 = Order;
if(Order1 == null) {
Order1 = -1;
}
var _g = Function1;
var a1 = Order1;
var tmp = function(a2,a3) {
return _g(a1,a2,a3);
};
this.group.members.sort(tmp);
}
,getFirstAvailable: function(ObjectClass,Force) {
if(Force == null) {
Force = false;
}
return this.group.getFirstAvailable(ObjectClass,Force);
}
,getFirstNull: function() {
return this.group.getFirstNull();
}
,getFirstExisting: function() {
return this.group.getFirstExisting();
}
,getFirstAlive: function() {
return this.group.getFirstAlive();
}
,getFirstDead: function() {
return this.group.getFirstDead();
}
,countLiving: function() {
return this.group.countLiving();
}
,countDead: function() {
return this.group.countDead();
}
,getRandom: function(StartIndex,Length) {
if(Length == null) {
Length = 0;
}
if(StartIndex == null) {
StartIndex = 0;
}
return this.group.getRandom(StartIndex,Length);
}
,iterator: function(filter) {
return new flixel_group_FlxTypedGroupIterator(this.group.members,filter);
}
,forEach: function(Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
this.group.forEach(Function1,Recurse);
}
,forEachAlive: function(Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
this.group.forEachAlive(Function1,Recurse);
}
,forEachDead: function(Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
this.group.forEachDead(Function1,Recurse);
}
,forEachExists: function(Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
this.group.forEachExists(Function1,Recurse);
}
,forEachOfType: function(ObjectClass,Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
this.group.forEachOfType(ObjectClass,Function1,Recurse);
}
,clear: function() {
this.group.clear();
}
,kill: function() {
flixel_FlxSprite.prototype.kill.call(this);
this.group.kill();
}
,revive: function() {
flixel_FlxSprite.prototype.revive.call(this);
this.group.revive();
}
,reset: function(X,Y) {
this.revive();
this.setPosition(X,Y);
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite != null) {
sprite.reset(X,Y);
}
}
}
,setPosition: function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var dx = X - this.x;
var dy = Y - this.y;
this.multiTransformChildren_Float([$bind(this,this.xTransform),$bind(this,this.yTransform)],[dx,dy]);
this._skipTransformChildren = true;
this.set_x(X);
this.set_y(Y);
this._skipTransformChildren = false;
}
,set_camera: function(Value) {
if(this.get_camera() != Value) {
this.transformChildren_flixel_FlxCamera($bind(this,this.cameraTransform),Value);
}
return flixel_FlxSprite.prototype.set_camera.call(this,Value);
}
,set_cameras: function(Value) {
if(this.get_cameras() != Value) {
this.transformChildren_Array_flixel_FlxCamera($bind(this,this.camerasTransform),Value);
}
return flixel_FlxSprite.prototype.set_cameras.call(this,Value);
}
,set_exists: function(Value) {
if(this.exists != Value) {
this.transformChildren_Bool($bind(this,this.existsTransform),Value);
}
return flixel_FlxSprite.prototype.set_exists.call(this,Value);
}
,set_visible: function(Value) {
if(this.exists && this.visible != Value) {
this.transformChildren_Bool($bind(this,this.visibleTransform),Value);
}
return flixel_FlxSprite.prototype.set_visible.call(this,Value);
}
,set_active: function(Value) {
if(this.exists && this.active != Value) {
this.transformChildren_Bool($bind(this,this.activeTransform),Value);
}
return flixel_FlxSprite.prototype.set_active.call(this,Value);
}
,set_alive: function(Value) {
if(this.alive != Value) {
this.transformChildren_Bool($bind(this,this.aliveTransform),Value);
}
return flixel_FlxSprite.prototype.set_alive.call(this,Value);
}
,set_x: function(Value) {
if(!this._skipTransformChildren && this.exists && this.x != Value) {
var offset = Value - this.x;
this.transformChildren_Float($bind(this,this.xTransform),offset);
}
return this.x = Value;
}
,set_y: function(Value) {
if(!this._skipTransformChildren && this.exists && this.y != Value) {
var offset = Value - this.y;
this.transformChildren_Float($bind(this,this.yTransform),offset);
}
return this.y = Value;
}
,set_angle: function(Value) {
if(this.exists && this.angle != Value) {
var offset = Value - this.angle;
this.transformChildren_Float($bind(this,this.angleTransform),offset);
}
return this.angle = Value;
}
,set_alpha: function(Value) {
var lowerBound = Value < 0 ? 0 : Value;
Value = lowerBound > 1 ? 1 : lowerBound;
if(this.exists && this.alpha != Value) {
var factor = this.alpha > 0 ? Value / this.alpha : 0;
if(!this.directAlpha && this.alpha != 0) {
this.transformChildren_Float($bind(this,this.alphaTransform),factor);
} else {
this.transformChildren_Float($bind(this,this.directAlphaTransform),Value);
}
}
return this.alpha = Value;
}
,set_facing: function(Value) {
if(this.exists && this.facing != Value) {
this.transformChildren_Int($bind(this,this.facingTransform),Value);
}
return this.facing = Value;
}
,set_flipX: function(Value) {
if(this.exists && this.flipX != Value) {
this.transformChildren_Bool($bind(this,this.flipXTransform),Value);
}
return this.flipX = Value;
}
,set_flipY: function(Value) {
if(this.exists && this.flipY != Value) {
this.transformChildren_Bool($bind(this,this.flipYTransform),Value);
}
return this.flipY = Value;
}
,set_moves: function(Value) {
if(this.exists && this.moves != Value) {
this.transformChildren_Bool($bind(this,this.movesTransform),Value);
}
return this.moves = Value;
}
,set_immovable: function(Value) {
if(this.exists && this.immovable != Value) {
this.transformChildren_Bool($bind(this,this.immovableTransform),Value);
}
return this.immovable = Value;
}
,set_solid: function(Value) {
if(this.exists && (this.allowCollisions & 4369) > 0 != Value) {
this.transformChildren_Bool($bind(this,this.solidTransform),Value);
}
return flixel_FlxSprite.prototype.set_solid.call(this,Value);
}
,set_color: function(Value) {
if(this.exists && this.color != Value) {
this.transformChildren_Int($bind(this,this.gColorTransform),Value);
}
return this.color = Value;
}
,set_blend: function(Value) {
if(this.exists && this.blend != Value) {
this.transformChildren_flash_display_BlendMode($bind(this,this.blendTransform),Value);
}
return this.blend = Value;
}
,set_clipRect: function(rect) {
if(this.exists) {
this.transformChildren_flixel_math_FlxRect($bind(this,this.clipRectTransform),rect);
}
return flixel_FlxSprite.prototype.set_clipRect.call(this,rect);
}
,set_pixelPerfectRender: function(Value) {
if(this.exists && this.pixelPerfectRender != Value) {
this.transformChildren_Bool($bind(this,this.pixelPerfectTransform),Value);
}
return flixel_FlxSprite.prototype.set_pixelPerfectRender.call(this,Value);
}
,set_width: function(Value) {
return Value;
}
,get_width: function() {
if(this.group.length == 0) {
return 0;
}
var minX = Infinity;
var maxX = -Infinity;
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(member == null) {
continue;
}
var minMemberX = member.x;
var maxMemberX = minMemberX + member.get_width();
if(maxMemberX > maxX) {
maxX = maxMemberX;
}
if(minMemberX < minX) {
minX = minMemberX;
}
}
return maxX - minX;
}
,set_height: function(Value) {
return Value;
}
,get_height: function() {
if(this.group.length == 0) {
return 0;
}
var minY = Infinity;
var maxY = -Infinity;
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(member == null) {
continue;
}
var minMemberY = member.y;
var maxMemberY = minMemberY + member.get_height();
if(maxMemberY > maxY) {
maxY = maxMemberY;
}
if(minMemberY < minY) {
minY = minMemberY;
}
}
return maxY - minY;
}
,get_length: function() {
return this.group.length;
}
,get_maxSize: function() {
return this.group.maxSize;
}
,set_maxSize: function(Size) {
return this.group.set_maxSize(Size);
}
,get_members: function() {
return this.group.members;
}
,xTransform: function(Sprite,X) {
var _g = Sprite;
_g.set_x(_g.x + X);
}
,yTransform: function(Sprite,Y) {
var _g = Sprite;
_g.set_y(_g.y + Y);
}
,angleTransform: function(Sprite,Angle) {
var _g = Sprite;
_g.set_angle(_g.angle + Angle);
}
,alphaTransform: function(Sprite,Alpha) {
if(Sprite.alpha != 0 || Alpha == 0) {
var _g = Sprite;
_g.set_alpha(_g.alpha * Alpha);
} else {
Sprite.set_alpha(1 / Alpha);
}
}
,directAlphaTransform: function(Sprite,Alpha) {
Sprite.set_alpha(Alpha);
}
,facingTransform: function(Sprite,Facing) {
Sprite.set_facing(Facing);
}
,flipXTransform: function(Sprite,FlipX) {
Sprite.set_flipX(FlipX);
}
,flipYTransform: function(Sprite,FlipY) {
Sprite.set_flipY(FlipY);
}
,movesTransform: function(Sprite,Moves) {
Sprite.set_moves(Moves);
}
,pixelPerfectTransform: function(Sprite,PixelPerfect) {
Sprite.set_pixelPerfectRender(PixelPerfect);
}
,gColorTransform: function(Sprite,Color) {
Sprite.set_color(Color);
}
,blendTransform: function(Sprite,Blend) {
Sprite.set_blend(Blend);
}
,immovableTransform: function(Sprite,Immovable) {
Sprite.set_immovable(Immovable);
}
,visibleTransform: function(Sprite,Visible) {
Sprite.set_visible(Visible);
}
,activeTransform: function(Sprite,Active) {
Sprite.set_active(Active);
}
,solidTransform: function(Sprite,Solid) {
Sprite.set_solid(Solid);
}
,aliveTransform: function(Sprite,Alive) {
Sprite.set_alive(Alive);
}
,existsTransform: function(Sprite,Exists) {
Sprite.set_exists(Exists);
}
,cameraTransform: function(Sprite,Camera) {
Sprite.set_camera(Camera);
}
,camerasTransform: function(Sprite,Cameras) {
Sprite.set_cameras(Cameras);
}
,offsetTransform: function(Sprite,Offset) {
var _this = Sprite.offset;
_this.set_x(Offset.x);
_this.set_y(Offset.y);
if(Offset._weak) {
Offset.put();
}
}
,originTransform: function(Sprite,Origin) {
var _this = Sprite.origin;
_this.set_x(Origin.x);
_this.set_y(Origin.y);
if(Origin._weak) {
Origin.put();
}
}
,scaleTransform: function(Sprite,Scale) {
var _this = Sprite.scale;
_this.set_x(Scale.x);
_this.set_y(Scale.y);
if(Scale._weak) {
Scale.put();
}
}
,scrollFactorTransform: function(Sprite,ScrollFactor) {
var _this = Sprite.scrollFactor;
_this.set_x(ScrollFactor.x);
_this.set_y(ScrollFactor.y);
if(ScrollFactor._weak) {
ScrollFactor.put();
}
}
,clipRectTransform: function(Sprite,ClipRect) {
if(ClipRect == null) {
Sprite.set_clipRect(null);
} else {
var X = ClipRect.x - Sprite.x + this.x;
var Y = ClipRect.y - Sprite.y + this.y;
var Width = ClipRect.width;
var Height = ClipRect.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
Sprite.set_clipRect(rect);
}
}
,offsetCallback: function(Offset) {
this.transformChildren_flixel_math_FlxPoint($bind(this,this.offsetTransform),Offset);
}
,originCallback: function(Origin) {
this.transformChildren_flixel_math_FlxPoint($bind(this,this.originTransform),Origin);
}
,scaleCallback: function(Scale) {
this.transformChildren_flixel_math_FlxPoint($bind(this,this.scaleTransform),Scale);
}
,scrollFactorCallback: function(ScrollFactor) {
this.transformChildren_flixel_math_FlxPoint($bind(this,this.scrollFactorTransform),ScrollFactor);
}
,loadGraphicFromSprite: function(Sprite) {
return this;
}
,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) {
if(Unique == null) {
Unique = false;
}
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Animated == null) {
Animated = false;
}
return this;
}
,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) {
if(AutoBuffer == null) {
AutoBuffer = false;
}
if(AntiAliasing == null) {
AntiAliasing = false;
}
if(Frame == null) {
Frame = -1;
}
if(Rotations == null) {
Rotations = 16;
}
return this;
}
,makeGraphic: function(Width,Height,Color,Unique,Key) {
if(Unique == null) {
Unique = false;
}
if(Color == null) {
Color = -1;
}
return this;
}
,set_pixels: function(Value) {
return Value;
}
,set_frame: function(Value) {
return Value;
}
,get_pixels: function() {
return null;
}
,calcFrame: function(RunOnCpp) {
if(RunOnCpp == null) {
RunOnCpp = false;
}
}
,resetHelpers: function() {
}
,stamp: function(Brush,X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
}
,set_frames: function(Frames) {
return Frames;
}
,updateColorTransform: function() {
}
,__class__: flixel_group_FlxTypedSpriteGroup
,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_maxSize:"set_maxSize",get_maxSize:"get_maxSize",get_length:"get_length",get_members:"get_members"})
});
var Alphabet = function(x,y,text,bold,typed) {
if(typed == null) {
typed = false;
}
if(bold == null) {
bold = false;
}
if(text == null) {
text = "";
}
this.personTalking = "gf";
this.isBold = false;
this.splitWords = [];
this.lastWasSpace = false;
this.xPosResetted = false;
this.yMulti = 1;
this.widthOfWords = flixel_FlxG.width;
this._curText = "";
this._finalText = "";
this.text = "";
this.isMenuItem = false;
this.targetY = 0;
this.paused = false;
this.delay = 0.05;
flixel_group_FlxTypedSpriteGroup.call(this,x,y);
this._finalText = text;
this.text = text;
this.isBold = bold;
if(text != "") {
if(typed) {
this.startTypedText();
} else {
this.addText();
}
}
};
$hxClasses["Alphabet"] = Alphabet;
Alphabet.__name__ = "Alphabet";
Alphabet.__super__ = flixel_group_FlxTypedSpriteGroup;
Alphabet.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{
delay: null
,paused: null
,targetY: null
,isMenuItem: null
,text: null
,_finalText: null
,_curText: null
,widthOfWords: null
,yMulti: null
,lastSprite: null
,xPosResetted: null
,lastWasSpace: null
,splitWords: null
,isBold: null
,addText: function() {
this.doSplitWords();
var xPos = 0;
var _g = 0;
var _g1 = this.splitWords;
while(_g < _g1.length) {
var character = _g1[_g];
++_g;
if(character == " " || character == "-") {
this.lastWasSpace = true;
}
if(AlphaCharacter.alphabet.indexOf(character.toLowerCase()) != -1) {
if(this.lastSprite != null) {
xPos = this.lastSprite.x + this.lastSprite.get_width();
}
if(this.lastWasSpace) {
xPos += 40;
this.lastWasSpace = false;
}
var letter = new AlphaCharacter(xPos,0);
if(this.isBold) {
letter.createBold(character);
} else {
letter.createLetter(character);
}
this.add(letter);
this.lastSprite = letter;
}
}
}
,doSplitWords: function() {
this.splitWords = this._finalText.split("");
}
,personTalking: null
,startTypedText: function() {
var _gthis = this;
this._finalText = this.text;
this.doSplitWords();
var loopNum = 0;
var xPos = 0;
var curRow = 0;
new flixel_util_FlxTimer().start(0.05,function(tmr) {
if(_gthis._finalText.charCodeAt(loopNum) == 10) {
_gthis.yMulti += 1;
_gthis.xPosResetted = true;
xPos = 0;
curRow += 1;
}
if(_gthis.splitWords[loopNum] == " ") {
_gthis.lastWasSpace = true;
}
var isNumber = AlphaCharacter.numbers.indexOf(_gthis.splitWords[loopNum]) != -1;
var isSymbol = AlphaCharacter.symbols.indexOf(_gthis.splitWords[loopNum]) != -1;
if(AlphaCharacter.alphabet.indexOf(_gthis.splitWords[loopNum].toLowerCase()) != -1 || isNumber || isSymbol) {
if(_gthis.lastSprite != null && !_gthis.xPosResetted) {
_gthis.lastSprite.updateHitbox();
xPos += _gthis.lastSprite.get_width() + 3;
} else {
_gthis.xPosResetted = false;
}
if(_gthis.lastWasSpace) {
xPos += 20;
_gthis.lastWasSpace = false;
}
var letter = new AlphaCharacter(xPos,55 * _gthis.yMulti);
letter.row = curRow;
if(_gthis.isBold) {
letter.createBold(_gthis.splitWords[loopNum]);
} else {
if(isNumber) {
letter.createNumber(_gthis.splitWords[loopNum]);
} else if(isSymbol) {
letter.createSymbol(_gthis.splitWords[loopNum]);
} else {
letter.createLetter(_gthis.splitWords[loopNum]);
}
var _g = letter;
_g.set_x(_g.x + 90);
}
var Chance = 40;
if(Chance == null) {
Chance = 50;
}
if(flixel_FlxG.random.float(0,100) < Chance) {
var daSound = "GF_";
flixel_FlxG.sound.play("assets/sounds/" + daSound + flixel_FlxG.random.int(1,4) + TitleState.soundExt,0.4);
}
_gthis.add(letter);
_gthis.lastSprite = letter;
}
loopNum += 1;
tmr.time = flixel_FlxG.random.float(0.04,0.09);
},this.splitWords.length);
}
,update: function(elapsed) {
if(this.isMenuItem) {
var scaledY = flixel_math_FlxMath.remapToRange(this.targetY,0,1,0,1.3);
var a = this.y;
this.set_y(a + 0.16 * (scaledY * 120 + flixel_FlxG.height * 0.48 - a));
var a = this.x;
this.set_x(a + 0.16 * (this.targetY * 20 + 90 - a));
}
flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed);
}
,__class__: Alphabet
});
var AlphaCharacter = function(x,y) {
this.row = 0;
flixel_FlxSprite.call(this,x,y);
var tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/alphabet.png","assets/images/alphabet.xml");
this.set_frames(tex);
this.set_antialiasing(true);
};
$hxClasses["AlphaCharacter"] = AlphaCharacter;
AlphaCharacter.__name__ = "AlphaCharacter";
AlphaCharacter.__super__ = flixel_FlxSprite;
AlphaCharacter.prototype = $extend(flixel_FlxSprite.prototype,{
row: null
,createBold: function(letter) {
this.animation.addByPrefix(letter,letter.toUpperCase() + " bold",24);
this.animation.play(letter);
this.updateHitbox();
}
,createLetter: function(letter) {
var letterCase = "lowercase";
if(letter.toLowerCase() != letter) {
letterCase = "capital";
}
this.animation.addByPrefix(letter,letter + " " + letterCase,24);
this.animation.play(letter);
this.updateHitbox();
this.set_y(110 - this.get_height());
var _g = this;
_g.set_y(_g.y + this.row * 60);
}
,createNumber: function(letter) {
this.animation.addByPrefix(letter,letter,24);
this.animation.play(letter);
this.updateHitbox();
}
,createSymbol: function(letter) {
switch(letter) {
case "!":
this.animation.addByPrefix(letter,"exclamation point",24);
this.animation.play(letter);
break;
case "'":
this.animation.addByPrefix(letter,"apostraphie",24);
this.animation.play(letter);
var _g = this;
_g.set_y(_g.y);
break;
case ".":
this.animation.addByPrefix(letter,"period",24);
this.animation.play(letter);
var _g = this;
_g.set_y(_g.y + 50);
break;
case "?":
this.animation.addByPrefix(letter,"question mark",24);
this.animation.play(letter);
break;
}
this.updateHitbox();
}
,__class__: AlphaCharacter
});
var lime_app_IModule = function() { };
$hxClasses["lime.app.IModule"] = lime_app_IModule;
lime_app_IModule.__name__ = "lime.app.IModule";
lime_app_IModule.__isInterface__ = true;
lime_app_IModule.prototype = {
__registerLimeModule: null
,__unregisterLimeModule: null
,__class__: lime_app_IModule
};
var lime_app_Module = function() {
this.onExit = new lime_app__$Event_$Int_$Void();
};
$hxClasses["lime.app.Module"] = lime_app_Module;
lime_app_Module.__name__ = "lime.app.Module";
lime_app_Module.__interfaces__ = [lime_app_IModule];
lime_app_Module.prototype = {
onExit: null
,__registerLimeModule: function(application) {
}
,__unregisterLimeModule: function(application) {
}
,__class__: lime_app_Module
};
var lime__$internal_backend_html5_HTML5Application = function(parent) {
this.gameDeviceCache = new haxe_ds_IntMap();
this.parent = parent;
this.currentUpdate = 0;
this.lastUpdate = 0;
this.nextUpdate = 0;
this.framePeriod = -1;
lime_media_AudioManager.init();
this.accelerometer = lime_system_Sensor.registerSensor(lime_system_SensorType.ACCELEROMETER,0);
};
$hxClasses["lime._internal.backend.html5.HTML5Application"] = lime__$internal_backend_html5_HTML5Application;
lime__$internal_backend_html5_HTML5Application.__name__ = "lime._internal.backend.html5.HTML5Application";
lime__$internal_backend_html5_HTML5Application.prototype = {
accelerometer: null
,currentUpdate: null
,deltaTime: null
,framePeriod: null
,gameDeviceCache: null
,hidden: null
,lastUpdate: null
,nextUpdate: null
,parent: null
,convertKeyCode: function(keyCode) {
if(keyCode >= 65 && keyCode <= 90) {
return keyCode + 32;
}
switch(keyCode) {
case 12:
return 1073741980;
case 16:
return 1073742049;
case 17:
return 1073742048;
case 18:
return 1073742050;
case 19:
return 1073741896;
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 41:
return 1073741943;
case 43:
return 1073741940;
case 44:
return 1073741894;
case 45:
return 1073741897;
case 46:
return 127;
case 91:
return 1073742051;
case 92:
return 1073742055;
case 93:
return 1073742055;
case 95:
return 1073742106;
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 108:
return 1073741923;
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 127:
return 1073741931;
case 128:
return 1073741932;
case 129:
return 1073741933;
case 130:
return 1073741934;
case 131:
return 1073741935;
case 132:
return 1073741936;
case 133:
return 1073741937;
case 134:
return 1073741938;
case 135:
return 1073741939;
case 144:
return 1073741907;
case 145:
return 1073741895;
case 160:
return 94;
case 161:
return 33;
case 163:
return 35;
case 164:
return 36;
case 166:
return 1073742094;
case 167:
return 1073742095;
case 168:
return 1073742097;
case 169:
return 41;
case 170:
return 42;
case 171:
return 96;
case 172:
return 1073741898;
case 173:
return 45;
case 174:
return 1073741953;
case 175:
return 1073741952;
case 176:
return 1073742082;
case 177:
return 1073742083;
case 178:
return 1073742084;
case 179:
return 1073742085;
case 180:
return 1073742089;
case 181:
return 1073742086;
case 182:
return 1073741953;
case 183:
return 1073741952;
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 193:
return 63;
case 194:
return 1073741923;
case 219:
return 91;
case 220:
return 92;
case 221:
return 93;
case 222:
return 39;
case 223:
return 96;
case 224:
return 1073742051;
case 226:
return 92;
}
return keyCode;
}
,exec: function() {
window.addEventListener("keydown",$bind(this,this.handleKeyEvent),false);
window.addEventListener("keyup",$bind(this,this.handleKeyEvent),false);
window.addEventListener("focus",$bind(this,this.handleWindowEvent),false);
window.addEventListener("blur",$bind(this,this.handleWindowEvent),false);
window.addEventListener("resize",$bind(this,this.handleWindowEvent),false);
window.addEventListener("beforeunload",$bind(this,this.handleWindowEvent),false);
window.addEventListener("devicemotion",$bind(this,this.handleSensorEvent),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() {
}
,handleApplicationEvent: function(__) {
var _g = 0;
var _g1 = this.parent.__windows;
while(_g < _g1.length) {
var $window = _g1[_g];
++_g;
$window.__backend.updateSize();
}
this.updateGameDevices();
this.currentUpdate = new Date().getTime();
if(this.currentUpdate >= this.nextUpdate) {
this.deltaTime = this.currentUpdate - this.lastUpdate;
var _g = 0;
var _g1 = this.parent.__windows;
while(_g < _g1.length) {
var $window = _g1[_g];
++_g;
this.parent.onUpdate.dispatch(this.deltaTime | 0);
if($window.context != null) {
$window.onRender.dispatch($window.context);
}
}
if(this.framePeriod < 0) {
this.nextUpdate = this.currentUpdate;
} else {
this.nextUpdate = this.currentUpdate - this.currentUpdate % this.framePeriod + this.framePeriod;
}
this.lastUpdate = this.currentUpdate;
}
window.requestAnimationFrame($bind(this,this.handleApplicationEvent));
}
,handleKeyEvent: function(event) {
if(this.parent.__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.__window.onKeyDown.dispatch(keyCode,modifier);
if(this.parent.__window.onKeyDown.canceled && event.cancelable) {
event.preventDefault();
}
} else {
this.parent.__window.onKeyUp.dispatch(keyCode,modifier);
if(this.parent.__window.onKeyUp.canceled && event.cancelable) {
event.preventDefault();
}
}
}
}
,handleSensorEvent: function(event) {
this.accelerometer.onUpdate.dispatch(event.accelerationIncludingGravity.x,event.accelerationIncludingGravity.y,event.accelerationIncludingGravity.z);
}
,handleWindowEvent: function(event) {
if(this.parent.__window != null) {
switch(event.type) {
case "beforeunload":
break;
case "blur":
if(!this.hidden) {
this.parent.__window.onFocusOut.dispatch();
this.parent.__window.onDeactivate.dispatch();
this.hidden = true;
}
break;
case "focus":
if(this.hidden) {
this.parent.__window.onFocusIn.dispatch();
this.parent.__window.onActivate.dispatch();
this.hidden = false;
}
break;
case "resize":
this.parent.__window.__backend.handleResizeEvent(event);
break;
case "visibilitychange":
if(window.document.hidden) {
if(!this.hidden) {
this.parent.__window.onFocusOut.dispatch();
this.parent.__window.onDeactivate.dispatch();
this.hidden = true;
}
} else if(this.hidden) {
this.parent.__window.onFocusIn.dispatch();
this.parent.__window.onActivate.dispatch();
this.hidden = false;
}
break;
}
}
}
,updateGameDevices: function() {
var devices = lime_ui_Joystick.__getDeviceData();
if(devices == null) {
return;
}
var id;
var gamepad;
var joystick;
var data;
var cache;
var _g = 0;
var _g1 = devices.length;
while(_g < _g1) {
var i = _g++;
id = i;
data = devices[id];
if(data == null) {
continue;
}
if(!this.gameDeviceCache.h.hasOwnProperty(id)) {
cache = new lime__$internal_backend_html5_GameDeviceData();
cache.id = id;
cache.connected = data.connected;
var _g2 = 0;
var _g3 = data.buttons.length;
while(_g2 < _g3) {
var i1 = _g2++;
cache.buttons.push(data.buttons[i1].value);
}
var _g4 = 0;
var _g5 = data.axes.length;
while(_g4 < _g5) {
var i2 = _g4++;
cache.axes.push(data.axes[i2]);
}
if(data.mapping == "standard") {
cache.isGamepad = true;
}
this.gameDeviceCache.h[id] = cache;
if(data.connected) {
lime_ui_Joystick.__connect(id);
if(cache.isGamepad) {
lime_ui_Gamepad.__connect(id);
}
}
}
cache = this.gameDeviceCache.h[id];
joystick = lime_ui_Joystick.devices.h[id];
gamepad = lime_ui_Gamepad.devices.h[id];
if(data.connected) {
var button;
var value;
var _g6 = 0;
var _g7 = data.buttons.length;
while(_g6 < _g7) {
var i3 = _g6++;
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 _g8 = 0;
var _g9 = data.axes.length;
while(_g8 < _g9) {
var i4 = _g8++;
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.__disconnect(id);
lime_ui_Gamepad.__disconnect(id);
}
}
}
,__class__: lime__$internal_backend_html5_HTML5Application
};
var lime_app_Application = function() {
this.onCreateWindow = new lime_app__$Event_$lime_$ui_$Window_$Void();
this.onUpdate = new lime_app__$Event_$Int_$Void();
lime_app_Module.call(this);
if(lime_app_Application.current == null) {
lime_app_Application.current = this;
}
this.meta = new haxe_ds_StringMap();
this.modules = [];
this.__windowByID = new haxe_ds_IntMap();
this.__windows = [];
this.__backend = new lime__$internal_backend_html5_HTML5Application(this);
this.__registerLimeModule(this);
this.__preloader = new lime_utils_Preloader();
this.__preloader.onProgress.add($bind(this,this.onPreloadProgress));
this.__preloader.onComplete.add($bind(this,this.onPreloadComplete));
};
$hxClasses["lime.app.Application"] = lime_app_Application;
lime_app_Application.__name__ = "lime.app.Application";
lime_app_Application.current = null;
lime_app_Application.__super__ = lime_app_Module;
lime_app_Application.prototype = $extend(lime_app_Module.prototype,{
meta: null
,modules: null
,onUpdate: null
,onCreateWindow: null
,preloader: null
,window: null
,windows: null
,__backend: null
,__preloader: null
,__window: null
,__windowByID: null
,__windows: null
,addModule: function(module) {
module.__registerLimeModule(this);
this.modules.push(module);
}
,createWindow: function(attributes) {
var $window = this.__createWindow(attributes);
this.__addWindow($window);
return $window;
}
,exec: function() {
lime_app_Application.current = this;
return this.__backend.exec();
}
,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(keyCode,modifier) {
}
,onKeyUp: function(keyCode,modifier) {
}
,onModuleExit: function(code) {
}
,onMouseDown: function(x,y,button) {
}
,onMouseMove: function(x,y) {
}
,onMouseMoveRelative: function(x,y) {
}
,onMouseUp: function(x,y,button) {
}
,onMouseWheel: function(deltaX,deltaY,deltaMode) {
}
,onPreloadComplete: function() {
}
,onPreloadProgress: function(loaded,total) {
}
,onRenderContextLost: function() {
}
,onRenderContextRestored: function(context) {
}
,onTextEdit: function(text,start,length) {
}
,onTextInput: function(text) {
}
,onTouchCancel: function(touch) {
}
,onTouchEnd: function(touch) {
}
,onTouchMove: function(touch) {
}
,onTouchStart: function(touch) {
}
,onWindowActivate: function() {
}
,onWindowClose: function() {
}
,onWindowCreate: function() {
}
,onWindowDeactivate: function() {
}
,onWindowDropFile: function(file) {
}
,onWindowEnter: function() {
}
,onWindowExpose: function() {
}
,onWindowFocusIn: function() {
}
,onWindowFocusOut: function() {
}
,onWindowFullscreen: function() {
}
,onWindowLeave: function() {
}
,onWindowMove: function(x,y) {
}
,onWindowMinimize: function() {
}
,onWindowResize: function(width,height) {
}
,onWindowRestore: function() {
}
,removeModule: function(module) {
if(module != null) {
module.__unregisterLimeModule(this);
HxOverrides.remove(this.modules,module);
}
}
,render: function(context) {
}
,update: function(deltaTime) {
}
,__addWindow: function($window) {
if($window != null) {
this.__windows.push($window);
this.__windowByID.h[$window.id] = $window;
var _g = $bind(this,this.__onWindowClose);
var window1 = $window;
var tmp = function() {
_g(window1);
};
$window.onClose.add(tmp,false,-10000);
if(this.__window == null) {
this.__window = $window;
$window.onActivate.add($bind(this,this.onWindowActivate));
$window.onRenderContextLost.add($bind(this,this.onRenderContextLost));
$window.onRenderContextRestored.add($bind(this,this.onRenderContextRestored));
$window.onDeactivate.add($bind(this,this.onWindowDeactivate));
$window.onDropFile.add($bind(this,this.onWindowDropFile));
$window.onEnter.add($bind(this,this.onWindowEnter));
$window.onExpose.add($bind(this,this.onWindowExpose));
$window.onFocusIn.add($bind(this,this.onWindowFocusIn));
$window.onFocusOut.add($bind(this,this.onWindowFocusOut));
$window.onFullscreen.add($bind(this,this.onWindowFullscreen));
$window.onKeyDown.add($bind(this,this.onKeyDown));
$window.onKeyUp.add($bind(this,this.onKeyUp));
$window.onLeave.add($bind(this,this.onWindowLeave));
$window.onMinimize.add($bind(this,this.onWindowMinimize));
$window.onMouseDown.add($bind(this,this.onMouseDown));
$window.onMouseMove.add($bind(this,this.onMouseMove));
$window.onMouseMoveRelative.add($bind(this,this.onMouseMoveRelative));
$window.onMouseUp.add($bind(this,this.onMouseUp));
$window.onMouseWheel.add($bind(this,this.onMouseWheel));
$window.onMove.add($bind(this,this.onWindowMove));
$window.onRender.add($bind(this,this.render));
$window.onResize.add($bind(this,this.onWindowResize));
$window.onRestore.add($bind(this,this.onWindowRestore));
$window.onTextEdit.add($bind(this,this.onTextEdit));
$window.onTextInput.add($bind(this,this.onTextInput));
this.onWindowCreate();
}
this.onCreateWindow.dispatch($window);
}
}
,__createWindow: function(attributes) {
var $window = new lime_ui_Window(this,attributes);
if($window.id == -1) {
return null;
}
return $window;
}
,__registerLimeModule: function(application) {
application.onUpdate.add($bind(this,this.update));
application.onExit.add($bind(this,this.onModuleExit),false,0);
application.onExit.add($bind(this,this.__onModuleExit),false,0);
var gamepad = lime_ui_Gamepad.devices.iterator();
while(gamepad.hasNext()) {
var gamepad1 = gamepad.next();
this.__onGamepadConnect(gamepad1);
}
lime_ui_Gamepad.onConnect.add($bind(this,this.__onGamepadConnect));
var joystick = lime_ui_Joystick.devices.iterator();
while(joystick.hasNext()) {
var joystick1 = joystick.next();
this.__onJoystickConnect(joystick1);
}
lime_ui_Joystick.onConnect.add($bind(this,this.__onJoystickConnect));
lime_ui_Touch.onCancel.add($bind(this,this.onTouchCancel));
lime_ui_Touch.onStart.add($bind(this,this.onTouchStart));
lime_ui_Touch.onMove.add($bind(this,this.onTouchMove));
lime_ui_Touch.onEnd.add($bind(this,this.onTouchEnd));
}
,__removeWindow: function($window) {
if($window != null && this.__windowByID.h.hasOwnProperty($window.id)) {
if(this.__window == $window) {
this.__window = null;
}
HxOverrides.remove(this.__windows,$window);
this.__windowByID.remove($window.id);
$window.close();
if(this.__windows.length == 0) {
lime_system_System.exit(0);
}
}
}
,__onGamepadConnect: function(gamepad) {
this.onGamepadConnect(gamepad);
var _g = $bind(this,this.onGamepadAxisMove);
var gamepad1 = gamepad;
var tmp = function(axis,value) {
_g(gamepad1,axis,value);
};
gamepad.onAxisMove.add(tmp);
var _g1 = $bind(this,this.onGamepadButtonDown);
var gamepad2 = gamepad;
var tmp = function(button) {
_g1(gamepad2,button);
};
gamepad.onButtonDown.add(tmp);
var _g2 = $bind(this,this.onGamepadButtonUp);
var gamepad3 = gamepad;
var tmp = function(button) {
_g2(gamepad3,button);
};
gamepad.onButtonUp.add(tmp);
var _g3 = $bind(this,this.onGamepadDisconnect);
var gamepad4 = gamepad;
var tmp = function() {
_g3(gamepad4);
};
gamepad.onDisconnect.add(tmp);
}
,__onJoystickConnect: function(joystick) {
this.onJoystickConnect(joystick);
var _g = $bind(this,this.onJoystickAxisMove);
var joystick1 = joystick;
var tmp = function(axis,value) {
_g(joystick1,axis,value);
};
joystick.onAxisMove.add(tmp);
var _g1 = $bind(this,this.onJoystickButtonDown);
var joystick2 = joystick;
var tmp = function(button) {
_g1(joystick2,button);
};
joystick.onButtonDown.add(tmp);
var _g2 = $bind(this,this.onJoystickButtonUp);
var joystick3 = joystick;
var tmp = function(button) {
_g2(joystick3,button);
};
joystick.onButtonUp.add(tmp);
var _g3 = $bind(this,this.onJoystickDisconnect);
var joystick4 = joystick;
var tmp = function() {
_g3(joystick4);
};
joystick.onDisconnect.add(tmp);
var _g4 = $bind(this,this.onJoystickHatMove);
var joystick5 = joystick;
var tmp = function(hat,position) {
_g4(joystick5,hat,position);
};
joystick.onHatMove.add(tmp);
var _g5 = $bind(this,this.onJoystickTrackballMove);
var joystick6 = joystick;
var tmp = function(trackball,x,y) {
_g5(joystick6,trackball,x,y);
};
joystick.onTrackballMove.add(tmp);
}
,__onModuleExit: function(code) {
this.__backend.exit();
}
,__onWindowClose: function($window) {
if(this.__window == $window) {
this.onWindowClose();
}
this.__removeWindow($window);
}
,__unregisterLimeModule: function(application) {
application.onUpdate.remove($bind(this,this.update));
application.onExit.remove($bind(this,this.__onModuleExit));
application.onExit.remove($bind(this,this.onModuleExit));
lime_ui_Gamepad.onConnect.remove($bind(this,this.__onGamepadConnect));
lime_ui_Joystick.onConnect.remove($bind(this,this.__onJoystickConnect));
lime_ui_Touch.onCancel.remove($bind(this,this.onTouchCancel));
lime_ui_Touch.onStart.remove($bind(this,this.onTouchStart));
lime_ui_Touch.onMove.remove($bind(this,this.onTouchMove));
lime_ui_Touch.onEnd.remove($bind(this,this.onTouchEnd));
this.onModuleExit(0);
}
,get_preloader: function() {
return this.__preloader;
}
,get_window: function() {
return this.__window;
}
,get_windows: function() {
return this.__windows;
}
,__class__: lime_app_Application
,__properties__: {get_windows:"get_windows",get_window:"get_window",get_preloader:"get_preloader"}
});
var ApplicationMain = function() { };
$hxClasses["ApplicationMain"] = ApplicationMain;
ApplicationMain.__name__ = "ApplicationMain";
ApplicationMain.main = function() {
lime_system_System.__registerEntryPoint("Funkin",ApplicationMain.create);
};
ApplicationMain.create = function(config) {
var app = new openfl_display_Application();
ManifestResources.init(config);
app.meta.h["build"] = "4";
app.meta.h["company"] = "ninjamuffin99";
app.meta.h["file"] = "Funkin";
app.meta.h["name"] = "Friday Night Funkin'";
app.meta.h["packageName"] = "com.example.myapp";
app.meta.h["version"] = "0.2.7.1";
var attributes = { allowHighDPI : false, alwaysOnTop : false, borderless : false, element : null, frameRate : 60, height : 720, hidden : false, maximized : false, minimized : false, parameters : { }, resizable : true, title : "Friday Night Funkin'", width : 1280, x : null, y : null};
attributes.context = { antialiasing : 0, background : 0, colorDepth : 32, depth : true, hardware : true, stencil : true, type : null, vsync : false};
if(app.__window == null) {
if(config != null) {
var _g = 0;
var _g1 = Reflect.fields(config);
while(_g < _g1.length) {
var field = _g1[_g];
++_g;
if(Object.prototype.hasOwnProperty.call(attributes,field)) {
attributes[field] = Reflect.field(config,field);
} else if(Object.prototype.hasOwnProperty.call(attributes.context,field)) {
attributes.context[field] = Reflect.field(config,field);
}
}
}
}
app.createWindow(attributes);
var preloader = new openfl_display_Preloader(new flixel_system_FlxPreloader());
app.__preloader.onProgress.add(function(loaded,total) {
preloader.update(loaded,total);
});
app.__preloader.onComplete.add(function() {
preloader.start();
});
var stage = (js_Boot.__cast(app.__window , openfl_display_Window)).stage;
var tmp = function() {
ApplicationMain.start(stage);
};
preloader.onComplete.add(tmp);
var _g = 0;
var _g1 = ManifestResources.preloadLibraries;
while(_g < _g1.length) {
var library = _g1[_g];
++_g;
app.__preloader.addLibrary(library);
}
var _g = 0;
var _g1 = ManifestResources.preloadLibraryNames;
while(_g < _g1.length) {
var name = _g1[_g];
++_g;
app.__preloader.addLibraryName(name);
}
app.__preloader.load();
var result = app.exec();
};
ApplicationMain.start = function(stage) {
try {
var current = stage.getChildAt(0);
if(current == null || !((current) instanceof openfl_display_DisplayObjectContainer)) {
current = new openfl_display_MovieClip();
stage.addChild(current);
}
new DocumentClass(current);
stage.dispatchEvent(new openfl_events_Event("resize",false,false));
if(stage.window.__fullscreen) {
stage.dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,true,true));
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
stage.__handleError(e);
}
};
var openfl_events_IEventDispatcher = function() { };
$hxClasses["openfl.events.IEventDispatcher"] = openfl_events_IEventDispatcher;
openfl_events_IEventDispatcher.__name__ = "openfl.events.IEventDispatcher";
openfl_events_IEventDispatcher.__isInterface__ = true;
openfl_events_IEventDispatcher.prototype = {
addEventListener: null
,dispatchEvent: null
,hasEventListener: null
,removeEventListener: null
,willTrigger: null
,__class__: openfl_events_IEventDispatcher
};
var openfl_events_EventDispatcher = function(target) {
if(target != null) {
this.__targetDispatcher = target;
}
};
$hxClasses["openfl.events.EventDispatcher"] = openfl_events_EventDispatcher;
openfl_events_EventDispatcher.__name__ = "openfl.events.EventDispatcher";
openfl_events_EventDispatcher.__interfaces__ = [openfl_events_IEventDispatcher];
openfl_events_EventDispatcher.prototype = {
__eventMap: null
,__iterators: null
,__targetDispatcher: null
,addEventListener: function(type,listener,useCapture,priority,useWeakReference) {
if(useWeakReference == null) {
useWeakReference = false;
}
if(priority == null) {
priority = 0;
}
if(useCapture == null) {
useCapture = false;
}
if(listener == null) {
return;
}
if(this.__eventMap == null) {
this.__eventMap = new haxe_ds_StringMap();
this.__iterators = new haxe_ds_StringMap();
}
if(!Object.prototype.hasOwnProperty.call(this.__eventMap.h,type)) {
var list = [];
list.push(new openfl_events__$EventDispatcher_Listener(listener,useCapture,priority));
var iterator = new openfl_events__$EventDispatcher_DispatchIterator(list);
this.__eventMap.h[type] = list;
this.__iterators.h[type] = [iterator];
} else {
var list = this.__eventMap.h[type];
var _g = 0;
var _g1 = list.length;
while(_g < _g1) {
var i = _g++;
if(list[i].match(listener,useCapture)) {
return;
}
}
var iterators = this.__iterators.h[type];
var _g = 0;
while(_g < iterators.length) {
var iterator = iterators[_g];
++_g;
if(iterator.active) {
iterator.copy();
}
}
this.__addListenerByPriority(list,new openfl_events__$EventDispatcher_Listener(listener,useCapture,priority));
}
}
,dispatchEvent: function(event) {
if(this.__targetDispatcher != null) {
event.target = this.__targetDispatcher;
} else {
event.target = this;
}
return this.__dispatchEvent(event);
}
,hasEventListener: function(type) {
if(this.__eventMap == null) {
return false;
}
return Object.prototype.hasOwnProperty.call(this.__eventMap.h,type);
}
,removeEventListener: function(type,listener,useCapture) {
if(useCapture == null) {
useCapture = false;
}
if(this.__eventMap == null || listener == null) {
return;
}
var list = this.__eventMap.h[type];
if(list == null) {
return;
}
var iterators = this.__iterators.h[type];
var _g = 0;
var _g1 = list.length;
while(_g < _g1) {
var i = _g++;
if(list[i].match(listener,useCapture)) {
var _g2 = 0;
while(_g2 < iterators.length) {
var iterator = iterators[_g2];
++_g2;
iterator.remove(list[i],i);
}
list.splice(i,1);
break;
}
}
if(list.length == 0) {
var _this = this.__eventMap;
if(Object.prototype.hasOwnProperty.call(_this.h,type)) {
delete(_this.h[type]);
}
var _this = this.__iterators;
if(Object.prototype.hasOwnProperty.call(_this.h,type)) {
delete(_this.h[type]);
}
}
if(!haxe_ds_StringMap.valueIterator(this.__eventMap.h).hasNext()) {
this.__eventMap = null;
this.__iterators = null;
}
}
,toString: function() {
var c = js_Boot.getClass(this);
var full = c.__name__;
var short = full.split(".").pop();
return "[object " + short + "]";
}
,willTrigger: function(type) {
return this.hasEventListener(type);
}
,__dispatchEvent: function(event) {
if(this.__eventMap == null || event == null) {
return true;
}
var type = event.type;
var list = this.__eventMap.h[type];
if(list == null) {
return true;
}
if(event.target == null) {
if(this.__targetDispatcher != null) {
event.target = this.__targetDispatcher;
} else {
event.target = this;
}
}
event.currentTarget = this;
var capture = event.eventPhase == 1;
var iterators = this.__iterators.h[type];
var iterator = iterators[0];
if(iterator.active) {
iterator = new openfl_events__$EventDispatcher_DispatchIterator(list);
iterators.push(iterator);
}
iterator.start();
var listener = iterator;
while(listener.hasNext()) {
var listener1 = listener.next();
if(listener1 == null) {
continue;
}
if(listener1.useCapture == capture) {
listener1.callback(event);
if(event.__isCanceledNow) {
break;
}
}
}
iterator.stop();
if(iterator != iterators[0]) {
HxOverrides.remove(iterators,iterator);
} else {
iterator.reset(list);
}
return !event.isDefaultPrevented();
}
,__removeAllListeners: function() {
this.__eventMap = null;
this.__iterators = null;
}
,__addListenerByPriority: function(list,listener) {
var numElements = list.length;
var addAtPosition = numElements;
var _g = 0;
var _g1 = numElements;
while(_g < _g1) {
var i = _g++;
if(list[i].priority < listener.priority) {
addAtPosition = i;
break;
}
}
list.splice(addAtPosition,0,listener);
}
,__class__: openfl_events_EventDispatcher
};
var openfl_display_IBitmapDrawable = function() { };
$hxClasses["openfl.display.IBitmapDrawable"] = openfl_display_IBitmapDrawable;
openfl_display_IBitmapDrawable.__name__ = "openfl.display.IBitmapDrawable";
openfl_display_IBitmapDrawable.__isInterface__ = true;
openfl_display_IBitmapDrawable.prototype = {
__blendMode: null
,__isMask: null
,__renderable: null
,__renderTransform: null
,__transform: null
,__worldAlpha: null
,__worldColorTransform: null
,__worldTransform: null
,__getBounds: null
,__renderCairo: null
,__renderCairoMask: null
,__renderCanvas: null
,__renderCanvasMask: null
,__renderDOM: null
,__renderGL: null
,__renderGLMask: null
,__update: null
,__updateTransforms: null
,__mask: null
,__scrollRect: null
,__class__: openfl_display_IBitmapDrawable
};
var openfl_Vector = {};
openfl_Vector.__properties__ = {set_length:"set_length",get_length:"get_length",set_fixed:"set_fixed",get_fixed:"get_fixed"};
openfl_Vector.ofArray_Float = function(array) {
var vector = openfl_Vector.toFloatVector(null);
var _g = 0;
var _g1 = array.length;
while(_g < _g1) {
var i = _g++;
vector.set(i,array[i]);
}
return vector;
};
openfl_Vector.ofArray_Int = function(array) {
var vector = openfl_Vector.toIntVector(null);
var _g = 0;
var _g1 = array.length;
while(_g < _g1) {
var i = _g++;
vector.set(i,array[i]);
}
return vector;
};
openfl_Vector.concat = function(this1,vec) {
return this1.concat(vec);
};
openfl_Vector.copy = function(this1) {
return this1.copy();
};
openfl_Vector.filter = function(this1,callback) {
return this1.filter(callback);
};
openfl_Vector.get = function(this1,index) {
return this1.get(index);
};
openfl_Vector.indexOf = function(this1,searchElement,fromIndex) {
if(fromIndex == null) {
fromIndex = 0;
}
return this1.indexOf(searchElement,fromIndex);
};
openfl_Vector.insertAt = function(this1,index,element) {
this1.insertAt(index,element);
};
openfl_Vector.iterator = function(this1) {
return this1.iterator();
};
openfl_Vector.join = function(this1,sep) {
if(sep == null) {
sep = ",";
}
return this1.join(sep);
};
openfl_Vector.lastIndexOf = function(this1,searchElement,fromIndex) {
return this1.lastIndexOf(searchElement,fromIndex);
};
openfl_Vector.pop = function(this1) {
return this1.pop();
};
openfl_Vector.push = function(this1,value) {
return this1.push(value);
};
openfl_Vector.removeAt = function(this1,index) {
return this1.removeAt(index);
};
openfl_Vector.reverse = function(this1) {
return this1.reverse();
};
openfl_Vector.set = function(this1,index,value) {
return this1.set(index,value);
};
openfl_Vector.shift = function(this1) {
return this1.shift();
};
openfl_Vector.slice = function(this1,startIndex,endIndex) {
if(startIndex == null) {
startIndex = 0;
}
return this1.slice(startIndex,endIndex);
};
openfl_Vector.sort = function(this1,sortBehavior) {
this1.sort(sortBehavior);
};
openfl_Vector.splice = function(this1,startIndex,deleteCount) {
return this1.splice(startIndex,deleteCount);
};
openfl_Vector.toString = function(this1) {
if(this1 != null) {
return this1.toString();
} else {
return null;
}
};
openfl_Vector.unshift = function(this1,value) {
this1.unshift(value);
};
openfl_Vector.convert = function(vec) {
return vec;
};
openfl_Vector.toBoolVector = function(t,length,fixed,array) {
return new openfl__$Vector_BoolVector(length,fixed,array);
};
openfl_Vector.toIntVector = function(t,length,fixed,array) {
return new openfl__$Vector_IntVector(length,fixed,array);
};
openfl_Vector.toFloatVector = function(t,length,fixed,array) {
return new openfl__$Vector_FloatVector(length,fixed,array,true);
};
openfl_Vector.toFunctionVector = function(t,length,fixed,array) {
return new openfl__$Vector_FunctionVector(length,fixed,array);
};
openfl_Vector.toObjectVector = function(t,length,fixed,array) {
return new openfl__$Vector_ObjectVector(length,fixed,array,true);
};
openfl_Vector.toNullVector = function(t,length,fixed,array) {
return new openfl__$Vector_ObjectVector(length,fixed,array,true);
};
openfl_Vector.fromBoolVector = function(vector) {
return vector;
};
openfl_Vector.fromIntVector = function(vector) {
return vector;
};
openfl_Vector.fromFloatVector = function(vector) {
return vector;
};
openfl_Vector.fromFunctionVector = function(vector) {
return vector;
};
openfl_Vector.fromObjectVector = function(vector) {
return vector;
};
openfl_Vector.get_fixed = function(this1) {
return this1.fixed;
};
openfl_Vector.set_fixed = function(this1,value) {
return this1.fixed = value;
};
openfl_Vector.get_length = function(this1) {
return this1.get_length();
};
openfl_Vector.set_length = function(this1,value) {
return this1.set_length(value);
};
var lime_utils_ObjectPool = function(create,clean,size) {
this.__pool = new haxe_ds_ObjectMap();
this.activeObjects = 0;
this.inactiveObjects = 0;
this.__inactiveObject0 = null;
this.__inactiveObject1 = null;
this.__inactiveObjectList = new haxe_ds_List();
if(create != null) {
this.create = create;
}
if(clean != null) {
this.clean = clean;
}
if(size != null) {
this.set_size(size);
}
};
$hxClasses["lime.utils.ObjectPool"] = lime_utils_ObjectPool;
lime_utils_ObjectPool.__name__ = "lime.utils.ObjectPool";
lime_utils_ObjectPool.prototype = {
activeObjects: null
,inactiveObjects: null
,__inactiveObject0: null
,__inactiveObject1: null
,__inactiveObjectList: null
,__pool: null
,__size: null
,add: function(object) {
if(!this.__pool.exists(object)) {
this.__pool.set(object,false);
this.clean(object);
if(this.__inactiveObject0 == null) {
this.__inactiveObject0 = object;
} else if(this.__inactiveObject1 == null) {
this.__inactiveObject1 = object;
} else {
this.__inactiveObjectList.add(object);
}
this.inactiveObjects++;
}
}
,clean: function(object) {
}
,clear: function() {
this.__pool = new haxe_ds_ObjectMap();
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) {
var object1 = null;
if(this.__inactiveObject0 != null) {
object1 = this.__inactiveObject0;
this.__inactiveObject0 = null;
} else if(this.__inactiveObject1 != null) {
object1 = this.__inactiveObject1;
this.__inactiveObject1 = null;
} else {
object1 = 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++;
object = object1;
} 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);
if(this.__inactiveObject0 == null) {
this.__inactiveObject0 = object;
} else if(this.__inactiveObject1 == null) {
this.__inactiveObject1 = object;
} else {
this.__inactiveObjectList.add(object);
}
this.inactiveObjects++;
} else {
this.__pool.remove(object);
}
}
,remove: function(object) {
if(this.__pool.exists(object)) {
this.__pool.remove(object);
if(this.__inactiveObject0 == object) {
this.__inactiveObject0 = null;
this.inactiveObjects--;
} else if(this.__inactiveObject1 == object) {
this.__inactiveObject1 = null;
this.inactiveObjects--;
} else if(this.__inactiveObjectList.remove(object)) {
this.inactiveObjects--;
} else {
this.activeObjects--;
}
}
}
,__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 _g_head = this.__inactiveObjectList.h;
while(_g_head != null) {
var val = _g_head.item;
_g_head = _g_head.next;
var object = val;
this.__pool.remove(object);
this.__inactiveObjectList.remove(object);
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 _g = 0;
var _g1 = value - current;
while(_g < _g1) {
var i = _g++;
object = this.create();
if(object != null) {
this.__pool.set(object,false);
this.__inactiveObjectList.add(object);
this.inactiveObjects++;
} else {
break;
}
}
}
}
return value;
}
,__class__: lime_utils_ObjectPool
,__properties__: {set_size:"set_size",get_size:"get_size"}
};
var haxe_IMap = function() { };
$hxClasses["haxe.IMap"] = haxe_IMap;
haxe_IMap.__name__ = "haxe.IMap";
haxe_IMap.__isInterface__ = true;
haxe_IMap.prototype = {
get: null
,set: null
,exists: null
,remove: null
,keys: null
,__class__: haxe_IMap
};
var haxe_ds_ObjectMap = function() {
this.h = { __keys__ : { }};
};
$hxClasses["haxe.ds.ObjectMap"] = haxe_ds_ObjectMap;
haxe_ds_ObjectMap.__name__ = "haxe.ds.ObjectMap";
haxe_ds_ObjectMap.__interfaces__ = [haxe_IMap];
haxe_ds_ObjectMap.count = null;
haxe_ds_ObjectMap.prototype = {
h: null
,set: function(key,value) {
var id = key.__id__;
if(id == null) {
id = (key.__id__ = $global.$haxeUID++);
}
this.h[id] = value;
this.h.__keys__[id] = key;
}
,get: function(key) {
return this.h[key.__id__];
}
,exists: function(key) {
return this.h.__keys__[key.__id__] != null;
}
,remove: function(key) {
var id = key.__id__;
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 new haxe_iterators_ArrayIterator(a);
}
,__class__: haxe_ds_ObjectMap
};
var haxe_ds_List = function() {
this.length = 0;
};
$hxClasses["haxe.ds.List"] = haxe_ds_List;
haxe_ds_List.__name__ = "haxe.ds.List";
haxe_ds_List.prototype = {
h: null
,q: null
,length: null
,add: function(item) {
var x = new haxe_ds__$List_ListNode(item,null);
if(this.h == null) {
this.h = x;
} else {
this.q.next = x;
}
this.q = x;
this.length++;
}
,push: function(item) {
var x = new haxe_ds__$List_ListNode(item,this.h);
this.h = x;
if(this.q == null) {
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 haxe_ds__$List_ListIterator(this.h);
}
,__class__: haxe_ds_List
};
var openfl_display_DisplayObject = function() {
openfl_events_EventDispatcher.call(this);
this.__alpha = 1;
this.__blendMode = 10;
this.__cacheAsBitmap = false;
this.__transform = new openfl_geom_Matrix();
this.__visible = true;
this.__rotation = 0;
this.__rotationSine = 0;
this.__rotationCosine = 1;
this.__scaleX = 1;
this.__scaleY = 1;
this.__worldAlpha = 1;
this.__worldBlendMode = 10;
this.__worldTransform = new openfl_geom_Matrix();
this.__worldColorTransform = new openfl_geom_ColorTransform();
this.__renderTransform = new openfl_geom_Matrix();
this.__worldVisible = true;
this.set_name("instance" + ++openfl_display_DisplayObject.__instanceCount);
if(openfl_display_DisplayObject.__initStage != null) {
this.stage = openfl_display_DisplayObject.__initStage;
openfl_display_DisplayObject.__initStage = null;
this.stage.addChild(this);
}
};
$hxClasses["openfl.display.DisplayObject"] = openfl_display_DisplayObject;
openfl_display_DisplayObject.__name__ = "openfl.display.DisplayObject";
openfl_display_DisplayObject.__interfaces__ = [openfl_display_IBitmapDrawable];
openfl_display_DisplayObject.__initStage = null;
openfl_display_DisplayObject.__supportDOM = null;
openfl_display_DisplayObject.__calculateAbsoluteTransform = function(local,parentTransform,target) {
target.a = local.a * parentTransform.a + local.b * parentTransform.c;
target.b = local.a * parentTransform.b + local.b * parentTransform.d;
target.c = local.c * parentTransform.a + local.d * parentTransform.c;
target.d = local.c * parentTransform.b + local.d * parentTransform.d;
target.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx;
target.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty;
};
openfl_display_DisplayObject.__super__ = openfl_events_EventDispatcher;
openfl_display_DisplayObject.prototype = $extend(openfl_events_EventDispatcher.prototype,{
opaqueBackground: null
,parent: null
,stage: null
,__alpha: null
,__blendMode: null
,__cacheAsBitmap: null
,__cacheAsBitmapMatrix: null
,__cacheBitmap: null
,__cacheBitmapBackground: null
,__cacheBitmapColorTransform: null
,__cacheBitmapData: null
,__cacheBitmapData2: null
,__cacheBitmapData3: null
,__cacheBitmapMatrix: null
,__cacheBitmapRenderer: null
,__cairo: null
,__children: null
,__customRenderClear: null
,__customRenderEvent: null
,__filters: null
,__graphics: null
,__interactive: null
,__isCacheBitmapRender: null
,__isMask: null
,__loaderInfo: null
,__mask: null
,__maskTarget: null
,__name: null
,__objectTransform: null
,__renderable: null
,__renderDirty: null
,__renderParent: null
,__renderTransform: null
,__renderTransformCache: null
,__renderTransformChanged: null
,__rotation: null
,__rotationCosine: null
,__rotationSine: null
,__scale9Grid: null
,__scaleX: null
,__scaleY: null
,__scrollRect: null
,__shader: null
,__tempPoint: null
,__transform: null
,__transformDirty: null
,__visible: null
,__worldAlpha: null
,__worldAlphaChanged: null
,__worldBlendMode: null
,__worldClip: null
,__worldClipChanged: null
,__worldColorTransform: null
,__worldShader: null
,__worldScale9Grid: null
,__worldTransform: null
,__worldVisible: null
,__worldVisibleChanged: null
,__worldTransformInvalid: null
,__worldZ: null
,__canvas: null
,__context: null
,__style: null
,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(!Object.prototype.hasOwnProperty.call(openfl_display_DisplayObject.__broadcastEvents.h,type)) {
openfl_display_DisplayObject.__broadcastEvents.h[type] = [];
}
var dispatchers = openfl_display_DisplayObject.__broadcastEvents.h[type];
if(dispatchers.indexOf(this) == -1) {
dispatchers.push(this);
}
break;
case "clearDOM":case "renderCairo":case "renderCanvas":case "renderDOM":case "renderOpenGL":
if(this.__customRenderEvent == null) {
this.__customRenderEvent = new openfl_events_RenderEvent(null);
this.__customRenderEvent.objectColorTransform = new openfl_geom_ColorTransform();
this.__customRenderEvent.objectMatrix = new openfl_geom_Matrix();
this.__customRenderClear = true;
}
break;
default:
}
openfl_events_EventDispatcher.prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference);
}
,dispatchEvent: function(event) {
if(((event) instanceof openfl_events_MouseEvent)) {
var mouseEvent = event;
var _this = this.__getRenderTransform();
mouseEvent.stageX = mouseEvent.localX * _this.a + mouseEvent.localY * _this.c + _this.tx;
var _this = this.__getRenderTransform();
mouseEvent.stageY = mouseEvent.localX * _this.b + mouseEvent.localY * _this.d + _this.ty;
} else if(((event) instanceof openfl_events_TouchEvent)) {
var touchEvent = event;
var _this = this.__getRenderTransform();
touchEvent.stageX = touchEvent.localX * _this.a + touchEvent.localY * _this.c + _this.tx;
var _this = this.__getRenderTransform();
touchEvent.stageY = touchEvent.localX * _this.b + touchEvent.localY * _this.d + _this.ty;
}
event.target = this;
return this.__dispatchWithCapture(event);
}
,getBounds: function(targetCoordinateSpace) {
var matrix = openfl_geom_Matrix.__pool.get();
if(targetCoordinateSpace != null && targetCoordinateSpace != this) {
matrix.copyFrom(this.__getWorldTransform());
var targetMatrix = openfl_geom_Matrix.__pool.get();
targetMatrix.copyFrom(targetCoordinateSpace.__getWorldTransform());
targetMatrix.invert();
matrix.concat(targetMatrix);
openfl_geom_Matrix.__pool.release(targetMatrix);
} else {
matrix.identity();
}
var bounds = new openfl_geom_Rectangle();
this.__getBounds(bounds,matrix);
openfl_geom_Matrix.__pool.release(matrix);
return bounds;
}
,getRect: function(targetCoordinateSpace) {
return this.getBounds(targetCoordinateSpace);
}
,globalToLocal: function(pos) {
return this.__globalToLocal(pos,new openfl_geom_Point());
}
,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,false,this);
} else {
return false;
}
}
,invalidate: function() {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
,localToGlobal: function(point) {
return this.__getRenderTransform().transformPoint(point);
}
,removeEventListener: function(type,listener,useCapture) {
if(useCapture == null) {
useCapture = false;
}
openfl_events_EventDispatcher.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(Object.prototype.hasOwnProperty.call(openfl_display_DisplayObject.__broadcastEvents.h,type)) {
HxOverrides.remove(openfl_display_DisplayObject.__broadcastEvents.h[type],this);
}
}
break;
case "clearDOM":case "renderCairo":case "renderCanvas":case "renderDOM":case "renderOpenGL":
if(!this.hasEventListener("clearDOM") && !this.hasEventListener("renderCairo") && !this.hasEventListener("renderCanvas") && !this.hasEventListener("renderDOM") && !this.hasEventListener("renderOpenGL")) {
this.__customRenderEvent = null;
}
break;
default:
}
}
,__cleanup: function() {
this.__cairo = null;
this.__canvas = null;
this.__context = null;
if(this.__graphics != null) {
this.__graphics.__cleanup();
}
if(this.__cacheBitmap != null) {
this.__cacheBitmap.__cleanup();
this.__cacheBitmap = null;
}
if(this.__cacheBitmapData != null) {
this.__cacheBitmapData.dispose();
this.__cacheBitmapData = null;
}
}
,__dispatch: function(event) {
if(this.__eventMap != null && this.hasEventListener(event.type)) {
var result = openfl_events_EventDispatcher.prototype.__dispatchEvent.call(this,event);
if(event.__isCanceled) {
return true;
}
return result;
}
return true;
}
,__dispatchChildren: function(event) {
}
,__dispatchEvent: function(event) {
var parent = event.bubbles ? this.parent : null;
var result = openfl_events_EventDispatcher.prototype.__dispatchEvent.call(this,event);
if(event.__isCanceled) {
return true;
}
if(parent != null && parent != this) {
event.eventPhase = 3;
if(event.target == null) {
event.target = 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 = openfl_display_DisplayObject.__tempStack.get();
var parent = this.parent;
var i = 0;
while(parent != null) {
stack.set(i,parent);
parent = parent.parent;
++i;
}
var _g = 0;
var _g1 = i;
while(_g < _g1) {
var j = _g++;
stack.get(i - j - 1).__dispatch(event);
}
openfl_display_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.__getRenderBounds(rect,matrix);
if(this.__filters != null) {
var extension = openfl_geom_Rectangle.__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.__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.__pool.get();
r.copyFrom(this.__scrollRect);
r.__transform(r,matrix);
rect.__expand(r.x,r.y,r.width,r.height);
openfl_geom_Rectangle.__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);
}
}
return this.__worldTransform;
}
,__globalToLocal: function(global,local) {
this.__getRenderTransform();
if(global == local) {
var _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
if(norm == 0) {
global.x = -_this.tx;
global.y = -_this.ty;
} else {
var px = 1.0 / norm * (_this.c * (_this.ty - global.y) + _this.d * (global.x - _this.tx));
global.y = 1.0 / norm * (_this.a * (global.y - _this.ty) + _this.b * (_this.tx - global.x));
global.x = px;
}
} else {
var _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
local.x = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - global.y) + _this.d * (global.x - _this.tx));
var _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
local.y = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (global.y - _this.ty) + _this.b * (_this.tx - global.x));
}
return local;
}
,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
if(this.__graphics != null) {
if(!hitObject.__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(renderer) {
}
,__renderCairoMask: function(renderer) {
}
,__renderCanvas: function(renderer) {
if(this.get_mask() == null || this.get_mask().get_width() > 0 && this.get_mask().get_height() > 0) {
this.__updateCacheBitmap(renderer,false);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
var bitmap = this.__cacheBitmap;
if(bitmap.__renderable) {
var alpha = renderer.__getAlpha(bitmap.__worldAlpha);
if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
var context = renderer.context;
renderer.__setBlendMode(bitmap.__worldBlendMode);
renderer.__pushMaskObject(bitmap,false);
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image);
context.globalAlpha = alpha;
var scrollRect = bitmap.__scrollRect;
renderer.setTransform(bitmap.__renderTransform,context);
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = false;
}
if(scrollRect == null) {
context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height);
} else {
context.drawImage(bitmap.__bitmapData.image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
}
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = true;
}
renderer.__popMaskObject(bitmap,false);
}
}
} else if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(this.__renderable) {
var alpha = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context = renderer.context;
renderer.setTransform(this.__renderTransform,context);
var color = this.opaqueBackground;
context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")";
context.fillRect(0,0,this.get_width(),this.get_height());
renderer.__popMaskObject(this);
}
if(this.__graphics != null) {
if(this.__renderable) {
var alpha = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha <= 0)) {
var graphics = this.__graphics;
if(graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer);
var width = graphics.__width;
var height = graphics.__height;
var canvas = graphics.__canvas;
if(canvas != null && graphics.__visible && width >= 1 && height >= 1) {
var transform = graphics.__worldTransform;
var context = renderer.context;
var scrollRect = this.__scrollRect;
var scale9Grid = this.__worldScale9Grid;
if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
context.globalAlpha = alpha;
if(scale9Grid != null && transform.b == 0 && transform.c == 0) {
context.setTransform(1,0,0,1,transform.tx,transform.ty);
var bounds = graphics.__bounds;
var scaleX = graphics.__renderTransform.a;
var scaleY = graphics.__renderTransform.d;
var renderScaleX = transform.a;
var renderScaleY = transform.d;
var left = Math.max(1,Math.round(scale9Grid.x * scaleX));
var top = Math.round(scale9Grid.y * scaleY);
var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX));
var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY);
var centerWidth = Math.round(scale9Grid.width * scaleX);
var centerHeight = Math.round(scale9Grid.height * scaleY);
var renderLeft = Math.round(scale9Grid.x * renderScaleX);
var renderTop = Math.round(scale9Grid.y * renderScaleY);
var renderRight = Math.round((bounds.get_right() - scale9Grid.get_right()) * renderScaleX);
var renderBottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * renderScaleY);
var renderCenterWidth = Math.round(width * renderScaleX) - renderLeft - renderRight;
var renderCenterHeight = Math.round(height * renderScaleY) - renderTop - renderBottom;
renderer.applySmoothing(context,false);
if(centerWidth != 0 && centerHeight != 0) {
context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop);
context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop);
context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop);
context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight);
context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight);
context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom);
context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom);
context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom);
} else if(centerWidth == 0 && centerHeight != 0) {
var renderWidth = renderLeft + renderCenterWidth + renderRight;
context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop);
context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom);
} else if(centerHeight == 0 && centerWidth != 0) {
var renderHeight = renderTop + renderCenterHeight + renderBottom;
context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight);
context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight);
context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight);
}
} else {
renderer.setTransform(transform,context);
if(renderer.__isDOM) {
var reverseScale = 1 / renderer.pixelRatio;
context.scale(reverseScale,reverseScale);
}
context.drawImage(canvas,0,0,width,height);
}
renderer.__popMaskObject(this);
}
}
}
}
}
}
}
}
}
}
this.__renderEvent(renderer);
}
,__renderCanvasMask: function(renderer) {
if(this.__graphics != null) {
openfl_display__$internal_CanvasGraphics.renderMask(this.__graphics,renderer);
}
}
,__renderDOM: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
this.__renderDOMClear(renderer);
this.__cacheBitmap.stage = this.stage;
var bitmap = this.__cacheBitmap;
if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
renderer.__pushMaskObject(bitmap);
if(bitmap.__bitmapData.image.buffer.__srcImage != null) {
openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer);
} else {
openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer);
}
renderer.__popMaskObject(bitmap);
} else {
openfl_display__$internal_DOMBitmap.clear(bitmap,renderer);
}
} else {
var tmp = this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0;
var graphics = this.__graphics;
if(this.stage != null && this.__worldVisible && this.__renderable && graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__canvasRenderer);
if(graphics.__softwareDirty || this.__worldAlphaChanged || this.__canvas != graphics.__canvas) {
if(graphics.__canvas != null) {
if(this.__canvas != graphics.__canvas) {
if(this.__canvas != null) {
renderer.element.removeChild(this.__canvas);
}
this.__canvas = graphics.__canvas;
this.__context = graphics.__context;
renderer.__initializeElement(this,this.__canvas);
}
} else {
openfl_display__$internal_DOMShape.clear(this,renderer);
}
}
if(this.__canvas != null) {
renderer.__pushMaskObject(this);
var cacheTransform = this.__renderTransform;
this.__renderTransform = graphics.__worldTransform;
if(graphics.__transformDirty) {
graphics.__transformDirty = false;
this.__renderTransformChanged = true;
}
renderer.__updateClip(this);
renderer.__applyStyle(this,true,true,true);
this.__renderTransform = cacheTransform;
renderer.__popMaskObject(this);
}
} else {
openfl_display__$internal_DOMShape.clear(this,renderer);
}
}
this.__renderEvent(renderer);
}
,__renderDOMClear: function(renderer) {
openfl_display__$internal_DOMDisplayObject.clear(this,renderer);
}
,__renderEvent: function(renderer) {
if(this.__customRenderEvent != null && this.__renderable) {
this.__customRenderEvent.allowSmoothing = renderer.__allowSmoothing;
this.__customRenderEvent.objectMatrix.copyFrom(this.__renderTransform);
this.__customRenderEvent.objectColorTransform.__copyFrom(this.__worldColorTransform);
this.__customRenderEvent.renderer = renderer;
switch(renderer.__type) {
case "cairo":
this.__customRenderEvent.type = "renderCairo";
break;
case "canvas":
this.__customRenderEvent.type = "renderCanvas";
break;
case "dom":
if(this.stage != null && this.__worldVisible) {
this.__customRenderEvent.type = "renderDOM";
} else {
this.__customRenderEvent.type = "clearDOM";
}
break;
case "opengl":
if(!renderer.__cleared) {
renderer.__clear();
}
var renderer1 = renderer;
renderer1.setShader(this.__worldShader);
renderer1.__context3D.__flushGL();
this.__customRenderEvent.type = "renderOpenGL";
break;
default:
return;
}
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
this.dispatchEvent(this.__customRenderEvent);
renderer.__popMaskObject(this);
if(renderer.__type == "opengl") {
var renderer1 = renderer;
renderer1.setViewport();
}
}
}
,__renderGL: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
openfl_display__$internal_Context3DBitmap.render(this.__cacheBitmap,renderer);
} else if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(!(!this.__renderable || this.__worldAlpha <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context = renderer.__context3D;
var rect = openfl_geom_Rectangle.__pool.get();
rect.setTo(0,0,this.get_width(),this.get_height());
renderer.__pushMaskRect(rect,this.__renderTransform);
var color = this.opaqueBackground;
context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1);
renderer.__popMaskRect();
renderer.__popMaskObject(this);
openfl_geom_Rectangle.__pool.release(rect);
}
if(this.__graphics != null) {
openfl_display__$internal_Context3DShape.render(this,renderer);
}
}
}
this.__renderEvent(renderer);
}
,__renderGLMask: function(renderer) {
if(this.__graphics != null) {
openfl_display__$internal_Context3DShape.renderMask(this,renderer);
}
}
,__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;
}
,__shouldCacheHardware: function(value) {
if(value == true || this.__filters != null) {
return true;
}
if(value == false || this.__graphics != null && !openfl_display__$internal_Context3DGraphics.isCompatible(this.__graphics)) {
return false;
}
return null;
}
,__stopAllMovieClips: function() {
}
,__update: function(transformOnly,updateChildren) {
var renderParent = this.__renderParent != null ? this.__renderParent : this.parent;
if(this.__isMask && renderParent == null) {
renderParent = this.__maskTarget;
}
this.__renderable = this.__visible && this.__scaleX != 0 && this.__scaleY != 0 && !this.__isMask && (renderParent == null || !renderParent.__isMask);
this.__updateTransforms();
this.__transformDirty = false;
this.__worldTransformInvalid = false;
if(!transformOnly) {
if(openfl_display_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(renderParent != null) {
if(openfl_display_DisplayObject.__supportDOM) {
var worldVisible = renderParent.__worldVisible && this.__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;
}
if(this.__objectTransform != null) {
this.__worldColorTransform.__copyFrom(this.__objectTransform.get_colorTransform());
this.__worldColorTransform.__combine(renderParent.__worldColorTransform);
} else {
this.__worldColorTransform.__copyFrom(renderParent.__worldColorTransform);
}
if(this.__blendMode == null || this.__blendMode == 10) {
this.__worldBlendMode = renderParent.__worldBlendMode;
} else {
this.__worldBlendMode = this.__blendMode;
}
if(this.__shader == null) {
this.__worldShader = renderParent.__shader;
} else {
this.__worldShader = this.__shader;
}
if(this.__scale9Grid == null) {
this.__worldScale9Grid = renderParent.__scale9Grid;
} else {
this.__worldScale9Grid = this.__scale9Grid;
}
} else {
this.__worldAlpha = this.get_alpha();
if(openfl_display_DisplayObject.__supportDOM) {
this.__worldVisibleChanged = this.__worldVisible != this.__visible;
this.__worldVisible = this.__visible;
this.__worldAlphaChanged = this.__worldAlpha != this.get_alpha();
}
if(this.__objectTransform != null) {
this.__worldColorTransform.__copyFrom(this.__objectTransform.get_colorTransform());
} else {
this.__worldColorTransform.__identity();
}
this.__worldBlendMode = this.__blendMode;
this.__worldShader = this.__shader;
this.__worldScale9Grid = this.__scale9Grid;
}
}
if(updateChildren && this.get_mask() != null) {
this.get_mask().__update(transformOnly,true);
}
}
,__updateCacheBitmap: function(renderer,force) {
if(this.__isCacheBitmapRender) {
return false;
}
var colorTransform = openfl_geom_ColorTransform.__pool.get();
colorTransform.__copyFrom(this.__worldColorTransform);
if(renderer.__worldColorTransform != null) {
colorTransform.__combine(renderer.__worldColorTransform);
}
var updated = false;
if(this.get_cacheAsBitmap() || renderer.__type != "opengl" && !colorTransform.__isDefault(true)) {
var rect = null;
var needRender = this.__cacheBitmap == null || this.__renderDirty && (force || this.__children != null && this.__children.length > 0) || this.opaqueBackground != this.__cacheBitmapBackground;
var softwareDirty = needRender || this.__graphics != null && this.__graphics.__softwareDirty || !this.__cacheBitmapColorTransform.__equals(colorTransform,true);
var hardwareDirty = needRender || this.__graphics != null && this.__graphics.__hardwareDirty;
var renderType = renderer.__type;
if(softwareDirty || hardwareDirty) {
if(renderType == "opengl") {
if(this.__shouldCacheHardware(null) == false) {
renderType = "canvas";
}
}
if(softwareDirty && (renderType == "canvas" || renderType == "cairo")) {
needRender = true;
}
if(hardwareDirty && renderType == "opengl") {
needRender = true;
}
}
var updateTransform = needRender || !this.__cacheBitmap.__worldTransform.equals(this.__worldTransform);
var hasFilters = this.__filters != null;
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;
}
}
}
if(this.__cacheBitmapMatrix == null) {
this.__cacheBitmapMatrix = new openfl_geom_Matrix();
}
var bitmapMatrix = this.__cacheAsBitmapMatrix != null ? this.__cacheAsBitmapMatrix : this.__renderTransform;
if(!needRender && (bitmapMatrix.a != this.__cacheBitmapMatrix.a || bitmapMatrix.b != this.__cacheBitmapMatrix.b || bitmapMatrix.c != this.__cacheBitmapMatrix.c || bitmapMatrix.d != this.__cacheBitmapMatrix.d)) {
needRender = true;
}
if(!needRender && renderer.__type != "opengl" && this.__cacheBitmapData != null && this.__cacheBitmapData.image != null && this.__cacheBitmapData.image.version < this.__cacheBitmapData.__textureVersion) {
needRender = true;
}
this.__cacheBitmapMatrix.copyFrom(bitmapMatrix);
this.__cacheBitmapMatrix.tx = 0;
this.__cacheBitmapMatrix.ty = 0;
var bitmapWidth = 0;
var bitmapHeight = 0;
var filterWidth = 0;
var filterHeight = 0;
var offsetX = 0.;
var offsetY = 0.;
if(updateTransform || needRender) {
rect = openfl_geom_Rectangle.__pool.get();
this.__getFilterBounds(rect,this.__cacheBitmapMatrix);
filterWidth = Math.ceil(rect.width);
filterHeight = Math.ceil(rect.height);
offsetX = rect.x > 0 ? Math.ceil(rect.x) : Math.floor(rect.x);
offsetY = rect.y > 0 ? Math.ceil(rect.y) : Math.floor(rect.y);
if(this.__cacheBitmapData != null) {
if(filterWidth > this.__cacheBitmapData.width || filterHeight > this.__cacheBitmapData.height) {
bitmapWidth = Math.ceil(Math.max(filterWidth * 1.25,this.__cacheBitmapData.width));
bitmapHeight = Math.ceil(Math.max(filterHeight * 1.25,this.__cacheBitmapData.height));
needRender = true;
} else {
bitmapWidth = this.__cacheBitmapData.width;
bitmapHeight = this.__cacheBitmapData.height;
}
} else {
bitmapWidth = filterWidth;
bitmapHeight = filterHeight;
}
}
if(needRender) {
updateTransform = true;
this.__cacheBitmapBackground = this.opaqueBackground;
if(filterWidth >= 0.5 && filterHeight >= 0.5) {
var needsFill = this.opaqueBackground != null && (bitmapWidth != filterWidth || bitmapHeight != filterHeight);
var fillColor = this.opaqueBackground != null ? -16777216 | this.opaqueBackground : 0;
var bitmapColor = needsFill ? 0 : fillColor;
var allowFramebuffer = renderer.__type == "opengl";
if(this.__cacheBitmapData == null || bitmapWidth > this.__cacheBitmapData.width || bitmapHeight > this.__cacheBitmapData.height) {
this.__cacheBitmapData = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,bitmapColor);
if(this.__cacheBitmap == null) {
this.__cacheBitmap = new openfl_display_Bitmap();
}
this.__cacheBitmap.__bitmapData = this.__cacheBitmapData;
this.__cacheBitmapRenderer = null;
} else {
this.__cacheBitmapData.__fillRect(this.__cacheBitmapData.rect,bitmapColor,allowFramebuffer);
}
if(needsFill) {
rect.setTo(0,0,filterWidth,filterHeight);
this.__cacheBitmapData.__fillRect(rect,fillColor,allowFramebuffer);
}
} else {
openfl_geom_ColorTransform.__pool.release(colorTransform);
this.__cacheBitmap = null;
this.__cacheBitmapData = null;
this.__cacheBitmapData2 = null;
this.__cacheBitmapData3 = null;
this.__cacheBitmapRenderer = null;
return true;
}
} else {
this.__cacheBitmapData = this.__cacheBitmap.get_bitmapData();
this.__cacheBitmapData2 = null;
this.__cacheBitmapData3 = null;
}
if(updateTransform || needRender) {
this.__cacheBitmap.__worldTransform.copyFrom(this.__worldTransform);
if(bitmapMatrix == this.__renderTransform) {
this.__cacheBitmap.__renderTransform.identity();
this.__cacheBitmap.__renderTransform.tx = this.__renderTransform.tx + offsetX;
this.__cacheBitmap.__renderTransform.ty = this.__renderTransform.ty + offsetY;
} else {
this.__cacheBitmap.__renderTransform.copyFrom(this.__cacheBitmapMatrix);
this.__cacheBitmap.__renderTransform.invert();
this.__cacheBitmap.__renderTransform.concat(this.__renderTransform);
this.__cacheBitmap.__renderTransform.tx += offsetX;
this.__cacheBitmap.__renderTransform.ty += offsetY;
}
}
this.__cacheBitmap.smoothing = renderer.__allowSmoothing;
this.__cacheBitmap.__renderable = this.__renderable;
this.__cacheBitmap.__worldAlpha = this.__worldAlpha;
this.__cacheBitmap.__worldBlendMode = this.__worldBlendMode;
this.__cacheBitmap.__worldShader = this.__worldShader;
this.__cacheBitmap.set_mask(this.__mask);
if(needRender) {
if(this.__cacheBitmapRenderer == null || renderType != this.__cacheBitmapRenderer.__type) {
if(renderType == "opengl") {
this.__cacheBitmapRenderer = new openfl_display_OpenGLRenderer((js_Boot.__cast(renderer , openfl_display_OpenGLRenderer)).__context3D,this.__cacheBitmapData);
} else {
if(this.__cacheBitmapData.image == null) {
var color = this.opaqueBackground != null ? -16777216 | this.opaqueBackground : 0;
this.__cacheBitmapData = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,color);
this.__cacheBitmap.__bitmapData = this.__cacheBitmapData;
}
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this.__cacheBitmapData.image);
this.__cacheBitmapRenderer = new openfl_display_CanvasRenderer(this.__cacheBitmapData.image.buffer.__srcContext);
}
this.__cacheBitmapRenderer.__worldTransform = new openfl_geom_Matrix();
this.__cacheBitmapRenderer.__worldColorTransform = new openfl_geom_ColorTransform();
}
if(this.__cacheBitmapColorTransform == null) {
this.__cacheBitmapColorTransform = new openfl_geom_ColorTransform();
}
this.__cacheBitmapRenderer.__stage = this.stage;
this.__cacheBitmapRenderer.__allowSmoothing = renderer.__allowSmoothing;
this.__cacheBitmapRenderer.__setBlendMode(10);
this.__cacheBitmapRenderer.__worldAlpha = 1 / this.__worldAlpha;
this.__cacheBitmapRenderer.__worldTransform.copyFrom(this.__renderTransform);
this.__cacheBitmapRenderer.__worldTransform.invert();
this.__cacheBitmapRenderer.__worldTransform.concat(this.__cacheBitmapMatrix);
this.__cacheBitmapRenderer.__worldTransform.tx -= offsetX;
this.__cacheBitmapRenderer.__worldTransform.ty -= offsetY;
this.__cacheBitmapRenderer.__worldColorTransform.__copyFrom(colorTransform);
this.__cacheBitmapRenderer.__worldColorTransform.__invert();
this.__isCacheBitmapRender = true;
if(this.__cacheBitmapRenderer.__type == "opengl") {
var parentRenderer = renderer;
var childRenderer = this.__cacheBitmapRenderer;
var context = childRenderer.__context3D;
var cacheRTT = context.__state.renderToTexture;
var cacheRTTDepthStencil = context.__state.renderToTextureDepthStencil;
var cacheRTTAntiAlias = context.__state.renderToTextureAntiAlias;
var cacheRTTSurfaceSelector = context.__state.renderToTextureSurfaceSelector;
var cacheBlendMode = parentRenderer.__blendMode;
parentRenderer.__suspendClipAndMask();
childRenderer.__copyShader(parentRenderer);
this.__cacheBitmapData.__setUVRect(context,0,0,filterWidth,filterHeight);
childRenderer.__setRenderTarget(this.__cacheBitmapData);
if(this.__cacheBitmapData.image != null) {
this.__cacheBitmapData.__textureVersion = this.__cacheBitmapData.image.version + 1;
}
this.__cacheBitmapData.__drawGL(this,childRenderer);
if(hasFilters) {
var needSecondBitmapData = true;
var needCopyOfOriginal = false;
var _g = 0;
var _g1 = this.__filters;
while(_g < _g1.length) {
var filter = _g1[_g];
++_g;
if(filter.__preserveObject) {
needCopyOfOriginal = true;
}
}
var bitmap = this.__cacheBitmapData;
var bitmap2 = null;
var bitmap3 = null;
if(this.__cacheBitmapData2 == null || bitmapWidth > this.__cacheBitmapData2.width || bitmapHeight > this.__cacheBitmapData2.height) {
this.__cacheBitmapData2 = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,0);
} else {
this.__cacheBitmapData2.fillRect(this.__cacheBitmapData2.rect,0);
if(this.__cacheBitmapData2.image != null) {
this.__cacheBitmapData2.__textureVersion = this.__cacheBitmapData2.image.version + 1;
}
}
this.__cacheBitmapData2.__setUVRect(context,0,0,filterWidth,filterHeight);
bitmap2 = this.__cacheBitmapData2;
if(needCopyOfOriginal) {
if(this.__cacheBitmapData3 == null || bitmapWidth > this.__cacheBitmapData3.width || bitmapHeight > this.__cacheBitmapData3.height) {
this.__cacheBitmapData3 = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,0);
} else {
this.__cacheBitmapData3.fillRect(this.__cacheBitmapData3.rect,0);
if(this.__cacheBitmapData3.image != null) {
this.__cacheBitmapData3.__textureVersion = this.__cacheBitmapData3.image.version + 1;
}
}
this.__cacheBitmapData3.__setUVRect(context,0,0,filterWidth,filterHeight);
bitmap3 = this.__cacheBitmapData3;
}
childRenderer.__setBlendMode(10);
childRenderer.__worldAlpha = 1;
childRenderer.__worldTransform.identity();
childRenderer.__worldColorTransform.__identity();
var shader;
var cacheBitmap;
var _g = 0;
var _g1 = this.__filters;
while(_g < _g1.length) {
var filter = _g1[_g];
++_g;
if(filter.__preserveObject) {
childRenderer.__setRenderTarget(bitmap3);
childRenderer.__renderFilterPass(bitmap,childRenderer.__defaultDisplayShader,filter.__smooth);
}
var _g2 = 0;
var _g3 = filter.__numShaderPasses;
while(_g2 < _g3) {
var i = _g2++;
shader = filter.__initShader(childRenderer,i,filter.__preserveObject ? bitmap3 : null);
childRenderer.__setBlendMode(filter.__shaderBlendMode);
childRenderer.__setRenderTarget(bitmap2);
childRenderer.__renderFilterPass(bitmap,shader,filter.__smooth);
cacheBitmap = bitmap;
bitmap = bitmap2;
bitmap2 = cacheBitmap;
}
filter.__renderDirty = false;
}
this.__cacheBitmap.__bitmapData = bitmap;
}
parentRenderer.__blendMode = 10;
parentRenderer.__setBlendMode(cacheBlendMode);
parentRenderer.__copyShader(childRenderer);
if(cacheRTT != null) {
context.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector);
} else {
context.setRenderToBackBuffer();
}
parentRenderer.__resumeClipAndMask(childRenderer);
parentRenderer.setViewport();
this.__cacheBitmapColorTransform.__copyFrom(colorTransform);
} else {
this.__cacheBitmapData.__drawCanvas(this,this.__cacheBitmapRenderer);
if(hasFilters) {
var needSecondBitmapData = false;
var needCopyOfOriginal = false;
var _g = 0;
var _g1 = this.__filters;
while(_g < _g1.length) {
var filter = _g1[_g];
++_g;
if(filter.__needSecondBitmapData) {
needSecondBitmapData = true;
}
if(filter.__preserveObject) {
needCopyOfOriginal = true;
}
}
var bitmap = this.__cacheBitmapData;
var bitmap2 = null;
var bitmap3 = null;
if(needSecondBitmapData) {
if(this.__cacheBitmapData2 == null || this.__cacheBitmapData2.image == null || bitmapWidth > this.__cacheBitmapData2.width || bitmapHeight > this.__cacheBitmapData2.height) {
this.__cacheBitmapData2 = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,0);
} else {
this.__cacheBitmapData2.fillRect(this.__cacheBitmapData2.rect,0);
}
bitmap2 = this.__cacheBitmapData2;
} else {
bitmap2 = bitmap;
}
if(needCopyOfOriginal) {
if(this.__cacheBitmapData3 == null || this.__cacheBitmapData3.image == null || bitmapWidth > this.__cacheBitmapData3.width || bitmapHeight > this.__cacheBitmapData3.height) {
this.__cacheBitmapData3 = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,0);
} else {
this.__cacheBitmapData3.fillRect(this.__cacheBitmapData3.rect,0);
}
bitmap3 = this.__cacheBitmapData3;
}
if(this.__tempPoint == null) {
this.__tempPoint = new openfl_geom_Point();
}
var destPoint = this.__tempPoint;
var cacheBitmap;
var lastBitmap;
var _g = 0;
var _g1 = this.__filters;
while(_g < _g1.length) {
var filter = _g1[_g];
++_g;
if(filter.__preserveObject) {
bitmap3.copyPixels(bitmap,bitmap.rect,destPoint);
}
lastBitmap = filter.__applyFilter(bitmap2,bitmap,bitmap.rect,destPoint);
if(filter.__preserveObject) {
lastBitmap.draw(bitmap3,null,this.__objectTransform != null ? this.__objectTransform.get_colorTransform() : null);
}
filter.__renderDirty = false;
if(needSecondBitmapData && lastBitmap == bitmap2) {
cacheBitmap = bitmap;
bitmap = bitmap2;
bitmap2 = cacheBitmap;
}
}
if(this.__cacheBitmapData != bitmap) {
cacheBitmap = this.__cacheBitmapData;
this.__cacheBitmapData = bitmap;
this.__cacheBitmapData2 = cacheBitmap;
this.__cacheBitmap.__bitmapData = this.__cacheBitmapData;
this.__cacheBitmapRenderer = null;
}
this.__cacheBitmap.__imageVersion = this.__cacheBitmapData.__textureVersion;
}
this.__cacheBitmapColorTransform.__copyFrom(colorTransform);
if(!this.__cacheBitmapColorTransform.__isDefault(true)) {
this.__cacheBitmapColorTransform.alphaMultiplier = 1;
this.__cacheBitmapData.colorTransform(this.__cacheBitmapData.rect,this.__cacheBitmapColorTransform);
}
}
this.__isCacheBitmapRender = false;
}
if(updateTransform || needRender) {
openfl_geom_Rectangle.__pool.release(rect);
}
updated = updateTransform;
} else if(this.__cacheBitmap != null) {
if(renderer.__type == "dom") {
this.__cacheBitmap.__renderDOMClear(renderer);
}
this.__cacheBitmap = null;
this.__cacheBitmapData = null;
this.__cacheBitmapData2 = null;
this.__cacheBitmapData3 = null;
this.__cacheBitmapColorTransform = null;
this.__cacheBitmapRenderer = null;
updated = true;
}
openfl_geom_ColorTransform.__pool.release(colorTransform);
return updated;
}
,__updateTransforms: function(overrideTransform) {
var overrided = overrideTransform != null;
var local = overrided ? overrideTransform : this.__transform;
if(this.__worldTransform == null) {
this.__worldTransform = new openfl_geom_Matrix();
}
if(this.__renderTransform == null) {
this.__renderTransform = new openfl_geom_Matrix();
}
var renderParent = this.__renderParent != null ? this.__renderParent : this.parent;
if(!overrided && this.parent != null) {
var parentTransform = this.parent.__worldTransform;
var target = this.__worldTransform;
target.a = local.a * parentTransform.a + local.b * parentTransform.c;
target.b = local.a * parentTransform.b + local.b * parentTransform.d;
target.c = local.c * parentTransform.a + local.d * parentTransform.c;
target.d = local.c * parentTransform.b + local.d * parentTransform.d;
target.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx;
target.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty;
} else {
this.__worldTransform.copyFrom(local);
}
if(!overrided && renderParent != null) {
var parentTransform = renderParent.__renderTransform;
var target = this.__renderTransform;
target.a = local.a * parentTransform.a + local.b * parentTransform.c;
target.b = local.a * parentTransform.b + local.b * parentTransform.d;
target.c = local.c * parentTransform.a + local.d * parentTransform.c;
target.d = local.c * parentTransform.b + local.d * parentTransform.d;
target.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx;
target.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty;
} else {
this.__renderTransform.copyFrom(local);
}
if(this.__scrollRect != null) {
var _this = this.__renderTransform;
var px = -this.__scrollRect.x;
var py = -this.__scrollRect.y;
_this.tx = px * _this.a + py * _this.c + _this.tx;
_this.ty = px * _this.b + py * _this.d + _this.ty;
}
}
,get_alpha: function() {
return this.__alpha;
}
,set_alpha: function(value) {
if(value > 1.0) {
value = 1.0;
}
if(value < 0.0) {
value = 0.0;
}
if(value != this.__alpha && !this.get_cacheAsBitmap()) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__alpha = value;
}
,get_blendMode: function() {
return this.__blendMode;
}
,set_blendMode: function(value) {
if(value == null) {
value = 10;
}
if(value != this.__blendMode) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__blendMode = value;
}
,get_cacheAsBitmap: function() {
if(this.__filters == null) {
return this.__cacheAsBitmap;
} else {
return true;
}
}
,set_cacheAsBitmap: function(value) {
if(value != this.__cacheAsBitmap) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__cacheAsBitmap = value;
}
,get_cacheAsBitmapMatrix: function() {
return this.__cacheAsBitmapMatrix;
}
,set_cacheAsBitmapMatrix: function(value) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
return this.__cacheAsBitmapMatrix = value != null ? value.clone() : value;
}
,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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
} else if(this.__filters != null) {
this.__filters = null;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return value;
}
,get_height: function() {
var rect = openfl_geom_Rectangle.__pool.get();
this.__getLocalBounds(rect);
var height = rect.height;
openfl_geom_Rectangle.__pool.release(rect);
return height;
}
,set_height: function(value) {
var rect = openfl_geom_Rectangle.__pool.get();
var matrix = openfl_geom_Matrix.__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.__pool.release(rect);
openfl_geom_Matrix.__pool.release(matrix);
return value;
}
,get_loaderInfo: function() {
if(this.stage != null) {
return openfl__$internal_Lib.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();
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
if(this.__mask != null) {
this.__mask.__isMask = false;
this.__mask.__maskTarget = null;
this.__mask.__setTransformDirty();
var _this = this.__mask;
if(!_this.__renderDirty) {
_this.__renderDirty = true;
_this.__setParentRenderDirty();
}
}
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.current.stage.__mouseX;
var mouseY = this.stage != null ? this.stage.__mouseY : openfl__$internal_Lib.current.stage.__mouseY;
var _this = this.__getRenderTransform();
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 - mouseY) + _this.d * (mouseX - _this.tx));
}
}
,get_mouseY: function() {
var mouseX = this.stage != null ? this.stage.__mouseX : openfl__$internal_Lib.current.stage.__mouseX;
var mouseY = this.stage != null ? this.stage.__mouseY : openfl__$internal_Lib.current.stage.__mouseY;
var _this = this.__getRenderTransform();
var norm = _this.a * _this.d - _this.b * _this.c;
if(norm == 0) {
return -_this.ty;
} else {
return 1.0 / norm * (_this.a * (mouseY - _this.ty) + _this.b * (_this.tx - mouseX));
}
}
,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.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_scale9Grid: function() {
if(this.__scale9Grid == null) {
return null;
}
return this.__scale9Grid.clone();
}
,set_scale9Grid: function(value) {
if(value == null && this.__scale9Grid == null) {
return value;
}
if(value != null && this.__scale9Grid != null && this.__scale9Grid.equals(value)) {
return value;
}
if(value != null) {
if(this.__scale9Grid == null) {
this.__scale9Grid = new openfl_geom_Rectangle();
}
this.__scale9Grid.copyFrom(value);
} else {
this.__scale9Grid = null;
}
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
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 == null && this.__scrollRect == null) {
return value;
}
if(value != null && this.__scrollRect != null && this.__scrollRect.equals(value)) {
return value;
}
if(value != null) {
if(this.__scrollRect == null) {
this.__scrollRect = new openfl_geom_Rectangle();
}
this.__scrollRect.copyFrom(value);
} else {
this.__scrollRect = null;
}
this.__setTransformDirty();
if(openfl_display_DisplayObject.__supportDOM) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return value;
}
,get_shader: function() {
return this.__shader;
}
,set_shader: function(value) {
this.__shader = value;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
return value;
}
,get_transform: function() {
if(this.__objectTransform == null) {
this.__objectTransform = new openfl_geom_Transform(this);
}
return this.__objectTransform;
}
,set_transform: function(value) {
if(value == null) {
throw haxe_Exception.thrown(new openfl_errors_TypeError("Parameter transform must be non-null."));
}
if(this.__objectTransform == null) {
this.__objectTransform = new openfl_geom_Transform(this);
}
this.__setTransformDirty();
this.__objectTransform.set_matrix(value.get_matrix());
if(!this.__objectTransform.get_colorTransform().__equals(value.get_colorTransform(),true) || !this.get_cacheAsBitmap() && this.__objectTransform.get_colorTransform().alphaMultiplier != value.get_colorTransform().alphaMultiplier) {
this.__objectTransform.get_colorTransform().__copyFrom(value.get_colorTransform());
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__objectTransform;
}
,get_visible: function() {
return this.__visible;
}
,set_visible: function(value) {
if(value != this.__visible) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__visible = value;
}
,get_width: function() {
var rect = openfl_geom_Rectangle.__pool.get();
this.__getLocalBounds(rect);
var width = rect.width;
openfl_geom_Rectangle.__pool.release(rect);
return width;
}
,set_width: function(value) {
var rect = openfl_geom_Rectangle.__pool.get();
var matrix = openfl_geom_Matrix.__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.__pool.release(rect);
openfl_geom_Matrix.__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;
}
,__class__: openfl_display_DisplayObject
,__properties__: {set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x",set_width:"set_width",get_width:"get_width",set_visible:"set_visible",get_visible:"get_visible",set_transform:"set_transform",get_transform:"get_transform",set_shader:"set_shader",get_shader:"get_shader",set_scrollRect:"set_scrollRect",get_scrollRect:"get_scrollRect",set_scaleY:"set_scaleY",get_scaleY:"get_scaleY",set_scaleX:"set_scaleX",get_scaleX:"get_scaleX",set_scale9Grid:"set_scale9Grid",get_scale9Grid:"get_scale9Grid",set_rotation:"set_rotation",get_rotation:"get_rotation",get_root:"get_root",set_name:"set_name",get_name:"get_name",get_mouseY:"get_mouseY",get_mouseX:"get_mouseX",set_mask:"set_mask",get_mask:"get_mask",get_loaderInfo:"get_loaderInfo",set_height:"set_height",get_height:"get_height",set_filters:"set_filters",get_filters:"get_filters",set_cacheAsBitmapMatrix:"set_cacheAsBitmapMatrix",get_cacheAsBitmapMatrix:"get_cacheAsBitmapMatrix",set_cacheAsBitmap:"set_cacheAsBitmap",get_cacheAsBitmap:"get_cacheAsBitmap",set_blendMode:"set_blendMode",get_blendMode:"get_blendMode",set_alpha:"set_alpha",get_alpha:"get_alpha"}
});
var openfl_display_InteractiveObject = function() {
openfl_display_DisplayObject.call(this);
this.doubleClickEnabled = false;
this.mouseEnabled = true;
this.needsSoftKeyboard = false;
this.__tabEnabled = null;
this.__tabIndex = -1;
};
$hxClasses["openfl.display.InteractiveObject"] = openfl_display_InteractiveObject;
openfl_display_InteractiveObject.__name__ = "openfl.display.InteractiveObject";
openfl_display_InteractiveObject.__super__ = openfl_display_DisplayObject;
openfl_display_InteractiveObject.prototype = $extend(openfl_display_DisplayObject.prototype,{
doubleClickEnabled: null
,focusRect: null
,mouseEnabled: null
,needsSoftKeyboard: null
,softKeyboardInputAreaOfInterest: null
,__tabEnabled: null
,__tabIndex: null
,requestSoftKeyboard: function() {
openfl__$internal_Lib.notImplemented({ fileName : "openfl/display/InteractiveObject.hx", lineNumber : 57, 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.prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly,hitObject);
}
,__tabTest: function(stack) {
if(this.get_tabEnabled()) {
stack.push(this);
}
}
,get_tabEnabled: function() {
if(this.__tabEnabled == true) {
return true;
} else {
return false;
}
}
,set_tabEnabled: function(value) {
if(this.__tabEnabled != value) {
this.__tabEnabled = value;
this.dispatchEvent(new openfl_events_Event("tabEnabledChange",true,false));
}
return this.__tabEnabled;
}
,get_tabIndex: function() {
return this.__tabIndex;
}
,set_tabIndex: function(value) {
if(this.__tabIndex != value) {
if(value < -1) {
throw haxe_Exception.thrown(new openfl_errors_RangeError("Parameter tabIndex must be a non-negative number; got " + value));
}
this.__tabIndex = value;
this.dispatchEvent(new openfl_events_Event("tabIndexChange",true,false));
}
return this.__tabIndex;
}
,__class__: openfl_display_InteractiveObject
,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{set_tabIndex:"set_tabIndex",get_tabIndex:"get_tabIndex",set_tabEnabled:"set_tabEnabled",get_tabEnabled:"get_tabEnabled"})
});
var openfl_display_DisplayObjectContainer = function() {
openfl_display_InteractiveObject.call(this);
this.mouseChildren = true;
this.__tabChildren = true;
this.__children = [];
this.__removedChildren = openfl_Vector.toObjectVector(null);
};
$hxClasses["openfl.display.DisplayObjectContainer"] = openfl_display_DisplayObjectContainer;
openfl_display_DisplayObjectContainer.__name__ = "openfl.display.DisplayObjectContainer";
openfl_display_DisplayObjectContainer.__super__ = openfl_display_InteractiveObject;
openfl_display_DisplayObjectContainer.prototype = $extend(openfl_display_InteractiveObject.prototype,{
mouseChildren: null
,__removedChildren: null
,__tabChildren: null
,addChild: function(child) {
return this.addChildAt(child,this.get_numChildren());
}
,addChildAt: function(child,index) {
if(child == null) {
var error = new openfl_errors_TypeError("Error #2007: Parameter child must be non-null.");
error.errorID = 2007;
throw haxe_Exception.thrown(error);
} else if(child.stage == child) {
var error = new openfl_errors_ArgumentError("Error #3783: A Stage object cannot be added as the child of another object.");
error.errorID = 3783;
throw haxe_Exception.thrown(error);
}
if(index > this.__children.length || index < 0) {
throw haxe_Exception.thrown("Invalid index position " + index);
}
if(child.parent == this) {
if(this.__children[index] != child) {
HxOverrides.remove(this.__children,child);
this.__children.splice(index,0,child);
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
} 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) {
child.__setStageReference(this.stage);
}
child.__setTransformDirty();
if(!child.__renderDirty) {
child.__renderDirty = true;
child.__setParentRenderDirty();
}
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
var event = new openfl_events_Event("added");
event.bubbles = true;
event.target = child;
child.__dispatchWithCapture(event);
if(addedToStage) {
event = new openfl_events_Event("addedToStage",false,false);
child.__dispatchWithCapture(event);
child.__dispatchChildren(event);
}
}
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 _g = 0;
var _g1 = this.__children.length;
while(_g < _g1) {
var i = _g++;
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();
if(!child.__renderDirty) {
child.__renderDirty = true;
child.__setParentRenderDirty();
}
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
var event = new openfl_events_Event("removed",true);
child.__dispatchWithCapture(event);
if(this.stage != null) {
if(child.stage != null && this.stage.get_focus() == child) {
this.stage.set_focus(null);
}
var event = new openfl_events_Event("removedFromStage",false,false);
child.__dispatchWithCapture(event);
child.__dispatchChildren(event);
child.__setStageReference(null);
}
child.parent = null;
HxOverrides.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 haxe_Exception.thrown(new openfl_errors_RangeError("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.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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
,swapChildrenAt: function(index1,index2) {
var swap = this.__children[index1];
this.__children[index1] = this.__children[index2];
this.__children[index2] = swap;
swap = null;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
,__cleanup: function() {
openfl_display_InteractiveObject.prototype.__cleanup.call(this);
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__cleanup();
}
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__cleanup();
}
}
this.__removedChildren.set_length(0);
}
,__cleanupRemovedChildren: function() {
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__cleanup();
}
}
this.__removedChildren.set_length(0);
}
,__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.prototype.__getBounds.call(this,rect,matrix);
if(this.__children.length == 0) {
return;
}
var childWorldTransform = openfl_geom_Matrix.__pool.get();
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
if(child.__scaleX == 0 || child.__scaleY == 0) {
continue;
}
var local = child.__transform;
childWorldTransform.a = local.a * matrix.a + local.b * matrix.c;
childWorldTransform.b = local.a * matrix.b + local.b * matrix.d;
childWorldTransform.c = local.c * matrix.a + local.d * matrix.c;
childWorldTransform.d = local.c * matrix.b + local.d * matrix.d;
childWorldTransform.tx = local.tx * matrix.a + local.ty * matrix.c + matrix.tx;
childWorldTransform.ty = local.tx * matrix.b + local.ty * matrix.d + matrix.ty;
child.__getBounds(rect,childWorldTransform);
}
openfl_geom_Matrix.__pool.release(childWorldTransform);
}
,__getFilterBounds: function(rect,matrix) {
openfl_display_InteractiveObject.prototype.__getFilterBounds.call(this,rect,matrix);
if(this.__scrollRect != null) {
return;
}
if(this.__children.length == 0) {
return;
}
var childWorldTransform = openfl_geom_Matrix.__pool.get();
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;
}
var local = child.__transform;
childWorldTransform.a = local.a * matrix.a + local.b * matrix.c;
childWorldTransform.b = local.a * matrix.b + local.b * matrix.d;
childWorldTransform.c = local.c * matrix.a + local.d * matrix.c;
childWorldTransform.d = local.c * matrix.b + local.d * matrix.d;
childWorldTransform.tx = local.tx * matrix.a + local.ty * matrix.c + matrix.tx;
childWorldTransform.ty = local.tx * matrix.b + local.ty * matrix.d + matrix.ty;
child.__getFilterBounds(rect,childWorldTransform);
}
openfl_geom_Matrix.__pool.release(childWorldTransform);
}
,__getRenderBounds: function(rect,matrix) {
if(this.__scrollRect != null) {
openfl_display_InteractiveObject.prototype.__getRenderBounds.call(this,rect,matrix);
return;
} else {
openfl_display_InteractiveObject.prototype.__getBounds.call(this,rect,matrix);
}
if(this.__children.length == 0) {
return;
}
var childWorldTransform = openfl_geom_Matrix.__pool.get();
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;
}
var local = child.__transform;
childWorldTransform.a = local.a * matrix.a + local.b * matrix.c;
childWorldTransform.b = local.a * matrix.b + local.b * matrix.d;
childWorldTransform.c = local.c * matrix.a + local.d * matrix.c;
childWorldTransform.d = local.c * matrix.b + local.d * matrix.d;
childWorldTransform.tx = local.tx * matrix.a + local.ty * matrix.c + matrix.tx;
childWorldTransform.ty = local.tx * matrix.b + local.ty * matrix.d + matrix.ty;
child.__getRenderBounds(rect,childWorldTransform);
}
openfl_geom_Matrix.__pool.release(childWorldTransform);
}
,__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.__pool.get();
point.setTo(x,y);
var _this = this.__getRenderTransform();
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;
}
if(!this.__scrollRect.containsPoint(point)) {
openfl_geom_Point.__pool.release(point);
return false;
}
openfl_geom_Point.__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 {
var hitTest = false;
while(--i >= 0) if(this.__children[i].__hitTest(x,y,shapeFlag,stack,false,this.__children[i])) {
hitTest = true;
if(stack == null) {
break;
}
}
return hitTest;
}
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.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(renderer) {
}
,__renderCairoMask: function(renderer) {
}
,__renderCanvas: function(renderer) {
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__cleanup();
}
}
this.__removedChildren.set_length(0);
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.prototype.__renderCanvas.call(this,renderer);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
return;
}
renderer.__pushMaskObject(this);
if(renderer.__stage != null) {
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderCanvas(renderer);
child.__renderDirty = false;
}
this.__renderDirty = false;
} else {
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderCanvas(renderer);
}
}
renderer.__popMaskObject(this);
}
,__renderCanvasMask: function(renderer) {
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__cleanup();
}
}
this.__removedChildren.set_length(0);
if(this.__graphics != null) {
openfl_display__$internal_CanvasGraphics.renderMask(this.__graphics,renderer);
}
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderCanvasMask(renderer);
}
}
,__renderDOM: function(renderer) {
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__renderDOM(renderer);
}
}
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__cleanup();
}
}
this.__removedChildren.set_length(0);
openfl_display_InteractiveObject.prototype.__renderDOM.call(this,renderer);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
return;
}
renderer.__pushMaskObject(this);
if(renderer.__stage != null) {
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderDOM(renderer);
child.__renderDirty = false;
}
this.__renderDirty = false;
} else {
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderDOM(renderer);
}
}
renderer.__popMaskObject(this);
}
,__renderDOMClear: function(renderer) {
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__renderDOMClear(renderer);
}
}
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__cleanup();
}
}
this.__removedChildren.set_length(0);
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderDOMClear(renderer);
}
}
,__renderGL: function(renderer) {
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__cleanup();
}
}
this.__removedChildren.set_length(0);
if(!this.__renderable || this.__worldAlpha <= 0) {
return;
}
openfl_display_InteractiveObject.prototype.__renderGL.call(this,renderer);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
return;
}
if(this.__children.length > 0) {
renderer.__pushMaskObject(this);
if(renderer.__stage != null) {
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderGL(renderer);
child.__renderDirty = false;
}
this.__renderDirty = false;
} else {
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderGL(renderer);
}
}
}
if(this.__children.length > 0) {
renderer.__popMaskObject(this);
}
}
,__renderGLMask: function(renderer) {
var orphan = this.__removedChildren.iterator();
while(orphan.hasNext()) {
var orphan1 = orphan.next();
if(orphan1.stage == null) {
orphan1.__cleanup();
}
}
this.__removedChildren.set_length(0);
if(this.__graphics != null) {
openfl_display__$internal_Context3DShape.renderMask(this,renderer);
}
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__renderGLMask(renderer);
}
}
,__setStageReference: function(stage) {
openfl_display_InteractiveObject.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();
}
}
}
}
,__shouldCacheHardware: function(value) {
if(value == true) {
return true;
}
value = openfl_display_InteractiveObject.prototype.__shouldCacheHardware.call(this,value);
if(value == true) {
return true;
}
if(this.__children != null) {
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
value = child.__shouldCacheHardware(value);
if(value == true) {
return true;
}
}
}
return value;
}
,__stopAllMovieClips: function() {
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__stopAllMovieClips();
}
}
,__tabTest: function(stack) {
openfl_display_InteractiveObject.prototype.__tabTest.call(this,stack);
if(!this.get_tabChildren()) {
return;
}
var interactive = false;
var interactiveObject = null;
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
interactive = child.__getInteractive(null);
if(interactive) {
interactiveObject = child;
interactiveObject.__tabTest(stack);
}
}
}
,__update: function(transformOnly,updateChildren) {
openfl_display_InteractiveObject.prototype.__update.call(this,transformOnly,updateChildren);
if(updateChildren) {
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;
}
,get_tabChildren: function() {
return this.__tabChildren;
}
,set_tabChildren: function(value) {
if(this.__tabChildren != value) {
this.__tabChildren = value;
this.dispatchEvent(new openfl_events_Event("tabChildrenChange",true,false));
}
return this.__tabChildren;
}
,__class__: openfl_display_DisplayObjectContainer
,__properties__: $extend(openfl_display_InteractiveObject.prototype.__properties__,{set_tabChildren:"set_tabChildren",get_tabChildren:"get_tabChildren",get_numChildren:"get_numChildren"})
});
var openfl_display_Sprite = function() {
openfl_display_DisplayObjectContainer.call(this);
this.__buttonMode = false;
this.useHandCursor = true;
};
$hxClasses["openfl.display.Sprite"] = openfl_display_Sprite;
openfl_display_Sprite.__name__ = "openfl.display.Sprite";
openfl_display_Sprite.__super__ = openfl_display_DisplayObjectContainer;
openfl_display_Sprite.prototype = $extend(openfl_display_DisplayObjectContainer.prototype,{
dropTarget: null
,hitArea: null
,useHandCursor: null
,__buttonMode: null
,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 "button";
} 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.__pool.get();
point.setTo(x,y);
var _this = this.__getRenderTransform();
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;
}
if(!this.__scrollRect.containsPoint(point)) {
openfl_geom_Point.__pool.release(point);
return this.__hitTestHitArea(x,y,shapeFlag,stack,true,hitObject);
}
openfl_geom_Point.__pool.release(point);
}
if(openfl_display_DisplayObjectContainer.prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly,hitObject)) {
if(stack != null) {
return interactiveOnly;
} else {
return true;
}
} 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(stack != null && hitTest) {
stack[stack.length] = hitObject;
}
return hitTest;
}
}
return false;
}
,__hitTestMask: function(x,y) {
if(openfl_display_DisplayObjectContainer.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(this);
}
return this.__graphics;
}
,get_tabEnabled: function() {
if(this.__tabEnabled == null) {
return this.__buttonMode;
} else {
return this.__tabEnabled;
}
}
,get_buttonMode: function() {
return this.__buttonMode;
}
,set_buttonMode: function(value) {
return this.__buttonMode = value;
}
,__class__: openfl_display_Sprite
,__properties__: $extend(openfl_display_DisplayObjectContainer.prototype.__properties__,{get_graphics:"get_graphics",set_buttonMode:"set_buttonMode",get_buttonMode:"get_buttonMode"})
});
var Main = function() {
openfl_display_Sprite.call(this);
this.addChild(new flixel_FlxGame(0,0,TitleState));
this.addChild(new openfl_display_FPS(10,3,16777215));
};
$hxClasses["Main"] = Main;
Main.__name__ = "Main";
Main.__super__ = openfl_display_Sprite;
Main.prototype = $extend(openfl_display_Sprite.prototype,{
__class__: Main
});
var DocumentClass = function(current) {
current.addChild(this);
Main.call(this);
this.dispatchEvent(new openfl_events_Event("addedToStage",false,false));
};
$hxClasses["DocumentClass"] = DocumentClass;
DocumentClass.__name__ = "DocumentClass";
DocumentClass.__super__ = Main;
DocumentClass.prototype = $extend(Main.prototype,{
__class__: DocumentClass
});
var BackgroundDancer = function(x,y) {
this.danceDir = false;
flixel_FlxSprite.call(this,x,y);
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/limo/limoDancer.png","assets/images/limo/limoDancer.xml"));
this.animation.addByIndices("danceLeft","bg dancer sketch PINK",[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"",24,false);
this.animation.addByIndices("danceRight","bg dancer sketch PINK",[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"",24,false);
this.animation.play("danceLeft");
this.set_antialiasing(true);
};
$hxClasses["BackgroundDancer"] = BackgroundDancer;
BackgroundDancer.__name__ = "BackgroundDancer";
BackgroundDancer.__super__ = flixel_FlxSprite;
BackgroundDancer.prototype = $extend(flixel_FlxSprite.prototype,{
danceDir: null
,dance: function() {
this.danceDir = !this.danceDir;
if(this.danceDir) {
this.animation.play("danceRight",true);
} else {
this.animation.play("danceLeft",true);
}
}
,__class__: BackgroundDancer
});
var BackgroundGirls = function(x,y) {
this.danceDir = false;
flixel_FlxSprite.call(this,x,y);
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/bgFreaks.png","assets/images/weeb/bgFreaks.xml"));
this.animation.addByIndices("danceLeft","BG girls group",CoolUtil.numberArray(14),"",24,false);
this.animation.addByIndices("danceRight","BG girls group",CoolUtil.numberArray(30,15),"",24,false);
this.animation.play("danceLeft");
};
$hxClasses["BackgroundGirls"] = BackgroundGirls;
BackgroundGirls.__name__ = "BackgroundGirls";
BackgroundGirls.__super__ = flixel_FlxSprite;
BackgroundGirls.prototype = $extend(flixel_FlxSprite.prototype,{
danceDir: null
,getScared: function() {
this.animation.addByIndices("danceLeft","BG fangirls dissuaded",CoolUtil.numberArray(14),"",24,false);
this.animation.addByIndices("danceRight","BG fangirls dissuaded",CoolUtil.numberArray(30,15),"",24,false);
this.dance();
}
,dance: function() {
this.danceDir = !this.danceDir;
if(this.danceDir) {
this.animation.play("danceRight",true);
} else {
this.animation.play("danceLeft",true);
}
}
,__class__: BackgroundGirls
});
var Character = function(x,y,character,isPlayer) {
if(isPlayer == null) {
isPlayer = false;
}
if(character == null) {
character = "bf";
}
this.danced = false;
this.holdTimer = 0;
this.curCharacter = "bf";
this.isPlayer = false;
this.debugMode = false;
this.animOffsets = new haxe_ds_StringMap();
flixel_FlxSprite.call(this,x,y);
this.curCharacter = character;
this.isPlayer = isPlayer;
var tex;
this.set_antialiasing(true);
switch(this.curCharacter) {
case "bf":
var tex1 = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/BOYFRIEND.png","assets/images/BOYFRIEND.xml");
this.set_frames(tex1);
this.animation.addByPrefix("idle","BF idle dance",24,false);
this.animation.addByPrefix("singUP","BF NOTE UP0",24,false);
this.animation.addByPrefix("singLEFT","BF NOTE LEFT0",24,false);
this.animation.addByPrefix("singRIGHT","BF NOTE RIGHT0",24,false);
this.animation.addByPrefix("singDOWN","BF NOTE DOWN0",24,false);
this.animation.addByPrefix("singUPmiss","BF NOTE UP MISS",24,false);
this.animation.addByPrefix("singLEFTmiss","BF NOTE LEFT MISS",24,false);
this.animation.addByPrefix("singRIGHTmiss","BF NOTE RIGHT MISS",24,false);
this.animation.addByPrefix("singDOWNmiss","BF NOTE DOWN MISS",24,false);
this.animation.addByPrefix("hey","BF HEY",24,false);
this.animation.addByPrefix("firstDeath","BF dies",24,false);
this.animation.addByPrefix("deathLoop","BF Dead Loop",24,true);
this.animation.addByPrefix("deathConfirm","BF Dead confirm",24,false);
this.animation.addByPrefix("scared","BF idle shaking",24);
this.addOffset("idle",-5);
this.addOffset("singUP",-29,27);
this.addOffset("singRIGHT",-38,-7);
this.addOffset("singLEFT",12,-6);
this.addOffset("singDOWN",-10,-50);
this.addOffset("singUPmiss",-29,27);
this.addOffset("singRIGHTmiss",-30,21);
this.addOffset("singLEFTmiss",12,24);
this.addOffset("singDOWNmiss",-11,-19);
this.addOffset("hey",7,4);
this.addOffset("firstDeath",37,11);
this.addOffset("deathLoop",37,5);
this.addOffset("deathConfirm",37,69);
this.addOffset("scared",-4);
this.playAnim("idle");
this.set_flipX(true);
break;
case "bf-car":
var tex1 = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/bfCar.png","assets/images/bfCar.xml");
this.set_frames(tex1);
this.animation.addByPrefix("idle","BF idle dance",24,false);
this.animation.addByPrefix("singUP","BF NOTE UP0",24,false);
this.animation.addByPrefix("singLEFT","BF NOTE LEFT0",24,false);
this.animation.addByPrefix("singRIGHT","BF NOTE RIGHT0",24,false);
this.animation.addByPrefix("singDOWN","BF NOTE DOWN0",24,false);
this.animation.addByPrefix("singUPmiss","BF NOTE UP MISS",24,false);
this.animation.addByPrefix("singLEFTmiss","BF NOTE LEFT MISS",24,false);
this.animation.addByPrefix("singRIGHTmiss","BF NOTE RIGHT MISS",24,false);
this.animation.addByPrefix("singDOWNmiss","BF NOTE DOWN MISS",24,false);
this.addOffset("idle",-5);
this.addOffset("singUP",-29,27);
this.addOffset("singRIGHT",-38,-7);
this.addOffset("singLEFT",12,-6);
this.addOffset("singDOWN",-10,-50);
this.addOffset("singUPmiss",-29,27);
this.addOffset("singRIGHTmiss",-30,21);
this.addOffset("singLEFTmiss",12,24);
this.addOffset("singDOWNmiss",-11,-19);
this.playAnim("idle");
this.set_flipX(true);
break;
case "bf-christmas":
var tex1 = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/christmas/bfChristmas.png","assets/images/christmas/bfChristmas.xml");
this.set_frames(tex1);
this.animation.addByPrefix("idle","BF idle dance",24,false);
this.animation.addByPrefix("singUP","BF NOTE UP0",24,false);
this.animation.addByPrefix("singLEFT","BF NOTE LEFT0",24,false);
this.animation.addByPrefix("singRIGHT","BF NOTE RIGHT0",24,false);
this.animation.addByPrefix("singDOWN","BF NOTE DOWN0",24,false);
this.animation.addByPrefix("singUPmiss","BF NOTE UP MISS",24,false);
this.animation.addByPrefix("singLEFTmiss","BF NOTE LEFT MISS",24,false);
this.animation.addByPrefix("singRIGHTmiss","BF NOTE RIGHT MISS",24,false);
this.animation.addByPrefix("singDOWNmiss","BF NOTE DOWN MISS",24,false);
this.animation.addByPrefix("hey","BF HEY",24,false);
this.addOffset("idle",-5);
this.addOffset("singUP",-29,27);
this.addOffset("singRIGHT",-38,-7);
this.addOffset("singLEFT",12,-6);
this.addOffset("singDOWN",-10,-50);
this.addOffset("singUPmiss",-29,27);
this.addOffset("singRIGHTmiss",-30,21);
this.addOffset("singLEFTmiss",12,24);
this.addOffset("singDOWNmiss",-11,-19);
this.addOffset("hey",7,4);
this.playAnim("idle");
this.set_flipX(true);
break;
case "bf-pixel":
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/bfPixel.png","assets/images/weeb/bfPixel.xml"));
this.animation.addByPrefix("idle","BF IDLE",24,false);
this.animation.addByPrefix("singUP","BF UP NOTE",24,false);
this.animation.addByPrefix("singLEFT","BF LEFT NOTE",24,false);
this.animation.addByPrefix("singRIGHT","BF RIGHT NOTE",24,false);
this.animation.addByPrefix("singDOWN","BF DOWN NOTE",24,false);
this.animation.addByPrefix("singUPmiss","BF UP MISS",24,false);
this.animation.addByPrefix("singLEFTmiss","BF LEFT MISS",24,false);
this.animation.addByPrefix("singRIGHTmiss","BF RIGHT MISS",24,false);
this.animation.addByPrefix("singDOWNmiss","BF DOWN MISS",24,false);
this.addOffset("idle");
this.addOffset("singUP");
this.addOffset("singRIGHT");
this.addOffset("singLEFT");
this.addOffset("singDOWN");
this.addOffset("singUPmiss");
this.addOffset("singRIGHTmiss");
this.addOffset("singLEFTmiss");
this.addOffset("singDOWNmiss");
this.setGraphicSize(this.get_width() * 6 | 0);
this.updateHitbox();
this.playAnim("idle");
var _g = this;
_g.set_width(_g.get_width() - 100);
var _g = this;
_g.set_height(_g.get_height() - 100);
this.set_antialiasing(false);
this.set_flipX(true);
break;
case "bf-pixel-dead":
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/bfPixelsDEAD.png","assets/images/weeb/bfPixelsDEAD.xml"));
this.animation.addByPrefix("singUP","BF Dies pixel",24,false);
this.animation.addByPrefix("firstDeath","BF Dies pixel",24,false);
this.animation.addByPrefix("deathLoop","Retry Loop",24,true);
this.animation.addByPrefix("deathConfirm","RETRY CONFIRM",24,false);
this.animation.play("firstDeath");
this.addOffset("firstDeath");
this.addOffset("deathLoop",-37);
this.addOffset("deathConfirm",-37);
this.playAnim("firstDeath");
this.setGraphicSize(this.get_width() * 6 | 0);
this.updateHitbox();
this.set_antialiasing(false);
this.set_flipX(true);
break;
case "dad":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/DADDY_DEAREST.png","assets/images/DADDY_DEAREST.xml");
this.set_frames(tex);
this.animation.addByPrefix("idle","Dad idle dance",24);
this.animation.addByPrefix("singUP","Dad Sing Note UP",24);
this.animation.addByPrefix("singRIGHT","Dad Sing Note RIGHT",24);
this.animation.addByPrefix("singDOWN","Dad Sing Note DOWN",24);
this.animation.addByPrefix("singLEFT","Dad Sing Note LEFT",24);
this.addOffset("idle");
this.addOffset("singUP",-6,50);
this.addOffset("singRIGHT",0,27);
this.addOffset("singLEFT",-10,10);
this.addOffset("singDOWN",0,-30);
this.playAnim("idle");
break;
case "gf":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/GF_assets.png","assets/images/GF_assets.xml");
this.set_frames(tex);
this.animation.addByPrefix("cheer","GF Cheer",24,false);
this.animation.addByPrefix("singLEFT","GF left note",24,false);
this.animation.addByPrefix("singRIGHT","GF Right Note",24,false);
this.animation.addByPrefix("singUP","GF Up Note",24,false);
this.animation.addByPrefix("singDOWN","GF Down Note",24,false);
this.animation.addByIndices("sad","gf sad",[0,1,2,3,4,5,6,7,8,9,10,11,12],"",24,false);
this.animation.addByIndices("danceLeft","GF Dancing Beat",[30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"",24,false);
this.animation.addByIndices("danceRight","GF Dancing Beat",[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"",24,false);
this.animation.addByIndices("hairBlow","GF Dancing Beat Hair blowing",[0,1,2,3],"",24);
this.animation.addByIndices("hairFall","GF Dancing Beat Hair Landing",[0,1,2,3,4,5,6,7,8,9,10,11],"",24,false);
this.animation.addByPrefix("scared","GF FEAR",24);
this.addOffset("cheer");
this.addOffset("sad",-2,-2);
this.addOffset("danceLeft",0,-9);
this.addOffset("danceRight",0,-9);
this.addOffset("singUP",0,4);
this.addOffset("singRIGHT",0,-20);
this.addOffset("singLEFT",0,-19);
this.addOffset("singDOWN",0,-20);
this.addOffset("hairBlow",45,-8);
this.addOffset("hairFall",0,-9);
this.addOffset("scared",-2,-17);
this.playAnim("danceRight");
break;
case "gf-car":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/gfCar.png","assets/images/gfCar.xml");
this.set_frames(tex);
this.animation.addByIndices("singUP","GF Dancing Beat Hair blowing CAR",[0],"",24,false);
this.animation.addByIndices("danceLeft","GF Dancing Beat Hair blowing CAR",[30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"",24,false);
this.animation.addByIndices("danceRight","GF Dancing Beat Hair blowing CAR",[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"",24,false);
this.addOffset("danceLeft",0);
this.addOffset("danceRight",0);
this.playAnim("danceRight");
break;
case "gf-christmas":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/christmas/gfChristmas.png","assets/images/christmas/gfChristmas.xml");
this.set_frames(tex);
this.animation.addByPrefix("cheer","GF Cheer",24,false);
this.animation.addByPrefix("singLEFT","GF left note",24,false);
this.animation.addByPrefix("singRIGHT","GF Right Note",24,false);
this.animation.addByPrefix("singUP","GF Up Note",24,false);
this.animation.addByPrefix("singDOWN","GF Down Note",24,false);
this.animation.addByIndices("sad","gf sad",[0,1,2,3,4,5,6,7,8,9,10,11,12],"",24,false);
this.animation.addByIndices("danceLeft","GF Dancing Beat",[30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"",24,false);
this.animation.addByIndices("danceRight","GF Dancing Beat",[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"",24,false);
this.animation.addByIndices("hairBlow","GF Dancing Beat Hair blowing",[0,1,2,3],"",24);
this.animation.addByIndices("hairFall","GF Dancing Beat Hair Landing",[0,1,2,3,4,5,6,7,8,9,10,11],"",24,false);
this.animation.addByPrefix("scared","GF FEAR",24);
this.addOffset("cheer");
this.addOffset("sad",-2,-2);
this.addOffset("danceLeft",0,-9);
this.addOffset("danceRight",0,-9);
this.addOffset("singUP",0,4);
this.addOffset("singRIGHT",0,-20);
this.addOffset("singLEFT",0,-19);
this.addOffset("singDOWN",0,-20);
this.addOffset("hairBlow",45,-8);
this.addOffset("hairFall",0,-9);
this.addOffset("scared",-2,-17);
this.playAnim("danceRight");
break;
case "gf-pixel":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/gfPixel.png","assets/images/weeb/gfPixel.xml");
this.set_frames(tex);
this.animation.addByIndices("singUP","GF IDLE",[2],"",24,false);
this.animation.addByIndices("danceLeft","GF IDLE",[30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"",24,false);
this.animation.addByIndices("danceRight","GF IDLE",[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"",24,false);
this.addOffset("danceLeft",0);
this.addOffset("danceRight",0);
this.playAnim("danceRight");
this.setGraphicSize(this.get_width() * PlayState.daPixelZoom | 0);
this.updateHitbox();
this.set_antialiasing(false);
break;
case "mom":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/Mom_Assets.png","assets/images/Mom_Assets.xml");
this.set_frames(tex);
this.animation.addByPrefix("idle","Mom Idle",24,false);
this.animation.addByPrefix("singUP","Mom Up Pose",24,false);
this.animation.addByPrefix("singDOWN","MOM DOWN POSE",24,false);
this.animation.addByPrefix("singLEFT","Mom Left Pose",24,false);
this.animation.addByPrefix("singRIGHT","Mom Pose Left",24,false);
this.addOffset("idle");
this.addOffset("singUP",14,71);
this.addOffset("singRIGHT",10,-60);
this.addOffset("singLEFT",250,-23);
this.addOffset("singDOWN",20,-160);
this.playAnim("idle");
break;
case "mom-car":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/momCar.png","assets/images/momCar.xml");
this.set_frames(tex);
this.animation.addByPrefix("idle","Mom Idle",24,false);
this.animation.addByPrefix("singUP","Mom Up Pose",24,false);
this.animation.addByPrefix("singDOWN","MOM DOWN POSE",24,false);
this.animation.addByPrefix("singLEFT","Mom Left Pose",24,false);
this.animation.addByPrefix("singRIGHT","Mom Pose Left",24,false);
this.addOffset("idle");
this.addOffset("singUP",14,71);
this.addOffset("singRIGHT",10,-60);
this.addOffset("singLEFT",250,-23);
this.addOffset("singDOWN",20,-160);
this.playAnim("idle");
break;
case "monster":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/Monster_Assets.png","assets/images/Monster_Assets.xml");
this.set_frames(tex);
this.animation.addByPrefix("idle","monster idle",24,false);
this.animation.addByPrefix("singUP","monster up note",24,false);
this.animation.addByPrefix("singDOWN","monster down",24,false);
this.animation.addByPrefix("singLEFT","Monster left note",24,false);
this.animation.addByPrefix("singRIGHT","Monster Right note",24,false);
this.addOffset("idle");
this.addOffset("singUP",-20,50);
this.addOffset("singRIGHT",-51);
this.addOffset("singLEFT",-30);
this.addOffset("singDOWN",-30,-40);
this.playAnim("idle");
break;
case "monster-christmas":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/christmas/monsterChristmas.png","assets/images/christmas/monsterChristmas.xml");
this.set_frames(tex);
this.animation.addByPrefix("idle","monster idle",24,false);
this.animation.addByPrefix("singUP","monster up note",24,false);
this.animation.addByPrefix("singDOWN","monster down",24,false);
this.animation.addByPrefix("singLEFT","Monster left note",24,false);
this.animation.addByPrefix("singRIGHT","Monster Right note",24,false);
this.addOffset("idle");
this.addOffset("singUP",-20,50);
this.addOffset("singRIGHT",-51);
this.addOffset("singLEFT",-30);
this.addOffset("singDOWN",-40,-94);
this.playAnim("idle");
break;
case "parents-christmas":
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/christmas/mom_dad_christmas_assets.png","assets/images/christmas/mom_dad_christmas_assets.xml"));
this.animation.addByPrefix("idle","Parent Christmas Idle",24,false);
this.animation.addByPrefix("singUP","Parent Up Note Dad",24,false);
this.animation.addByPrefix("singDOWN","Parent Down Note Dad",24,false);
this.animation.addByPrefix("singLEFT","Parent Left Note Dad",24,false);
this.animation.addByPrefix("singRIGHT","Parent Right Note Dad",24,false);
this.animation.addByPrefix("singUP-alt","Parent Up Note Mom",24,false);
this.animation.addByPrefix("singDOWN-alt","Parent Down Note Mom",24,false);
this.animation.addByPrefix("singLEFT-alt","Parent Left Note Mom",24,false);
this.animation.addByPrefix("singRIGHT-alt","Parent Right Note Mom",24,false);
this.addOffset("idle");
this.addOffset("singUP",-47,24);
this.addOffset("singRIGHT",-1,-23);
this.addOffset("singLEFT",-30,16);
this.addOffset("singDOWN",-31,-29);
this.addOffset("singUP-alt",-47,24);
this.addOffset("singRIGHT-alt",-1,-24);
this.addOffset("singLEFT-alt",-30,15);
this.addOffset("singDOWN-alt",-30,-27);
this.playAnim("idle");
break;
case "pico":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/Pico_FNF_assetss.png","assets/images/Pico_FNF_assetss.xml");
this.set_frames(tex);
this.animation.addByPrefix("idle","Pico Idle Dance",24);
this.animation.addByPrefix("singUP","pico Up note0",24,false);
this.animation.addByPrefix("singDOWN","Pico Down Note0",24,false);
if(isPlayer) {
this.animation.addByPrefix("singLEFT","Pico NOTE LEFT0",24,false);
this.animation.addByPrefix("singRIGHT","Pico Note Right0",24,false);
this.animation.addByPrefix("singRIGHTmiss","Pico Note Right Miss",24,false);
this.animation.addByPrefix("singLEFTmiss","Pico NOTE LEFT miss",24,false);
} else {
this.animation.addByPrefix("singLEFT","Pico Note Right0",24,false);
this.animation.addByPrefix("singRIGHT","Pico NOTE LEFT0",24,false);
this.animation.addByPrefix("singRIGHTmiss","Pico NOTE LEFT miss",24,false);
this.animation.addByPrefix("singLEFTmiss","Pico Note Right Miss",24,false);
}
this.animation.addByPrefix("singUPmiss","pico Up note miss",24);
this.animation.addByPrefix("singDOWNmiss","Pico Down Note MISS",24);
this.addOffset("idle");
this.addOffset("singUP",-29,27);
this.addOffset("singRIGHT",-68,-7);
this.addOffset("singLEFT",65,9);
this.addOffset("singDOWN",200,-70);
this.addOffset("singUPmiss",-19,67);
this.addOffset("singRIGHTmiss",-60,41);
this.addOffset("singLEFTmiss",62,64);
this.addOffset("singDOWNmiss",210,-28);
this.playAnim("idle");
this.set_flipX(true);
break;
case "senpai":
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/senpai.png","assets/images/weeb/senpai.xml"));
this.animation.addByPrefix("idle","Senpai Idle",24,false);
this.animation.addByPrefix("singUP","SENPAI UP NOTE",24,false);
this.animation.addByPrefix("singLEFT","SENPAI LEFT NOTE",24,false);
this.animation.addByPrefix("singRIGHT","SENPAI RIGHT NOTE",24,false);
this.animation.addByPrefix("singDOWN","SENPAI DOWN NOTE",24,false);
this.addOffset("idle");
this.addOffset("singUP",5,37);
this.addOffset("singRIGHT");
this.addOffset("singLEFT",40);
this.addOffset("singDOWN",14);
this.playAnim("idle");
this.setGraphicSize(this.get_width() * 6 | 0);
this.updateHitbox();
this.set_antialiasing(false);
break;
case "senpai-angry":
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/senpai.png","assets/images/weeb/senpai.xml"));
this.animation.addByPrefix("idle","Angry Senpai Idle",24,false);
this.animation.addByPrefix("singUP","Angry Senpai UP NOTE",24,false);
this.animation.addByPrefix("singLEFT","Angry Senpai LEFT NOTE",24,false);
this.animation.addByPrefix("singRIGHT","Angry Senpai RIGHT NOTE",24,false);
this.animation.addByPrefix("singDOWN","Angry Senpai DOWN NOTE",24,false);
this.addOffset("idle");
this.addOffset("singUP",5,37);
this.addOffset("singRIGHT");
this.addOffset("singLEFT",40);
this.addOffset("singDOWN",14);
this.playAnim("idle");
this.setGraphicSize(this.get_width() * 6 | 0);
this.updateHitbox();
this.set_antialiasing(false);
break;
case "spirit":
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSpriteSheetPacker("assets/images/weeb/spirit.png","assets/images/weeb/spirit.txt"));
this.animation.addByPrefix("idle","idle spirit_",24,false);
this.animation.addByPrefix("singUP","up_",24,false);
this.animation.addByPrefix("singRIGHT","right_",24,false);
this.animation.addByPrefix("singLEFT","left_",24,false);
this.animation.addByPrefix("singDOWN","spirit down_",24,false);
this.addOffset("idle",-220,-280);
this.addOffset("singUP",-220,-240);
this.addOffset("singRIGHT",-220,-280);
this.addOffset("singLEFT",-200,-280);
this.addOffset("singDOWN",170,110);
this.setGraphicSize(this.get_width() * 6 | 0);
this.updateHitbox();
this.playAnim("idle");
this.set_antialiasing(false);
break;
case "spooky":
tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/spooky_kids_assets.png","assets/images/spooky_kids_assets.xml");
this.set_frames(tex);
this.animation.addByPrefix("singUP","spooky UP NOTE",24,false);
this.animation.addByPrefix("singDOWN","spooky DOWN note",24,false);
this.animation.addByPrefix("singLEFT","note sing left",24,false);
this.animation.addByPrefix("singRIGHT","spooky sing right",24,false);
this.animation.addByIndices("danceLeft","spooky dance idle",[0,2,6],"",12,false);
this.animation.addByIndices("danceRight","spooky dance idle",[8,10,12,14],"",12,false);
this.addOffset("danceLeft");
this.addOffset("danceRight");
this.addOffset("singUP",-20,26);
this.addOffset("singRIGHT",-130,-14);
this.addOffset("singLEFT",130,-10);
this.addOffset("singDOWN",-50,-130);
this.playAnim("danceRight");
break;
}
this.dance();
if(isPlayer) {
this.set_flipX(!this.flipX);
if(!StringTools.startsWith(this.curCharacter,"bf")) {
var oldRight = this.animation._animations.h["singRIGHT"].frames;
this.animation._animations.h["singRIGHT"].frames = this.animation._animations.h["singLEFT"].frames;
this.animation._animations.h["singLEFT"].frames = oldRight;
if(this.animation._animations.h["singRIGHTmiss"] != null) {
var oldMiss = this.animation._animations.h["singRIGHTmiss"].frames;
this.animation._animations.h["singRIGHTmiss"].frames = this.animation._animations.h["singLEFTmiss"].frames;
this.animation._animations.h["singLEFTmiss"].frames = oldMiss;
}
}
}
};
$hxClasses["Character"] = Character;
Character.__name__ = "Character";
Character.__super__ = flixel_FlxSprite;
Character.prototype = $extend(flixel_FlxSprite.prototype,{
animOffsets: null
,debugMode: null
,isPlayer: null
,curCharacter: null
,holdTimer: null
,update: function(elapsed) {
if(!StringTools.startsWith(this.curCharacter,"bf")) {
if(StringTools.startsWith(this.animation._curAnim.name,"sing")) {
this.holdTimer += elapsed;
}
var dadVar = 4;
if(this.curCharacter == "dad") {
dadVar = 6.1;
}
if(this.holdTimer >= Conductor.stepCrochet * dadVar * 0.001) {
this.dance();
this.holdTimer = 0;
}
}
if(this.curCharacter == "gf") {
if(this.animation._curAnim.name == "hairFall" && this.animation._curAnim.finished) {
this.playAnim("danceRight");
}
}
flixel_FlxSprite.prototype.update.call(this,elapsed);
}
,danced: null
,dance: function() {
if(!this.debugMode) {
switch(this.curCharacter) {
case "gf":
if(!StringTools.startsWith(this.animation._curAnim.name,"hair")) {
this.danced = !this.danced;
if(this.danced) {
this.playAnim("danceRight");
} else {
this.playAnim("danceLeft");
}
}
break;
case "gf-car":
if(!StringTools.startsWith(this.animation._curAnim.name,"hair")) {
this.danced = !this.danced;
if(this.danced) {
this.playAnim("danceRight");
} else {
this.playAnim("danceLeft");
}
}
break;
case "gf-christmas":
if(!StringTools.startsWith(this.animation._curAnim.name,"hair")) {
this.danced = !this.danced;
if(this.danced) {
this.playAnim("danceRight");
} else {
this.playAnim("danceLeft");
}
}
break;
case "gf-pixel":
if(!StringTools.startsWith(this.animation._curAnim.name,"hair")) {
this.danced = !this.danced;
if(this.danced) {
this.playAnim("danceRight");
} else {
this.playAnim("danceLeft");
}
}
break;
case "spooky":
this.danced = !this.danced;
if(this.danced) {
this.playAnim("danceRight");
} else {
this.playAnim("danceLeft");
}
break;
default:
this.playAnim("idle");
}
}
}
,playAnim: function(AnimName,Force,Reversed,Frame) {
if(Frame == null) {
Frame = 0;
}
if(Reversed == null) {
Reversed = false;
}
if(Force == null) {
Force = false;
}
this.animation.play(AnimName,Force,Reversed,Frame);
var daOffset = this.animOffsets.h[this.animation._curAnim.name];
if(Object.prototype.hasOwnProperty.call(this.animOffsets.h,this.animation._curAnim.name)) {
this.offset.set(daOffset[0],daOffset[1]);
} else {
this.offset.set(0,0);
}
if(this.curCharacter == "gf") {
if(AnimName == "singLEFT") {
this.danced = true;
} else if(AnimName == "singRIGHT") {
this.danced = false;
}
if(AnimName == "singUP" || AnimName == "singDOWN") {
this.danced = !this.danced;
}
}
}
,addOffset: function(name,x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var v = [x,y];
this.animOffsets.h[name] = v;
}
,__class__: Character
});
var Boyfriend = function(x,y,char) {
if(char == null) {
char = "bf";
}
this.stunned = false;
Character.call(this,x,y,char,true);
};
$hxClasses["Boyfriend"] = Boyfriend;
Boyfriend.__name__ = "Boyfriend";
Boyfriend.__super__ = Character;
Boyfriend.prototype = $extend(Character.prototype,{
stunned: null
,update: function(elapsed) {
if(!this.debugMode) {
if(StringTools.startsWith(this.animation._curAnim.name,"sing")) {
this.holdTimer += elapsed;
} else {
this.holdTimer = 0;
}
if(StringTools.endsWith(this.animation._curAnim.name,"miss") && this.animation._curAnim.finished && !this.debugMode) {
this.playAnim("idle",true,false,10);
}
if(this.animation._curAnim.name == "firstDeath" && this.animation._curAnim.finished) {
this.playAnim("deathLoop");
}
}
Character.prototype.update.call(this,elapsed);
}
,__class__: Boyfriend
});
var flixel_group_FlxTypedGroup = function(MaxSize) {
if(MaxSize == null) {
MaxSize = 0;
}
this._marker = 0;
this.length = 0;
flixel_FlxBasic.call(this);
this.members = [];
this.set_maxSize(Math.abs(MaxSize) | 0);
this.flixelType = 2;
};
$hxClasses["flixel.group.FlxTypedGroup"] = flixel_group_FlxTypedGroup;
flixel_group_FlxTypedGroup.__name__ = "flixel.group.FlxTypedGroup";
flixel_group_FlxTypedGroup.overlaps = function(Callback,Group,X,Y,InScreenSpace,Camera) {
var result = false;
if(Group != null) {
var i = 0;
var l = Group.length;
var basic;
while(i < l) {
basic = Group.members[i++];
if(basic != null && Callback(basic,X,Y,InScreenSpace,Camera)) {
result = true;
break;
}
}
}
return result;
};
flixel_group_FlxTypedGroup.resolveGroup = function(ObjectOrGroup) {
var group = null;
if(ObjectOrGroup != null) {
if(ObjectOrGroup.flixelType == 2) {
group = ObjectOrGroup;
} else if(ObjectOrGroup.flixelType == 4) {
var spriteGroup = ObjectOrGroup;
group = spriteGroup.group;
}
}
return group;
};
flixel_group_FlxTypedGroup.__super__ = flixel_FlxBasic;
flixel_group_FlxTypedGroup.prototype = $extend(flixel_FlxBasic.prototype,{
members: null
,maxSize: null
,length: null
,_memberAdded: null
,_memberRemoved: null
,_marker: null
,destroy: function() {
flixel_FlxBasic.prototype.destroy.call(this);
flixel_util_FlxDestroyUtil.destroy(this._memberAdded);
flixel_util_FlxDestroyUtil.destroy(this._memberRemoved);
if(this.members != null) {
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null) {
basic.destroy();
}
}
this.members = null;
}
}
,update: function(elapsed) {
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && basic.exists && basic.active) {
basic.update(elapsed);
}
}
}
,draw: function() {
var i = 0;
var basic = null;
var oldDefaultCameras = flixel_FlxCamera.defaultCameras;
if(this.get_cameras() != null) {
flixel_FlxCamera.defaultCameras = this.get_cameras();
}
while(i < this.length) {
basic = this.members[i++];
if(basic != null && basic.exists && basic.visible) {
basic.draw();
}
}
flixel_FlxCamera.defaultCameras = oldDefaultCameras;
}
,add: function(Object1) {
if(Object1 == null) {
return null;
}
if(this.members.indexOf(Object1) >= 0) {
return Object1;
}
var index = this.getFirstNull();
if(index != -1) {
this.members[index] = Object1;
if(index >= this.length) {
this.length = index + 1;
}
if(this._memberAdded != null) {
this._memberAdded.dispatch(Object1);
}
return Object1;
}
if(this.maxSize > 0 && this.length >= this.maxSize) {
return Object1;
}
this.members.push(Object1);
this.length++;
if(this._memberAdded != null) {
this._memberAdded.dispatch(Object1);
}
return Object1;
}
,insert: function(position,object) {
if(object == null) {
return null;
}
if(this.members.indexOf(object) >= 0) {
return object;
}
if(position < this.length && this.members[position] == null) {
this.members[position] = object;
if(this._memberAdded != null) {
this._memberAdded.dispatch(object);
}
return object;
}
if(this.maxSize > 0 && this.length >= this.maxSize) {
return object;
}
this.members.splice(position,0,object);
this.length++;
if(this._memberAdded != null) {
this._memberAdded.dispatch(object);
}
return object;
}
,recycle: function(ObjectClass,ObjectFactory,Force,Revive) {
if(Revive == null) {
Revive = true;
}
if(Force == null) {
Force = false;
}
var basic = null;
if(this.maxSize > 0) {
if(this.length < this.maxSize) {
var object = null;
if(ObjectFactory != null) {
object = ObjectFactory();
this.add(object);
} else if(ObjectClass != null) {
object = Type.createInstance(ObjectClass,[]);
this.add(object);
}
return object;
} else {
basic = this.members[this._marker++];
if(this._marker >= this.maxSize) {
this._marker = 0;
}
if(Revive) {
basic.revive();
}
return basic;
}
} else {
basic = this.getFirstAvailable(ObjectClass,Force);
if(basic != null) {
if(Revive) {
basic.revive();
}
return basic;
}
var object = null;
if(ObjectFactory != null) {
object = ObjectFactory();
this.add(object);
} else if(ObjectClass != null) {
object = Type.createInstance(ObjectClass,[]);
this.add(object);
}
return object;
}
}
,recycleCreateObject: function(ObjectClass,ObjectFactory) {
var object = null;
if(ObjectFactory != null) {
object = ObjectFactory();
this.add(object);
} else if(ObjectClass != null) {
object = Type.createInstance(ObjectClass,[]);
this.add(object);
}
return object;
}
,remove: function(Object1,Splice) {
if(Splice == null) {
Splice = false;
}
if(this.members == null) {
return null;
}
var index = this.members.indexOf(Object1);
if(index < 0) {
return null;
}
if(Splice) {
this.members.splice(index,1);
this.length--;
} else {
this.members[index] = null;
}
if(this._memberRemoved != null) {
this._memberRemoved.dispatch(Object1);
}
return Object1;
}
,replace: function(OldObject,NewObject) {
var index = this.members.indexOf(OldObject);
if(index < 0) {
return null;
}
this.members[index] = NewObject;
if(this._memberRemoved != null) {
this._memberRemoved.dispatch(OldObject);
}
if(this._memberAdded != null) {
this._memberAdded.dispatch(NewObject);
}
return NewObject;
}
,sort: function(Function1,Order) {
if(Order == null) {
Order = -1;
}
var _g = Function1;
var a1 = Order;
var tmp = function(a2,a3) {
return _g(a1,a2,a3);
};
this.members.sort(tmp);
}
,getFirstAvailable: function(ObjectClass,Force) {
if(Force == null) {
Force = false;
}
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && !basic.exists && (ObjectClass == null || js_Boot.__instanceof(basic,ObjectClass))) {
var tmp;
if(Force) {
var c = js_Boot.getClass(basic);
tmp = c.__name__ != ObjectClass.__name__;
} else {
tmp = false;
}
if(tmp) {
continue;
}
return this.members[i - 1];
}
}
return null;
}
,getFirstNull: function() {
var i = 0;
while(i < this.length) {
if(this.members[i] == null) {
return i;
}
++i;
}
return -1;
}
,getFirstExisting: function() {
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && basic.exists) {
return basic;
}
}
return null;
}
,getFirstAlive: function() {
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && basic.exists && basic.alive) {
return basic;
}
}
return null;
}
,getFirstDead: function() {
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && !basic.alive) {
return basic;
}
}
return null;
}
,countLiving: function() {
var i = 0;
var count = -1;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null) {
if(count < 0) {
count = 0;
}
if(basic.exists && basic.alive) {
++count;
}
}
}
return count;
}
,countDead: function() {
var i = 0;
var count = -1;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null) {
if(count < 0) {
count = 0;
}
if(!basic.alive) {
++count;
}
}
}
return count;
}
,getRandom: function(StartIndex,Length) {
if(Length == null) {
Length = 0;
}
if(StartIndex == null) {
StartIndex = 0;
}
if(StartIndex < 0) {
StartIndex = 0;
}
if(Length <= 0) {
Length = this.length;
}
return flixel_FlxG.random.getObject_flixel_group_FlxTypedGroup_T(this.members,null,StartIndex,Length);
}
,clear: function() {
this.length = 0;
if(this._memberRemoved != null) {
var _g = 0;
var _g1 = this.members;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(member != null) {
this._memberRemoved.dispatch(member);
}
}
}
flixel_util_FlxArrayUtil.clearArray(this.members);
}
,kill: function() {
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && basic.exists) {
basic.kill();
}
}
flixel_FlxBasic.prototype.kill.call(this);
}
,revive: function() {
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && !basic.exists) {
basic.revive();
}
}
flixel_FlxBasic.prototype.revive.call(this);
}
,iterator: function(filter) {
return new flixel_group_FlxTypedGroupIterator(this.members,filter);
}
,forEach: function(Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null) {
if(Recurse) {
var group = flixel_group_FlxTypedGroup.resolveGroup(basic);
if(group != null) {
group.forEach(Function1,Recurse);
}
}
Function1(basic);
}
}
}
,forEachAlive: function(Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && basic.exists && basic.alive) {
if(Recurse) {
var group = flixel_group_FlxTypedGroup.resolveGroup(basic);
if(group != null) {
group.forEachAlive(Function1,Recurse);
}
}
Function1(basic);
}
}
}
,forEachDead: function(Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && !basic.alive) {
if(Recurse) {
var group = flixel_group_FlxTypedGroup.resolveGroup(basic);
if(group != null) {
group.forEachDead(Function1,Recurse);
}
}
Function1(basic);
}
}
}
,forEachExists: function(Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null && basic.exists) {
if(Recurse) {
var group = flixel_group_FlxTypedGroup.resolveGroup(basic);
if(group != null) {
group.forEachExists(Function1,Recurse);
}
}
Function1(basic);
}
}
}
,forEachOfType: function(ObjectClass,Function1,Recurse) {
if(Recurse == null) {
Recurse = false;
}
var i = 0;
var basic = null;
while(i < this.length) {
basic = this.members[i++];
if(basic != null) {
if(Recurse) {
var group = flixel_group_FlxTypedGroup.resolveGroup(basic);
if(group != null) {
group.forEachOfType(ObjectClass,Function1,Recurse);
}
}
if(js_Boot.__instanceof(basic,ObjectClass)) {
Function1(basic);
}
}
}
}
,set_maxSize: function(Size) {
this.maxSize = Math.abs(Size) | 0;
if(this._marker >= this.maxSize) {
this._marker = 0;
}
if(this.maxSize == 0 || this.members == null || this.maxSize >= this.length) {
return this.maxSize;
}
var i = this.maxSize;
var l = this.length;
var basic = null;
while(i < l) {
basic = this.members[i++];
if(basic != null) {
if(this._memberRemoved != null) {
this._memberRemoved.dispatch(basic);
}
basic.destroy();
}
}
flixel_util_FlxArrayUtil.setLength_flixel_group_FlxTypedGroup_T(this.members,this.maxSize);
this.length = this.members.length;
return this.maxSize;
}
,get_memberAdded: function() {
if(this._memberAdded == null) {
this._memberAdded = new flixel_util__$FlxSignal_FlxSignal1();
}
return this._memberAdded;
}
,get_memberRemoved: function() {
if(this._memberRemoved == null) {
this._memberRemoved = new flixel_util__$FlxSignal_FlxSignal1();
}
return this._memberRemoved;
}
,__class__: flixel_group_FlxTypedGroup
,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{get_memberRemoved:"get_memberRemoved",get_memberAdded:"get_memberAdded",set_maxSize:"set_maxSize"})
});
var flixel_FlxState = function(MaxSize) {
this._requestSubStateReset = false;
this.destroySubStates = true;
this.persistentDraw = true;
this.persistentUpdate = false;
flixel_group_FlxTypedGroup.call(this,MaxSize);
};
$hxClasses["flixel.FlxState"] = flixel_FlxState;
flixel_FlxState.__name__ = "flixel.FlxState";
flixel_FlxState.__super__ = flixel_group_FlxTypedGroup;
flixel_FlxState.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{
persistentUpdate: null
,persistentDraw: null
,destroySubStates: null
,subState: null
,_requestedSubState: null
,_requestSubStateReset: null
,create: function() {
}
,draw: function() {
if(this.persistentDraw || this.subState == null) {
flixel_group_FlxTypedGroup.prototype.draw.call(this);
}
if(this.subState != null) {
this.subState.draw();
}
}
,openSubState: function(SubState) {
this._requestSubStateReset = true;
this._requestedSubState = SubState;
}
,closeSubState: function() {
this._requestSubStateReset = true;
}
,resetSubState: function() {
if(this.subState != null) {
if(this.subState.closeCallback != null) {
this.subState.closeCallback();
}
if(this.destroySubStates) {
this.subState.destroy();
}
}
this.subState = this._requestedSubState;
this._requestedSubState = null;
if(this.subState != null) {
if(!this.persistentUpdate) {
flixel_FlxG.inputs.onStateSwitch();
}
this.subState._parentState = this;
if(!this.subState._created) {
this.subState._created = true;
this.subState.create();
}
if(this.subState.openCallback != null) {
this.subState.openCallback();
}
}
}
,destroy: function() {
if(this.subState != null) {
this.subState.destroy();
this.subState = null;
}
flixel_group_FlxTypedGroup.prototype.destroy.call(this);
}
,switchTo: function(nextState) {
return true;
}
,onFocusLost: function() {
}
,onFocus: function() {
}
,onResize: function(Width,Height) {
}
,tryUpdate: function(elapsed) {
if(this.persistentUpdate || this.subState == null) {
this.update(elapsed);
}
if(this._requestSubStateReset) {
this._requestSubStateReset = false;
this.resetSubState();
}
if(this.subState != null) {
this.subState.tryUpdate(elapsed);
}
}
,get_bgColor: function() {
return flixel_FlxG.cameras.get_bgColor();
}
,set_bgColor: function(Value) {
return flixel_FlxG.cameras.set_bgColor(Value);
}
,__class__: flixel_FlxState
,__properties__: $extend(flixel_group_FlxTypedGroup.prototype.__properties__,{set_bgColor:"set_bgColor",get_bgColor:"get_bgColor"})
});
var flixel_addons_transition_FlxTransitionableState = function(TransIn,TransOut) {
this._exiting = false;
this.transOutFinished = false;
this.transIn = TransIn;
this.transOut = TransOut;
if(this.transIn == null && flixel_addons_transition_FlxTransitionableState.defaultTransIn != null) {
this.transIn = flixel_addons_transition_FlxTransitionableState.defaultTransIn;
}
if(this.transOut == null && flixel_addons_transition_FlxTransitionableState.defaultTransOut != null) {
this.transOut = flixel_addons_transition_FlxTransitionableState.defaultTransOut;
}
flixel_FlxState.call(this);
};
$hxClasses["flixel.addons.transition.FlxTransitionableState"] = flixel_addons_transition_FlxTransitionableState;
flixel_addons_transition_FlxTransitionableState.__name__ = "flixel.addons.transition.FlxTransitionableState";
flixel_addons_transition_FlxTransitionableState.__super__ = flixel_FlxState;
flixel_addons_transition_FlxTransitionableState.prototype = $extend(flixel_FlxState.prototype,{
transIn: null
,transOut: null
,destroy: function() {
flixel_FlxState.prototype.destroy.call(this);
this.transIn = null;
this.transOut = null;
this._onExit = null;
}
,create: function() {
flixel_FlxState.prototype.create.call(this);
this.transitionIn();
}
,switchTo: function(nextState) {
if(!this.get_hasTransOut()) {
return true;
}
if(!this._exiting) {
this.transitionToState(nextState);
}
return this.transOutFinished;
}
,transitionToState: function(nextState) {
this._exiting = true;
this.transitionOut(function() {
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
});
if(flixel_addons_transition_FlxTransitionableState.skipNextTransOut) {
flixel_addons_transition_FlxTransitionableState.skipNextTransOut = false;
this.finishTransOut();
}
}
,transitionIn: function() {
if(this.transIn != null && this.transIn.type != "none") {
if(flixel_addons_transition_FlxTransitionableState.skipNextTransIn) {
flixel_addons_transition_FlxTransitionableState.skipNextTransIn = false;
if(this.finishTransIn != null) {
this.finishTransIn();
}
return;
}
var _trans = this.createTransition(this.transIn);
_trans.setStatus(3);
this.openSubState(_trans);
_trans.set_finishCallback($bind(this,this.finishTransIn));
_trans.start(1);
}
}
,transitionOut: function(OnExit) {
this._onExit = OnExit;
if(this.get_hasTransOut()) {
var _trans = this.createTransition(this.transOut);
_trans.setStatus(2);
this.openSubState(_trans);
_trans.set_finishCallback($bind(this,this.finishTransOut));
_trans.start(0);
} else {
this._onExit();
}
}
,transOutFinished: null
,_exiting: null
,_onExit: null
,get_hasTransIn: function() {
if(this.transIn != null) {
return this.transIn.type != "none";
} else {
return false;
}
}
,get_hasTransOut: function() {
if(this.transOut != null) {
return this.transOut.type != "none";
} else {
return false;
}
}
,createTransition: function(data) {
switch(data.type) {
case "fade":
return new flixel_addons_transition_Transition(data);
case "tiles":
return new flixel_addons_transition_Transition(data);
default:
return null;
}
}
,finishTransIn: function() {
this.closeSubState();
}
,finishTransOut: function() {
this.transOutFinished = true;
if(!this._exiting) {
this.closeSubState();
}
if(this._onExit != null) {
this._onExit();
}
}
,__class__: flixel_addons_transition_FlxTransitionableState
,__properties__: $extend(flixel_FlxState.prototype.__properties__,{get_hasTransOut:"get_hasTransOut",get_hasTransIn:"get_hasTransIn"})
});
var flixel_addons_ui_interfaces_IEventGetter = function() { };
$hxClasses["flixel.addons.ui.interfaces.IEventGetter"] = flixel_addons_ui_interfaces_IEventGetter;
flixel_addons_ui_interfaces_IEventGetter.__name__ = "flixel.addons.ui.interfaces.IEventGetter";
flixel_addons_ui_interfaces_IEventGetter.__isInterface__ = true;
flixel_addons_ui_interfaces_IEventGetter.prototype = {
getEvent: null
,getRequest: null
,__class__: flixel_addons_ui_interfaces_IEventGetter
};
var flixel_addons_ui_interfaces_IFlxUIState = function() { };
$hxClasses["flixel.addons.ui.interfaces.IFlxUIState"] = flixel_addons_ui_interfaces_IFlxUIState;
flixel_addons_ui_interfaces_IFlxUIState.__name__ = "flixel.addons.ui.interfaces.IFlxUIState";
flixel_addons_ui_interfaces_IFlxUIState.__isInterface__ = true;
flixel_addons_ui_interfaces_IFlxUIState.__interfaces__ = [flixel_addons_ui_interfaces_IEventGetter];
flixel_addons_ui_interfaces_IFlxUIState.prototype = {
forceFocus: null
,tooltips: null
,cursor: null
,_tongue: null
,__class__: flixel_addons_ui_interfaces_IFlxUIState
};
var flixel_addons_ui_FlxUIState = function(TransIn,TransOut) {
this.getTextFallback = null;
this._reload_countdown = 0;
this._reload = false;
this.reload_ui_on_resize = false;
this._xml_id = "";
this._cursorHidden = false;
this.hideCursorOnSubstate = false;
this.cursor = null;
flixel_addons_transition_FlxTransitionableState.call(this,TransIn,TransOut);
};
$hxClasses["flixel.addons.ui.FlxUIState"] = flixel_addons_ui_FlxUIState;
flixel_addons_ui_FlxUIState.__name__ = "flixel.addons.ui.FlxUIState";
flixel_addons_ui_FlxUIState.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIState,flixel_addons_ui_interfaces_IEventGetter];
flixel_addons_ui_FlxUIState.__super__ = flixel_addons_transition_FlxTransitionableState;
flixel_addons_ui_FlxUIState.prototype = $extend(flixel_addons_transition_FlxTransitionableState.prototype,{
destroyed: null
,cursor: null
,hideCursorOnSubstate: null
,_cursorHidden: null
,tooltips: null
,_xml_id: null
,_makeCursor: null
,_ui_vars: null
,_ui: null
,_tongue: null
,reload_ui_on_resize: null
,_reload: null
,_reload_countdown: null
,getTextFallback: null
,create: function() {
if(flixel_addons_ui_FlxUIState.static_tongue != null) {
this._tongue = flixel_addons_ui_FlxUIState.static_tongue;
}
if(this._makeCursor == true) {
this.cursor = this.createCursor();
}
this.tooltips = new flixel_addons_ui_FlxUITooltipManager(this);
var liveFile = null;
this._ui = this.createUI(null,this,null,this._tongue);
this.add(this._ui);
if(this.getTextFallback != null) {
this._ui.getTextFallback = this.getTextFallback;
}
if(this._xml_id != null && this._xml_id != "") {
var data = null;
var errorMsg = "";
if(liveFile == null) {
try {
data = flixel_addons_ui_U.xml(this._xml_id);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var _g1 = haxe_Exception.caught(_g).unwrap();
if(typeof(_g1) == "string") {
var msg = _g1;
errorMsg = msg;
} else {
throw _g;
}
}
if(data == null) {
try {
data = flixel_addons_ui_U.xml(this._xml_id,"xml",true,"");
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var _g1 = haxe_Exception.caught(_g).unwrap();
if(typeof(_g1) == "string") {
var msg2 = _g1;
errorMsg += ", " + msg2;
} else {
throw _g;
}
}
}
}
if(data == null) {
if(liveFile != null) {
this.loadUIFromData(liveFile);
}
} else {
this.loadUIFromData(data);
}
} else {
this.loadUIFromData(null);
}
if(this.cursor != null && this._ui != null) {
this.add(this.cursor);
this.cursor.addWidgetsFromUI(this._ui);
this.cursor.findVisibleLocation(0);
}
this.tooltips.init();
flixel_addons_transition_FlxTransitionableState.prototype.create.call(this);
this.cleanup();
}
,update: function(elapsed) {
flixel_addons_transition_FlxTransitionableState.prototype.update.call(this,elapsed);
if(this.tooltips != null) {
this.tooltips.update(elapsed);
}
if(this._reload) {
if(this._reload_countdown > 0) {
this._reload_countdown--;
if(this._reload_countdown == 0) {
this.reloadUI();
}
}
}
}
,cleanup: function() {
this._ui.cleanup();
}
,_cleanupUIVars: function() {
if(this._ui_vars != null) {
var key = haxe_ds_StringMap.keysIterator(this._ui_vars.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = this._ui_vars;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
this._ui_vars = null;
}
}
,setUIVariable: function(key,value) {
if(this._ui != null) {
this._ui.setVariable(key,value);
} else {
if(this._ui_vars == null) {
this._ui_vars = new haxe_ds_StringMap();
}
this._ui_vars.h[key] = value;
}
}
,resizeScreen: function(width,height) {
if(height == null) {
height = 600;
}
if(width == null) {
width = 800;
}
}
,openSubState: function(SubState) {
if(this.cursor != null && this.hideCursorOnSubstate && this.cursor.visible == true) {
this._cursorHidden = true;
this.cursor.set_visible(false);
}
flixel_addons_transition_FlxTransitionableState.prototype.openSubState.call(this,SubState);
}
,closeSubState: function() {
if(this.cursor != null && this.hideCursorOnSubstate && this._cursorHidden) {
this._cursorHidden = false;
this.cursor.set_visible(true);
}
flixel_addons_transition_FlxTransitionableState.prototype.closeSubState.call(this);
}
,onResize: function(Width,Height) {
if(this.reload_ui_on_resize) {
flixel_FlxG.scaleMode.onMeasure(Width,Height);
this._reload_countdown = 1;
this._reload = true;
}
}
,onShowTooltip: function(t) {
}
,destroy: function() {
this.destroyed = true;
if(this._ui != null) {
this._ui.destroy();
this.remove(this._ui,true);
this._ui = null;
}
if(this.tooltips != null) {
this.tooltips.destroy();
this.tooltips = null;
}
flixel_addons_transition_FlxTransitionableState.prototype.destroy.call(this);
}
,forceFocus: function(b,thing) {
if(this._ui != null) {
if(b) {
this._ui.set_focus(thing);
} else {
this._ui.set_focus(null);
}
}
}
,onCursorEvent: function(code,target) {
this.getEvent(code,target,null);
}
,getEvent: function(id,sender,data,params) {
}
,getRequest: function(id,sender,data,params) {
return null;
}
,getText: function(Flag,Context,Safe) {
if(Safe == null) {
Safe = true;
}
if(Context == null) {
Context = "ui";
}
if(this._tongue != null) {
return this._tongue.get(Flag,Context,Safe);
}
if(this.getTextFallback != null) {
return this.getTextFallback(Flag,Context,Safe);
}
return Flag;
}
,createCursor: function() {
return new flixel_addons_ui_FlxUICursor($bind(this,this.onCursorEvent));
}
,createUI: function(data,ptr,superIndex_,tongue_,liveFilePath_) {
if(liveFilePath_ == null) {
liveFilePath_ = "";
}
var flxui = new flixel_addons_ui_FlxUI(data,ptr,superIndex_,tongue_,liveFilePath_,this._ui_vars);
this._cleanupUIVars();
return flxui;
}
,loadUIFromData: function(data) {
this._ui.load(data);
}
,reloadUI: function(e) {
if(this._ui != null) {
this.remove(this._ui,true);
this._ui.destroy();
this._ui = null;
}
this._ui = this.createUI(null,this,null,this._tongue);
this.add(this._ui);
var data = flixel_addons_ui_U.xml(this._xml_id);
if(data != null) {
this.loadUIFromData(data);
}
this._reload = false;
this._reload_countdown = 0;
}
,__class__: flixel_addons_ui_FlxUIState
});
var MusicBeatState = function(TransIn,TransOut) {
this.curBeat = 0;
this.curStep = 0;
this.lastStep = 0;
this.lastBeat = 0;
flixel_addons_ui_FlxUIState.call(this,TransIn,TransOut);
};
$hxClasses["MusicBeatState"] = MusicBeatState;
MusicBeatState.__name__ = "MusicBeatState";
MusicBeatState.__super__ = flixel_addons_ui_FlxUIState;
MusicBeatState.prototype = $extend(flixel_addons_ui_FlxUIState.prototype,{
lastBeat: null
,lastStep: null
,curStep: null
,curBeat: null
,get_controls: function() {
return PlayerSettings.player1.controls;
}
,create: function() {
if(this.transIn != null) {
haxe_Log.trace("reg " + Std.string(this.transIn.region),{ fileName : "source/MusicBeatState.hx", lineNumber : 25, className : "MusicBeatState", methodName : "create"});
}
flixel_addons_ui_FlxUIState.prototype.create.call(this);
}
,update: function(elapsed) {
var oldStep = this.curStep;
this.updateCurStep();
this.updateBeat();
if(oldStep != this.curStep && this.curStep > 0) {
this.stepHit();
}
flixel_addons_ui_FlxUIState.prototype.update.call(this,elapsed);
}
,updateBeat: function() {
this.curBeat = Math.floor(this.curStep / 4);
}
,updateCurStep: function() {
var lastChange = { stepTime : 0, songTime : 0, bpm : 0};
var _g = 0;
var _g1 = Conductor.bpmChangeMap.length;
while(_g < _g1) {
var i = _g++;
if(Conductor.songPosition >= Conductor.bpmChangeMap[i].songTime) {
lastChange = Conductor.bpmChangeMap[i];
}
}
this.curStep = lastChange.stepTime + Math.floor((Conductor.songPosition - lastChange.songTime) / Conductor.stepCrochet);
}
,stepHit: function() {
if(this.curStep % 4 == 0) {
this.beatHit();
}
}
,beatHit: function() {
}
,__class__: MusicBeatState
,__properties__: $extend(flixel_addons_ui_FlxUIState.prototype.__properties__,{get_controls:"get_controls"})
});
var ChartingState = function(TransIn,TransOut) {
this.daSpacing = 0.3;
this.updatedSection = false;
this.tempBpm = 0;
this.GRID_SIZE = 40;
this.amountSteps = 0;
this.curSong = "Dadbattle";
this.curSection = 0;
MusicBeatState.call(this,TransIn,TransOut);
};
$hxClasses["ChartingState"] = ChartingState;
ChartingState.__name__ = "ChartingState";
ChartingState.__super__ = MusicBeatState;
ChartingState.prototype = $extend(MusicBeatState.prototype,{
_file: null
,UI_box: null
,curSection: null
,bpmTxt: null
,strumLine: null
,curSong: null
,amountSteps: null
,bullshitUI: null
,highlight: null
,GRID_SIZE: null
,dummyArrow: null
,curRenderedNotes: null
,curRenderedSustains: null
,gridBG: null
,_song: null
,typingShit: null
,curSelectedNote: null
,tempBpm: null
,vocals: null
,leftIcon: null
,rightIcon: null
,create: function() {
this.curSection = ChartingState.lastSection;
this.gridBG = flixel_addons_display_FlxGridOverlay.create(this.GRID_SIZE,this.GRID_SIZE,this.GRID_SIZE * 8,this.GRID_SIZE * 16);
this.add(this.gridBG);
this.leftIcon = new HealthIcon("bf");
this.rightIcon = new HealthIcon("dad");
this.leftIcon.scrollFactor.set(1,1);
this.rightIcon.scrollFactor.set(1,1);
this.leftIcon.setGraphicSize(0,45);
this.rightIcon.setGraphicSize(0,45);
this.add(this.leftIcon);
this.add(this.rightIcon);
this.leftIcon.setPosition(0,-100);
this.rightIcon.setPosition(this.gridBG.get_width() / 2,-100);
var gridBlackLine = new flixel_FlxSprite(this.gridBG.x + this.gridBG.get_width() / 2).makeGraphic(2,this.gridBG.get_height() | 0,-16777216);
this.add(gridBlackLine);
this.curRenderedNotes = new flixel_group_FlxTypedGroup();
this.curRenderedSustains = new flixel_group_FlxTypedGroup();
if(PlayState.SONG != null) {
this._song = PlayState.SONG;
} else {
this._song = { song : "Test", notes : [], bpm : 150, needsVoices : true, player1 : "bf", player2 : "dad", speed : 1, validScore : false};
}
flixel_FlxG.mouse.set_visible(true);
flixel_FlxG.save.bind("funkin","ninjamuffin99");
this.tempBpm = this._song.bpm;
this.addSection();
this.updateGrid();
this.loadSong(this._song.song);
Conductor.changeBPM(this._song.bpm);
Conductor.mapBPMChanges(this._song);
this.bpmTxt = new flixel_text_FlxText(1000,50,0,"",16);
this.bpmTxt.scrollFactor.set();
this.add(this.bpmTxt);
this.strumLine = new flixel_FlxSprite(0,50).makeGraphic(flixel_FlxG.width / 2 | 0,4);
this.add(this.strumLine);
this.dummyArrow = new flixel_FlxSprite().makeGraphic(this.GRID_SIZE,this.GRID_SIZE);
this.add(this.dummyArrow);
var tabs = [{ name : "Song", label : "Song"},{ name : "Section", label : "Section"},{ name : "Note", label : "Note"}];
this.UI_box = new flixel_addons_ui_FlxUITabMenu(null,null,tabs,null,true);
this.UI_box.resize(300,400);
this.UI_box.set_x(flixel_FlxG.width / 2);
this.UI_box.set_y(20);
this.add(this.UI_box);
this.addSongUI();
this.addSectionUI();
this.addNoteUI();
this.add(this.curRenderedNotes);
this.add(this.curRenderedSustains);
MusicBeatState.prototype.create.call(this);
}
,addSongUI: function() {
var _gthis = this;
var UI_songTitle = new flixel_addons_ui_FlxUIInputText(10,10,70,this._song.song,8);
this.typingShit = UI_songTitle;
var check_voices = new flixel_addons_ui_FlxUICheckBox(10,25,null,null,"Has voice track",100);
check_voices.set_checked(this._song.needsVoices);
check_voices.callback = function() {
_gthis._song.needsVoices = check_voices.checked;
haxe_Log.trace("CHECKED!",{ fileName : "source/ChartingState.hx", lineNumber : 188, className : "ChartingState", methodName : "addSongUI"});
};
var check_mute_inst = new flixel_addons_ui_FlxUICheckBox(10,200,null,null,"Mute Instrumental (in editor)",100);
check_mute_inst.set_checked(false);
check_mute_inst.callback = function() {
var vol = 1;
if(check_mute_inst.checked) {
vol = 0;
}
flixel_FlxG.sound.music.set_volume(vol);
};
var saveButton = new flixel_ui_FlxButton(110,8,"Save",function() {
_gthis.saveLevel();
});
var reloadSong = new flixel_ui_FlxButton(saveButton.x + saveButton.get_width() + 10,saveButton.y,"Reload Audio",function() {
_gthis.loadSong(_gthis._song.song);
});
var reloadSongJson = new flixel_ui_FlxButton(reloadSong.x,saveButton.y + 30,"Reload JSON",function() {
_gthis.loadJson(_gthis._song.song.toLowerCase());
});
var loadAutosaveBtn = new flixel_ui_FlxButton(reloadSongJson.x,reloadSongJson.y + 30,"load autosave",$bind(this,this.loadAutosave));
var stepperSpeed = new flixel_addons_ui_FlxUINumericStepper(10,80,0.1,1,0.1,10,1);
stepperSpeed.set_value(this._song.speed);
stepperSpeed.name = "song_speed";
var stepperBPM = new flixel_addons_ui_FlxUINumericStepper(10,65,1,1,1,339,0);
stepperBPM.set_value(Conductor.bpm);
stepperBPM.name = "song_bpm";
var characters = CoolUtil.coolTextFile("assets/data/characterList.txt");
var player1DropDown = new flixel_addons_ui_FlxUIDropDownMenu(10,100,flixel_addons_ui_FlxUIDropDownMenu.makeStrIdLabelArray(characters,true),function(character) {
_gthis._song.player1 = characters[Std.parseInt(character)];
});
player1DropDown.set_selectedLabel(this._song.player1);
var player2DropDown = new flixel_addons_ui_FlxUIDropDownMenu(140,100,flixel_addons_ui_FlxUIDropDownMenu.makeStrIdLabelArray(characters,true),function(character) {
_gthis._song.player2 = characters[Std.parseInt(character)];
});
player2DropDown.set_selectedLabel(this._song.player2);
var tab_group_song = new flixel_addons_ui_FlxUI(null,this.UI_box);
tab_group_song.name = "Song";
tab_group_song.add(UI_songTitle);
tab_group_song.add(check_voices);
tab_group_song.add(check_mute_inst);
tab_group_song.add(saveButton);
tab_group_song.add(reloadSong);
tab_group_song.add(reloadSongJson);
tab_group_song.add(loadAutosaveBtn);
tab_group_song.add(stepperBPM);
tab_group_song.add(stepperSpeed);
tab_group_song.add(player1DropDown);
tab_group_song.add(player2DropDown);
this.UI_box.addGroup(tab_group_song);
this.UI_box.scrollFactor.set();
flixel_FlxG.camera.follow(this.strumLine);
}
,stepperLength: null
,check_mustHitSection: null
,check_changeBPM: null
,stepperSectionBPM: null
,check_altAnim: null
,addSectionUI: function() {
var _gthis = this;
var tab_group_section = new flixel_addons_ui_FlxUI(null,this.UI_box);
tab_group_section.name = "Section";
this.stepperLength = new flixel_addons_ui_FlxUINumericStepper(10,10,4,0,0,999,0);
this.stepperLength.set_value(this._song.notes[this.curSection].lengthInSteps);
this.stepperLength.name = "section_length";
this.stepperSectionBPM = new flixel_addons_ui_FlxUINumericStepper(10,80,1,Conductor.bpm,0,999,0);
this.stepperSectionBPM.set_value(Conductor.bpm);
this.stepperSectionBPM.name = "section_bpm";
var stepperCopy = new flixel_addons_ui_FlxUINumericStepper(110,130,1,1,-999,999,0);
var copyButton = new flixel_ui_FlxButton(10,130,"Copy last section",function() {
_gthis.copySection(stepperCopy.value | 0);
});
var clearSectionButton = new flixel_ui_FlxButton(10,150,"Clear",$bind(this,this.clearSection));
var swapSection = new flixel_ui_FlxButton(10,170,"Swap section",function() {
var _g = 0;
var _g1 = _gthis._song.notes[_gthis.curSection].sectionNotes.length;
while(_g < _g1) {
var i = _g++;
var note = _gthis._song.notes[_gthis.curSection].sectionNotes[i];
note[1] = (note[1] + 4) % 8;
_gthis._song.notes[_gthis.curSection].sectionNotes[i] = note;
_gthis.updateGrid();
}
});
this.check_mustHitSection = new flixel_addons_ui_FlxUICheckBox(10,30,null,null,"Must hit section",100);
this.check_mustHitSection.name = "check_mustHit";
this.check_mustHitSection.set_checked(true);
this.check_altAnim = new flixel_addons_ui_FlxUICheckBox(10,400,null,null,"Alt Animation",100);
this.check_altAnim.name = "check_altAnim";
this.check_changeBPM = new flixel_addons_ui_FlxUICheckBox(10,60,null,null,"Change BPM",100);
this.check_changeBPM.name = "check_changeBPM";
tab_group_section.add(this.stepperLength);
tab_group_section.add(this.stepperSectionBPM);
tab_group_section.add(stepperCopy);
tab_group_section.add(this.check_mustHitSection);
tab_group_section.add(this.check_altAnim);
tab_group_section.add(this.check_changeBPM);
tab_group_section.add(copyButton);
tab_group_section.add(clearSectionButton);
tab_group_section.add(swapSection);
this.UI_box.addGroup(tab_group_section);
}
,stepperSusLength: null
,addNoteUI: function() {
var tab_group_note = new flixel_addons_ui_FlxUI(null,this.UI_box);
tab_group_note.name = "Note";
this.stepperSusLength = new flixel_addons_ui_FlxUINumericStepper(10,10,Conductor.stepCrochet / 2,0,0,Conductor.stepCrochet * 16);
this.stepperSusLength.set_value(0);
this.stepperSusLength.name = "note_susLength";
var applyLength = new flixel_ui_FlxButton(100,10,"Apply");
tab_group_note.add(this.stepperSusLength);
tab_group_note.add(applyLength);
this.UI_box.addGroup(tab_group_note);
}
,loadSong: function(daSong) {
var _gthis = this;
if(flixel_FlxG.sound.music != null) {
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
}
flixel_FlxG.sound.playMusic("assets/music/" + daSong + "_Inst" + TitleState.soundExt,0.6);
this.vocals = new flixel_system_FlxSound().loadEmbedded("assets/music/" + daSong + "_Voices" + TitleState.soundExt);
flixel_FlxG.sound.list.add(this.vocals);
flixel_FlxG.sound.music.pause();
this.vocals.pause();
flixel_FlxG.sound.music.onComplete = function() {
_gthis.vocals.pause();
_gthis.vocals.set_time(0);
flixel_FlxG.sound.music.pause();
flixel_FlxG.sound.music.set_time(0);
_gthis.changeSection();
};
}
,generateUI: function() {
while(this.bullshitUI.members.length > 0) this.bullshitUI.remove(this.bullshitUI.members[0],true);
var title = new flixel_text_FlxText(this.UI_box.x + 20,this.UI_box.y + 20,0);
this.bullshitUI.add(title);
}
,getEvent: function(id,sender,data,params) {
if(id == "click_check_box") {
var check = sender;
var label = check.getLabel().text;
switch(label) {
case "Alt Animation":
this._song.notes[this.curSection].altAnim = check.checked;
break;
case "Change BPM":
this._song.notes[this.curSection].changeBPM = check.checked;
break;
case "Must hit section":
this._song.notes[this.curSection].mustHitSection = check.checked;
this.updateHeads();
break;
}
} else if(id == "change_numeric_stepper" && ((sender) instanceof flixel_addons_ui_FlxUINumericStepper)) {
var nums = sender;
var wname = nums.name;
if(wname == "section_length") {
this._song.notes[this.curSection].lengthInSteps = nums.value | 0;
this.updateGrid();
} else if(wname == "song_speed") {
this._song.speed = nums.value;
} else if(wname == "song_bpm") {
this.tempBpm = nums.value | 0;
Conductor.mapBPMChanges(this._song);
Conductor.changeBPM(nums.value | 0);
} else if(wname == "note_susLength") {
this.curSelectedNote[2] = nums.value;
this.updateGrid();
} else if(wname == "section_bpm") {
this._song.notes[this.curSection].bpm = nums.value | 0;
this.updateGrid();
}
}
}
,updatedSection: null
,sectionStartTime: function() {
var daBPM = this._song.bpm;
var daPos = 0;
var _g = 0;
var _g1 = this.curSection;
while(_g < _g1) {
var i = _g++;
if(this._song.notes[i].changeBPM) {
daBPM = this._song.notes[i].bpm;
}
daPos += 4 * (60000 / daBPM);
}
return daPos;
}
,update: function(elapsed) {
var _gthis = this;
this.curStep = this.recalculateSteps();
Conductor.songPosition = flixel_FlxG.sound.music._time;
this._song.song = this.typingShit.text;
this.strumLine.set_y(this.getYfromStrum((Conductor.songPosition - this.sectionStartTime()) % (Conductor.stepCrochet * this._song.notes[this.curSection].lengthInSteps)));
if(this.curBeat % 4 == 0 && this.curStep >= 16 * (this.curSection + 1)) {
haxe_Log.trace(this.curStep,{ fileName : "source/ChartingState.hx", lineNumber : 483, className : "ChartingState", methodName : "update"});
haxe_Log.trace(this._song.notes[this.curSection].lengthInSteps * (this.curSection + 1),{ fileName : "source/ChartingState.hx", lineNumber : 484, className : "ChartingState", methodName : "update"});
haxe_Log.trace("DUMBSHIT",{ fileName : "source/ChartingState.hx", lineNumber : 485, className : "ChartingState", methodName : "update"});
if(this._song.notes[this.curSection + 1] == null) {
this.addSection();
}
this.changeSection(this.curSection + 1,false);
}
if(flixel_FlxG.mouse._leftButton.current == 2) {
if(flixel_FlxG.mouse.overlaps(this.curRenderedNotes)) {
this.curRenderedNotes.forEach(function(note) {
if(flixel_FlxG.mouse.overlaps(note)) {
var _this = flixel_FlxG.keys.pressed;
if(_this.keyManager.checkStatus(17,_this.status)) {
_gthis.selectNote(note);
} else {
haxe_Log.trace("tryin to delete note...",{ fileName : "source/ChartingState.hx", lineNumber : 512, className : "ChartingState", methodName : "update"});
_gthis.deleteNote(note);
}
}
});
} else if(flixel_FlxG.mouse.x > this.gridBG.x && flixel_FlxG.mouse.x < this.gridBG.x + this.gridBG.get_width() && flixel_FlxG.mouse.y > this.gridBG.y && flixel_FlxG.mouse.y < this.gridBG.y + this.GRID_SIZE * this._song.notes[this.curSection].lengthInSteps) {
this.addNote();
}
}
if(flixel_FlxG.mouse.x > this.gridBG.x && flixel_FlxG.mouse.x < this.gridBG.x + this.gridBG.get_width() && flixel_FlxG.mouse.y > this.gridBG.y && flixel_FlxG.mouse.y < this.gridBG.y + this.GRID_SIZE * this._song.notes[this.curSection].lengthInSteps) {
this.dummyArrow.set_x(Math.floor(flixel_FlxG.mouse.x / this.GRID_SIZE) * this.GRID_SIZE);
var _this = flixel_FlxG.keys.pressed;
if(_this.keyManager.checkStatus(16,_this.status)) {
this.dummyArrow.set_y(flixel_FlxG.mouse.y);
} else {
this.dummyArrow.set_y(Math.floor(flixel_FlxG.mouse.y / this.GRID_SIZE) * this.GRID_SIZE);
}
}
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(13,_this.status)) {
ChartingState.lastSection = this.curSection;
PlayState.SONG = this._song;
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
var _this = this.vocals;
_this.cleanup(_this.autoDestroy,true);
var nextState = new PlayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(69,_this.status)) {
this.changeNoteSustain(Conductor.stepCrochet);
}
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(81,_this.status)) {
this.changeNoteSustain(-Conductor.stepCrochet);
}
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(9,_this.status)) {
var _this = flixel_FlxG.keys.pressed;
if(_this.keyManager.checkStatus(16,_this.status)) {
var _g = this.UI_box;
_g.set_selected_tab(_g.get_selected_tab() - 1);
if(this.UI_box.get_selected_tab() < 0) {
this.UI_box.set_selected_tab(2);
}
} else {
var _g = this.UI_box;
_g.set_selected_tab(_g.get_selected_tab() + 1);
if(this.UI_box.get_selected_tab() >= 3) {
this.UI_box.set_selected_tab(0);
}
}
}
if(!this.typingShit.hasFocus) {
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(32,_this.status)) {
if(flixel_FlxG.sound.music._channel != null) {
flixel_FlxG.sound.music.pause();
this.vocals.pause();
} else {
this.vocals.play();
flixel_FlxG.sound.music.play();
}
}
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(82,_this.status)) {
var _this = flixel_FlxG.keys.pressed;
if(_this.keyManager.checkStatus(16,_this.status)) {
this.resetSection(true);
} else {
this.resetSection();
}
}
if(flixel_FlxG.mouse.wheel != 0) {
flixel_FlxG.sound.music.pause();
this.vocals.pause();
var _g = flixel_FlxG.sound.music;
_g.set_time(_g._time - flixel_FlxG.mouse.wheel * Conductor.stepCrochet * 0.4);
this.vocals.set_time(flixel_FlxG.sound.music._time);
}
var _this = flixel_FlxG.keys.pressed;
if(!_this.keyManager.checkStatus(16,_this.status)) {
var tmp;
var _this = flixel_FlxG.keys.pressed;
if(!_this.keyManager.checkStatus(87,_this.status)) {
var _this = flixel_FlxG.keys.pressed;
tmp = _this.keyManager.checkStatus(83,_this.status);
} else {
tmp = true;
}
if(tmp) {
flixel_FlxG.sound.music.pause();
this.vocals.pause();
var daTime = 700 * flixel_FlxG.elapsed;
var _this = flixel_FlxG.keys.pressed;
if(_this.keyManager.checkStatus(87,_this.status)) {
var _g = flixel_FlxG.sound.music;
_g.set_time(_g._time - daTime);
} else {
var _g = flixel_FlxG.sound.music;
_g.set_time(_g._time + daTime);
}
this.vocals.set_time(flixel_FlxG.sound.music._time);
}
} else {
var tmp;
var _this = flixel_FlxG.keys.justPressed;
if(!_this.keyManager.checkStatus(87,_this.status)) {
var _this = flixel_FlxG.keys.justPressed;
tmp = _this.keyManager.checkStatus(83,_this.status);
} else {
tmp = true;
}
if(tmp) {
flixel_FlxG.sound.music.pause();
this.vocals.pause();
var daTime = Conductor.stepCrochet * 2;
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(87,_this.status)) {
var _g = flixel_FlxG.sound.music;
_g.set_time(_g._time - daTime);
} else {
var _g = flixel_FlxG.sound.music;
_g.set_time(_g._time + daTime);
}
this.vocals.set_time(flixel_FlxG.sound.music._time);
}
}
}
this._song.bpm = this.tempBpm;
var shiftThing = 1;
var _this = flixel_FlxG.keys.pressed;
if(_this.keyManager.checkStatus(16,_this.status)) {
shiftThing = 4;
}
var tmp;
var _this = flixel_FlxG.keys.justPressed;
if(!_this.keyManager.checkStatus(39,_this.status)) {
var _this = flixel_FlxG.keys.justPressed;
tmp = _this.keyManager.checkStatus(68,_this.status);
} else {
tmp = true;
}
if(tmp) {
this.changeSection(this.curSection + shiftThing);
}
var tmp;
var _this = flixel_FlxG.keys.justPressed;
if(!_this.keyManager.checkStatus(37,_this.status)) {
var _this = flixel_FlxG.keys.justPressed;
tmp = _this.keyManager.checkStatus(65,_this.status);
} else {
tmp = true;
}
if(tmp) {
this.changeSection(this.curSection - shiftThing);
}
this.bpmTxt.set_text(this.bpmTxt.set_text(Std.string(flixel_math_FlxMath.roundDecimal(Conductor.songPosition / 1000,2)) + " / " + Std.string(flixel_math_FlxMath.roundDecimal(flixel_FlxG.sound.music._length / 1000,2)) + "\nSection: " + this.curSection));
MusicBeatState.prototype.update.call(this,elapsed);
}
,changeNoteSustain: function(value) {
if(this.curSelectedNote != null) {
if(this.curSelectedNote[2] != null) {
this.curSelectedNote[2] += value;
this.curSelectedNote[2] = Math.max(this.curSelectedNote[2],0);
}
}
this.updateNoteUI();
this.updateGrid();
}
,recalculateSteps: function() {
var lastChange = { stepTime : 0, songTime : 0, bpm : 0};
var _g = 0;
var _g1 = Conductor.bpmChangeMap.length;
while(_g < _g1) {
var i = _g++;
if(flixel_FlxG.sound.music._time > Conductor.bpmChangeMap[i].songTime) {
lastChange = Conductor.bpmChangeMap[i];
}
}
this.curStep = lastChange.stepTime + Math.floor((flixel_FlxG.sound.music._time - lastChange.songTime) / Conductor.stepCrochet);
this.updateBeat();
return this.curStep;
}
,resetSection: function(songBeginning) {
if(songBeginning == null) {
songBeginning = false;
}
this.updateGrid();
flixel_FlxG.sound.music.pause();
this.vocals.pause();
flixel_FlxG.sound.music.set_time(this.sectionStartTime());
if(songBeginning) {
flixel_FlxG.sound.music.set_time(0);
this.curSection = 0;
}
this.vocals.set_time(flixel_FlxG.sound.music._time);
this.updateCurStep();
this.updateGrid();
this.updateSectionUI();
}
,changeSection: function(sec,updateMusic) {
if(updateMusic == null) {
updateMusic = true;
}
if(sec == null) {
sec = 0;
}
haxe_Log.trace("changing section" + sec,{ fileName : "source/ChartingState.hx", lineNumber : 733, className : "ChartingState", methodName : "changeSection"});
if(this._song.notes[sec] != null) {
this.curSection = sec;
this.updateGrid();
if(updateMusic) {
flixel_FlxG.sound.music.pause();
this.vocals.pause();
flixel_FlxG.sound.music.set_time(this.sectionStartTime());
this.vocals.set_time(flixel_FlxG.sound.music._time);
this.updateCurStep();
}
this.updateGrid();
this.updateSectionUI();
}
}
,copySection: function(sectionNum) {
if(sectionNum == null) {
sectionNum = 1;
}
var a = this.curSection;
var daSec = a > sectionNum ? a : sectionNum;
var _g = 0;
var _g1 = this._song.notes[daSec - sectionNum].sectionNotes;
while(_g < _g1.length) {
var note = _g1[_g];
++_g;
var strum = note[0] + Conductor.stepCrochet * (this._song.notes[daSec].lengthInSteps * sectionNum);
var copiedNote = [strum,note[1],note[2]];
this._song.notes[daSec].sectionNotes.push(copiedNote);
}
this.updateGrid();
}
,updateSectionUI: function() {
var sec = this._song.notes[this.curSection];
this.stepperLength.set_value(sec.lengthInSteps);
this.check_mustHitSection.set_checked(sec.mustHitSection);
this.check_altAnim.set_checked(sec.altAnim);
this.check_changeBPM.set_checked(sec.changeBPM);
this.stepperSectionBPM.set_value(sec.bpm);
this.updateHeads();
}
,updateHeads: function() {
if(this.check_mustHitSection.checked) {
this.leftIcon.animation.play("bf");
this.rightIcon.animation.play("dad");
} else {
this.leftIcon.animation.play("dad");
this.rightIcon.animation.play("bf");
}
}
,updateNoteUI: function() {
if(this.curSelectedNote != null) {
this.stepperSusLength.set_value(this.curSelectedNote[2]);
}
}
,updateGrid: function() {
while(this.curRenderedNotes.members.length > 0) this.curRenderedNotes.remove(this.curRenderedNotes.members[0],true);
while(this.curRenderedSustains.members.length > 0) this.curRenderedSustains.remove(this.curRenderedSustains.members[0],true);
var sectionInfo = this._song.notes[this.curSection].sectionNotes;
if(this._song.notes[this.curSection].changeBPM && this._song.notes[this.curSection].bpm > 0) {
Conductor.changeBPM(this._song.notes[this.curSection].bpm);
} else {
var daBPM = this._song.bpm;
var _g = 0;
var _g1 = this.curSection;
while(_g < _g1) {
var i = _g++;
if(this._song.notes[i].changeBPM) {
daBPM = this._song.notes[i].bpm;
}
}
Conductor.changeBPM(daBPM);
}
var _g = 0;
while(_g < sectionInfo.length) {
var i = sectionInfo[_g];
++_g;
var daNoteInfo = i[1];
var daStrumTime = i[0];
var daSus = i[2];
var note = new Note(daStrumTime,daNoteInfo % 4);
note.sustainLength = daSus;
note.setGraphicSize(this.GRID_SIZE,this.GRID_SIZE);
note.updateHitbox();
note.set_x(Math.floor(daNoteInfo * this.GRID_SIZE));
note.set_y(Math.floor(this.getYfromStrum((daStrumTime - this.sectionStartTime()) % (Conductor.stepCrochet * this._song.notes[this.curSection].lengthInSteps))));
this.curRenderedNotes.add(note);
if(daSus > 0) {
var sustainVis = new flixel_FlxSprite(note.x + this.GRID_SIZE / 2,note.y + this.GRID_SIZE).makeGraphic(8,Math.floor(flixel_math_FlxMath.remapToRange(daSus,0,Conductor.stepCrochet * 16,0,this.gridBG.get_height())));
this.curRenderedSustains.add(sustainVis);
}
}
}
,addSection: function(lengthInSteps) {
if(lengthInSteps == null) {
lengthInSteps = 16;
}
var sec = { lengthInSteps : lengthInSteps, bpm : this._song.bpm, changeBPM : false, mustHitSection : true, sectionNotes : [], typeOfSection : 0, altAnim : false};
this._song.notes.push(sec);
}
,selectNote: function(note) {
var swagNum = 0;
var _g = 0;
var _g1 = this._song.notes[this.curSection].sectionNotes;
while(_g < _g1.length) {
var i = _g1[_g];
++_g;
if(i.strumTime == note.strumTime && i.noteData % 4 == note.noteData) {
this.curSelectedNote = this._song.notes[this.curSection].sectionNotes[swagNum];
}
++swagNum;
}
this.updateGrid();
this.updateNoteUI();
}
,deleteNote: function(note) {
var _g = 0;
var _g1 = this._song.notes[this.curSection].sectionNotes;
while(_g < _g1.length) {
var i = _g1[_g];
++_g;
if(i[0] == note.strumTime && i[1] % 4 == note.noteData) {
HxOverrides.remove(this._song.notes[this.curSection].sectionNotes,i);
}
}
this.updateGrid();
}
,clearSection: function() {
this._song.notes[this.curSection].sectionNotes = [];
this.updateGrid();
}
,clearSong: function() {
var _g = 0;
var _g1 = this._song.notes.length;
while(_g < _g1) {
var daSection = _g++;
this._song.notes[daSection].sectionNotes = [];
}
this.updateGrid();
}
,addNote: function() {
var noteStrum = this.getStrumTime(this.dummyArrow.y) + this.sectionStartTime();
var noteData = Math.floor(flixel_FlxG.mouse.x / this.GRID_SIZE);
var noteSus = 0;
this._song.notes[this.curSection].sectionNotes.push([noteStrum,noteData,noteSus]);
this.curSelectedNote = this._song.notes[this.curSection].sectionNotes[this._song.notes[this.curSection].sectionNotes.length - 1];
var _this = flixel_FlxG.keys.pressed;
if(_this.keyManager.checkStatus(17,_this.status)) {
this._song.notes[this.curSection].sectionNotes.push([noteStrum,(noteData + 4) % 8,noteSus]);
}
haxe_Log.trace(noteStrum,{ fileName : "source/ChartingState.hx", lineNumber : 958, className : "ChartingState", methodName : "addNote"});
haxe_Log.trace(this.curSection,{ fileName : "source/ChartingState.hx", lineNumber : 959, className : "ChartingState", methodName : "addNote"});
this.updateGrid();
this.updateNoteUI();
this.autosaveSong();
}
,getStrumTime: function(yPos) {
return flixel_math_FlxMath.remapToRange(yPos,this.gridBG.y,this.gridBG.y + this.gridBG.get_height(),0,16 * Conductor.stepCrochet);
}
,getYfromStrum: function(strumTime) {
return flixel_math_FlxMath.remapToRange(strumTime,0,16 * Conductor.stepCrochet,this.gridBG.y,this.gridBG.y + this.gridBG.get_height());
}
,daSpacing: null
,loadLevel: function() {
haxe_Log.trace(this._song.notes,{ fileName : "source/ChartingState.hx", lineNumber : 1005, className : "ChartingState", methodName : "loadLevel"});
}
,getNotes: function() {
var noteData = [];
var _g = 0;
var _g1 = this._song.notes;
while(_g < _g1.length) {
var i = _g1[_g];
++_g;
noteData.push(i.sectionNotes);
}
return noteData;
}
,loadJson: function(song) {
PlayState.SONG = Song.loadFromJson(song.toLowerCase(),song.toLowerCase());
var nextState = Type.createInstance(js_Boot.getClass(flixel_FlxG.game._state),[]);
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
,loadAutosave: function() {
PlayState.SONG = Song.parseJSONshit(flixel_FlxG.save.data.autosave);
var nextState = Type.createInstance(js_Boot.getClass(flixel_FlxG.game._state),[]);
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
,autosaveSong: function() {
flixel_FlxG.save.data.autosave = JSON.stringify({ "song" : this._song});
flixel_FlxG.save.flush();
}
,saveLevel: function() {
var json = { "song" : this._song};
var data = JSON.stringify(json);
if(data != null && data.length > 0) {
this._file = new openfl_net_FileReference();
this._file.addEventListener("complete",$bind(this,this.onSaveComplete));
this._file.addEventListener("cancel",$bind(this,this.onSaveCancel));
this._file.addEventListener("ioError",$bind(this,this.onSaveError));
this._file.save(StringTools.trim(data),this._song.song.toLowerCase() + ".json");
}
}
,onSaveComplete: function(_) {
this._file.removeEventListener("complete",$bind(this,this.onSaveComplete));
this._file.removeEventListener("cancel",$bind(this,this.onSaveCancel));
this._file.removeEventListener("ioError",$bind(this,this.onSaveError));
this._file = null;
}
,onSaveCancel: function(_) {
this._file.removeEventListener("complete",$bind(this,this.onSaveComplete));
this._file.removeEventListener("cancel",$bind(this,this.onSaveCancel));
this._file.removeEventListener("ioError",$bind(this,this.onSaveError));
this._file = null;
}
,onSaveError: function(_) {
this._file.removeEventListener("complete",$bind(this,this.onSaveComplete));
this._file.removeEventListener("cancel",$bind(this,this.onSaveCancel));
this._file.removeEventListener("ioError",$bind(this,this.onSaveError));
this._file = null;
}
,__class__: ChartingState
});
var Conductor = function() {
};
$hxClasses["Conductor"] = Conductor;
Conductor.__name__ = "Conductor";
Conductor.songPosition = null;
Conductor.lastSongPos = null;
Conductor.mapBPMChanges = function(song) {
Conductor.bpmChangeMap = [];
var curBPM = song.bpm;
var totalSteps = 0;
var totalPos = 0;
var _g = 0;
var _g1 = song.notes.length;
while(_g < _g1) {
var i = _g++;
if(song.notes[i].changeBPM && song.notes[i].bpm != curBPM) {
curBPM = song.notes[i].bpm;
var event = { stepTime : totalSteps, songTime : totalPos, bpm : curBPM};
Conductor.bpmChangeMap.push(event);
}
var deltaSteps = song.notes[i].lengthInSteps;
totalSteps += deltaSteps;
totalPos += 60 / curBPM * 1000 / 4 * deltaSteps;
}
haxe_Log.trace("new BPM map BUDDY " + Std.string(Conductor.bpmChangeMap),{ fileName : "source/Conductor.hx", lineNumber : 59, className : "Conductor", methodName : "mapBPMChanges"});
};
Conductor.changeBPM = function(newBpm) {
Conductor.bpm = newBpm;
Conductor.crochet = 60 / Conductor.bpm * 1000;
Conductor.stepCrochet = Conductor.crochet / 4;
};
Conductor.prototype = {
__class__: Conductor
};
var Device = $hxEnums["Device"] = { __ename__ : "Device", __constructs__ : ["Keys","Gamepad"]
,Keys: {_hx_index:0,__enum__:"Device",toString:$estr}
,Gamepad: ($_=function(id) { return {_hx_index:1,id:id,__enum__:"Device",toString:$estr}; },$_.__params__ = ["id"],$_)
};
var Control = $hxEnums["Control"] = { __ename__ : "Control", __constructs__ : ["UP","LEFT","RIGHT","DOWN","RESET","ACCEPT","BACK","PAUSE","CHEAT"]
,UP: {_hx_index:0,__enum__:"Control",toString:$estr}
,LEFT: {_hx_index:1,__enum__:"Control",toString:$estr}
,RIGHT: {_hx_index:2,__enum__:"Control",toString:$estr}
,DOWN: {_hx_index:3,__enum__:"Control",toString:$estr}
,RESET: {_hx_index:4,__enum__:"Control",toString:$estr}
,ACCEPT: {_hx_index:5,__enum__:"Control",toString:$estr}
,BACK: {_hx_index:6,__enum__:"Control",toString:$estr}
,PAUSE: {_hx_index:7,__enum__:"Control",toString:$estr}
,CHEAT: {_hx_index:8,__enum__:"Control",toString:$estr}
};
var KeyboardScheme = $hxEnums["KeyboardScheme"] = { __ename__ : "KeyboardScheme", __constructs__ : ["Solo","Duo","None","Custom"]
,Solo: {_hx_index:0,__enum__:"KeyboardScheme",toString:$estr}
,Duo: ($_=function(first) { return {_hx_index:1,first:first,__enum__:"KeyboardScheme",toString:$estr}; },$_.__params__ = ["first"],$_)
,None: {_hx_index:2,__enum__:"KeyboardScheme",toString:$estr}
,Custom: {_hx_index:3,__enum__:"KeyboardScheme",toString:$estr}
};
var flixel_input_actions_FlxActionSet = function(Name,DigitalActions,AnalogActions) {
this.active = true;
this.name = "";
this.name = Name;
if(DigitalActions == null) {
DigitalActions = [];
}
if(AnalogActions == null) {
AnalogActions = [];
}
this.digitalActions = DigitalActions;
this.analogActions = AnalogActions;
};
$hxClasses["flixel.input.actions.FlxActionSet"] = flixel_input_actions_FlxActionSet;
flixel_input_actions_FlxActionSet.__name__ = "flixel.input.actions.FlxActionSet";
flixel_input_actions_FlxActionSet.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_input_actions_FlxActionSet.fromJson = function(Data,CallbackDigital,CallbackAnalog) {
var digitalActions = [];
var analogActions = [];
if(Data == null) {
return null;
}
if(Data.digitalActions != null) {
var arrD = Data.digitalActions;
var _g = 0;
while(_g < arrD.length) {
var d = arrD[_g];
++_g;
var dName = d;
var action = new flixel_input_actions_FlxActionDigital(dName,CallbackDigital);
digitalActions.push(action);
}
}
if(Data.analogActions != null) {
var arrA = Data.analogActions;
var _g = 0;
while(_g < arrA.length) {
var a = arrA[_g];
++_g;
var aName = a;
var action = new flixel_input_actions_FlxActionAnalog(aName,CallbackAnalog);
analogActions.push(action);
}
}
if(Data.name != null) {
var name = Data.name;
var set = new flixel_input_actions_FlxActionSet(name,digitalActions,analogActions);
return set;
}
return null;
};
flixel_input_actions_FlxActionSet.prototype = {
name: null
,digitalActions: null
,analogActions: null
,active: null
,toJson: function() {
var space = "\t";
return JSON.stringify(this,function(key,value) {
if(((value) instanceof flixel_input_actions_FlxAction)) {
var fa = value;
return { "type" : fa.type, "name" : fa.name, "steamHandle" : fa.steamHandle};
}
return value;
},space);
}
,attachSteamController: function(Handle,Attach) {
if(Attach == null) {
Attach = true;
}
this.attachSteamControllerSub(Handle,Attach,flixel_input_actions_FlxInputType.DIGITAL,this.digitalActions,null);
this.attachSteamControllerSub(Handle,Attach,flixel_input_actions_FlxInputType.ANALOG,null,this.analogActions);
}
,add: function(Action1) {
if(Action1.type == flixel_input_actions_FlxInputType.DIGITAL) {
var dAction = Action1;
if(this.digitalActions.indexOf(dAction) != -1) {
return false;
}
this.digitalActions.push(dAction);
return true;
} else if(Action1.type == flixel_input_actions_FlxInputType.ANALOG) {
var aAction = Action1;
if(this.analogActions.indexOf(aAction) != -1) {
return false;
}
this.analogActions.push(aAction);
return true;
}
return false;
}
,destroy: function() {
this.digitalActions = flixel_util_FlxDestroyUtil.destroyArray(this.digitalActions);
this.analogActions = flixel_util_FlxDestroyUtil.destroyArray(this.analogActions);
}
,remove: function(Action1,Destroy) {
if(Destroy == null) {
Destroy = true;
}
var result = false;
if(Action1.type == flixel_input_actions_FlxInputType.DIGITAL) {
result = HxOverrides.remove(this.digitalActions,Action1);
if(result && Destroy) {
Action1.destroy();
}
} else if(Action1.type == flixel_input_actions_FlxInputType.ANALOG) {
result = HxOverrides.remove(this.analogActions,Action1);
if(result && Destroy) {
Action1.destroy();
}
}
return result;
}
,update: function() {
if(!this.active) {
return;
}
var _g = 0;
var _g1 = this.digitalActions;
while(_g < _g1.length) {
var digitalAction = _g1[_g];
++_g;
digitalAction.update();
}
var _g = 0;
var _g1 = this.analogActions;
while(_g < _g1.length) {
var analogAction = _g1[_g];
++_g;
analogAction.update();
}
}
,attachSteamControllerSub: function(Handle,Attach,InputType,DigitalActions,AnalogActions) {
var length = InputType == flixel_input_actions_FlxInputType.DIGITAL ? DigitalActions.length : AnalogActions.length;
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
var action = InputType == flixel_input_actions_FlxInputType.DIGITAL ? DigitalActions[i] : AnalogActions[i];
if(action.steamHandle != -1) {
var inputExists = false;
var theInput = null;
if(action.inputs != null) {
var _g2 = 0;
var _g3 = action.inputs;
while(_g2 < _g3.length) {
var input = _g3[_g2];
++_g2;
if(input.device == flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER && input.deviceID == Handle) {
inputExists = true;
theInput = input;
}
}
}
if(Attach) {
if(!inputExists) {
if(InputType == flixel_input_actions_FlxInputType.DIGITAL) {
DigitalActions[i].add(new flixel_input_actions_FlxActionInputDigitalSteam(action.steamHandle,2,Handle));
} else if(InputType == flixel_input_actions_FlxInputType.ANALOG) {
AnalogActions[i].add(new flixel_input_actions_FlxActionInputAnalogSteam(action.steamHandle,1,3,Handle));
}
}
} else if(inputExists) {
action.remove(theInput);
}
}
}
}
,__class__: flixel_input_actions_FlxActionSet
};
var Controls = function(name,scheme) {
if(scheme == null) {
scheme = KeyboardScheme.None;
}
this.keyboardScheme = KeyboardScheme.None;
this.gamepadsAdded = [];
this.byName = new haxe_ds_StringMap();
this._cheat = new flixel_input_actions_FlxActionDigital("cheat");
this._reset = new flixel_input_actions_FlxActionDigital("reset");
this._pause = new flixel_input_actions_FlxActionDigital("pause");
this._back = new flixel_input_actions_FlxActionDigital("back");
this._accept = new flixel_input_actions_FlxActionDigital("accept");
this._downR = new flixel_input_actions_FlxActionDigital("down-release");
this._rightR = new flixel_input_actions_FlxActionDigital("right-release");
this._leftR = new flixel_input_actions_FlxActionDigital("left-release");
this._upR = new flixel_input_actions_FlxActionDigital("up-release");
this._downP = new flixel_input_actions_FlxActionDigital("down-press");
this._rightP = new flixel_input_actions_FlxActionDigital("right-press");
this._leftP = new flixel_input_actions_FlxActionDigital("left-press");
this._upP = new flixel_input_actions_FlxActionDigital("up-press");
this._down = new flixel_input_actions_FlxActionDigital("down");
this._right = new flixel_input_actions_FlxActionDigital("right");
this._left = new flixel_input_actions_FlxActionDigital("left");
this._up = new flixel_input_actions_FlxActionDigital("up");
flixel_input_actions_FlxActionSet.call(this,name);
this.add(this._up);
this.add(this._left);
this.add(this._right);
this.add(this._down);
this.add(this._upP);
this.add(this._leftP);
this.add(this._rightP);
this.add(this._downP);
this.add(this._upR);
this.add(this._leftR);
this.add(this._rightR);
this.add(this._downR);
this.add(this._accept);
this.add(this._back);
this.add(this._pause);
this.add(this._reset);
this.add(this._cheat);
var _g = 0;
var _g1 = this.digitalActions;
while(_g < _g1.length) {
var action = _g1[_g];
++_g;
this.byName.h[action.name] = action;
}
this.setKeyboardScheme(scheme,false);
};
$hxClasses["Controls"] = Controls;
Controls.__name__ = "Controls";
Controls.init = function() {
var actions = new flixel_input_actions_FlxActionManager();
flixel_FlxG.inputs.add_flixel_input_actions_FlxActionManager(actions);
};
Controls.addKeys = function(action,keys,state) {
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
};
Controls.removeKeys = function(action,keys) {
var i = action.inputs.length;
while(i-- > 0) {
var input = action.inputs[i];
if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD && keys.indexOf(input.inputID) != -1) {
action.remove(input);
}
}
};
Controls.addButtons = function(action,buttons,state,id) {
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
};
Controls.removeButtons = function(action,gamepadID,buttons) {
var i = action.inputs.length;
while(i-- > 0) {
var input = action.inputs[i];
if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD && (gamepadID == -1 || input.deviceID == gamepadID) && buttons.indexOf(input.inputID) != -1) {
action.remove(input);
}
}
};
Controls.isDevice = function(input,device) {
switch(device._hx_index) {
case 0:
return input.device == flixel_input_actions_FlxInputDevice.KEYBOARD;
case 1:
var id = device.id;
if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD) {
if(id != -1) {
return input.deviceID == id;
} else {
return true;
}
} else {
return false;
}
break;
}
};
Controls.isGamepad = function(input,deviceID) {
if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD) {
if(deviceID != -1) {
return input.deviceID == deviceID;
} else {
return true;
}
} else {
return false;
}
};
Controls.__super__ = flixel_input_actions_FlxActionSet;
Controls.prototype = $extend(flixel_input_actions_FlxActionSet.prototype,{
_up: null
,_left: null
,_right: null
,_down: null
,_upP: null
,_leftP: null
,_rightP: null
,_downP: null
,_upR: null
,_leftR: null
,_rightR: null
,_downR: null
,_accept: null
,_back: null
,_pause: null
,_reset: null
,_cheat: null
,byName: null
,gamepadsAdded: null
,keyboardScheme: null
,get_UP: function() {
return this._up.check();
}
,get_LEFT: function() {
return this._left.check();
}
,get_RIGHT: function() {
return this._right.check();
}
,get_DOWN: function() {
return this._down.check();
}
,get_UP_P: function() {
return this._upP.check();
}
,get_LEFT_P: function() {
return this._leftP.check();
}
,get_RIGHT_P: function() {
return this._rightP.check();
}
,get_DOWN_P: function() {
return this._downP.check();
}
,get_UP_R: function() {
return this._upR.check();
}
,get_LEFT_R: function() {
return this._leftR.check();
}
,get_RIGHT_R: function() {
return this._rightR.check();
}
,get_DOWN_R: function() {
return this._downR.check();
}
,get_ACCEPT: function() {
return this._accept.check();
}
,get_BACK: function() {
return this._back.check();
}
,get_PAUSE: function() {
return this._pause.check();
}
,get_RESET: function() {
return this._reset.check();
}
,get_CHEAT: function() {
return this._cheat.check();
}
,update: function() {
flixel_input_actions_FlxActionSet.prototype.update.call(this);
}
,checkByName: function(name) {
return this.byName.h[name].check();
}
,getDialogueName: function(action) {
var input = action.inputs[0];
var _g = input.device;
switch(_g._hx_index) {
case 3:
var tmp = input.inputID;
return "[" + (tmp == null ? "null" : flixel_input_keyboard_FlxKey.toStringMap.h[tmp]) + "]";
case 4:
var tmp = input.inputID;
return "(" + (tmp == null ? "null" : flixel_input_gamepad_FlxGamepadInputID.toStringMap.h[tmp]) + ")";
default:
var device = _g;
throw haxe_Exception.thrown("unhandled device: " + Std.string(device));
}
}
,getDialogueNameFromToken: function(token) {
return this.getDialogueName(this.getActionFromControl(Type.createEnum(Control,token.toUpperCase(),null)));
}
,getActionFromControl: function(control) {
switch(control._hx_index) {
case 0:
return this._up;
case 1:
return this._left;
case 2:
return this._right;
case 3:
return this._down;
case 4:
return this._reset;
case 5:
return this._accept;
case 6:
return this._back;
case 7:
return this._pause;
case 8:
return this._cheat;
}
}
,forEachBound: function(control,func) {
switch(control._hx_index) {
case 0:
func(this._up,1);
func(this._upP,2);
func(this._upR,-1);
break;
case 1:
func(this._left,1);
func(this._leftP,2);
func(this._leftR,-1);
break;
case 2:
func(this._right,1);
func(this._rightP,2);
func(this._rightR,-1);
break;
case 3:
func(this._down,1);
func(this._downP,2);
func(this._downR,-1);
break;
case 4:
func(this._reset,2);
break;
case 5:
func(this._accept,2);
break;
case 6:
func(this._back,2);
break;
case 7:
func(this._pause,2);
break;
case 8:
func(this._cheat,2);
break;
}
}
,replaceBinding: function(control,device,toAdd,toRemove) {
if(toAdd == toRemove) {
return;
}
switch(device._hx_index) {
case 0:
if(toRemove != null) {
this.unbindKeys(control,[toRemove]);
}
if(toAdd != null) {
this.bindKeys(control,[toAdd]);
}
break;
case 1:
var id = device.id;
if(toRemove != null) {
this.unbindButtons(control,id,[toRemove]);
}
if(toAdd != null) {
this.bindButtons(control,id,[toAdd]);
}
break;
}
}
,copyFrom: function(controls,device) {
var _g = haxe_ds_StringMap.kvIterator(controls.byName.h);
while(_g.hasNext()) {
var _g1 = _g.next();
var name = _g1.key;
var action = _g1.value;
var _g2 = 0;
var _g3 = action.inputs;
while(_g2 < _g3.length) {
var input = _g3[_g2];
++_g2;
if(device == null || Controls.isDevice(input,device)) {
this.byName.h[name].add(input);
}
}
}
if(device == null) {
var _g = 0;
var _g1 = controls.gamepadsAdded;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(this.gamepadsAdded.indexOf(gamepad) == -1) {
this.gamepadsAdded.push(gamepad);
}
}
this.mergeKeyboardScheme(controls.keyboardScheme);
} else {
switch(device._hx_index) {
case 0:
this.mergeKeyboardScheme(controls.keyboardScheme);
break;
case 1:
var id = device.id;
this.gamepadsAdded.push(id);
break;
}
}
}
,copyTo: function(controls,device) {
controls.copyFrom(this,device);
}
,mergeKeyboardScheme: function(scheme) {
if(scheme != KeyboardScheme.None) {
if(this.keyboardScheme._hx_index == 2) {
this.keyboardScheme = scheme;
} else {
this.keyboardScheme = KeyboardScheme.Custom;
}
}
}
,bindKeys: function(control,keys) {
switch(control._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
}
,unbindKeys: function(control,keys) {
switch(control._hx_index) {
case 0:
Controls.removeKeys(this._up,keys);
Controls.removeKeys(this._upP,keys);
Controls.removeKeys(this._upR,keys);
break;
case 1:
Controls.removeKeys(this._left,keys);
Controls.removeKeys(this._leftP,keys);
Controls.removeKeys(this._leftR,keys);
break;
case 2:
Controls.removeKeys(this._right,keys);
Controls.removeKeys(this._rightP,keys);
Controls.removeKeys(this._rightR,keys);
break;
case 3:
Controls.removeKeys(this._down,keys);
Controls.removeKeys(this._downP,keys);
Controls.removeKeys(this._downR,keys);
break;
case 4:
Controls.removeKeys(this._reset,keys);
break;
case 5:
Controls.removeKeys(this._accept,keys);
break;
case 6:
Controls.removeKeys(this._back,keys);
break;
case 7:
Controls.removeKeys(this._pause,keys);
break;
case 8:
Controls.removeKeys(this._cheat,keys);
break;
}
}
,setKeyboardScheme: function(scheme,reset) {
if(reset == null) {
reset = true;
}
if(reset) {
this.removeKeyboard();
}
this.keyboardScheme = scheme;
switch(scheme._hx_index) {
case 0:
var keys = [87,38];
switch(Control.UP._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [83,40];
switch(Control.DOWN._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [65,37];
switch(Control.LEFT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [68,39];
switch(Control.RIGHT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [90,32,13];
switch(Control.ACCEPT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [8,27];
switch(Control.BACK._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [80,13,27];
switch(Control.PAUSE._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [82];
switch(Control.RESET._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
break;
case 1:
if(scheme.first) {
var keys = [87];
switch(Control.UP._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [83];
switch(Control.DOWN._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [65];
switch(Control.LEFT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [68];
switch(Control.RIGHT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [71,90];
switch(Control.ACCEPT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [72,88];
switch(Control.BACK._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [49];
switch(Control.PAUSE._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [82];
switch(Control.RESET._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
} else {
var keys = [38];
switch(Control.UP._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [40];
switch(Control.DOWN._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [37];
switch(Control.LEFT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [39];
switch(Control.RIGHT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [79];
switch(Control.ACCEPT._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [80];
switch(Control.BACK._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [13];
switch(Control.PAUSE._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
var keys = [8];
switch(Control.RESET._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < keys.length) {
var key = keys[_g];
++_g;
action.addKey(key,state);
}
break;
}
}
break;
case 2:
break;
case 3:
break;
}
}
,removeKeyboard: function() {
var _g = 0;
var _g1 = this.digitalActions;
while(_g < _g1.length) {
var action = _g1[_g];
++_g;
var i = action.inputs.length;
while(i-- > 0) {
var input = action.inputs[i];
if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD) {
action.remove(input);
}
}
}
}
,addGamepad: function(id,buttonMap) {
this.gamepadsAdded.push(id);
var _g = new haxe_iterators_MapKeyValueIterator(buttonMap);
while(_g.hasNext()) {
var _g1 = _g.next();
var control = _g1.key;
var buttons = _g1.value;
var id1 = id;
var buttons1 = buttons;
switch(control._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g2 = 0;
while(_g2 < buttons1.length) {
var button = buttons1[_g2];
++_g2;
action.addGamepad(button,state,id1);
}
var action1 = this._upP;
var state1 = 2;
var _g3 = 0;
while(_g3 < buttons1.length) {
var button1 = buttons1[_g3];
++_g3;
action1.addGamepad(button1,state1,id1);
}
var action2 = this._upR;
var state2 = -1;
var _g4 = 0;
while(_g4 < buttons1.length) {
var button2 = buttons1[_g4];
++_g4;
action2.addGamepad(button2,state2,id1);
}
break;
case 1:
var action3 = this._left;
var state3 = 1;
var _g5 = 0;
while(_g5 < buttons1.length) {
var button3 = buttons1[_g5];
++_g5;
action3.addGamepad(button3,state3,id1);
}
var action4 = this._leftP;
var state4 = 2;
var _g6 = 0;
while(_g6 < buttons1.length) {
var button4 = buttons1[_g6];
++_g6;
action4.addGamepad(button4,state4,id1);
}
var action5 = this._leftR;
var state5 = -1;
var _g7 = 0;
while(_g7 < buttons1.length) {
var button5 = buttons1[_g7];
++_g7;
action5.addGamepad(button5,state5,id1);
}
break;
case 2:
var action6 = this._right;
var state6 = 1;
var _g8 = 0;
while(_g8 < buttons1.length) {
var button6 = buttons1[_g8];
++_g8;
action6.addGamepad(button6,state6,id1);
}
var action7 = this._rightP;
var state7 = 2;
var _g9 = 0;
while(_g9 < buttons1.length) {
var button7 = buttons1[_g9];
++_g9;
action7.addGamepad(button7,state7,id1);
}
var action8 = this._rightR;
var state8 = -1;
var _g10 = 0;
while(_g10 < buttons1.length) {
var button8 = buttons1[_g10];
++_g10;
action8.addGamepad(button8,state8,id1);
}
break;
case 3:
var action9 = this._down;
var state9 = 1;
var _g11 = 0;
while(_g11 < buttons1.length) {
var button9 = buttons1[_g11];
++_g11;
action9.addGamepad(button9,state9,id1);
}
var action10 = this._downP;
var state10 = 2;
var _g12 = 0;
while(_g12 < buttons1.length) {
var button10 = buttons1[_g12];
++_g12;
action10.addGamepad(button10,state10,id1);
}
var action11 = this._downR;
var state11 = -1;
var _g13 = 0;
while(_g13 < buttons1.length) {
var button11 = buttons1[_g13];
++_g13;
action11.addGamepad(button11,state11,id1);
}
break;
case 4:
var action12 = this._reset;
var state12 = 2;
var _g14 = 0;
while(_g14 < buttons1.length) {
var button12 = buttons1[_g14];
++_g14;
action12.addGamepad(button12,state12,id1);
}
break;
case 5:
var action13 = this._accept;
var state13 = 2;
var _g15 = 0;
while(_g15 < buttons1.length) {
var button13 = buttons1[_g15];
++_g15;
action13.addGamepad(button13,state13,id1);
}
break;
case 6:
var action14 = this._back;
var state14 = 2;
var _g16 = 0;
while(_g16 < buttons1.length) {
var button14 = buttons1[_g16];
++_g16;
action14.addGamepad(button14,state14,id1);
}
break;
case 7:
var action15 = this._pause;
var state15 = 2;
var _g17 = 0;
while(_g17 < buttons1.length) {
var button15 = buttons1[_g17];
++_g17;
action15.addGamepad(button15,state15,id1);
}
break;
case 8:
var action16 = this._cheat;
var state16 = 2;
var _g18 = 0;
while(_g18 < buttons1.length) {
var button16 = buttons1[_g18];
++_g18;
action16.addGamepad(button16,state16,id1);
}
break;
}
}
}
,addGamepadLiteral: function(id,buttonMap) {
this.gamepadsAdded.push(id);
var _g = new haxe_iterators_MapKeyValueIterator(buttonMap);
while(_g.hasNext()) {
var _g1 = _g.next();
var control = _g1.key;
var buttons = _g1.value;
var id1 = id;
var buttons1 = buttons;
switch(control._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g2 = 0;
while(_g2 < buttons1.length) {
var button = buttons1[_g2];
++_g2;
action.addGamepad(button,state,id1);
}
var action1 = this._upP;
var state1 = 2;
var _g3 = 0;
while(_g3 < buttons1.length) {
var button1 = buttons1[_g3];
++_g3;
action1.addGamepad(button1,state1,id1);
}
var action2 = this._upR;
var state2 = -1;
var _g4 = 0;
while(_g4 < buttons1.length) {
var button2 = buttons1[_g4];
++_g4;
action2.addGamepad(button2,state2,id1);
}
break;
case 1:
var action3 = this._left;
var state3 = 1;
var _g5 = 0;
while(_g5 < buttons1.length) {
var button3 = buttons1[_g5];
++_g5;
action3.addGamepad(button3,state3,id1);
}
var action4 = this._leftP;
var state4 = 2;
var _g6 = 0;
while(_g6 < buttons1.length) {
var button4 = buttons1[_g6];
++_g6;
action4.addGamepad(button4,state4,id1);
}
var action5 = this._leftR;
var state5 = -1;
var _g7 = 0;
while(_g7 < buttons1.length) {
var button5 = buttons1[_g7];
++_g7;
action5.addGamepad(button5,state5,id1);
}
break;
case 2:
var action6 = this._right;
var state6 = 1;
var _g8 = 0;
while(_g8 < buttons1.length) {
var button6 = buttons1[_g8];
++_g8;
action6.addGamepad(button6,state6,id1);
}
var action7 = this._rightP;
var state7 = 2;
var _g9 = 0;
while(_g9 < buttons1.length) {
var button7 = buttons1[_g9];
++_g9;
action7.addGamepad(button7,state7,id1);
}
var action8 = this._rightR;
var state8 = -1;
var _g10 = 0;
while(_g10 < buttons1.length) {
var button8 = buttons1[_g10];
++_g10;
action8.addGamepad(button8,state8,id1);
}
break;
case 3:
var action9 = this._down;
var state9 = 1;
var _g11 = 0;
while(_g11 < buttons1.length) {
var button9 = buttons1[_g11];
++_g11;
action9.addGamepad(button9,state9,id1);
}
var action10 = this._downP;
var state10 = 2;
var _g12 = 0;
while(_g12 < buttons1.length) {
var button10 = buttons1[_g12];
++_g12;
action10.addGamepad(button10,state10,id1);
}
var action11 = this._downR;
var state11 = -1;
var _g13 = 0;
while(_g13 < buttons1.length) {
var button11 = buttons1[_g13];
++_g13;
action11.addGamepad(button11,state11,id1);
}
break;
case 4:
var action12 = this._reset;
var state12 = 2;
var _g14 = 0;
while(_g14 < buttons1.length) {
var button12 = buttons1[_g14];
++_g14;
action12.addGamepad(button12,state12,id1);
}
break;
case 5:
var action13 = this._accept;
var state13 = 2;
var _g15 = 0;
while(_g15 < buttons1.length) {
var button13 = buttons1[_g15];
++_g15;
action13.addGamepad(button13,state13,id1);
}
break;
case 6:
var action14 = this._back;
var state14 = 2;
var _g16 = 0;
while(_g16 < buttons1.length) {
var button14 = buttons1[_g16];
++_g16;
action14.addGamepad(button14,state14,id1);
}
break;
case 7:
var action15 = this._pause;
var state15 = 2;
var _g17 = 0;
while(_g17 < buttons1.length) {
var button15 = buttons1[_g17];
++_g17;
action15.addGamepad(button15,state15,id1);
}
break;
case 8:
var action16 = this._cheat;
var state16 = 2;
var _g18 = 0;
while(_g18 < buttons1.length) {
var button16 = buttons1[_g18];
++_g18;
action16.addGamepad(button16,state16,id1);
}
break;
}
}
}
,removeGamepad: function(deviceID) {
if(deviceID == null) {
deviceID = -1;
}
var _g = 0;
var _g1 = this.digitalActions;
while(_g < _g1.length) {
var action = _g1[_g];
++_g;
var i = action.inputs.length;
while(i-- > 0) {
var input = action.inputs[i];
if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD && (deviceID == -1 || input.deviceID == deviceID)) {
action.remove(input);
}
}
}
HxOverrides.remove(this.gamepadsAdded,deviceID);
}
,addDefaultGamepad: function(id) {
var _g = new haxe_ds_EnumValueMap();
_g.set(Control.ACCEPT,[0]);
_g.set(Control.BACK,[1]);
_g.set(Control.UP,[11,34]);
_g.set(Control.DOWN,[12,36]);
_g.set(Control.LEFT,[13,37]);
_g.set(Control.RIGHT,[14,35]);
_g.set(Control.PAUSE,[7]);
_g.set(Control.RESET,[3]);
this.gamepadsAdded.push(id);
var _g1 = new haxe_iterators_MapKeyValueIterator(_g);
while(_g1.hasNext()) {
var _g = _g1.next();
var control = _g.key;
var buttons = _g.value;
var id1 = id;
var buttons1 = buttons;
switch(control._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g2 = 0;
while(_g2 < buttons1.length) {
var button = buttons1[_g2];
++_g2;
action.addGamepad(button,state,id1);
}
var action1 = this._upP;
var state1 = 2;
var _g3 = 0;
while(_g3 < buttons1.length) {
var button1 = buttons1[_g3];
++_g3;
action1.addGamepad(button1,state1,id1);
}
var action2 = this._upR;
var state2 = -1;
var _g4 = 0;
while(_g4 < buttons1.length) {
var button2 = buttons1[_g4];
++_g4;
action2.addGamepad(button2,state2,id1);
}
break;
case 1:
var action3 = this._left;
var state3 = 1;
var _g5 = 0;
while(_g5 < buttons1.length) {
var button3 = buttons1[_g5];
++_g5;
action3.addGamepad(button3,state3,id1);
}
var action4 = this._leftP;
var state4 = 2;
var _g6 = 0;
while(_g6 < buttons1.length) {
var button4 = buttons1[_g6];
++_g6;
action4.addGamepad(button4,state4,id1);
}
var action5 = this._leftR;
var state5 = -1;
var _g7 = 0;
while(_g7 < buttons1.length) {
var button5 = buttons1[_g7];
++_g7;
action5.addGamepad(button5,state5,id1);
}
break;
case 2:
var action6 = this._right;
var state6 = 1;
var _g8 = 0;
while(_g8 < buttons1.length) {
var button6 = buttons1[_g8];
++_g8;
action6.addGamepad(button6,state6,id1);
}
var action7 = this._rightP;
var state7 = 2;
var _g9 = 0;
while(_g9 < buttons1.length) {
var button7 = buttons1[_g9];
++_g9;
action7.addGamepad(button7,state7,id1);
}
var action8 = this._rightR;
var state8 = -1;
var _g10 = 0;
while(_g10 < buttons1.length) {
var button8 = buttons1[_g10];
++_g10;
action8.addGamepad(button8,state8,id1);
}
break;
case 3:
var action9 = this._down;
var state9 = 1;
var _g11 = 0;
while(_g11 < buttons1.length) {
var button9 = buttons1[_g11];
++_g11;
action9.addGamepad(button9,state9,id1);
}
var action10 = this._downP;
var state10 = 2;
var _g12 = 0;
while(_g12 < buttons1.length) {
var button10 = buttons1[_g12];
++_g12;
action10.addGamepad(button10,state10,id1);
}
var action11 = this._downR;
var state11 = -1;
var _g13 = 0;
while(_g13 < buttons1.length) {
var button11 = buttons1[_g13];
++_g13;
action11.addGamepad(button11,state11,id1);
}
break;
case 4:
var action12 = this._reset;
var state12 = 2;
var _g14 = 0;
while(_g14 < buttons1.length) {
var button12 = buttons1[_g14];
++_g14;
action12.addGamepad(button12,state12,id1);
}
break;
case 5:
var action13 = this._accept;
var state13 = 2;
var _g15 = 0;
while(_g15 < buttons1.length) {
var button13 = buttons1[_g15];
++_g15;
action13.addGamepad(button13,state13,id1);
}
break;
case 6:
var action14 = this._back;
var state14 = 2;
var _g16 = 0;
while(_g16 < buttons1.length) {
var button14 = buttons1[_g16];
++_g16;
action14.addGamepad(button14,state14,id1);
}
break;
case 7:
var action15 = this._pause;
var state15 = 2;
var _g17 = 0;
while(_g17 < buttons1.length) {
var button15 = buttons1[_g17];
++_g17;
action15.addGamepad(button15,state15,id1);
}
break;
case 8:
var action16 = this._cheat;
var state16 = 2;
var _g18 = 0;
while(_g18 < buttons1.length) {
var button16 = buttons1[_g18];
++_g18;
action16.addGamepad(button16,state16,id1);
}
break;
}
}
}
,bindButtons: function(control,id,buttons) {
switch(control._hx_index) {
case 0:
var action = this._up;
var state = 1;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
var action = this._upP;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
var action = this._upR;
var state = -1;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
case 1:
var action = this._left;
var state = 1;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
var action = this._leftP;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
var action = this._leftR;
var state = -1;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
case 2:
var action = this._right;
var state = 1;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
var action = this._rightP;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
var action = this._rightR;
var state = -1;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
case 3:
var action = this._down;
var state = 1;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
var action = this._downP;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
var action = this._downR;
var state = -1;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
case 4:
var action = this._reset;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
case 5:
var action = this._accept;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
case 6:
var action = this._back;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
case 7:
var action = this._pause;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
case 8:
var action = this._cheat;
var state = 2;
var _g = 0;
while(_g < buttons.length) {
var button = buttons[_g];
++_g;
action.addGamepad(button,state,id);
}
break;
}
}
,unbindButtons: function(control,gamepadID,buttons) {
switch(control._hx_index) {
case 0:
Controls.removeButtons(this._up,gamepadID,buttons);
Controls.removeButtons(this._upP,gamepadID,buttons);
Controls.removeButtons(this._upR,gamepadID,buttons);
break;
case 1:
Controls.removeButtons(this._left,gamepadID,buttons);
Controls.removeButtons(this._leftP,gamepadID,buttons);
Controls.removeButtons(this._leftR,gamepadID,buttons);
break;
case 2:
Controls.removeButtons(this._right,gamepadID,buttons);
Controls.removeButtons(this._rightP,gamepadID,buttons);
Controls.removeButtons(this._rightR,gamepadID,buttons);
break;
case 3:
Controls.removeButtons(this._down,gamepadID,buttons);
Controls.removeButtons(this._downP,gamepadID,buttons);
Controls.removeButtons(this._downR,gamepadID,buttons);
break;
case 4:
Controls.removeButtons(this._reset,gamepadID,buttons);
break;
case 5:
Controls.removeButtons(this._accept,gamepadID,buttons);
break;
case 6:
Controls.removeButtons(this._back,gamepadID,buttons);
break;
case 7:
Controls.removeButtons(this._pause,gamepadID,buttons);
break;
case 8:
Controls.removeButtons(this._cheat,gamepadID,buttons);
break;
}
}
,getInputsFor: function(control,device,list) {
if(list == null) {
list = [];
}
switch(device._hx_index) {
case 0:
var _g = 0;
var _g1 = this.getActionFromControl(control).inputs;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD) {
list.push(input.inputID);
}
}
break;
case 1:
var id = device.id;
var _g = 0;
var _g1 = this.getActionFromControl(control).inputs;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(input.deviceID == id) {
list.push(input.inputID);
}
}
break;
}
return list;
}
,removeDevice: function(device) {
switch(device._hx_index) {
case 0:
this.setKeyboardScheme(KeyboardScheme.None);
break;
case 1:
var id = device.id;
this.removeGamepad(id);
break;
}
}
,__class__: Controls
,__properties__: {get_CHEAT:"get_CHEAT",get_RESET:"get_RESET",get_PAUSE:"get_PAUSE",get_BACK:"get_BACK",get_ACCEPT:"get_ACCEPT",get_DOWN_R:"get_DOWN_R",get_RIGHT_R:"get_RIGHT_R",get_LEFT_R:"get_LEFT_R",get_UP_R:"get_UP_R",get_DOWN_P:"get_DOWN_P",get_RIGHT_P:"get_RIGHT_P",get_LEFT_P:"get_LEFT_P",get_UP_P:"get_UP_P",get_DOWN:"get_DOWN",get_RIGHT:"get_RIGHT",get_LEFT:"get_LEFT",get_UP:"get_UP"}
});
var CoolUtil = function() { };
$hxClasses["CoolUtil"] = CoolUtil;
CoolUtil.__name__ = "CoolUtil";
CoolUtil.coolTextFile = function(path) {
var daList = StringTools.trim(lime_utils_Assets.getText(path)).split("\n");
var _g = 0;
var _g1 = daList.length;
while(_g < _g1) {
var i = _g++;
daList[i] = StringTools.trim(daList[i]);
}
return daList;
};
CoolUtil.numberArray = function(max,min) {
if(min == null) {
min = 0;
}
var dumbArray = [];
var _g = min;
var _g1 = max;
while(_g < _g1) {
var i = _g++;
dumbArray.push(i);
}
return dumbArray;
};
var DialogueBox = function(talkingRight,dialogueList) {
if(talkingRight == null) {
talkingRight = true;
}
this.isEnding = false;
this.dialogueStarted = false;
this.dialogueOpened = false;
this.dialogueList = [];
this.curCharacter = "";
var _gthis = this;
flixel_group_FlxTypedSpriteGroup.call(this);
switch(PlayState.SONG.song.toLowerCase()) {
case "senpai":
flixel_FlxG.sound.playMusic("assets/music/Lunchbox" + TitleState.soundExt,0);
var _this = flixel_FlxG.sound.music;
var Duration = 1;
var From = 0;
var To = 0.8;
if(To == null) {
To = 1;
}
if(From == null) {
From = 0;
}
if(Duration == null) {
Duration = 1;
}
if(_this._channel == null) {
_this.play();
}
if(_this.fadeTween != null) {
_this.fadeTween.cancel();
}
_this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween));
break;
case "thorns":
flixel_FlxG.sound.playMusic("assets/music/LunchboxScary" + TitleState.soundExt,0);
var _this = flixel_FlxG.sound.music;
var Duration = 1;
var From = 0;
var To = 0.8;
if(To == null) {
To = 1;
}
if(From == null) {
From = 0;
}
if(Duration == null) {
Duration = 1;
}
if(_this._channel == null) {
_this.play();
}
if(_this.fadeTween != null) {
_this.fadeTween.cancel();
}
_this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween));
break;
}
this.bgFade = new flixel_FlxSprite(-200,-200).makeGraphic(flixel_FlxG.width * 1.3 | 0,flixel_FlxG.height * 1.3 | 0,-4988968);
this.bgFade.scrollFactor.set();
this.bgFade.set_alpha(0);
this.add(this.bgFade);
new flixel_util_FlxTimer().start(0.83,function(tmr) {
var _g = _gthis.bgFade;
_g.set_alpha(_g.alpha + 0.13999999999999999);
if(_gthis.bgFade.alpha > 0.7) {
_gthis.bgFade.set_alpha(0.7);
}
},5);
this.portraitLeft = new flixel_FlxSprite(-20,40);
this.portraitLeft.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/senpaiPortrait.png","assets/images/weeb/senpaiPortrait.xml"));
this.portraitLeft.animation.addByPrefix("enter","Senpai Portrait Enter",24,false);
this.portraitLeft.setGraphicSize(this.portraitLeft.get_width() * PlayState.daPixelZoom * 0.9 | 0);
this.portraitLeft.updateHitbox();
this.portraitLeft.scrollFactor.set();
this.add(this.portraitLeft);
this.portraitLeft.set_visible(false);
this.portraitRight = new flixel_FlxSprite(0,40);
this.portraitRight.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/bfPortrait.png","assets/images/weeb/bfPortrait.xml"));
this.portraitRight.animation.addByPrefix("enter","Boyfriend portrait enter",24,false);
this.portraitRight.setGraphicSize(this.portraitRight.get_width() * PlayState.daPixelZoom * 0.9 | 0);
this.portraitRight.updateHitbox();
this.portraitRight.scrollFactor.set();
this.add(this.portraitRight);
this.portraitRight.set_visible(false);
this.box = new flixel_FlxSprite(-20,45);
switch(PlayState.SONG.song.toLowerCase()) {
case "roses":
flixel_FlxG.sound.play("assets/sounds/ANGRY_TEXT_BOX" + TitleState.soundExt);
this.box.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/pixelUI/dialogueBox-senpaiMad.png","assets/images/weeb/pixelUI/dialogueBox-senpaiMad.xml"));
this.box.animation.addByPrefix("normalOpen","SENPAI ANGRY IMPACT SPEECH",24,false);
this.box.animation.addByIndices("normal","SENPAI ANGRY IMPACT SPEECH",[4],"",24);
break;
case "senpai":
this.box.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/pixelUI/dialogueBox-pixel.png","assets/images/weeb/pixelUI/dialogueBox-pixel.xml"));
this.box.animation.addByPrefix("normalOpen","Text Box Appear",24,false);
this.box.animation.addByIndices("normal","Text Box Appear",[4],"",24);
break;
case "thorns":
this.box.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/pixelUI/dialogueBox-evil.png","assets/images/weeb/pixelUI/dialogueBox-evil.xml"));
this.box.animation.addByPrefix("normalOpen","Spirit Textbox spawn",24,false);
this.box.animation.addByIndices("normal","Spirit Textbox spawn",[11],"",24);
var face = new flixel_FlxSprite(320,170).loadGraphic("assets/images/weeb/spiritFaceForward.png");
face.setGraphicSize(face.get_width() * 6 | 0);
this.add(face);
break;
}
this.box.animation.play("normalOpen");
this.box.setGraphicSize(this.box.get_width() * PlayState.daPixelZoom * 0.9 | 0);
this.box.updateHitbox();
this.add(this.box);
this.handSelect = new flixel_FlxSprite(flixel_FlxG.width * 0.9,flixel_FlxG.height * 0.9).loadGraphic("assets/images/weeb/pixelUI/hand_textbox.png");
this.add(this.handSelect);
this.box.screenCenter(flixel_util_FlxAxes.X);
this.portraitLeft.screenCenter(flixel_util_FlxAxes.X);
var tmp = !talkingRight;
this.dropText = new flixel_text_FlxText(242,502,flixel_FlxG.width * 0.6 | 0,"",32);
this.dropText.set_font("Pixel Arial 11 Bold");
this.dropText.set_color(-2583404);
this.add(this.dropText);
this.swagDialogue = new flixel_addons_text_FlxTypeText(240,500,flixel_FlxG.width * 0.6 | 0,"",32);
this.swagDialogue.set_font("Pixel Arial 11 Bold");
this.swagDialogue.set_color(-12640223);
var tmp = flixel_FlxG.sound.load("assets/sounds/pixelText" + TitleState.soundExt,0.6);
this.swagDialogue.sounds = [tmp];
this.add(this.swagDialogue);
this.dialogue = new Alphabet(0,80,"",false,true);
this.dialogueList = dialogueList;
};
$hxClasses["DialogueBox"] = DialogueBox;
DialogueBox.__name__ = "DialogueBox";
DialogueBox.__super__ = flixel_group_FlxTypedSpriteGroup;
DialogueBox.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{
box: null
,curCharacter: null
,dialogue: null
,dialogueList: null
,swagDialogue: null
,dropText: null
,finishThing: null
,portraitLeft: null
,portraitRight: null
,handSelect: null
,bgFade: null
,dialogueOpened: null
,dialogueStarted: null
,update: function(elapsed) {
var _gthis = this;
if(PlayState.SONG.song.toLowerCase() == "roses") {
this.portraitLeft.set_visible(false);
}
if(PlayState.SONG.song.toLowerCase() == "thorns") {
this.portraitLeft.set_color(-16777216);
this.swagDialogue.set_color(-1);
this.dropText.set_color(-16777216);
}
this.dropText.set_text(this.swagDialogue.text);
if(this.box.animation._curAnim != null) {
if(this.box.animation._curAnim.name == "normalOpen" && this.box.animation._curAnim.finished) {
this.box.animation.play("normal");
this.dialogueOpened = true;
}
}
if(this.dialogueOpened && !this.dialogueStarted) {
this.startDialogue();
this.dialogueStarted = true;
}
if(flixel_FlxG.keys.justPressed.get_ANY() && this.dialogueStarted == true) {
this.remove(this.dialogue);
flixel_FlxG.sound.play("assets/sounds/clickText" + TitleState.soundExt,0.8);
if(this.dialogueList[1] == null && this.dialogueList[0] != null) {
if(!this.isEnding) {
this.isEnding = true;
if(PlayState.SONG.song.toLowerCase() == "senpai" || PlayState.SONG.song.toLowerCase() == "thorns") {
var _this = flixel_FlxG.sound.music;
var Duration = 2.2;
var To = 0;
if(To == null) {
To = 0;
}
if(Duration == null) {
Duration = 1;
}
if(_this.fadeTween != null) {
_this.fadeTween.cancel();
}
_this.fadeTween = flixel_tweens_FlxTween.num(_this._volume,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween));
}
new flixel_util_FlxTimer().start(0.2,function(tmr) {
var _g = _gthis.box;
_g.set_alpha(_g.alpha - 0.2);
var _g = _gthis.bgFade;
_g.set_alpha(_g.alpha - 0.13999999999999999);
_gthis.portraitLeft.set_visible(false);
_gthis.portraitRight.set_visible(false);
var _g = _gthis.swagDialogue;
_g.set_alpha(_g.alpha - 0.2);
_gthis.dropText.set_alpha(_gthis.swagDialogue.alpha);
},5);
new flixel_util_FlxTimer().start(1.2,function(tmr) {
_gthis.finishThing();
_gthis.kill();
});
}
} else {
HxOverrides.remove(this.dialogueList,this.dialogueList[0]);
this.startDialogue();
}
}
flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed);
}
,isEnding: null
,startDialogue: function() {
this.cleanDialog();
this.swagDialogue.resetText(this.dialogueList[0]);
this.swagDialogue.start(0.04,true);
switch(this.curCharacter) {
case "bf":
this.portraitLeft.set_visible(false);
if(!this.portraitRight.visible) {
this.portraitRight.set_visible(true);
this.portraitRight.animation.play("enter");
}
break;
case "dad":
this.portraitRight.set_visible(false);
if(!this.portraitLeft.visible) {
this.portraitLeft.set_visible(true);
this.portraitLeft.animation.play("enter");
}
break;
}
}
,cleanDialog: function() {
var splitName = this.dialogueList[0].split(":");
this.curCharacter = splitName[1];
this.dialogueList[0] = StringTools.trim(HxOverrides.substr(this.dialogueList[0],splitName[1].length + 2,null));
}
,__class__: DialogueBox
});
var EReg = function(r,opt) {
this.r = new RegExp(r,opt.split("u").join(""));
};
$hxClasses["EReg"] = EReg;
EReg.__name__ = "EReg";
EReg.prototype = {
r: null
,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 haxe_Exception.thrown("EReg::matched");
}
}
,matchedRight: function() {
if(this.r.m == null) {
throw haxe_Exception.thrown("No string matched");
}
var sz = this.r.m.index + this.r.m[0].length;
return HxOverrides.substr(this.r.s,sz,this.r.s.length - sz);
}
,matchedPos: function() {
if(this.r.m == null) {
throw haxe_Exception.thrown("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;
this.r.m = this.r.exec(len < 0 ? s : HxOverrides.substr(s,0,pos + len));
var b = this.r.m != null;
if(b) {
this.r.s = s;
}
return b;
} else {
var b = this.match(len < 0 ? HxOverrides.substr(s,pos,null) : HxOverrides.substr(s,pos,len));
if(b) {
this.r.s = s;
this.r.m.index += pos;
}
return b;
}
}
,split: function(s) {
var d = "#__delim__#";
return s.replace(this.r,d).split(d);
}
,map: function(s,f) {
var offset = 0;
var buf_b = "";
while(true) {
if(offset >= s.length) {
break;
} else if(!this.matchSub(s,offset)) {
buf_b += Std.string(HxOverrides.substr(s,offset,null));
break;
}
var p = this.matchedPos();
buf_b += Std.string(HxOverrides.substr(s,offset,p.pos - offset));
buf_b += Std.string(f(this));
if(p.len == 0) {
buf_b += Std.string(HxOverrides.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_b += Std.string(HxOverrides.substr(s,offset,null));
}
return buf_b;
}
,__class__: EReg
};
var FreeplayState = function(TransIn,TransOut) {
this.curPlaying = false;
this.intendedScore = 0;
this.lerpScore = 0;
this.curDifficulty = 1;
this.curSelected = 0;
this.songs = [];
MusicBeatState.call(this,TransIn,TransOut);
};
$hxClasses["FreeplayState"] = FreeplayState;
FreeplayState.__name__ = "FreeplayState";
FreeplayState.__super__ = MusicBeatState;
FreeplayState.prototype = $extend(MusicBeatState.prototype,{
songs: null
,selector: null
,curSelected: null
,curDifficulty: null
,scoreText: null
,diffText: null
,lerpScore: null
,intendedScore: null
,grpSongs: null
,curPlaying: null
,create: function() {
this.songs = CoolUtil.coolTextFile("assets/data/freeplaySonglist.txt");
var isDebug = false;
if(StoryMenuState.weekUnlocked[2] || isDebug) {
this.songs.push("Spookeez");
this.songs.push("South");
}
if(StoryMenuState.weekUnlocked[3] || isDebug) {
this.songs.push("Pico");
this.songs.push("Philly");
this.songs.push("Blammed");
}
if(StoryMenuState.weekUnlocked[4] || isDebug) {
this.songs.push("Satin-Panties");
this.songs.push("High");
this.songs.push("Milf");
}
if(StoryMenuState.weekUnlocked[5] || isDebug) {
this.songs.push("Cocoa");
this.songs.push("Eggnog");
this.songs.push("Winter-Horrorland");
}
if(StoryMenuState.weekUnlocked[6] || isDebug) {
this.songs.push("Senpai");
this.songs.push("Roses");
this.songs.push("Thorns");
}
var bg = new flixel_FlxSprite().loadGraphic("assets/images/menuBGBlue.png");
this.add(bg);
this.grpSongs = new flixel_group_FlxTypedGroup();
this.add(this.grpSongs);
var _g = 0;
var _g1 = this.songs.length;
while(_g < _g1) {
var i = _g++;
var songText = new Alphabet(0,70 * i + 30,this.songs[i],true,false);
songText.isMenuItem = true;
songText.targetY = i;
this.grpSongs.add(songText);
}
this.scoreText = new flixel_text_FlxText(flixel_FlxG.width * 0.7,5,0,"",32);
this.scoreText.setFormat("assets/fonts/vcr.ttf",32,-1,"right");
var scoreBG = new flixel_FlxSprite(this.scoreText.x - 6,0).makeGraphic(flixel_FlxG.width * 0.35 | 0,66,-16777216);
scoreBG.set_alpha(0.6);
this.add(scoreBG);
this.diffText = new flixel_text_FlxText(this.scoreText.x,this.scoreText.y + 36,0,"",24);
this.diffText.set_font(this.scoreText._font);
this.add(this.diffText);
this.add(this.scoreText);
this.changeSelection();
this.changeDiff();
this.selector = new flixel_text_FlxText();
this.selector.set_size(40);
this.selector.set_text(">");
var swag = new Alphabet(1,0,"swag");
MusicBeatState.prototype.create.call(this);
}
,update: function(elapsed) {
MusicBeatState.prototype.update.call(this,elapsed);
if(flixel_FlxG.sound.music._volume < 0.7) {
var _g = flixel_FlxG.sound.music;
_g.set_volume(_g._volume + 0.5 * flixel_FlxG.elapsed);
}
var a = this.lerpScore;
this.lerpScore = Math.floor(a + 0.4 * (this.intendedScore - a));
if(Math.abs(this.lerpScore - this.intendedScore) <= 10) {
this.lerpScore = this.intendedScore;
}
this.scoreText.set_text("PERSONAL BEST:" + this.lerpScore);
var upP = PlayerSettings.player1.controls._upP.check();
var downP = PlayerSettings.player1.controls._downP.check();
var accepted = PlayerSettings.player1.controls._accept.check();
if(upP) {
this.changeSelection(-1);
}
if(downP) {
this.changeSelection(1);
}
if(PlayerSettings.player1.controls._leftP.check()) {
this.changeDiff(-1);
}
if(PlayerSettings.player1.controls._rightP.check()) {
this.changeDiff(1);
}
if(PlayerSettings.player1.controls._back.check()) {
var nextState = new MainMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
if(accepted) {
var poop = Highscore.formatSong(this.songs[this.curSelected].toLowerCase(),this.curDifficulty);
haxe_Log.trace(poop,{ fileName : "source/FreeplayState.hx", lineNumber : 196, className : "FreeplayState", methodName : "update"});
PlayState.SONG = Song.loadFromJson(poop,this.songs[this.curSelected].toLowerCase());
PlayState.isStoryMode = false;
PlayState.storyDifficulty = this.curDifficulty;
var nextState = new PlayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
if(flixel_FlxG.sound.music != null) {
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
}
}
}
,changeDiff: function(change) {
if(change == null) {
change = 0;
}
this.curDifficulty += change;
if(this.curDifficulty < 0) {
this.curDifficulty = 2;
}
if(this.curDifficulty > 2) {
this.curDifficulty = 0;
}
this.intendedScore = Highscore.getScore(this.songs[this.curSelected],this.curDifficulty);
switch(this.curDifficulty) {
case 0:
this.diffText.set_text("EASY");
break;
case 1:
this.diffText.set_text("NORMAL");
break;
case 2:
this.diffText.set_text("HARD");
break;
}
}
,changeSelection: function(change) {
if(change == null) {
change = 0;
}
io_newgrounds_NG.core.calls.event.logEvent("Fresh").send();
haxe_Log.trace("should have logged: " + "Fresh",{ fileName : "source/NGio.hx", lineNumber : 187, className : "NGio", methodName : "logEvent"});
flixel_FlxG.sound.play("assets/sounds/scrollMenu" + TitleState.soundExt,0.4);
this.curSelected += change;
if(this.curSelected < 0) {
this.curSelected = this.songs.length - 1;
}
if(this.curSelected >= this.songs.length) {
this.curSelected = 0;
}
this.intendedScore = Highscore.getScore(this.songs[this.curSelected],this.curDifficulty);
flixel_FlxG.sound.playMusic("assets/music/" + this.songs[this.curSelected] + "_Inst" + TitleState.soundExt,0);
var bullShit = 0;
var _g = 0;
var _g1 = this.grpSongs.members;
while(_g < _g1.length) {
var item = _g1[_g];
++_g;
item.targetY = bullShit - this.curSelected;
++bullShit;
item.set_alpha(0.6);
if(item.targetY == 0) {
item.set_alpha(1);
}
}
}
,__class__: FreeplayState
});
var flixel_FlxSubState = function(BGColor) {
if(BGColor == null) {
BGColor = 0;
}
this._created = false;
flixel_FlxState.call(this);
this.closeCallback = null;
this.openCallback = null;
if(flixel_FlxG.renderTile) {
this._bgSprite = new flixel_system_FlxBGSprite();
}
this.set_bgColor(BGColor);
};
$hxClasses["flixel.FlxSubState"] = flixel_FlxSubState;
flixel_FlxSubState.__name__ = "flixel.FlxSubState";
flixel_FlxSubState.__super__ = flixel_FlxState;
flixel_FlxSubState.prototype = $extend(flixel_FlxState.prototype,{
openCallback: null
,closeCallback: null
,_bgSprite: null
,_parentState: null
,_bgColor: null
,_created: null
,draw: function() {
if(flixel_FlxG.renderBlit) {
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
camera.fill(this._bgColor);
}
} else {
this._bgSprite.draw();
}
flixel_FlxState.prototype.draw.call(this);
}
,destroy: function() {
flixel_FlxState.prototype.destroy.call(this);
this.closeCallback = null;
this.openCallback = null;
this._parentState = null;
this._bgSprite = null;
}
,close: function() {
if(this._parentState != null && this._parentState.subState == this) {
this._parentState.closeSubState();
}
}
,get_bgColor: function() {
return this._bgColor;
}
,set_bgColor: function(Value) {
if(flixel_FlxG.renderTile && this._bgSprite != null) {
this._bgSprite.get_pixels().setPixel32(0,0,Value);
}
return this._bgColor = Value;
}
,__class__: flixel_FlxSubState
});
var MusicBeatSubstate = function() {
this.curBeat = 0;
this.curStep = 0;
this.lastStep = 0;
this.lastBeat = 0;
flixel_FlxSubState.call(this);
};
$hxClasses["MusicBeatSubstate"] = MusicBeatSubstate;
MusicBeatSubstate.__name__ = "MusicBeatSubstate";
MusicBeatSubstate.__super__ = flixel_FlxSubState;
MusicBeatSubstate.prototype = $extend(flixel_FlxSubState.prototype,{
lastBeat: null
,lastStep: null
,curStep: null
,curBeat: null
,get_controls: function() {
return PlayerSettings.player1.controls;
}
,create: function() {
flixel_FlxSubState.prototype.create.call(this);
}
,update: function(elapsed) {
var oldStep = this.curStep;
this.updateCurStep();
this.curBeat = Math.floor(this.curStep / 4);
if(oldStep != this.curStep && this.curStep > 0) {
this.stepHit();
}
flixel_FlxSubState.prototype.update.call(this,elapsed);
}
,updateCurStep: function() {
var lastChange = { stepTime : 0, songTime : 0, bpm : 0};
var _g = 0;
var _g1 = Conductor.bpmChangeMap.length;
while(_g < _g1) {
var i = _g++;
if(Conductor.songPosition > Conductor.bpmChangeMap[i].songTime) {
lastChange = Conductor.bpmChangeMap[i];
}
}
this.curStep = lastChange.stepTime + Math.floor((Conductor.songPosition - lastChange.songTime) / Conductor.stepCrochet);
}
,stepHit: function() {
if(this.curStep % 4 == 0) {
this.beatHit();
}
}
,beatHit: function() {
}
,__class__: MusicBeatSubstate
,__properties__: $extend(flixel_FlxSubState.prototype.__properties__,{get_controls:"get_controls"})
});
var GameOverSubstate = function(x,y) {
this.isEnding = false;
this.stageSuffix = "";
var daStage = PlayState.curStage;
var daBf = "";
switch(daStage) {
case "school":
this.stageSuffix = "-pixel";
daBf = "bf-pixel-dead";
break;
case "schoolEvil":
this.stageSuffix = "-pixel";
daBf = "bf-pixel-dead";
break;
default:
daBf = "bf";
}
MusicBeatSubstate.call(this);
Conductor.songPosition = 0;
this.bf = new Boyfriend(x,y,daBf);
this.add(this.bf);
this.camFollow = new flixel_FlxObject(this.bf.getGraphicMidpoint().x,this.bf.getGraphicMidpoint().y,1,1);
this.add(this.camFollow);
flixel_FlxG.sound.play("assets/sounds/fnf_loss_sfx" + this.stageSuffix + TitleState.soundExt);
Conductor.changeBPM(100);
flixel_FlxG.camera.scroll.set();
flixel_FlxG.camera.target = null;
this.bf.playAnim("firstDeath");
};
$hxClasses["GameOverSubstate"] = GameOverSubstate;
GameOverSubstate.__name__ = "GameOverSubstate";
GameOverSubstate.__super__ = MusicBeatSubstate;
GameOverSubstate.prototype = $extend(MusicBeatSubstate.prototype,{
bf: null
,camFollow: null
,stageSuffix: null
,update: function(elapsed) {
MusicBeatSubstate.prototype.update.call(this,elapsed);
if(PlayerSettings.player1.controls._accept.check()) {
this.endBullshit();
}
if(PlayerSettings.player1.controls._back.check()) {
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
if(PlayState.isStoryMode) {
var nextState = new StoryMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
} else {
var nextState = new FreeplayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
}
if(this.bf.animation._curAnim.name == "firstDeath" && this.bf.animation._curAnim.curFrame == 12) {
flixel_FlxG.camera.follow(this.camFollow,flixel_FlxCameraFollowStyle.LOCKON,0.01);
}
if(this.bf.animation._curAnim.name == "firstDeath" && this.bf.animation._curAnim.finished) {
flixel_FlxG.sound.playMusic("assets/music/gameOver" + this.stageSuffix + TitleState.soundExt);
}
if(flixel_FlxG.sound.music._channel != null) {
Conductor.songPosition = flixel_FlxG.sound.music._time;
}
}
,beatHit: function() {
MusicBeatSubstate.prototype.beatHit.call(this);
}
,isEnding: null
,endBullshit: function() {
if(!this.isEnding) {
this.isEnding = true;
this.bf.playAnim("deathConfirm",true);
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
flixel_FlxG.sound.play("assets/music/gameOverEnd" + this.stageSuffix + TitleState.soundExt);
new flixel_util_FlxTimer().start(0.7,function(tmr) {
flixel_FlxG.camera.fade(-16777216,2,false,function() {
var nextState = new PlayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
});
});
}
}
,__class__: GameOverSubstate
});
var GitarooPause = function() {
this.replaySelect = false;
MusicBeatState.call(this);
};
$hxClasses["GitarooPause"] = GitarooPause;
GitarooPause.__name__ = "GitarooPause";
GitarooPause.__super__ = MusicBeatState;
GitarooPause.prototype = $extend(MusicBeatState.prototype,{
replayButton: null
,cancelButton: null
,replaySelect: null
,create: function() {
if(flixel_FlxG.sound.music != null) {
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
}
var bg = new flixel_FlxSprite().loadGraphic("assets/images/pauseAlt/pauseBG.png");
this.add(bg);
var bf = new flixel_FlxSprite(0,30);
bf.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/pauseAlt/bfLol.png","assets/images/pauseAlt/bfLol.xml"));
bf.animation.addByPrefix("lol","funnyThing",13);
bf.animation.play("lol");
this.add(bf);
bf.screenCenter(flixel_util_FlxAxes.X);
this.replayButton = new flixel_FlxSprite(flixel_FlxG.width * 0.28,flixel_FlxG.height * 0.7);
this.replayButton.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/pauseAlt/pauseUI.png","assets/images/pauseAlt/pauseUI.xml"));
this.replayButton.animation.addByPrefix("selected","bluereplay",0,false);
this.replayButton.animation.appendByPrefix("selected","yellowreplay");
this.replayButton.animation.play("selected");
this.add(this.replayButton);
this.cancelButton = new flixel_FlxSprite(flixel_FlxG.width * 0.58,this.replayButton.y);
this.cancelButton.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/pauseAlt/pauseUI.png","assets/images/pauseAlt/pauseUI.xml"));
this.cancelButton.animation.addByPrefix("selected","bluecancel",0,false);
this.cancelButton.animation.appendByPrefix("selected","cancelyellow");
this.cancelButton.animation.play("selected");
this.add(this.cancelButton);
this.changeThing();
MusicBeatState.prototype.create.call(this);
}
,update: function(elapsed) {
if(PlayerSettings.player1.controls._leftP.check() || PlayerSettings.player1.controls._rightP.check()) {
this.changeThing();
}
if(PlayerSettings.player1.controls._accept.check()) {
if(this.replaySelect) {
var nextState = new PlayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
} else {
var nextState = new MainMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
}
MusicBeatState.prototype.update.call(this,elapsed);
}
,changeThing: function() {
this.replaySelect = !this.replaySelect;
if(this.replaySelect) {
this.cancelButton.animation._curAnim.set_curFrame(0);
this.replayButton.animation._curAnim.set_curFrame(1);
} else {
this.cancelButton.animation._curAnim.set_curFrame(1);
this.replayButton.animation._curAnim.set_curFrame(0);
}
}
,__class__: GitarooPause
});
var HealthIcon = function(char,isPlayer) {
if(isPlayer == null) {
isPlayer = false;
}
if(char == null) {
char = "bf";
}
flixel_FlxSprite.call(this);
this.loadGraphic("assets/images/iconGrid.png",true,150,150);
this.set_antialiasing(true);
this.animation.add("bf",[0,1],0,false,isPlayer);
this.animation.add("bf-car",[0,1],0,false,isPlayer);
this.animation.add("bf-christmas",[0,1],0,false,isPlayer);
this.animation.add("bf-pixel",[21,21],0,false,isPlayer);
this.animation.add("spooky",[2,3],0,false,isPlayer);
this.animation.add("pico",[4,5],0,false,isPlayer);
this.animation.add("mom",[6,7],0,false,isPlayer);
this.animation.add("mom-car",[6,7],0,false,isPlayer);
this.animation.add("tankman",[8,9],0,false,isPlayer);
this.animation.add("face",[10,11],0,false,isPlayer);
this.animation.add("dad",[12,13],0,false,isPlayer);
this.animation.add("senpai",[22,22],0,false,isPlayer);
this.animation.add("senpai-angry",[22,22],0,false,isPlayer);
this.animation.add("spirit",[23,23],0,false,isPlayer);
this.animation.add("bf-old",[14,15],0,false,isPlayer);
this.animation.add("gf",[16],0,false,isPlayer);
this.animation.add("parents-christmas",[17],0,false,isPlayer);
this.animation.add("monster",[19,20],0,false,isPlayer);
this.animation.add("monster-christmas",[19,20],0,false,isPlayer);
this.animation.play(char);
this.scrollFactor.set();
};
$hxClasses["HealthIcon"] = HealthIcon;
HealthIcon.__name__ = "HealthIcon";
HealthIcon.__super__ = flixel_FlxSprite;
HealthIcon.prototype = $extend(flixel_FlxSprite.prototype,{
__class__: HealthIcon
});
var Highscore = function() { };
$hxClasses["Highscore"] = Highscore;
Highscore.__name__ = "Highscore";
Highscore.saveScore = function(song,score,diff) {
if(diff == null) {
diff = 0;
}
if(score == null) {
score = 0;
}
var daSong = Highscore.formatSong(song,diff);
var score1 = score;
if(score1 == null) {
score1 = 0;
}
if(NGio.isLoggedIn) {
var id = io_newgrounds_NG.core.scoreBoards.keys();
while(id.hasNext()) {
var id1 = id.next();
var board = io_newgrounds_NG.core.scoreBoards.h[id1];
if(song == board._data.name) {
board.postScore(score1,"Uhh meow?");
}
}
}
if(Object.prototype.hasOwnProperty.call(Highscore.songScores.h,daSong)) {
if(Highscore.songScores.h[daSong] < score) {
Highscore.setScore(daSong,score);
}
} else {
Highscore.setScore(daSong,score);
}
};
Highscore.saveWeekScore = function(week,score,diff) {
if(diff == null) {
diff = 0;
}
if(score == null) {
score = 0;
}
if(week == null) {
week = 1;
}
var score1 = score;
var song = "Week " + week;
if(score1 == null) {
score1 = 0;
}
if(NGio.isLoggedIn) {
var id = io_newgrounds_NG.core.scoreBoards.keys();
while(id.hasNext()) {
var id1 = id.next();
var board = io_newgrounds_NG.core.scoreBoards.h[id1];
if(song == board._data.name) {
board.postScore(score1,"Uhh meow?");
}
}
}
var daWeek = Highscore.formatSong("week" + week,diff);
if(Object.prototype.hasOwnProperty.call(Highscore.songScores.h,daWeek)) {
if(Highscore.songScores.h[daWeek] < score) {
Highscore.setScore(daWeek,score);
}
} else {
Highscore.setScore(daWeek,score);
}
};
Highscore.setScore = function(song,score) {
Highscore.songScores.h[song] = score;
flixel_FlxG.save.data.songScores = Highscore.songScores;
flixel_FlxG.save.flush();
};
Highscore.formatSong = function(song,diff) {
var daSong = song;
if(diff == 0) {
daSong += "-easy";
} else if(diff == 2) {
daSong += "-hard";
}
return daSong;
};
Highscore.getScore = function(song,diff) {
var this1 = Highscore.songScores;
var key = Highscore.formatSong(song,diff);
if(!Object.prototype.hasOwnProperty.call(this1.h,key)) {
Highscore.setScore(Highscore.formatSong(song,diff),0);
}
var this1 = Highscore.songScores;
var key = Highscore.formatSong(song,diff);
return this1.h[key];
};
Highscore.getWeekScore = function(week,diff) {
var this1 = Highscore.songScores;
var key = Highscore.formatSong("week" + week,diff);
if(!Object.prototype.hasOwnProperty.call(this1.h,key)) {
Highscore.setScore(Highscore.formatSong("week" + week,diff),0);
}
var this1 = Highscore.songScores;
var key = Highscore.formatSong("week" + week,diff);
return this1.h[key];
};
Highscore.load = function() {
if(flixel_FlxG.save.data.songScores != null) {
Highscore.songScores = flixel_FlxG.save.data.songScores;
}
};
var HxOverrides = function() { };
$hxClasses["HxOverrides"] = HxOverrides;
HxOverrides.__name__ = "HxOverrides";
HxOverrides.strDate = function(s) {
switch(s.length) {
case 8:
var k = s.split(":");
var d = new Date();
d["setTime"](0);
d["setUTCHours"](k[0]);
d["setUTCMinutes"](k[1]);
d["setUTCSeconds"](k[2]);
return d;
case 10:
var k = s.split("-");
return new Date(k[0],k[1] - 1,k[2],0,0,0);
case 19:
var k = s.split(" ");
var y = k[0].split("-");
var t = k[1].split(":");
return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]);
default:
throw haxe_Exception.thrown("Invalid date format : " + s);
}
};
HxOverrides.cca = function(s,index) {
var x = s.charCodeAt(index);
if(x != x) {
return undefined;
}
return x;
};
HxOverrides.substr = function(s,pos,len) {
if(len == null) {
len = s.length;
} else if(len < 0) {
if(pos == 0) {
len = s.length + len;
} else {
return "";
}
}
return s.substr(pos,len);
};
HxOverrides.remove = function(a,obj) {
var i = a.indexOf(obj);
if(i == -1) {
return false;
}
a.splice(i,1);
return true;
};
HxOverrides.now = function() {
return Date.now();
};
var IntIterator = function(min,max) {
this.min = min;
this.max = max;
};
$hxClasses["IntIterator"] = IntIterator;
IntIterator.__name__ = "IntIterator";
IntIterator.prototype = {
min: null
,max: null
,hasNext: function() {
return this.min < this.max;
}
,next: function() {
return this.min++;
}
,__class__: IntIterator
};
var Lambda = function() { };
$hxClasses["Lambda"] = Lambda;
Lambda.__name__ = "Lambda";
Lambda.array = function(it) {
var a = [];
var i = $getIterator(it);
while(i.hasNext()) {
var i1 = i.next();
a.push(i1);
}
return a;
};
Lambda.exists = function(it,f) {
var x = $getIterator(it);
while(x.hasNext()) {
var x1 = x.next();
if(f(x1)) {
return true;
}
}
return false;
};
var MainMenuState = function(TransIn,TransOut) {
this.selectedSomethin = false;
this.optionShit = ["story mode","freeplay"];
this.curSelected = 0;
MusicBeatState.call(this,TransIn,TransOut);
};
$hxClasses["MainMenuState"] = MainMenuState;
MainMenuState.__name__ = "MainMenuState";
MainMenuState.__super__ = MusicBeatState;
MainMenuState.prototype = $extend(MusicBeatState.prototype,{
curSelected: null
,menuItems: null
,optionShit: null
,magenta: null
,camFollow: null
,create: function() {
this.transIn = flixel_addons_transition_FlxTransitionableState.defaultTransIn;
this.transOut = flixel_addons_transition_FlxTransitionableState.defaultTransOut;
if(flixel_FlxG.sound.music._channel == null) {
flixel_FlxG.sound.playMusic("assets/music/freakyMenu" + TitleState.soundExt);
}
this.persistentUpdate = this.persistentDraw = true;
var bg = new flixel_FlxSprite(-80).loadGraphic("assets/images/menuBG.png");
bg.scrollFactor.set_x(0);
bg.scrollFactor.set_y(0.18);
bg.setGraphicSize(bg.get_width() * 1.1 | 0);
bg.updateHitbox();
bg.screenCenter();
bg.set_antialiasing(true);
this.add(bg);
this.camFollow = new flixel_FlxObject(0,0,1,1);
this.add(this.camFollow);
this.magenta = new flixel_FlxSprite(-80).loadGraphic("assets/images/menuDesat.png");
this.magenta.scrollFactor.set_x(0);
this.magenta.scrollFactor.set_y(0.18);
this.magenta.setGraphicSize(this.magenta.get_width() * 1.1 | 0);
this.magenta.updateHitbox();
this.magenta.screenCenter();
this.magenta.set_visible(false);
this.magenta.set_antialiasing(true);
this.magenta.set_color(-167525);
this.add(this.magenta);
this.menuItems = new flixel_group_FlxTypedGroup();
this.add(this.menuItems);
var tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/FNF_main_menu_assets.png","assets/images/FNF_main_menu_assets.xml");
var _g = 0;
var _g1 = this.optionShit.length;
while(_g < _g1) {
var i = _g++;
var menuItem = new flixel_FlxSprite(0,60 + i * 160);
menuItem.set_frames(tex);
menuItem.animation.addByPrefix("idle",this.optionShit[i] + " basic",24);
menuItem.animation.addByPrefix("selected",this.optionShit[i] + " white",24);
menuItem.animation.play("idle");
menuItem.ID = i;
menuItem.screenCenter(flixel_util_FlxAxes.X);
this.menuItems.add(menuItem);
menuItem.scrollFactor.set();
menuItem.set_antialiasing(true);
}
flixel_FlxG.camera.follow(this.camFollow,null,0.06);
var versionShit = new flixel_text_FlxText(5,flixel_FlxG.height - 18,0,"v" + lime_app_Application.current.meta.h["version"],12);
versionShit.scrollFactor.set();
versionShit.setFormat("VCR OSD Mono",16,-1,"left",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216);
this.add(versionShit);
this.changeItem();
MusicBeatState.prototype.create.call(this);
}
,selectedSomethin: null
,update: function(elapsed) {
var _gthis = this;
if(flixel_FlxG.sound.music._volume < 0.8) {
var _g = flixel_FlxG.sound.music;
_g.set_volume(_g._volume + 0.5 * flixel_FlxG.elapsed);
}
if(!this.selectedSomethin) {
if(PlayerSettings.player1.controls._upP.check()) {
flixel_FlxG.sound.play("assets/sounds/scrollMenu" + TitleState.soundExt);
this.changeItem(-1);
}
if(PlayerSettings.player1.controls._downP.check()) {
flixel_FlxG.sound.play("assets/sounds/scrollMenu" + TitleState.soundExt);
this.changeItem(1);
}
if(PlayerSettings.player1.controls._back.check()) {
var nextState = new TitleState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
if(PlayerSettings.player1.controls._accept.check()) {
if(this.optionShit[this.curSelected] == "donate") {
var prefix = "";
if(!new EReg("^https?://","").match("https://ninja-muffin24.itch.io/funkin")) {
prefix = "http://";
}
openfl_Lib.getURL(new openfl_net_URLRequest(prefix + "https://ninja-muffin24.itch.io/funkin"),"_blank");
} else {
this.selectedSomethin = true;
flixel_FlxG.sound.play("assets/sounds/confirmMenu" + TitleState.soundExt);
flixel_effects_FlxFlicker.flicker(this.magenta,1.1,0.15,false);
this.menuItems.forEach(function(spr) {
if(_gthis.curSelected != spr.ID) {
flixel_tweens_FlxTween.tween(spr,{ alpha : 0},0.4,{ ease : flixel_tweens_FlxEase.quadOut, onComplete : function(twn) {
spr.kill();
}});
} else {
flixel_effects_FlxFlicker.flicker(spr,1,0.06,false,false,function(flick) {
var daChoice = _gthis.optionShit[_gthis.curSelected];
switch(daChoice) {
case "freeplay":
var nextState = new FreeplayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
haxe_Log.trace("Freeplay Menu Selected",{ fileName : "source/MainMenuState.hx", lineNumber : 174, className : "MainMenuState", methodName : "update"});
break;
case "options":
var nextState = new OptionsMenu();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
break;
case "story mode":
var nextState = new StoryMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
haxe_Log.trace("Story Menu Selected",{ fileName : "source/MainMenuState.hx", lineNumber : 170, className : "MainMenuState", methodName : "update"});
break;
}
});
}
});
}
}
}
MusicBeatState.prototype.update.call(this,elapsed);
this.menuItems.forEach(function(spr) {
spr.screenCenter(flixel_util_FlxAxes.X);
});
}
,changeItem: function(huh) {
if(huh == null) {
huh = 0;
}
var _gthis = this;
this.curSelected += huh;
if(this.curSelected >= this.menuItems.length) {
this.curSelected = 0;
}
if(this.curSelected < 0) {
this.curSelected = this.menuItems.length - 1;
}
this.menuItems.forEach(function(spr) {
spr.animation.play("idle");
if(spr.ID == _gthis.curSelected) {
spr.animation.play("selected");
_gthis.camFollow.setPosition(spr.getGraphicMidpoint().x,spr.getGraphicMidpoint().y);
}
spr.updateHitbox();
});
}
,__class__: MainMenuState
});
var ManifestResources = function() { };
$hxClasses["ManifestResources"] = ManifestResources;
ManifestResources.__name__ = "ManifestResources";
ManifestResources.preloadLibraries = null;
ManifestResources.preloadLibraryNames = null;
ManifestResources.rootPath = null;
ManifestResources.init = function(config) {
ManifestResources.preloadLibraries = [];
ManifestResources.preloadLibraryNames = [];
ManifestResources.rootPath = null;
if(config != null && Object.prototype.hasOwnProperty.call(config,"rootPath")) {
ManifestResources.rootPath = Reflect.field(config,"rootPath");
}
if(ManifestResources.rootPath == null) {
ManifestResources.rootPath = "./";
}
openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf);
openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf);
openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf);
openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf);
var bundle;
var data = "{\"name\":null,\"assets\":\"aoy4:pathy30:assets%2Fimages%2Falphabet.pngy4:sizei139836y4:typey5:IMAGEy2:idR1y7:preloadtgoR0y30:assets%2Fimages%2Falphabet.xmlR2i39069R3y4:TEXTR5R7R6tgoR0y31:assets%2Fimages%2Fbackspace.pngR2i43348R3R4R5R9R6tgoR0y31:assets%2Fimages%2Fbackspace.xmlR2i747R3R8R5R10R6tgoR0y25:assets%2Fimages%2Fbad.pngR2i11727R3R4R5R11R6tgoR0y27:assets%2Fimages%2FbfCar.pngR2i1806271R3R4R5R12R6tgoR0y27:assets%2Fimages%2FbfCar.xmlR2i38250R3R8R5R13R6tgoR0y31:assets%2Fimages%2FBOYFRIEND.pngR2i5042658R3R4R5R14R6tgoR0y31:assets%2Fimages%2FBOYFRIEND.xmlR2i67577R3R8R5R15R6tgoR0y45:assets%2Fimages%2Fcampaign_menu_UI_assets.pngR2i128196R3R4R5R16R6tgoR0y45:assets%2Fimages%2Fcampaign_menu_UI_assets.xmlR2i1893R3R8R5R17R6tgoR0y49:assets%2Fimages%2Fcampaign_menu_UI_characters.pngR2i2285826R3R4R5R18R6tgoR0y49:assets%2Fimages%2Fcampaign_menu_UI_characters.xmlR2i22475R3R8R5R19R6tgoR0y45:assets%2Fimages%2Fchristmas%2FbfChristmas.pngR2i484746R3R4R5R20R6tgoR0y45:assets%2Fimages%2Fchristmas%2FbfChristmas.xmlR2i41586R3R8R5R21R6tgoR0y45:assets%2Fimages%2Fchristmas%2FbgEscalator.pngR2i166108R3R4R5R22R6tgoR0y41:assets%2Fimages%2Fchristmas%2FbgWalls.pngR2i935132R3R4R5R23R6tgoR0y43:assets%2Fimages%2Fchristmas%2FbottomBop.pngR2i1009627R3R4R5R24R6tgoR0y43:assets%2Fimages%2Fchristmas%2FbottomBop.xmlR2i2276R3R8R5R25R6tgoR0y47:assets%2Fimages%2Fchristmas%2FchristmasTree.pngR2i69663R3R4R5R26R6tgoR0y47:assets%2Fimages%2Fchristmas%2FchristmasWall.pngR2i840246R3R4R5R27R6tgoR0y40:assets%2Fimages%2Fchristmas%2FevilBG.pngR2i1230014R3R4R5R28R6tgoR0y42:assets%2Fimages%2Fchristmas%2FevilSnow.pngR2i17859R3R4R5R29R6tgoR0y42:assets%2Fimages%2Fchristmas%2FevilTree.pngR2i115115R3R4R5R30R6tgoR0y40:assets%2Fimages%2Fchristmas%2FfgSnow.pngR2i10538R3R4R5R31R6tgoR0y45:assets%2Fimages%2Fchristmas%2FgfChristmas.pngR2i4845151R3R4R5R32R6tgoR0y45:assets%2Fimages%2Fchristmas%2FgfChristmas.xmlR2i23084R3R8R5R33R6tgoR0y58:assets%2Fimages%2Fchristmas%2Fmom_dad_christmas_assets.pngR2i5065188R3R4R5R34R6tgoR0y58:assets%2Fimages%2Fchristmas%2Fmom_dad_christmas_assets.xmlR2i19356R3R8R5R35R6tgoR0y50:assets%2Fimages%2Fchristmas%2FmonsterChristmas.pngR2i872256R3R4R5R36R6tgoR0y50:assets%2Fimages%2Fchristmas%2FmonsterChristmas.xmlR2i14973R3R8R5R37R6tgoR0y39:assets%2Fimages%2Fchristmas%2Fsanta.pngR2i1066130R3R4R5R38R6tgoR0y39:assets%2Fimages%2Fchristmas%2Fsanta.xmlR2i2232R3R8R5R39R6tgoR0y42:assets%2Fimages%2Fchristmas%2FupperBop.pngR2i645807R3R4R5R40R6tgoR0y42:assets%2Fimages%2Fchristmas%2FupperBop.xmlR2i2046R3R8R5R41R6tgoR0y27:assets%2Fimages%2Fcombo.pngR2i14255R3R4R5R42R6tgoR0y35:assets%2Fimages%2FDADDY_DEAREST.pngR2i1106359R3R4R5R43R6tgoR0y35:assets%2Fimages%2FDADDY_DEAREST.xmlR2i6531R3R8R5R44R6tgoR0y42:assets%2Fimages%2FFNF_main_menu_assets.pngR2i281298R3R4R5R45R6tgoR0y42:assets%2Fimages%2FFNF_main_menu_assets.xmlR2i4755R3R8R5R46R6tgoR0y27:assets%2Fimages%2FgfCar.pngR2i1943171R3R4R5R47R6tgoR0y27:assets%2Fimages%2FgfCar.xmlR2i5000R3R8R5R48R6tgoR0y34:assets%2Fimages%2FgfDanceTitle.pngR2i1221436R3R4R5R49R6tgoR0y34:assets%2Fimages%2FgfDanceTitle.xmlR2i4259R3R8R5R50R6tgoR0y31:assets%2Fimages%2FGF_assets.pngR2i5966971R3R4R5R51R6tgoR0y31:assets%2Fimages%2FGF_assets.xmlR2i30950R3R8R5R52R6tgoR0y24:assets%2Fimages%2Fgo.pngR2i12296R3R4R5R53R6tgoR0y26:assets%2Fimages%2Fgood.pngR2i11923R3R4R5R54R6tgoR0y28:assets%2Fimages%2Fgrafix.pngR2i139101R3R4R5R55R6tgoR0y34:assets%2Fimages%2Fhalloween_bg.pngR2i5482377R3R4R5R56R6tgoR0y34:assets%2Fimages%2Fhalloween_bg.xmlR2i3663R3R8R5R57R6tgoR0y31:assets%2Fimages%2FhealthBar.pngR2i307R3R4R5R58R6tgoR0y30:assets%2Fimages%2FiconGrid.pngR2i147419R3R4R5R59R6tgoR0y36:assets%2Fimages%2Fimages-go-here.txtR2zR3R8R5R60R6tgoR0y35:assets%2Fimages%2Flimo%2FbgLimo.pngR2i859505R3R4R5R61R6tgoR0y35:assets%2Fimages%2Flimo%2FbgLimo.xmlR2i794R3R8R5R62R6tgoR0y33:assets%2Fimages%2Flimo%2Fdumb.pngR2i47055R3R4R5R63R6tgoR0y39:assets%2Fimages%2Flimo%2FfastCarLol.pngR2i310592R3R4R5R64R6tgoR0y39:assets%2Fimages%2Flimo%2FlimoDancer.pngR2i642819R3R4R5R65R6tgoR0y39:assets%2Fimages%2Flimo%2FlimoDancer.xmlR2i4675R3R8R5R66R6tgoR0y38:assets%2Fimages%2Flimo%2FlimoDrive.pngR2i607493R3R4R5R67R6tgoR0y38:assets%2Fimages%2Flimo%2FlimoDrive.xmlR2i515R3R8R5R68R6tgoR0y40:assets%2Fimages%2Flimo%2FlimoOverlay.pngR2i946605R3R4R5R69R6tgoR0y39:assets%2Fimages%2Flimo%2FlimoSunset.pngR2i1141336R3R4R5R70R6tgoR0y26:assets%2Fimages%2Flogo.pngR2i86924R3R4R5R71R6tgoR0y32:assets%2Fimages%2FlogoBumpin.pngR2i592724R3R4R5R72R6tgoR0y32:assets%2Fimages%2FlogoBumpin.xmlR2i2177R3R8R5R73R6tgoR0y25:assets%2Fimages%2Flol.pngR2i6701R3R4R5R74R6tgoR0y26:assets%2Fimages%2Flose.pngR2i236363R3R4R5R75R6tgoR0y26:assets%2Fimages%2Flose.xmlR2i4131R3R8R5R76R6tgoR0y28:assets%2Fimages%2FmenuBG.pngR2i620342R3R4R5R77R6tgoR0y32:assets%2Fimages%2FmenuBGBlue.pngR2i614586R3R4R5R78R6tgoR0y35:assets%2Fimages%2FmenuBGMagenta.pngR2i553468R3R4R5R79R6tgoR0y31:assets%2Fimages%2FmenuDesat.pngR2i357911R3R4R5R80R6tgoR0y28:assets%2Fimages%2FmomCar.pngR2i3421816R3R4R5R81R6tgoR0y28:assets%2Fimages%2FmomCar.xmlR2i8902R3R8R5R82R6tgoR0y32:assets%2Fimages%2FMom_Assets.pngR2i1816373R3R4R5R83R6tgoR0y32:assets%2Fimages%2FMom_Assets.xmlR2i8945R3R8R5R84R6tgoR0y36:assets%2Fimages%2FMonster_Assets.pngR2i1570346R3R4R5R85R6tgoR0y36:assets%2Fimages%2FMonster_Assets.xmlR2i14853R3R8R5R86R6tgoR0y37:assets%2Fimages%2Fnewgrounds_logo.pngR2i57747R3R4R5R87R6tgoR0y33:assets%2Fimages%2FNOTE_assets.pngR2i716622R3R4R5R88R6tgoR0y33:assets%2Fimages%2FNOTE_assets.xmlR2i4970R3R8R5R89R6tgoR0y26:assets%2Fimages%2Fnum0.pngR2i3738R3R4R5R90R6tgoR0y26:assets%2Fimages%2Fnum1.pngR2i3390R3R4R5R91R6tgoR0y26:assets%2Fimages%2Fnum2.pngR2i3990R3R4R5R92R6tgoR0y26:assets%2Fimages%2Fnum3.pngR2i4022R3R4R5R93R6tgoR0y26:assets%2Fimages%2Fnum4.pngR2i3989R3R4R5R94R6tgoR0y26:assets%2Fimages%2Fnum5.pngR2i4113R3R4R5R95R6tgoR0y26:assets%2Fimages%2Fnum6.pngR2i4181R3R4R5R96R6tgoR0y26:assets%2Fimages%2Fnum7.pngR2i3692R3R4R5R97R6tgoR0y26:assets%2Fimages%2Fnum8.pngR2i3914R3R4R5R98R6tgoR0y26:assets%2Fimages%2Fnum9.pngR2i3687R3R4R5R99R6tgoR0y38:assets%2Fimages%2FpauseAlt%2FbfLol.pngR2i36765R3R4R5R100R6tgoR0y38:assets%2Fimages%2FpauseAlt%2FbfLol.xmlR2i3106R3R8R5R101R6tgoR0y40:assets%2Fimages%2FpauseAlt%2FpauseBG.pngR2i96791R3R4R5R102R6tgoR0y40:assets%2Fimages%2FpauseAlt%2FpauseUI.pngR2i40939R3R4R5R103R6tgoR0y40:assets%2Fimages%2FpauseAlt%2FpauseUI.xmlR2i560R3R8R5R104R6tgoR0y42:assets%2Fimages%2Fphilly%2FbehindTrain.pngR2i51391R3R4R5R105R6tgoR0y35:assets%2Fimages%2Fphilly%2Fcity.pngR2i167048R3R4R5R106R6tgoR0y34:assets%2Fimages%2Fphilly%2Fsky.pngR2i438577R3R4R5R107R6tgoR0y37:assets%2Fimages%2Fphilly%2Fstreet.pngR2i146849R3R4R5R108R6tgoR0y36:assets%2Fimages%2Fphilly%2Ftrain.pngR2i186831R3R4R5R109R6tgoR0y35:assets%2Fimages%2Fphilly%2Fwin0.pngR2i30819R3R4R5R110R6tgoR0y35:assets%2Fimages%2Fphilly%2Fwin1.pngR2i30568R3R4R5R111R6tgoR0y35:assets%2Fimages%2Fphilly%2Fwin2.pngR2i31185R3R4R5R112R6tgoR0y35:assets%2Fimages%2Fphilly%2Fwin3.pngR2i30319R3R4R5R113R6tgoR0y35:assets%2Fimages%2Fphilly%2Fwin4.pngR2i31128R3R4R5R114R6tgoR0y38:assets%2Fimages%2FPico_FNF_assetss.pngR2i1750438R3R4R5R115R6tgoR0y38:assets%2Fimages%2FPico_FNF_assetss.xmlR2i24093R3R8R5R116R6tgoR0y27:assets%2Fimages%2Fready.pngR2i28966R3R4R5R117R6tgoR0y29:assets%2Fimages%2Frestart.pngR2i41117R3R4R5R118R6tgoR0y40:assets%2Fimages%2FscreencapTierImage.pngR2i109151R3R4R5R119R6tgoR0y25:assets%2Fimages%2Fset.pngR2i25471R3R4R5R120R6tgoR0y26:assets%2Fimages%2Fshit.pngR2i15319R3R4R5R121R6tgoR0y26:assets%2Fimages%2Fsick.pngR2i19249R3R4R5R122R6tgoR0y43:assets%2Fimages%2Fspeech_bubble_talking.pngR2i201150R3R4R5R123R6tgoR0y43:assets%2Fimages%2Fspeech_bubble_talking.xmlR2i4745R3R8R5R124R6tgoR0y40:assets%2Fimages%2Fspooky_kids_assets.pngR2i714454R3R4R5R125R6tgoR0y40:assets%2Fimages%2Fspooky_kids_assets.xmlR2i12390R3R8R5R126R6tgoR0y31:assets%2Fimages%2Fstageback.pngR2i36925R3R4R5R127R6tgoR0y35:assets%2Fimages%2Fstagecurtains.pngR2i154716R3R4R5R128R6tgoR0y32:assets%2Fimages%2Fstagefront.pngR2i143142R3R4R5R129R6tgoR0y33:assets%2Fimages%2Fstage_light.pngR2i12177R3R4R5R130R6tgoR0y32:assets%2Fimages%2FtitleEnter.pngR2i1449202R3R4R5R131R6tgoR0y32:assets%2Fimages%2FtitleEnter.xmlR2i4875R3R8R5R132R6tgoR0y47:assets%2Fimages%2Fweeb%2FanimatedEvilSchool.pngR2i289191R3R4R5R133R6tgoR0y47:assets%2Fimages%2Fweeb%2FanimatedEvilSchool.xmlR2i3887R3R8R5R134R6tgoR0y36:assets%2Fimages%2Fweeb%2FbfPixel.pngR2i34788R3R4R5R135R6tgoR0y36:assets%2Fimages%2Fweeb%2FbfPixel.xmlR2i11162R3R8R5R136R6tgoR0y41:assets%2Fimages%2Fweeb%2FbfPixelsDEAD.pngR2i120013R3R4R5R137R6tgoR0y41:assets%2Fimages%2Fweeb%2FbfPixelsDEAD.xmlR2i9974R3R8R5R138R6tgoR0y39:assets%2Fimages%2Fweeb%2FbfPortrait.pngR2i9778R3R4R5R139R6tgoR0y39:assets%2Fimages%2Fweeb%2FbfPortrait.xmlR2i1126R3R8R5R140R6tgoR0y37:assets%2Fimages%2Fweeb%2FbgFreaks.pngR2i101100R3R4R5R141R6tgoR0y37:assets%2Fimages%2Fweeb%2FbgFreaks.xmlR2i5211R3R8R5R142R6tgoR0y41:assets%2Fimages%2Fweeb%2FevilSchoolBG.pngR2i12567R3R4R5R143R6tgoR0y41:assets%2Fimages%2Fweeb%2FevilSchoolFG.pngR2i6220R3R4R5R144R6tgoR0y36:assets%2Fimages%2Fweeb%2FgfPixel.pngR2i23907R3R4R5R145R6tgoR0y36:assets%2Fimages%2Fweeb%2FgfPixel.xmlR2i2414R3R8R5R146R6tgoR0y35:assets%2Fimages%2Fweeb%2Fpetals.pngR2i18969R3R4R5R147R6tgoR0y35:assets%2Fimages%2Fweeb%2Fpetals.xmlR2i4557R3R8R5R148R6tgoR0y48:assets%2Fimages%2Fweeb%2FpixelUI%2FarrowEnds.pngR2i357R3R4R5R149R6tgoR0y52:assets%2Fimages%2Fweeb%2FpixelUI%2Farrows-pixels.pngR2i4806R3R4R5R150R6tgoR0y48:assets%2Fimages%2Fweeb%2FpixelUI%2Fbad-pixel.pngR2i418R3R4R5R151R6tgoR0y50:assets%2Fimages%2Fweeb%2FpixelUI%2Fcombo-pixel.pngR2i417R3R4R5R152R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fdate-pixel.pngR2i1055R3R4R5R153R6tgoR0y55:assets%2Fimages%2Fweeb%2FpixelUI%2FdialogueBox-evil.pngR2i1425R3R4R5R154R6tgoR0y55:assets%2Fimages%2Fweeb%2FpixelUI%2FdialogueBox-evil.xmlR2i1385R3R8R5R155R6tgoR0y56:assets%2Fimages%2Fweeb%2FpixelUI%2FdialogueBox-pixel.pngR2i7200R3R4R5R156R6tgoR0y56:assets%2Fimages%2Fweeb%2FpixelUI%2FdialogueBox-pixel.xmlR2i680R3R8R5R157R6tgoR0y60:assets%2Fimages%2Fweeb%2FpixelUI%2FdialogueBox-senpaiMad.pngR2i26689R3R4R5R158R6tgoR0y60:assets%2Fimages%2Fweeb%2FpixelUI%2FdialogueBox-senpaiMad.xmlR2i1050R3R8R5R159R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fgood-pixel.pngR2i396R3R4R5R160R6tgoR0y51:assets%2Fimages%2Fweeb%2FpixelUI%2Fhand_textbox.pngR2i260R3R4R5R161R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum0-pixel.pngR2i189R3R4R5R162R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum1-pixel.pngR2i169R3R4R5R163R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum2-pixel.pngR2i220R3R4R5R164R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum3-pixel.pngR2i204R3R4R5R165R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum4-pixel.pngR2i181R3R4R5R166R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum5-pixel.pngR2i203R3R4R5R167R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum6-pixel.pngR2i214R3R4R5R168R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum7-pixel.pngR2i197R3R4R5R169R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum8-pixel.pngR2i187R3R4R5R170R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fnum9-pixel.pngR2i176R3R4R5R171R6tgoR0y50:assets%2Fimages%2Fweeb%2FpixelUI%2Fready-pixel.pngR2i1092R3R4R5R172R6tgoR0y48:assets%2Fimages%2Fweeb%2FpixelUI%2Fset-pixel.pngR2i1068R3R4R5R173R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fshit-pixel.pngR2i628R3R4R5R174R6tgoR0y49:assets%2Fimages%2Fweeb%2FpixelUI%2Fsick-pixel.pngR2i553R3R4R5R175R6tgoR0y35:assets%2Fimages%2Fweeb%2Fsenpai.pngR2i91334R3R4R5R176R6tgoR0y35:assets%2Fimages%2Fweeb%2Fsenpai.xmlR2i14911R3R8R5R177R6tgoR0y40:assets%2Fimages%2Fweeb%2FsenpaiCrazy.pngR2i14142R3R4R5R178R6tgoR0y40:assets%2Fimages%2Fweeb%2FsenpaiCrazy.xmlR2i19805R3R8R5R179R6tgoR0y43:assets%2Fimages%2Fweeb%2FsenpaiPortrait.pngR2i14440R3R4R5R180R6tgoR0y43:assets%2Fimages%2Fweeb%2FsenpaiPortrait.xmlR2i1103R3R8R5R181R6tgoR0y35:assets%2Fimages%2Fweeb%2Fspirit.pngR2i217054R3R4R5R182R6tgoR0y35:assets%2Fimages%2Fweeb%2Fspirit.txtR2i2872R3R8R5R183R6tgoR0y46:assets%2Fimages%2Fweeb%2FspiritFaceForward.pngR2i2014R3R4R5R184R6tgoR0y39:assets%2Fimages%2Fweeb%2FweebSchool.pngR2i4034R3R4R5R185R6tgoR0y36:assets%2Fimages%2Fweeb%2FweebSky.pngR2i2714R3R4R5R186R6tgoR0y39:assets%2Fimages%2Fweeb%2FweebStreet.pngR2i3885R3R4R5R187R6tgoR0y38:assets%2Fimages%2Fweeb%2FweebTrees.pngR2i119590R3R4R5R188R6tgoR0y38:assets%2Fimages%2Fweeb%2FweebTrees.txtR2i529R3R8R5R189R6tgoR0y42:assets%2Fimages%2Fweeb%2FweebTreesBack.pngR2i1465R3R4R5R190R6tgoR0y30:assets%2Fimages%2Fzzzzzzzz.pngR2i239054R3R4R5R191R6tgoR0y43:assets%2Fdata%2Fblammed%2Fblammed-easy.jsonR2i39025R3R8R5R192R6tgoR0y43:assets%2Fdata%2Fblammed%2Fblammed-hard.jsonR2i53646R3R8R5R193R6tgoR0y38:assets%2Fdata%2Fblammed%2Fblammed.jsonR2i44638R3R8R5R194R6tgoR0y43:assets%2Fdata%2Fbopeebo%2Fbopeebo-easy.jsonR2i12574R3R8R5R195R6tgoR0y43:assets%2Fdata%2Fbopeebo%2Fbopeebo-hard.jsonR2i12576R3R8R5R196R6tgoR0y38:assets%2Fdata%2Fbopeebo%2Fbopeebo.jsonR2i12574R3R8R5R197R6tgoR0y33:assets%2Fdata%2FcharacterList.txtR2i146R3R8R5R198R6tgoR0y39:assets%2Fdata%2Fcocoa%2Fcocoa-easy.jsonR2i27364R3R8R5R199R6tgoR0y39:assets%2Fdata%2Fcocoa%2Fcocoa-hard.jsonR2i22841R3R8R5R200R6tgoR0y34:assets%2Fdata%2Fcocoa%2Fcocoa.jsonR2i30208R3R8R5R201R6tgoR0y28:assets%2Fdata%2Fcontrols.txtR2i324R3R8R5R202R6tgoR0y47:assets%2Fdata%2Fdadbattle%2Fdadbattle-easy.jsonR2i28153R3R8R5R203R6tgoR0y47:assets%2Fdata%2Fdadbattle%2Fdadbattle-hard.jsonR2i34945R3R8R5R204R6tgoR0y42:assets%2Fdata%2Fdadbattle%2Fdadbattle.jsonR2i30225R3R8R5R205R6tgoR0y34:assets%2Fdata%2Fdata-goes-here.txtR2zR3R8R5R206R6tgoR0y41:assets%2Fdata%2Feggnog%2Feggnog-easy.jsonR2i32768R3R8R5R207R6tgoR0y41:assets%2Fdata%2Feggnog%2Feggnog-hard.jsonR2i141118R3R8R5R208R6tgoR0y36:assets%2Fdata%2Feggnog%2Feggnog.jsonR2i35674R3R8R5R209R6tgoR0y36:assets%2Fdata%2FfreeplaySonglist.txtR2i32R3R8R5R210R6tgoR0y39:assets%2Fdata%2Ffresh%2Ffresh-easy.jsonR2i17647R3R8R5R211R6tgoR0y39:assets%2Fdata%2Ffresh%2Ffresh-hard.jsonR2i19185R3R8R5R212R6tgoR0y34:assets%2Fdata%2Ffresh%2Ffresh.jsonR2i18849R3R8R5R213R6tgoR0y37:assets%2Fdata%2Fhigh%2Fhigh-easy.jsonR2i34032R3R8R5R214R6tgoR0y37:assets%2Fdata%2Fhigh%2Fhigh-hard.jsonR2i26047R3R8R5R215R6tgoR0y32:assets%2Fdata%2Fhigh%2Fhigh.jsonR2i36383R3R8R5R216R6tgoR0y29:assets%2Fdata%2FintroText.txtR2i1229R3R8R5R217R6tgoR0y29:assets%2Fdata%2Fmain-view.xmlR2i123R3R8R5R218R6tgoR0y37:assets%2Fdata%2Fmilf%2Fmilf-easy.jsonR2i66246R3R8R5R219R6tgoR0y37:assets%2Fdata%2Fmilf%2Fmilf-hard.jsonR2i79053R3R8R5R220R6tgoR0y32:assets%2Fdata%2Fmilf%2Fmilf.jsonR2i70461R3R8R5R221R6tgoR0y38:assets%2Fdata%2Fmonster%2Fmonster.jsonR2i51073R3R8R5R222R6tgoR0y41:assets%2Fdata%2Fphilly%2Fphilly-easy.jsonR2i37684R3R8R5R223R6tgoR0y41:assets%2Fdata%2Fphilly%2Fphilly-hard.jsonR2i55578R3R8R5R224R6tgoR0y36:assets%2Fdata%2Fphilly%2Fphilly.jsonR2i44220R3R8R5R225R6tgoR0y37:assets%2Fdata%2Fpico%2Fpico-easy.jsonR2i16714R3R8R5R226R6tgoR0y37:assets%2Fdata%2Fpico%2Fpico-hard.jsonR2i29577R3R8R5R227R6tgoR0y32:assets%2Fdata%2Fpico%2Fpico.jsonR2i27699R3R8R5R228R6tgoR0y34:assets%2Fdata%2Fridge%2Fridge.jsonR2i34473R3R8R5R229R6tgoR0y39:assets%2Fdata%2Froses%2Froses-easy.jsonR2i27016R3R8R5R230R6tgoR0y39:assets%2Fdata%2Froses%2Froses-hard.jsonR2i34216R3R8R5R231R6tgoR0y34:assets%2Fdata%2Froses%2Froses.jsonR2i31159R3R8R5R232R6tgoR0y41:assets%2Fdata%2Froses%2FrosesDialogue.txtR2i153R3R8R5R233R6tgoR0y55:assets%2Fdata%2Fsatin-panties%2Fsatin-panties-easy.jsonR2i41066R3R8R5R234R6tgoR0y55:assets%2Fdata%2Fsatin-panties%2Fsatin-panties-hard.jsonR2i54488R3R8R5R235R6tgoR0y50:assets%2Fdata%2Fsatin-panties%2Fsatin-panties.jsonR2i47192R3R8R5R236R6tgoR0y41:assets%2Fdata%2Fsenpai%2Fsenpai-easy.jsonR2i45928R3R8R5R237R6tgoR0y41:assets%2Fdata%2Fsenpai%2Fsenpai-hard.jsonR2i51861R3R8R5R238R6tgoR0y36:assets%2Fdata%2Fsenpai%2Fsenpai.jsonR2i49335R3R8R5R239R6tgoR0y43:assets%2Fdata%2Fsenpai%2FsenpaiDialogue.txtR2i162R3R8R5R240R6tgoR0y34:assets%2Fdata%2Fsmash%2Fsmash.jsonR2i154R3R8R5R241R6tgoR0y39:assets%2Fdata%2Fsouth%2Fsouth-easy.jsonR2i30048R3R8R5R242R6tgoR0y39:assets%2Fdata%2Fsouth%2Fsouth-hard.jsonR2i34392R3R8R5R243R6tgoR0y34:assets%2Fdata%2Fsouth%2Fsouth.jsonR2i22239R3R8R5R244R6tgoR0y33:assets%2Fdata%2FspecialThanks.txtR2i284R3R8R5R245R6tgoR0y45:assets%2Fdata%2Fspookeez%2Fspookeez-easy.jsonR2i28639R3R8R5R246R6tgoR0y45:assets%2Fdata%2Fspookeez%2Fspookeez-hard.jsonR2i32667R3R8R5R247R6tgoR0y40:assets%2Fdata%2Fspookeez%2Fspookeez.jsonR2i30435R3R8R5R248R6tgoR0y41:assets%2Fdata%2Fthorns%2Fthorns-easy.jsonR2i51981R3R8R5R249R6tgoR0y41:assets%2Fdata%2Fthorns%2Fthorns-hard.jsonR2i71799R3R8R5R250R6tgoR0y36:assets%2Fdata%2Fthorns%2Fthorns.jsonR2i60997R3R8R5R251R6tgoR0y43:assets%2Fdata%2Fthorns%2FthornsDialogue.txtR2i305R3R8R5R252R6tgoR0y45:assets%2Fdata%2Ftutorial%2Ftutorial-easy.jsonR2i5739R3R8R5R253R6tgoR0y45:assets%2Fdata%2Ftutorial%2Ftutorial-hard.jsonR2i9504R3R8R5R254R6tgoR0y40:assets%2Fdata%2Ftutorial%2Ftutorial.jsonR2i5739R3R8R5R255R6tgoR0y63:assets%2Fdata%2Fwinter-horrorland%2Fwinter-horrorland-easy.jsonR2i133150R3R8R5R256R6tgoR0y63:assets%2Fdata%2Fwinter-horrorland%2Fwinter-horrorland-hard.jsonR2i171649R3R8R5R257R6tgoR0y58:assets%2Fdata%2Fwinter-horrorland%2Fwinter-horrorland.jsonR2i148926R3R8R5R258R6tgoR0y48:mods%2FintroMod%2F_append%2Fdata%2FintroText.txtR2i20R3R8R5R259goR0y18:mods%2FmodList.txtR2i8R3R8R5R260goR0y17:mods%2Freadme.txtR2i90R3R8R5R261goR0y21:do%20NOT%20readme.txtR2i4326R3R8R5R262R6tgoR2i4276766R3y5:MUSICR5y33:assets%2Fmusic%2FBlammed_Inst.mp3y9:pathGroupaR264hR6tgoR2i1320257R3R263R5y35:assets%2Fmusic%2FBlammed_Voices.mp3R265aR266hR6tgoR2i1507242R3R263R5y33:assets%2Fmusic%2FBopeebo_Inst.mp3R265aR267hR6tgoR2i758037R3R263R5y35:assets%2Fmusic%2FBopeebo_Voices.mp3R265aR268hR6tgoR2i2400129R3R263R5y30:assets%2Fmusic%2Fbreakfast.mp3R265aR269hR6tgoR2i4608000R3R263R5y31:assets%2Fmusic%2FCocoa_Inst.mp3R265aR270hR6tgoR2i2304592R3R263R5y33:assets%2Fmusic%2FCocoa_Voices.mp3R265aR271hR6tgoR2i1583631R3R263R5y35:assets%2Fmusic%2FDadbattle_Inst.mp3R265aR272hR6tgoR2i3466970R3R263R5y37:assets%2Fmusic%2FDadbattle_Voices.mp3R265aR273hR6tgoR2i3760320R3R263R5y32:assets%2Fmusic%2FEggnog_Inst.mp3R265aR274hR6tgoR2i1880364R3R263R5y34:assets%2Fmusic%2FEggnog_Voices.mp3R265aR275hR6tgoR2i2309657R3R263R5y31:assets%2Fmusic%2FfreakyMenu.mp3R265aR276hR6tgoR2i1641082R3R263R5y31:assets%2Fmusic%2FFresh_Inst.mp3R265aR277hR6tgoR2i1640560R3R263R5y33:assets%2Fmusic%2FFresh_Voices.mp3R265aR278hR6tgoR2i3072000R3R263R5y35:assets%2Fmusic%2FgameOver-pixel.mp3R265aR279hR6tgoR2i1535999R3R263R5y29:assets%2Fmusic%2FgameOver.mp3R265aR280hR6tgoR2i192000R3R263R5y38:assets%2Fmusic%2FgameOverEnd-pixel.mp3R265aR281hR6tgoR2i288391R3R263R5y32:assets%2Fmusic%2FgameOverEnd.mp3R265aR282hR6tgoR2i4224000R3R263R5y30:assets%2Fmusic%2FHigh_Inst.mp3R265aR283hR6tgoR2i2112331R3R263R5y32:assets%2Fmusic%2FHigh_Voices.mp3R265aR284hR6tgoR2i1181760R3R263R5y29:assets%2Fmusic%2FLunchbox.mp3R265aR285hR6tgoR2i275451R3R263R5y34:assets%2Fmusic%2FLunchboxScary.mp3R265aR286hR6tgoR2i4987200R3R263R5y30:assets%2Fmusic%2FMilf_Inst.mp3R265aR287hR6tgoR2i2493719R3R263R5y32:assets%2Fmusic%2FMilf_Voices.mp3R265aR288hR6tgoR2i2843793R3R263R5y28:assets%2Fmusic%2FMonster.mp3R265aR289hR6tgoR2i4003866R3R263R5y33:assets%2Fmusic%2FMonster_Inst.mp3R265aR290hR6tgoR2i2136608R3R263R5y35:assets%2Fmusic%2FMonster_Voices.mp3R265aR291hR6tgoR2i4059427R3R263R5y32:assets%2Fmusic%2FPhilly_Inst.mp3R265aR292hR6tgoR2i4059427R3R263R5y34:assets%2Fmusic%2FPhilly_Voices.mp3R265aR293hR6tgoR2i3392782R3R263R5y30:assets%2Fmusic%2FPico_Inst.mp3R265aR294hR6tgoR2i1116460R3R263R5y32:assets%2Fmusic%2FPico_Voices.mp3R265aR295hR6tgoR2i2224344R3R263R5y31:assets%2Fmusic%2FRoses_Inst.mp3R265aR296hR6tgoR2i1263864R3R263R5y33:assets%2Fmusic%2FRoses_Voices.mp3R265aR297hR6tgoR2i1920592R3R263R5y39:assets%2Fmusic%2FSatin-Panties_Inst.mp3R265aR298hR6tgoR2i1920592R3R263R5y41:assets%2Fmusic%2FSatin-Panties_Voices.mp3R265aR299hR6tgoR2i2031048R3R263R5y32:assets%2Fmusic%2FSenpai_Inst.mp3R265aR300hR6tgoR2i1838304R3R263R5y34:assets%2Fmusic%2FSenpai_Voices.mp3R265aR301hR6tgoR2i3549517R3R263R5y31:assets%2Fmusic%2FSouth_Inst.mp3R265aR302hR6tgoR2i1136376R3R263R5y33:assets%2Fmusic%2FSouth_Voices.mp3R265aR303hR6tgoR2i4616358R3R263R5y29:assets%2Fmusic%2FSpookeez.mp3R265aR304hR6tgoR2i2201383R3R263R5y34:assets%2Fmusic%2FSpookeez_Inst.mp3R265aR305hR6tgoR2i1177354R3R263R5y36:assets%2Fmusic%2FSpookeez_Voices.mp3R265aR306hR6tgoR2i4096320R3R263R5y30:assets%2Fmusic%2FTest_Inst.mp3R265aR307hR6tgoR2i408097R3R263R5y32:assets%2Fmusic%2FTest_Voices.mp3R265aR308hR6tgoR2i4244160R3R263R5y32:assets%2Fmusic%2FThorns_Inst.mp3R265aR309hR6tgoR2i4181760R3R263R5y34:assets%2Fmusic%2FThorns_Voices.mp3R265aR310hR6tgoR2i1508831R3R263R5y26:assets%2Fmusic%2Ftitle.mp3R265aR311hR6tgoR2i210573R3R263R5y31:assets%2Fmusic%2FtitleShoot.mp3R265aR312hR6tgoR2i1072499R3R263R5y34:assets%2Fmusic%2FTutorial_Inst.mp3R265aR313hR6tgoR2i3282337R3R263R5y43:assets%2Fmusic%2FWinter-Horrorland_Inst.mp3R265aR314hR6tgoR2i1876354R3R263R5y45:assets%2Fmusic%2FWinter-Horrorland_Voices.mp3R265aR315hR6tgoR2i2418R3R263R5y27:assets%2Fsounds%2FANGRY.mp3R265aR316hR6tgoR2i43182R3R263R5y36:assets%2Fsounds%2FANGRY_TEXT_BOX.mp3R265aR317hR6tgoR2i34480R3R263R5y31:assets%2Fsounds%2Fbadnoise1.mp3R265aR318hR6tgoR2i34480R3R263R5y31:assets%2Fsounds%2Fbadnoise2.mp3R265aR319hR6tgoR2i34480R3R263R5y31:assets%2Fsounds%2Fbadnoise3.mp3R265aR320hR6tgoR2i17762R3R263R5y32:assets%2Fsounds%2FcancelMenu.mp3R265aR321hR6tgoR2i54621R3R263R5y30:assets%2Fsounds%2FcarPass0.mp3R265aR322hR6tgoR2i60069R3R263R5y30:assets%2Fsounds%2FcarPass1.mp3R265aR323hR6tgoR2i5888R3R263R5y31:assets%2Fsounds%2FclickText.mp3R265aR324hR6tgoR2i91950R3R263R5y33:assets%2Fsounds%2FconfirmMenu.mp3R265aR325hR6tgoR2i74226R3R263R5y40:assets%2Fsounds%2Ffnf_loss_sfx-pixel.mp3R265aR326hR6tgoR2i83302R3R263R5y34:assets%2Fsounds%2Ffnf_loss_sfx.mp3R265aR327hR6tgoR2i6339R3R263R5y32:assets%2Fsounds%2FfreshIntro.mp3R265aR328hR6tgoR2i34480R3R263R5y26:assets%2Fsounds%2FGF_1.mp3R265aR329hR6tgoR2i34480R3R263R5y26:assets%2Fsounds%2FGF_2.mp3R265aR330hR6tgoR2i34480R3R263R5y26:assets%2Fsounds%2FGF_3.mp3R265aR331hR6tgoR2i34480R3R263R5y26:assets%2Fsounds%2FGF_4.mp3R265aR332hR6tgoR2i9155R3R263R5y34:assets%2Fsounds%2Fintro1-pixel.mp3R265aR333hR6tgoR2i11426R3R263R5y28:assets%2Fsounds%2Fintro1.mp3R265aR334hR6tgoR2i9912R3R263R5y34:assets%2Fsounds%2Fintro2-pixel.mp3R265aR335hR6tgoR2i12051R3R263R5y28:assets%2Fsounds%2Fintro2.mp3R265aR336hR6tgoR2i9128R3R263R5y34:assets%2Fsounds%2Fintro3-pixel.mp3R265aR337hR6tgoR2i11582R3R263R5y28:assets%2Fsounds%2Fintro3.mp3R265aR338hR6tgoR2i21651R3R263R5y35:assets%2Fsounds%2FintroGo-pixel.mp3R265aR339hR6tgoR2i13254R3R263R5y29:assets%2Fsounds%2FintroGo.mp3R265aR340hR6tgoR2i53174R3R263R5y37:assets%2Fsounds%2FLights_Shut_off.mp3R265aR341hR6tgoR2i88390R3R263R5y36:assets%2Fsounds%2FLights_Turn_On.mp3R265aR342hR6tgoR2i68962R3R263R5y31:assets%2Fsounds%2Fmissnote1.mp3R265aR343hR6tgoR2i68962R3R263R5y31:assets%2Fsounds%2Fmissnote2.mp3R265aR344hR6tgoR2i68962R3R263R5y31:assets%2Fsounds%2Fmissnote3.mp3R265aR345hR6tgoR2i1793R3R263R5y31:assets%2Fsounds%2FpixelText.mp3R265aR346hR6tgoR2i17762R3R263R5y32:assets%2Fsounds%2FscrollMenu.mp3R265aR347hR6tgoR2i159129R3R263R5y33:assets%2Fsounds%2FSenpai_Dies.mp3R265aR348hR6tgoR2i320854R3R263R5y31:assets%2Fsounds%2FsoundTest.mp3R265aR349hR6tgoR2i137925R3R263R5y31:assets%2Fsounds%2Fthunder_1.mp3R265aR350hR6tgoR2i274807R3R263R5y31:assets%2Fsounds%2Fthunder_2.mp3R265aR351hR6tgoR2i277982R3R263R5y34:assets%2Fsounds%2Ftrain_passes.mp3R265aR352hR6tgoR0y13:changelog.txtR2i7566R3R8R5R353R6tgoR0y34:assets%2Ffonts%2Ffonts-go-here.txtR2zR3R8R5R354R6tgoR2i14656R3y4:FONTy9:classNamey31:__ASSET__assets_fonts_pixel_otfR5y26:assets%2Ffonts%2Fpixel.otfR6tgoR2i75864R3R355R356y29:__ASSET__assets_fonts_vcr_ttfR5y24:assets%2Ffonts%2Fvcr.ttfR6tgoR2i2114R3R263R5y26:flixel%2Fsounds%2Fbeep.mp3R265aR361y26:flixel%2Fsounds%2Fbeep.ogghR6tgoR2i39706R3R263R5y28:flixel%2Fsounds%2Fflixel.mp3R265aR363y28:flixel%2Fsounds%2Fflixel.ogghR6tgoR2i5794R3y5:SOUNDR5R362R265aR361R362hgoR2i33629R3R365R5R364R265aR363R364hgoR2i15744R3R355R356y35:__ASSET__flixel_fonts_nokiafc22_ttfR5y30:flixel%2Ffonts%2Fnokiafc22.ttfR6tgoR2i29724R3R355R356y36:__ASSET__flixel_fonts_monsterrat_ttfR5y31:flixel%2Ffonts%2Fmonsterrat.ttfR6tgoR0y33:flixel%2Fimages%2Fui%2Fbutton.pngR2i519R3R4R5R370R6tgoR0y36:flixel%2Fimages%2Flogo%2Fdefault.pngR2i3280R3R4R5R371R6tgoR0y34:flixel%2Fflixel-ui%2Fimg%2Fbox.pngR2i912R3R4R5R372R6tgoR0y37:flixel%2Fflixel-ui%2Fimg%2Fbutton.pngR2i433R3R4R5R373R6tgoR0y48:flixel%2Fflixel-ui%2Fimg%2Fbutton_arrow_down.pngR2i446R3R4R5R374R6tgoR0y48:flixel%2Fflixel-ui%2Fimg%2Fbutton_arrow_left.pngR2i459R3R4R5R375R6tgoR0y49:flixel%2Fflixel-ui%2Fimg%2Fbutton_arrow_right.pngR2i511R3R4R5R376R6tgoR0y46:flixel%2Fflixel-ui%2Fimg%2Fbutton_arrow_up.pngR2i493R3R4R5R377R6tgoR0y42:flixel%2Fflixel-ui%2Fimg%2Fbutton_thin.pngR2i247R3R4R5R378R6tgoR0y44:flixel%2Fflixel-ui%2Fimg%2Fbutton_toggle.pngR2i534R3R4R5R379R6tgoR0y40:flixel%2Fflixel-ui%2Fimg%2Fcheck_box.pngR2i922R3R4R5R380R6tgoR0y41:flixel%2Fflixel-ui%2Fimg%2Fcheck_mark.pngR2i946R3R4R5R381R6tgoR0y37:flixel%2Fflixel-ui%2Fimg%2Fchrome.pngR2i253R3R4R5R382R6tgoR0y42:flixel%2Fflixel-ui%2Fimg%2Fchrome_flat.pngR2i212R3R4R5R383R6tgoR0y43:flixel%2Fflixel-ui%2Fimg%2Fchrome_inset.pngR2i192R3R4R5R384R6tgoR0y43:flixel%2Fflixel-ui%2Fimg%2Fchrome_light.pngR2i214R3R4R5R385R6tgoR0y44:flixel%2Fflixel-ui%2Fimg%2Fdropdown_mark.pngR2i156R3R4R5R386R6tgoR0y41:flixel%2Fflixel-ui%2Fimg%2Ffinger_big.pngR2i1724R3R4R5R387R6tgoR0y43:flixel%2Fflixel-ui%2Fimg%2Ffinger_small.pngR2i294R3R4R5R388R6tgoR0y38:flixel%2Fflixel-ui%2Fimg%2Fhilight.pngR2i129R3R4R5R389R6tgoR0y36:flixel%2Fflixel-ui%2Fimg%2Finvis.pngR2i128R3R4R5R390R6tgoR0y41:flixel%2Fflixel-ui%2Fimg%2Fminus_mark.pngR2i136R3R4R5R391R6tgoR0y40:flixel%2Fflixel-ui%2Fimg%2Fplus_mark.pngR2i147R3R4R5R392R6tgoR0y36:flixel%2Fflixel-ui%2Fimg%2Fradio.pngR2i191R3R4R5R393R6tgoR0y40:flixel%2Fflixel-ui%2Fimg%2Fradio_dot.pngR2i153R3R4R5R394R6tgoR0y37:flixel%2Fflixel-ui%2Fimg%2Fswatch.pngR2i185R3R4R5R395R6tgoR0y34:flixel%2Fflixel-ui%2Fimg%2Ftab.pngR2i201R3R4R5R396R6tgoR0y39:flixel%2Fflixel-ui%2Fimg%2Ftab_back.pngR2i210R3R4R5R397R6tgoR0y44:flixel%2Fflixel-ui%2Fimg%2Ftooltip_arrow.pngR2i18509R3R4R5R398R6tgoR0y39:flixel%2Fflixel-ui%2Fxml%2Fdefaults.xmlR2i1263R3R8R5R399R6tgoR0y53:flixel%2Fflixel-ui%2Fxml%2Fdefault_loading_screen.xmlR2i1953R3R8R5R400R6tgoR0y44:flixel%2Fflixel-ui%2Fxml%2Fdefault_popup.xmlR2i1848R3R8R5R401R6tgh\",\"rootPath\":null,\"version\":2,\"libraryArgs\":[],\"libraryType\":null}";
var manifest = lime_utils_AssetManifest.parse(data,ManifestResources.rootPath);
var library = lime_utils_AssetLibrary.fromManifest(manifest);
lime_utils_Assets.registerLibrary("default",library);
library = lime_utils_Assets.getLibrary("default");
if(library != null) {
ManifestResources.preloadLibraries.push(library);
} else {
ManifestResources.preloadLibraryNames.push("default");
}
};
var lime_text_Font = function(name) {
if(name != null) {
this.name = name;
}
if(!this.__init) {
if(this.ascender == undefined) {
this.ascender = 0;
}
if(this.descender == undefined) {
this.descender = 0;
}
if(this.height == undefined) {
this.height = 0;
}
if(this.numGlyphs == undefined) {
this.numGlyphs = 0;
}
if(this.underlinePosition == undefined) {
this.underlinePosition = 0;
}
if(this.underlineThickness == undefined) {
this.underlineThickness = 0;
}
if(this.unitsPerEM == undefined) {
this.unitsPerEM = 0;
}
if(this.__fontID != null) {
if(lime_utils_Assets.isLocal(this.__fontID)) {
this.__fromBytes(lime_utils_Assets.getBytes(this.__fontID));
}
} else if(this.__fontPath != null) {
this.__fromFile(this.__fontPath);
}
}
};
$hxClasses["lime.text.Font"] = lime_text_Font;
lime_text_Font.__name__ = "lime.text.Font";
lime_text_Font.fromBytes = function(bytes) {
if(bytes == null) {
return null;
}
var font = new lime_text_Font();
font.__fromBytes(bytes);
return font;
};
lime_text_Font.fromFile = function(path) {
if(path == null) {
return null;
}
var font = new lime_text_Font();
font.__fromFile(path);
return font;
};
lime_text_Font.loadFromBytes = function(bytes) {
return lime_app_Future.withValue(lime_text_Font.fromBytes(bytes));
};
lime_text_Font.loadFromFile = function(path) {
var request = new lime_net__$HTTPRequest_$lime_$text_$Font();
return request.load(path).then(function(font) {
if(font != null) {
return lime_app_Future.withValue(font);
} else {
return lime_app_Future.withError("");
}
});
};
lime_text_Font.loadFromName = function(path) {
var font = new lime_text_Font();
return font.__loadFromName(path);
};
lime_text_Font.__measureFontNode = function(fontFamily) {
var node = window.document.createElement("span");
node.setAttribute("aria-hidden","true");
var text = window.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;
window.document.body.appendChild(node);
return node;
};
lime_text_Font.prototype = {
ascender: null
,descender: null
,height: null
,name: null
,numGlyphs: null
,src: null
,underlinePosition: null
,underlineThickness: null
,unitsPerEM: null
,__fontID: null
,__fontPath: null
,__init: null
,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;
this.__init = true;
}
}
,__fromBytes: function(bytes) {
this.__fontPath = null;
}
,__fromFile: function(path) {
this.__fontPath = path;
}
,__initializeSource: function() {
this.__init = true;
}
,__loadFromName: function(name) {
var _gthis = this;
var promise = new lime_app_Promise();
this.name = name;
var userAgent = $global.navigator.userAgent.toLowerCase();
var isSafari = userAgent.indexOf(" safari/") >= 0 && userAgent.indexOf(" chrome/") < 0;
var isUIWebView = new EReg("(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)","i").match(userAgent);
if(!isSafari && !isUIWebView && (window.document.fonts && ($_=window.document.fonts,$bind($_,$_.load)))) {
window.document.fonts.load("1em '" + name + "'").then(function(_) {
promise.complete(_gthis);
},function(_) {
lime_utils_Log.warn("Could not load web font \"" + name + "\"",{ fileName : "lime/text/Font.hx", lineNumber : 513, className : "lime.text.Font", methodName : "__loadFromName"});
promise.complete(_gthis);
});
} else {
var node1 = lime_text_Font.__measureFontNode("'" + name + "', sans-serif");
var node2 = lime_text_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;
loaded = node1.offsetWidth != width1 || node2.offsetWidth != width2;
timeExpired = intervalCount * intervalLength >= timeout;
if(loaded || timeExpired) {
window.clearInterval(interval);
node1.parentNode.removeChild(node1);
node2.parentNode.removeChild(node2);
node1 = null;
node2 = null;
if(timeExpired) {
lime_utils_Log.warn("Could not load web font \"" + name + "\"",{ fileName : "lime/text/Font.hx", lineNumber : 548, className : "lime.text.Font", methodName : "__loadFromName"});
}
promise.complete(_gthis);
}
};
interval = window.setInterval(checkFont,intervalLength);
}
return promise.future;
}
,__setSize: function(size) {
}
,__class__: lime_text_Font
};
var _$_$ASSET_$_$assets_$fonts_$pixel_$otf = $hx_exports["__ASSET__assets_fonts_pixel_otf"] = function() {
this.ascender = 1125;
this.descender = -250;
this.height = 1375;
this.numGlyphs = 262;
this.underlinePosition = -143;
this.underlineThickness = 20;
this.unitsPerEM = 1000;
this.name = "Pixel Arial 11 Bold";
lime_text_Font.call(this);
};
$hxClasses["__ASSET__assets_fonts_pixel_otf"] = _$_$ASSET_$_$assets_$fonts_$pixel_$otf;
_$_$ASSET_$_$assets_$fonts_$pixel_$otf.__name__ = "__ASSET__assets_fonts_pixel_otf";
_$_$ASSET_$_$assets_$fonts_$pixel_$otf.__super__ = lime_text_Font;
_$_$ASSET_$_$assets_$fonts_$pixel_$otf.prototype = $extend(lime_text_Font.prototype,{
__class__: _$_$ASSET_$_$assets_$fonts_$pixel_$otf
});
var _$_$ASSET_$_$assets_$fonts_$vcr_$ttf = $hx_exports["__ASSET__assets_fonts_vcr_ttf"] = function() {
this.ascender = 1800;
this.descender = 0;
this.height = 2000;
this.numGlyphs = 204;
this.underlinePosition = -292;
this.underlineThickness = 150;
this.unitsPerEM = 2048;
this.name = "VCR OSD Mono";
lime_text_Font.call(this);
};
$hxClasses["__ASSET__assets_fonts_vcr_ttf"] = _$_$ASSET_$_$assets_$fonts_$vcr_$ttf;
_$_$ASSET_$_$assets_$fonts_$vcr_$ttf.__name__ = "__ASSET__assets_fonts_vcr_ttf";
_$_$ASSET_$_$assets_$fonts_$vcr_$ttf.__super__ = lime_text_Font;
_$_$ASSET_$_$assets_$fonts_$vcr_$ttf.prototype = $extend(lime_text_Font.prototype,{
__class__: _$_$ASSET_$_$assets_$fonts_$vcr_$ttf
});
var _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf = $hx_exports["__ASSET__flixel_fonts_nokiafc22_ttf"] = function() {
this.ascender = 2048;
this.descender = -512;
this.height = 2816;
this.numGlyphs = 172;
this.underlinePosition = -640;
this.underlineThickness = 256;
this.unitsPerEM = 2048;
this.name = "Nokia Cellphone FC Small";
lime_text_Font.call(this);
};
$hxClasses["__ASSET__flixel_fonts_nokiafc22_ttf"] = _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf;
_$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf.__name__ = "__ASSET__flixel_fonts_nokiafc22_ttf";
_$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf.__super__ = lime_text_Font;
_$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf.prototype = $extend(lime_text_Font.prototype,{
__class__: _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf
});
var _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf = $hx_exports["__ASSET__flixel_fonts_monsterrat_ttf"] = function() {
this.ascender = 968;
this.descender = -251;
this.height = 1219;
this.numGlyphs = 263;
this.underlinePosition = -150;
this.underlineThickness = 50;
this.unitsPerEM = 1000;
this.name = "Monsterrat";
lime_text_Font.call(this);
};
$hxClasses["__ASSET__flixel_fonts_monsterrat_ttf"] = _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf;
_$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf.__name__ = "__ASSET__flixel_fonts_monsterrat_ttf";
_$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf.__super__ = lime_text_Font;
_$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf.prototype = $extend(lime_text_Font.prototype,{
__class__: _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf
});
var openfl_text_Font = function(name) {
lime_text_Font.call(this,name);
};
$hxClasses["openfl.text.Font"] = openfl_text_Font;
openfl_text_Font.__name__ = "openfl.text.Font";
openfl_text_Font.enumerateFonts = function(enumerateDeviceFonts) {
if(enumerateDeviceFonts == null) {
enumerateDeviceFonts = false;
}
return openfl_text_Font.__registeredFonts;
};
openfl_text_Font.fromBytes = function(bytes) {
var font = new openfl_text_Font();
font.__fromBytes(openfl_utils_ByteArray.toBytes(bytes));
return font;
};
openfl_text_Font.fromFile = function(path) {
var font = new openfl_text_Font();
font.__fromFile(path);
return font;
};
openfl_text_Font.loadFromBytes = function(bytes) {
return lime_text_Font.loadFromBytes(openfl_utils_ByteArray.toBytes(bytes)).then(function(limeFont) {
var font = new openfl_text_Font();
font.__fromLimeFont(limeFont);
return lime_app_Future.withValue(font);
});
};
openfl_text_Font.loadFromFile = function(path) {
return lime_text_Font.loadFromFile(path).then(function(limeFont) {
var font = new openfl_text_Font();
font.__fromLimeFont(limeFont);
return lime_app_Future.withValue(font);
});
};
openfl_text_Font.loadFromName = function(path) {
return lime_text_Font.loadFromName(path).then(function(limeFont) {
var font = new openfl_text_Font();
font.__fromLimeFont(limeFont);
return lime_app_Future.withValue(font);
});
};
openfl_text_Font.registerFont = function(font) {
var instance = null;
if(js_Boot.getClass(font) == null) {
instance = js_Boot.__cast(Type.createInstance(font,[]) , openfl_text_Font);
} else {
instance = js_Boot.__cast(font , openfl_text_Font);
}
if(instance != null) {
openfl_text_Font.__registeredFonts.push(instance);
openfl_text_Font.__fontByName.h[instance.name] = instance;
}
};
openfl_text_Font.__super__ = lime_text_Font;
openfl_text_Font.prototype = $extend(lime_text_Font.prototype,{
fontStyle: null
,fontType: null
,__initialized: null
,__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;
}
,__class__: openfl_text_Font
,__properties__: {set_fontName:"set_fontName",get_fontName:"get_fontName"}
});
var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf = $hx_exports["__ASSET__OPENFL__assets_fonts_pixel_otf"] = function() {
this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$pixel_$otf());
openfl_text_Font.call(this);
};
$hxClasses["__ASSET__OPENFL__assets_fonts_pixel_otf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf;
_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf.__name__ = "__ASSET__OPENFL__assets_fonts_pixel_otf";
_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf.__super__ = openfl_text_Font;
_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf.prototype = $extend(openfl_text_Font.prototype,{
__class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf
});
var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_vcr_ttf"] = function() {
this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$vcr_$ttf());
openfl_text_Font.call(this);
};
$hxClasses["__ASSET__OPENFL__assets_fonts_vcr_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf;
_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_vcr_ttf";
_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf.__super__ = openfl_text_Font;
_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf.prototype = $extend(openfl_text_Font.prototype,{
__class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf
});
var _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf = $hx_exports["__ASSET__OPENFL__flixel_fonts_nokiafc22_ttf"] = function() {
this.__fromLimeFont(new _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf());
openfl_text_Font.call(this);
};
$hxClasses["__ASSET__OPENFL__flixel_fonts_nokiafc22_ttf"] = _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf;
_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf.__name__ = "__ASSET__OPENFL__flixel_fonts_nokiafc22_ttf";
_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf.__super__ = openfl_text_Font;
_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf.prototype = $extend(openfl_text_Font.prototype,{
__class__: _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf
});
var _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf = $hx_exports["__ASSET__OPENFL__flixel_fonts_monsterrat_ttf"] = function() {
this.__fromLimeFont(new _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf());
openfl_text_Font.call(this);
};
$hxClasses["__ASSET__OPENFL__flixel_fonts_monsterrat_ttf"] = _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf;
_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf.__name__ = "__ASSET__OPENFL__flixel_fonts_monsterrat_ttf";
_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf.__super__ = openfl_text_Font;
_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf.prototype = $extend(openfl_text_Font.prototype,{
__class__: _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf
});
Math.__name__ = "Math";
var MenuCharacter = function(x,character) {
if(character == null) {
character = "bf";
}
flixel_FlxSprite.call(this,x);
this.character = character;
var tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/campaign_menu_UI_characters.png","assets/images/campaign_menu_UI_characters.xml");
this.set_frames(tex);
this.animation.addByPrefix("bf","BF idle dance white",24);
this.animation.addByPrefix("bfConfirm","BF HEY!!",24,false);
this.animation.addByPrefix("gf","GF Dancing Beat WHITE",24);
this.animation.addByPrefix("dad","Dad idle dance BLACK LINE",24);
this.animation.addByPrefix("spooky","spooky dance idle BLACK LINES",24);
this.animation.addByPrefix("pico","Pico Idle Dance",24);
this.animation.addByPrefix("mom","Mom Idle BLACK LINES",24);
this.animation.addByPrefix("parents-christmas","Parent Christmas Idle",24);
this.animation.addByPrefix("senpai","SENPAI idle Black Lines",24);
this.animation.play(character);
this.updateHitbox();
};
$hxClasses["MenuCharacter"] = MenuCharacter;
MenuCharacter.__name__ = "MenuCharacter";
MenuCharacter.__super__ = flixel_FlxSprite;
MenuCharacter.prototype = $extend(flixel_FlxSprite.prototype,{
character: null
,__class__: MenuCharacter
});
var MenuItem = function(x,y,weekNum) {
if(weekNum == null) {
weekNum = 0;
}
this.targetY = 0;
flixel_group_FlxTypedSpriteGroup.call(this,x,y);
var tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/campaign_menu_UI_assets.png","assets/images/campaign_menu_UI_assets.xml");
this.week = new flixel_FlxSprite();
this.week.set_frames(tex);
this.week.animation.addByPrefix("week0","tutorial selected",24);
this.week.animation.addByPrefix("week1","WEEK1 select",24);
this.week.animation.addByPrefix("week2","week2 select",24);
this.week.animation.addByPrefix("week3","Week 3 press",24);
this.week.animation.addByPrefix("week4","Week 4 press",24);
this.week.animation.addByPrefix("week5","week 5",24);
this.week.animation.addByPrefix("week6","Week 6",24);
this.add(this.week);
this.week.animation.play("week" + weekNum);
var _this = this.week.animation;
if(_this._curAnim != null) {
_this._curAnim.pause();
}
this.week.updateHitbox();
};
$hxClasses["MenuItem"] = MenuItem;
MenuItem.__name__ = "MenuItem";
MenuItem.__super__ = flixel_group_FlxTypedSpriteGroup;
MenuItem.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{
targetY: null
,week: null
,update: function(elapsed) {
flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed);
var a = this.y;
this.set_y(a + 0.17 * (this.targetY * 120 + 480 - a));
}
,__class__: MenuItem
});
var flixel_util_FlxTypedSignal = {};
flixel_util_FlxTypedSignal.__properties__ = {get_dispatch:"get_dispatch"};
flixel_util_FlxTypedSignal.add = function(this1,listener) {
this1.add(listener);
};
flixel_util_FlxTypedSignal.addOnce = function(this1,listener) {
this1.addOnce(listener);
};
flixel_util_FlxTypedSignal.remove = function(this1,listener) {
this1.remove(listener);
};
flixel_util_FlxTypedSignal.has = function(this1,listener) {
return this1.has(listener);
};
flixel_util_FlxTypedSignal.removeAll = function(this1) {
this1.removeAll();
};
flixel_util_FlxTypedSignal.get_dispatch = function(this1) {
return this1.dispatch;
};
flixel_util_FlxTypedSignal.toSignal0 = function(signal) {
return new flixel_util__$FlxSignal_FlxSignal0();
};
flixel_util_FlxTypedSignal.toSignal1 = function(signal) {
return new flixel_util__$FlxSignal_FlxSignal1();
};
flixel_util_FlxTypedSignal.toSignal2 = function(signal) {
return new flixel_util__$FlxSignal_FlxSignal2();
};
flixel_util_FlxTypedSignal.toSignal3 = function(signal) {
return new flixel_util__$FlxSignal_FlxSignal3();
};
flixel_util_FlxTypedSignal.toSignal4 = function(signal) {
return new flixel_util__$FlxSignal_FlxSignal4();
};
var NGio = function(api,encKey,sessionId) {
haxe_Log.trace("connecting to newgrounds",{ fileName : "source/NGio.hx", lineNumber : 62, className : "NGio", methodName : "new"});
io_newgrounds_NG.createAndCheckSession(api,null,sessionId);
io_newgrounds_NG.core.verbose = true;
io_newgrounds_NG.core.initEncryption(encKey);
haxe_Log.trace(io_newgrounds_NG.core.attemptingLogin,{ fileName : "source/NGio.hx", lineNumber : 70, className : "NGio", methodName : "new"});
if(io_newgrounds_NG.core.attemptingLogin) {
haxe_Log.trace("attempting login",{ fileName : "source/NGio.hx", lineNumber : 77, className : "NGio", methodName : "new"});
io_newgrounds_NG.core.onLogin.add($bind(this,this.onNGLogin));
} else {
io_newgrounds_NG.core.requestLogin($bind(this,this.onNGLogin));
}
};
$hxClasses["NGio"] = NGio;
NGio.__name__ = "NGio";
NGio.noLogin = function(api) {
haxe_Log.trace("INIT NOLOGIN",{ fileName : "source/NGio.hx", lineNumber : 38, className : "NGio", methodName : "noLogin"});
NGio.GAME_VER = "v" + lime_app_Application.current.meta.h["version"];
io_newgrounds_NG.create(api);
new flixel_util_FlxTimer().start(2,function(tmr) {
var call = io_newgrounds_NG.core.calls.app.getCurrentVersion(NGio.GAME_VER).addDataHandler(function(response) {
if(response.result != null) {
NGio.GAME_VER = response.result.data.current_version;
NGio.GAME_VER_NUMS = StringTools.trim(NGio.GAME_VER.split(" ")[0]);
haxe_Log.trace("CURRENT NG VERSION: " + NGio.GAME_VER,{ fileName : "source/NGio.hx", lineNumber : 51, className : "NGio", methodName : "noLogin"});
haxe_Log.trace("CURRENT NG VERSION: " + NGio.GAME_VER_NUMS,{ fileName : "source/NGio.hx", lineNumber : 52, className : "NGio", methodName : "noLogin"});
NGio.gotOnlineVer = true;
}
});
call.send();
});
};
NGio.postScore = function(score,song) {
if(score == null) {
score = 0;
}
if(NGio.isLoggedIn) {
var id = io_newgrounds_NG.core.scoreBoards.keys();
while(id.hasNext()) {
var id1 = id.next();
var board = io_newgrounds_NG.core.scoreBoards.h[id1];
if(song == board._data.name) {
board.postScore(score,"Uhh meow?");
}
}
}
};
NGio.logEvent = function(event) {
io_newgrounds_NG.core.calls.event.logEvent(event).send();
haxe_Log.trace("should have logged: " + event,{ fileName : "source/NGio.hx", lineNumber : 187, className : "NGio", methodName : "logEvent"});
};
NGio.unlockMedal = function(id) {
if(NGio.isLoggedIn) {
var medal = io_newgrounds_NG.core.medals.h[id];
if(!medal._data.unlocked) {
medal.sendUnlock();
}
}
};
NGio.prototype = {
onNGLogin: function() {
haxe_Log.trace("logged in! user:" + io_newgrounds_NG.core.get_user().name,{ fileName : "source/NGio.hx", lineNumber : 91, className : "NGio", methodName : "onNGLogin"});
NGio.isLoggedIn = true;
flixel_FlxG.save.data.sessionId = io_newgrounds_NG.core.sessionId;
io_newgrounds_NG.core.requestMedals($bind(this,this.onNGMedalFetch));
io_newgrounds_NG.core.requestScoreBoards($bind(this,this.onNGBoardsFetch));
NGio.ngDataLoaded.dispatch();
}
,onNGMedalFetch: function() {
}
,onNGBoardsFetch: function() {
haxe_Log.trace("shoulda got score by NOW!",{ fileName : "source/NGio.hx", lineNumber : 142, className : "NGio", methodName : "onNGBoardsFetch"});
}
,onNGScoresFetch: function() {
NGio.scoreboardsLoaded = true;
NGio.ngScoresLoaded.dispatch();
}
,__class__: NGio
};
var Note = function(strumTime,noteData,prevNote,sustainNote) {
if(sustainNote == null) {
sustainNote = false;
}
this.noteScore = 1;
this.isSustainNote = false;
this.sustainLength = 0;
this.wasGoodHit = false;
this.tooLate = false;
this.canBeHit = false;
this.noteData = 0;
this.mustPress = false;
this.strumTime = 0;
flixel_FlxSprite.call(this);
if(prevNote == null) {
prevNote = this;
}
this.prevNote = prevNote;
this.isSustainNote = sustainNote;
var _g = this;
_g.set_x(_g.x + 50);
var _g = this;
_g.set_y(_g.y - 2000);
this.strumTime = strumTime;
this.noteData = noteData;
var daStage = PlayState.curStage;
switch(daStage) {
case "school":case "schoolEvil":
this.loadGraphic("assets/images/weeb/pixelUI/arrows-pixels.png",true,17,17);
this.animation.add("greenScroll",[6]);
this.animation.add("redScroll",[7]);
this.animation.add("blueScroll",[5]);
this.animation.add("purpleScroll",[4]);
if(this.isSustainNote) {
this.loadGraphic("assets/images/weeb/pixelUI/arrowEnds.png",true,7,6);
this.animation.add("purpleholdend",[4]);
this.animation.add("greenholdend",[6]);
this.animation.add("redholdend",[7]);
this.animation.add("blueholdend",[5]);
this.animation.add("purplehold",[0]);
this.animation.add("greenhold",[2]);
this.animation.add("redhold",[3]);
this.animation.add("bluehold",[1]);
}
this.setGraphicSize(this.get_width() * PlayState.daPixelZoom | 0);
this.updateHitbox();
break;
default:
this.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/NOTE_assets.png","assets/images/NOTE_assets.xml"));
this.animation.addByPrefix("greenScroll","green0");
this.animation.addByPrefix("redScroll","red0");
this.animation.addByPrefix("blueScroll","blue0");
this.animation.addByPrefix("purpleScroll","purple0");
this.animation.addByPrefix("purpleholdend","pruple end hold");
this.animation.addByPrefix("greenholdend","green hold end");
this.animation.addByPrefix("redholdend","red hold end");
this.animation.addByPrefix("blueholdend","blue hold end");
this.animation.addByPrefix("purplehold","purple hold piece");
this.animation.addByPrefix("greenhold","green hold piece");
this.animation.addByPrefix("redhold","red hold piece");
this.animation.addByPrefix("bluehold","blue hold piece");
this.setGraphicSize(this.get_width() * 0.7 | 0);
this.updateHitbox();
this.set_antialiasing(true);
}
switch(noteData) {
case 0:
var _g = this;
_g.set_x(_g.x + Note.swagWidth * 0);
this.animation.play("purpleScroll");
break;
case 1:
var _g = this;
_g.set_x(_g.x + Note.swagWidth);
this.animation.play("blueScroll");
break;
case 2:
var _g = this;
_g.set_x(_g.x + Note.swagWidth * 2);
this.animation.play("greenScroll");
break;
case 3:
var _g = this;
_g.set_x(_g.x + Note.swagWidth * 3);
this.animation.play("redScroll");
break;
}
if(this.isSustainNote && prevNote != null) {
this.set_alpha(0.6);
var _g = this;
_g.set_x(_g.x + this.get_width() / 2);
switch(noteData) {
case 0:
this.animation.play("purpleholdend");
break;
case 1:
this.animation.play("blueholdend");
break;
case 2:
this.animation.play("greenholdend");
break;
case 3:
this.animation.play("redholdend");
break;
}
this.updateHitbox();
var _g = this;
_g.set_x(_g.x - this.get_width() / 2);
if(StringTools.startsWith(PlayState.curStage,"school")) {
var _g = this;
_g.set_x(_g.x + 30);
}
if(prevNote.isSustainNote) {
switch(prevNote.noteData) {
case 0:
prevNote.animation.play("purplehold");
break;
case 1:
prevNote.animation.play("bluehold");
break;
case 2:
prevNote.animation.play("greenhold");
break;
case 3:
prevNote.animation.play("redhold");
break;
}
var _g = prevNote.scale;
_g.set_y(_g.y * (Conductor.stepCrochet / 100 * 1.5 * PlayState.SONG.speed));
prevNote.updateHitbox();
}
}
};
$hxClasses["Note"] = Note;
Note.__name__ = "Note";
Note.__super__ = flixel_FlxSprite;
Note.prototype = $extend(flixel_FlxSprite.prototype,{
strumTime: null
,mustPress: null
,noteData: null
,canBeHit: null
,tooLate: null
,wasGoodHit: null
,prevNote: null
,sustainLength: null
,isSustainNote: null
,noteScore: null
,update: function(elapsed) {
flixel_FlxSprite.prototype.update.call(this,elapsed);
if(this.mustPress) {
if(this.strumTime > Conductor.songPosition - Conductor.safeZoneOffset && this.strumTime < Conductor.songPosition + Conductor.safeZoneOffset * 0.5) {
this.canBeHit = true;
} else {
this.canBeHit = false;
}
if(this.strumTime < Conductor.songPosition - Conductor.safeZoneOffset) {
this.tooLate = true;
}
} else {
this.canBeHit = false;
if(this.strumTime <= Conductor.songPosition) {
this.wasGoodHit = true;
}
}
if(this.tooLate) {
if(this.alpha > 0.3) {
this.set_alpha(0.3);
}
}
}
,__class__: Note
});
var OptionsMenu = function(TransIn,TransOut) {
this.isSettingControl = false;
this.controlsStrings = [];
this.curSelected = 0;
MusicBeatState.call(this,TransIn,TransOut);
};
$hxClasses["OptionsMenu"] = OptionsMenu;
OptionsMenu.__name__ = "OptionsMenu";
OptionsMenu.__super__ = MusicBeatState;
OptionsMenu.prototype = $extend(MusicBeatState.prototype,{
selector: null
,curSelected: null
,controlsStrings: null
,grpControls: null
,create: function() {
var menuBG = new flixel_FlxSprite().loadGraphic("assets/images/menuDesat.png");
this.controlsStrings = CoolUtil.coolTextFile("assets/data/controls.txt");
menuBG.set_color(-1412611);
menuBG.setGraphicSize(menuBG.get_width() * 1.1 | 0);
menuBG.updateHitbox();
menuBG.screenCenter();
menuBG.set_antialiasing(true);
this.add(menuBG);
this.grpControls = new flixel_group_FlxTypedGroup();
this.add(this.grpControls);
var _g = 0;
var _g1 = this.controlsStrings.length;
while(_g < _g1) {
var i = _g++;
if(this.controlsStrings[i].indexOf("set") != -1) {
var controlLabel = new Alphabet(0,70 * i + 30,this.controlsStrings[i].substring(3) + ": " + this.controlsStrings[i + 1],true,false);
controlLabel.isMenuItem = true;
controlLabel.targetY = i;
this.grpControls.add(controlLabel);
}
}
MusicBeatState.prototype.create.call(this);
}
,update: function(elapsed) {
MusicBeatState.prototype.update.call(this,elapsed);
if(PlayerSettings.player1.controls._accept.check()) {
this.changeBinding();
}
if(this.isSettingControl) {
this.waitingInput();
} else {
if(PlayerSettings.player1.controls._back.check()) {
var nextState = new MainMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
if(PlayerSettings.player1.controls._upP.check()) {
this.changeSelection(-1);
}
if(PlayerSettings.player1.controls._downP.check()) {
this.changeSelection(1);
}
}
}
,waitingInput: function() {
if(flixel_FlxG.keys.getIsDown().length > 0) {
PlayerSettings.player1.controls.replaceBinding(Control.LEFT,Device.Keys,flixel_FlxG.keys.getIsDown()[0].ID,null);
}
}
,isSettingControl: null
,changeBinding: function() {
if(!this.isSettingControl) {
this.isSettingControl = true;
}
}
,changeSelection: function(change) {
if(change == null) {
change = 0;
}
io_newgrounds_NG.core.calls.event.logEvent("Fresh").send();
haxe_Log.trace("should have logged: " + "Fresh",{ fileName : "source/NGio.hx", lineNumber : 187, className : "NGio", methodName : "logEvent"});
flixel_FlxG.sound.play("assets/sounds/scrollMenu" + TitleState.soundExt,0.4);
this.curSelected += change;
if(this.curSelected < 0) {
this.curSelected = this.grpControls.length - 1;
}
if(this.curSelected >= this.grpControls.length) {
this.curSelected = 0;
}
var bullShit = 0;
var _g = 0;
var _g1 = this.grpControls.members;
while(_g < _g1.length) {
var item = _g1[_g];
++_g;
item.targetY = bullShit - this.curSelected;
++bullShit;
item.set_alpha(0.6);
if(item.targetY == 0) {
item.set_alpha(1);
}
}
}
,__class__: OptionsMenu
});
var PauseSubState = function(x,y) {
this.curSelected = 0;
this.menuItems = ["Resume","Restart Song","Exit to menu"];
MusicBeatSubstate.call(this);
this.pauseMusic = new flixel_system_FlxSound().loadEmbedded("assets/music/breakfast" + TitleState.soundExt,true,true);
this.pauseMusic.set_volume(0);
this.pauseMusic.play(false,flixel_FlxG.random.int(0,this.pauseMusic._length / 2 | 0));
flixel_FlxG.sound.list.add(this.pauseMusic);
var bg = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width,flixel_FlxG.height,-16777216);
bg.set_alpha(0.6);
bg.scrollFactor.set();
this.add(bg);
this.grpMenuShit = new flixel_group_FlxTypedGroup();
this.add(this.grpMenuShit);
var _g = 0;
var _g1 = this.menuItems.length;
while(_g < _g1) {
var i = _g++;
var songText = new Alphabet(0,70 * i + 30,this.menuItems[i],true,false);
songText.isMenuItem = true;
songText.targetY = i;
this.grpMenuShit.add(songText);
}
this.changeSelection();
this.set_cameras([flixel_FlxG.cameras.list[flixel_FlxG.cameras.list.length - 1]]);
};
$hxClasses["PauseSubState"] = PauseSubState;
PauseSubState.__name__ = "PauseSubState";
PauseSubState.__super__ = MusicBeatSubstate;
PauseSubState.prototype = $extend(MusicBeatSubstate.prototype,{
grpMenuShit: null
,menuItems: null
,curSelected: null
,pauseMusic: null
,update: function(elapsed) {
if(this.pauseMusic._volume < 0.5) {
var _g = this.pauseMusic;
_g.set_volume(_g._volume + 0.01 * elapsed);
}
MusicBeatSubstate.prototype.update.call(this,elapsed);
var upP = PlayerSettings.player1.controls._upP.check();
var downP = PlayerSettings.player1.controls._downP.check();
var accepted = PlayerSettings.player1.controls._accept.check();
if(upP) {
this.changeSelection(-1);
}
if(downP) {
this.changeSelection(1);
}
if(accepted) {
var daSelected = this.menuItems[this.curSelected];
switch(daSelected) {
case "Exit to menu":
var nextState = new MainMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
break;
case "Restart Song":
var nextState = Type.createInstance(js_Boot.getClass(flixel_FlxG.game._state),[]);
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
break;
case "Resume":
this.close();
break;
}
}
var _this = flixel_FlxG.keys.justPressed;
var tmp = _this.keyManager.checkStatus(74,_this.status);
}
,destroy: function() {
this.pauseMusic.destroy();
MusicBeatSubstate.prototype.destroy.call(this);
}
,changeSelection: function(change) {
if(change == null) {
change = 0;
}
this.curSelected += change;
if(this.curSelected < 0) {
this.curSelected = this.menuItems.length - 1;
}
if(this.curSelected >= this.menuItems.length) {
this.curSelected = 0;
}
var bullShit = 0;
var _g = 0;
var _g1 = this.grpMenuShit.members;
while(_g < _g1.length) {
var item = _g1[_g];
++_g;
item.targetY = bullShit - this.curSelected;
++bullShit;
item.set_alpha(0.6);
if(item.targetY == 0) {
item.set_alpha(1);
}
}
}
,__class__: PauseSubState
});
var PlayState = function(TransIn,TransOut) {
this.curLight = 0;
this.lightningOffset = 8;
this.lightningStrikeBeat = 0;
this.startedMoving = false;
this.trainCooldown = 0;
this.trainFinishing = false;
this.trainCars = 8;
this.trainFrameTiming = 0;
this.trainMoving = false;
this.fastCarCanDrive = true;
this.endingSong = false;
this.canPause = true;
this.startedCountdown = false;
this.paused = false;
this.debugNum = 0;
this.songTime = 0;
this.lastReportedPlayheadPosition = 0;
this.previousFrameTime = 0;
this.perfectMode = false;
this.inCutscene = false;
this.defaultCamZoom = 1.05;
this.songScore = 0;
this.talking = true;
this.wiggleShit = new WiggleEffect();
this.isHalloween = false;
this.dialogue = ["blah blah blah","coolswag"];
this.startingSong = false;
this.generatedMusic = false;
this.combo = 0;
this.health = 1;
this.gfSpeed = 1;
this.curSong = "";
this.camZooming = false;
this.curSection = 0;
this.unspawnNotes = [];
this.halloweenLevel = false;
MusicBeatState.call(this,TransIn,TransOut);
};
$hxClasses["PlayState"] = PlayState;
PlayState.__name__ = "PlayState";
PlayState.SONG = null;
PlayState.prevCamFollow = null;
PlayState.__super__ = MusicBeatState;
PlayState.prototype = $extend(MusicBeatState.prototype,{
halloweenLevel: null
,vocals: null
,dad: null
,gf: null
,boyfriend: null
,notes: null
,unspawnNotes: null
,strumLine: null
,curSection: null
,camFollow: null
,strumLineNotes: null
,playerStrums: null
,camZooming: null
,curSong: null
,gfSpeed: null
,health: null
,combo: null
,healthBarBG: null
,healthBar: null
,generatedMusic: null
,startingSong: null
,iconP1: null
,iconP2: null
,camHUD: null
,camGame: null
,dialogue: null
,halloweenBG: null
,isHalloween: null
,phillyCityLights: null
,phillyTrain: null
,trainSound: null
,limo: null
,grpLimoDancers: null
,fastCar: null
,upperBoppers: null
,bottomBoppers: null
,santa: null
,bgGirls: null
,wiggleShit: null
,talking: null
,songScore: null
,scoreTxt: null
,defaultCamZoom: null
,inCutscene: null
,create: function() {
var _gthis = this;
this.camGame = new flixel_FlxCamera();
this.camHUD = new flixel_FlxCamera();
this.camHUD.bgColor &= 16777215;
this.camHUD.bgColor |= 0;
flixel_FlxG.cameras.reset(this.camGame);
flixel_FlxG.cameras.add(this.camHUD);
flixel_FlxCamera.defaultCameras = [this.camGame];
this.persistentUpdate = true;
this.persistentDraw = true;
if(PlayState.SONG == null) {
PlayState.SONG = Song.loadFromJson("tutorial");
}
Conductor.mapBPMChanges(PlayState.SONG);
Conductor.changeBPM(PlayState.SONG.bpm);
switch(PlayState.SONG.song.toLowerCase()) {
case "bopeebo":
this.dialogue = ["HEY!","You think you can just sing\nwith my daughter like that?","If you want to date her...","You're going to have to go \nthrough ME first!"];
break;
case "dadbattle":
this.dialogue = ["gah you think you're hot stuff?","If you can beat me here...","Only then I will even CONSIDER letting you\ndate my daughter!"];
break;
case "fresh":
this.dialogue = ["Not too shabby boy.",""];
break;
case "roses":
this.dialogue = CoolUtil.coolTextFile("assets/data/roses/rosesDialogue.txt");
break;
case "senpai":
this.dialogue = CoolUtil.coolTextFile("assets/data/senpai/senpaiDialogue.txt");
break;
case "thorns":
this.dialogue = CoolUtil.coolTextFile("assets/data/thorns/thornsDialogue.txt");
break;
case "tutorial":
this.dialogue = ["Hey you're pretty cute.","Use the arrow keys to keep up \nwith me singing."];
break;
}
if(PlayState.SONG.song.toLowerCase() == "spookeez" || PlayState.SONG.song.toLowerCase() == "monster" || PlayState.SONG.song.toLowerCase() == "south") {
PlayState.curStage = "spooky";
this.halloweenLevel = true;
var hallowTex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/halloween_bg.png","assets/images/halloween_bg.xml");
this.halloweenBG = new flixel_FlxSprite(-200,-100);
this.halloweenBG.set_frames(hallowTex);
this.halloweenBG.animation.addByPrefix("idle","halloweem bg0");
this.halloweenBG.animation.addByPrefix("lightning","halloweem bg lightning strike",24,false);
this.halloweenBG.animation.play("idle");
this.halloweenBG.set_antialiasing(true);
this.add(this.halloweenBG);
this.isHalloween = true;
} else if(PlayState.SONG.song.toLowerCase() == "pico" || PlayState.SONG.song.toLowerCase() == "blammed" || PlayState.SONG.song.toLowerCase() == "philly") {
PlayState.curStage = "philly";
var bg = new flixel_FlxSprite(-100).loadGraphic("assets/images/philly/sky.png");
bg.scrollFactor.set(0.1,0.1);
this.add(bg);
var city = new flixel_FlxSprite(-10).loadGraphic("assets/images/philly/city.png");
city.scrollFactor.set(0.3,0.3);
city.setGraphicSize(city.get_width() * 0.85 | 0);
city.updateHitbox();
this.add(city);
this.phillyCityLights = new flixel_group_FlxTypedGroup();
this.add(this.phillyCityLights);
var light = new flixel_FlxSprite(city.x).loadGraphic("assets/images/philly/win" + 0 + ".png");
light.scrollFactor.set(0.3,0.3);
light.set_visible(false);
light.setGraphicSize(light.get_width() * 0.85 | 0);
light.updateHitbox();
light.set_antialiasing(true);
this.phillyCityLights.add(light);
var light = new flixel_FlxSprite(city.x).loadGraphic("assets/images/philly/win" + 1 + ".png");
light.scrollFactor.set(0.3,0.3);
light.set_visible(false);
light.setGraphicSize(light.get_width() * 0.85 | 0);
light.updateHitbox();
light.set_antialiasing(true);
this.phillyCityLights.add(light);
var light = new flixel_FlxSprite(city.x).loadGraphic("assets/images/philly/win" + 2 + ".png");
light.scrollFactor.set(0.3,0.3);
light.set_visible(false);
light.setGraphicSize(light.get_width() * 0.85 | 0);
light.updateHitbox();
light.set_antialiasing(true);
this.phillyCityLights.add(light);
var light = new flixel_FlxSprite(city.x).loadGraphic("assets/images/philly/win" + 3 + ".png");
light.scrollFactor.set(0.3,0.3);
light.set_visible(false);
light.setGraphicSize(light.get_width() * 0.85 | 0);
light.updateHitbox();
light.set_antialiasing(true);
this.phillyCityLights.add(light);
var light = new flixel_FlxSprite(city.x).loadGraphic("assets/images/philly/win" + 4 + ".png");
light.scrollFactor.set(0.3,0.3);
light.set_visible(false);
light.setGraphicSize(light.get_width() * 0.85 | 0);
light.updateHitbox();
light.set_antialiasing(true);
this.phillyCityLights.add(light);
var streetBehind = new flixel_FlxSprite(-40,50).loadGraphic("assets/images/philly/behindTrain.png");
this.add(streetBehind);
this.phillyTrain = new flixel_FlxSprite(2000,360).loadGraphic("assets/images/philly/train.png");
this.add(this.phillyTrain);
this.trainSound = new flixel_system_FlxSound().loadEmbedded("assets/sounds/train_passes" + TitleState.soundExt);
flixel_FlxG.sound.list.add(this.trainSound);
var street = new flixel_FlxSprite(-40,streetBehind.y).loadGraphic("assets/images/philly/street.png");
this.add(street);
} else if(PlayState.SONG.song.toLowerCase() == "milf" || PlayState.SONG.song.toLowerCase() == "satin-panties" || PlayState.SONG.song.toLowerCase() == "high") {
PlayState.curStage = "limo";
this.defaultCamZoom = 0.90;
var skyBG = new flixel_FlxSprite(-120,-50).loadGraphic("assets/images/limo/limoSunset.png");
skyBG.scrollFactor.set(0.1,0.1);
this.add(skyBG);
var bgLimo = new flixel_FlxSprite(-200,480);
bgLimo.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/limo/bgLimo.png","assets/images/limo/bgLimo.xml"));
bgLimo.animation.addByPrefix("drive","background limo pink",24);
bgLimo.animation.play("drive");
bgLimo.scrollFactor.set(0.4,0.4);
this.add(bgLimo);
this.grpLimoDancers = new flixel_group_FlxTypedGroup();
this.add(this.grpLimoDancers);
var dancer = new BackgroundDancer(130,bgLimo.y - 400);
dancer.scrollFactor.set(0.4,0.4);
this.grpLimoDancers.add(dancer);
var dancer = new BackgroundDancer(500,bgLimo.y - 400);
dancer.scrollFactor.set(0.4,0.4);
this.grpLimoDancers.add(dancer);
var dancer = new BackgroundDancer(870,bgLimo.y - 400);
dancer.scrollFactor.set(0.4,0.4);
this.grpLimoDancers.add(dancer);
var dancer = new BackgroundDancer(1240,bgLimo.y - 400);
dancer.scrollFactor.set(0.4,0.4);
this.grpLimoDancers.add(dancer);
var dancer = new BackgroundDancer(1610,bgLimo.y - 400);
dancer.scrollFactor.set(0.4,0.4);
this.grpLimoDancers.add(dancer);
var overlayShit = new flixel_FlxSprite(-500,-600).loadGraphic("assets/images/limo/limoOverlay.png");
overlayShit.set_alpha(0.5);
var limoTex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/limo/limoDrive.png","assets/images/limo/limoDrive.xml");
this.limo = new flixel_FlxSprite(-120,550);
this.limo.set_frames(limoTex);
this.limo.animation.addByPrefix("drive","Limo stage",24);
this.limo.animation.play("drive");
this.limo.set_antialiasing(true);
this.fastCar = new flixel_FlxSprite(-300,160).loadGraphic("assets/images/limo/fastCarLol.png");
} else if(PlayState.SONG.song.toLowerCase() == "cocoa" || PlayState.SONG.song.toLowerCase() == "eggnog") {
PlayState.curStage = "mall";
this.defaultCamZoom = 0.80;
var bg = new flixel_FlxSprite(-1000,-500).loadGraphic("assets/images/christmas/bgWalls.png");
bg.set_antialiasing(true);
bg.scrollFactor.set(0.2,0.2);
bg.set_active(false);
bg.setGraphicSize(bg.get_width() * 0.8 | 0);
bg.updateHitbox();
this.add(bg);
this.upperBoppers = new flixel_FlxSprite(-240,-90);
this.upperBoppers.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/christmas/upperBop.png","assets/images/christmas/upperBop.xml"));
this.upperBoppers.animation.addByPrefix("bop","Upper Crowd Bob",24,false);
this.upperBoppers.set_antialiasing(true);
this.upperBoppers.scrollFactor.set(0.33,0.33);
this.upperBoppers.setGraphicSize(this.upperBoppers.get_width() * 0.85 | 0);
this.upperBoppers.updateHitbox();
this.add(this.upperBoppers);
var bgEscalator = new flixel_FlxSprite(-1100,-600).loadGraphic("assets/images/christmas/bgEscalator.png");
bgEscalator.set_antialiasing(true);
bgEscalator.scrollFactor.set(0.3,0.3);
bgEscalator.set_active(false);
bgEscalator.setGraphicSize(bgEscalator.get_width() * 0.9 | 0);
bgEscalator.updateHitbox();
this.add(bgEscalator);
var tree = new flixel_FlxSprite(370,-250).loadGraphic("assets/images/christmas/christmasTree.png");
tree.set_antialiasing(true);
tree.scrollFactor.set(0.40,0.40);
this.add(tree);
this.bottomBoppers = new flixel_FlxSprite(-300,140);
this.bottomBoppers.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/christmas/bottomBop.png","assets/images/christmas/bottomBop.xml"));
this.bottomBoppers.animation.addByPrefix("bop","Bottom Level Boppers",24,false);
this.bottomBoppers.set_antialiasing(true);
this.bottomBoppers.scrollFactor.set(0.9,0.9);
this.bottomBoppers.setGraphicSize(this.bottomBoppers.get_width() | 0);
this.bottomBoppers.updateHitbox();
this.add(this.bottomBoppers);
var fgSnow = new flixel_FlxSprite(-600,700).loadGraphic("assets/images/christmas/fgSnow.png");
fgSnow.set_active(false);
fgSnow.set_antialiasing(true);
this.add(fgSnow);
this.santa = new flixel_FlxSprite(-840,150);
this.santa.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/christmas/santa.png","assets/images/christmas/santa.xml"));
this.santa.animation.addByPrefix("idle","santa idle in fear",24,false);
this.santa.set_antialiasing(true);
this.add(this.santa);
} else if(PlayState.SONG.song.toLowerCase() == "winter-horrorland") {
PlayState.curStage = "mallEvil";
var bg = new flixel_FlxSprite(-400,-500).loadGraphic("assets/images/christmas/evilBG.png");
bg.set_antialiasing(true);
bg.scrollFactor.set(0.2,0.2);
bg.set_active(false);
bg.setGraphicSize(bg.get_width() * 0.8 | 0);
bg.updateHitbox();
this.add(bg);
var evilTree = new flixel_FlxSprite(300,-300).loadGraphic("assets/images/christmas/evilTree.png");
evilTree.set_antialiasing(true);
evilTree.scrollFactor.set(0.2,0.2);
this.add(evilTree);
var evilSnow = new flixel_FlxSprite(-200,700).loadGraphic("assets/images/christmas/evilSnow.png");
evilSnow.set_antialiasing(true);
this.add(evilSnow);
} else if(PlayState.SONG.song.toLowerCase() == "senpai" || PlayState.SONG.song.toLowerCase() == "roses") {
PlayState.curStage = "school";
var bgSky = new flixel_FlxSprite().loadGraphic("assets/images/weeb/weebSky.png");
bgSky.scrollFactor.set(0.1,0.1);
this.add(bgSky);
var repositionShit = -200;
var bgSchool = new flixel_FlxSprite(repositionShit,0).loadGraphic("assets/images/weeb/weebSchool.png");
bgSchool.scrollFactor.set(0.6,0.90);
this.add(bgSchool);
var bgStreet = new flixel_FlxSprite(repositionShit).loadGraphic("assets/images/weeb/weebStreet.png");
bgStreet.scrollFactor.set(0.95,0.95);
this.add(bgStreet);
var fgTrees = new flixel_FlxSprite(repositionShit + 170,130).loadGraphic("assets/images/weeb/weebTreesBack.png");
fgTrees.scrollFactor.set(0.9,0.9);
this.add(fgTrees);
var bgTrees = new flixel_FlxSprite(repositionShit - 380,-800);
var treetex = flixel_graphics_frames_FlxAtlasFrames.fromSpriteSheetPacker("assets/images/weeb/weebTrees.png","assets/images/weeb/weebTrees.txt");
bgTrees.set_frames(treetex);
bgTrees.animation.add("treeLoop",[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],12);
bgTrees.animation.play("treeLoop");
bgTrees.scrollFactor.set(0.85,0.85);
this.add(bgTrees);
var treeLeaves = new flixel_FlxSprite(repositionShit,-40);
treeLeaves.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/petals.png","assets/images/weeb/petals.xml"));
treeLeaves.animation.addByPrefix("leaves","PETALS ALL",24,true);
treeLeaves.animation.play("leaves");
treeLeaves.scrollFactor.set(0.85,0.85);
this.add(treeLeaves);
var widShit = bgSky.get_width() * 6 | 0;
bgSky.setGraphicSize(widShit);
bgSchool.setGraphicSize(widShit);
bgStreet.setGraphicSize(widShit);
bgTrees.setGraphicSize(widShit * 1.4 | 0);
fgTrees.setGraphicSize(widShit * 0.8 | 0);
treeLeaves.setGraphicSize(widShit);
fgTrees.updateHitbox();
bgSky.updateHitbox();
bgSchool.updateHitbox();
bgStreet.updateHitbox();
bgTrees.updateHitbox();
treeLeaves.updateHitbox();
this.bgGirls = new BackgroundGirls(-100,190);
this.bgGirls.scrollFactor.set(0.9,0.9);
if(PlayState.SONG.song.toLowerCase() == "roses") {
this.bgGirls.getScared();
}
this.bgGirls.setGraphicSize(this.bgGirls.get_width() * PlayState.daPixelZoom | 0);
this.bgGirls.updateHitbox();
this.add(this.bgGirls);
} else if(PlayState.SONG.song.toLowerCase() == "thorns") {
PlayState.curStage = "schoolEvil";
var waveEffectBG = new flixel_addons_effects_chainable_FlxWaveEffect(flixel_addons_effects_chainable_FlxWaveMode.ALL,2,-1,3,2);
var waveEffectFG = new flixel_addons_effects_chainable_FlxWaveEffect(flixel_addons_effects_chainable_FlxWaveMode.ALL,2,-1,5,2);
var posX = 400;
var posY = 200;
var bg = new flixel_FlxSprite(posX,posY);
bg.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/animatedEvilSchool.png","assets/images/weeb/animatedEvilSchool.xml"));
bg.animation.addByPrefix("idle","background 2",24);
bg.animation.play("idle");
bg.scrollFactor.set(0.8,0.9);
bg.scale.set(6,6);
this.add(bg);
} else {
this.defaultCamZoom = 0.9;
PlayState.curStage = "stage";
var bg = new flixel_FlxSprite(-600,-200).loadGraphic("assets/images/stageback.png");
bg.set_antialiasing(true);
bg.scrollFactor.set(0.9,0.9);
bg.set_active(false);
this.add(bg);
var stageFront = new flixel_FlxSprite(-650,600).loadGraphic("assets/images/stagefront.png");
stageFront.setGraphicSize(stageFront.get_width() * 1.1 | 0);
stageFront.updateHitbox();
stageFront.set_antialiasing(true);
stageFront.scrollFactor.set(0.9,0.9);
stageFront.set_active(false);
this.add(stageFront);
var stageCurtains = new flixel_FlxSprite(-500,-300).loadGraphic("assets/images/stagecurtains.png");
stageCurtains.setGraphicSize(stageCurtains.get_width() * 0.9 | 0);
stageCurtains.updateHitbox();
stageCurtains.set_antialiasing(true);
stageCurtains.scrollFactor.set(1.3,1.3);
stageCurtains.set_active(false);
this.add(stageCurtains);
}
var gfVersion = "gf";
switch(PlayState.curStage) {
case "limo":
gfVersion = "gf-car";
break;
case "mall":case "mallEvil":
gfVersion = "gf-christmas";
break;
case "school":
gfVersion = "gf-pixel";
break;
case "schoolEvil":
gfVersion = "gf-pixel";
break;
}
if(PlayState.curStage == "limo") {
gfVersion = "gf-car";
}
this.gf = new Character(400,130,gfVersion);
this.gf.scrollFactor.set(0.95,0.95);
this.dad = new Character(100,100,PlayState.SONG.player2);
var camPos = new flixel_math_FlxPoint(this.dad.getGraphicMidpoint().x,this.dad.getGraphicMidpoint().y);
switch(PlayState.SONG.player2) {
case "dad":
var _g = camPos;
_g.set_x(_g.x + 400);
break;
case "gf":
this.dad.setPosition(this.gf.x,this.gf.y);
this.gf.set_visible(false);
if(PlayState.isStoryMode) {
var _g = camPos;
_g.set_x(_g.x + 600);
this.tweenCamIn();
}
break;
case "monster":
var _g = this.dad;
_g.set_y(_g.y + 100);
break;
case "monster-christmas":
var _g = this.dad;
_g.set_y(_g.y + 130);
break;
case "parents-christmas":
var _g = this.dad;
_g.set_x(_g.x - 500);
break;
case "pico":
var _g = camPos;
_g.set_x(_g.x + 600);
var _g = this.dad;
_g.set_y(_g.y + 300);
break;
case "senpai":
var _g = this.dad;
_g.set_x(_g.x + 150);
var _g = this.dad;
_g.set_y(_g.y + 360);
camPos.set(this.dad.getGraphicMidpoint().x + 300,this.dad.getGraphicMidpoint().y);
break;
case "senpai-angry":
var _g = this.dad;
_g.set_x(_g.x + 150);
var _g = this.dad;
_g.set_y(_g.y + 360);
camPos.set(this.dad.getGraphicMidpoint().x + 300,this.dad.getGraphicMidpoint().y);
break;
case "spirit":
var _g = this.dad;
_g.set_x(_g.x - 150);
var _g = this.dad;
_g.set_y(_g.y + 100);
camPos.set(this.dad.getGraphicMidpoint().x + 300,this.dad.getGraphicMidpoint().y);
break;
case "spooky":
var _g = this.dad;
_g.set_y(_g.y + 200);
break;
}
this.boyfriend = new Boyfriend(770,450,PlayState.SONG.player1);
switch(PlayState.curStage) {
case "limo":
var _g = this.boyfriend;
_g.set_y(_g.y - 220);
var _g = this.boyfriend;
_g.set_x(_g.x + 260);
this.resetFastCar();
this.add(this.fastCar);
break;
case "mall":
var _g = this.boyfriend;
_g.set_x(_g.x + 200);
break;
case "mallEvil":
var _g = this.boyfriend;
_g.set_x(_g.x + 320);
var _g = this.dad;
_g.set_y(_g.y - 80);
break;
case "school":
var _g = this.boyfriend;
_g.set_x(_g.x + 200);
var _g = this.boyfriend;
_g.set_y(_g.y + 220);
var _g = this.gf;
_g.set_x(_g.x + 180);
var _g = this.gf;
_g.set_y(_g.y + 300);
break;
case "schoolEvil":
var evilTrail = new flixel_addons_effects_FlxTrail(this.dad,null,4,24,0.3,0.069);
this.add(evilTrail);
var _g = this.boyfriend;
_g.set_x(_g.x + 200);
var _g = this.boyfriend;
_g.set_y(_g.y + 220);
var _g = this.gf;
_g.set_x(_g.x + 180);
var _g = this.gf;
_g.set_y(_g.y + 300);
break;
}
this.add(this.gf);
if(PlayState.curStage == "limo") {
this.add(this.limo);
}
this.add(this.dad);
this.add(this.boyfriend);
var doof = new DialogueBox(false,this.dialogue);
doof.scrollFactor.set();
doof.finishThing = $bind(this,this.startCountdown);
Conductor.songPosition = -5000;
this.strumLine = new flixel_FlxSprite(0,50).makeGraphic(flixel_FlxG.width,10);
this.strumLine.scrollFactor.set();
this.strumLineNotes = new flixel_group_FlxTypedGroup();
this.add(this.strumLineNotes);
this.playerStrums = new flixel_group_FlxTypedGroup();
this.generateSong(PlayState.SONG.song);
this.camFollow = new flixel_FlxObject(0,0,1,1);
this.camFollow.setPosition(camPos.x,camPos.y);
if(PlayState.prevCamFollow != null) {
this.camFollow = PlayState.prevCamFollow;
PlayState.prevCamFollow = null;
}
this.add(this.camFollow);
flixel_FlxG.camera.follow(this.camFollow,flixel_FlxCameraFollowStyle.LOCKON,0.04);
flixel_FlxG.camera.set_zoom(this.defaultCamZoom);
var _this = flixel_FlxG.camera;
var point = this.camFollow.getPosition();
_this.scroll.set(point.x - _this.width * 0.5,point.y - _this.height * 0.5);
if(point._weak) {
point.put();
}
var _this = flixel_FlxG.worldBounds;
var X = 0;
var Y = 0;
var Width = flixel_FlxG.width;
var Height = flixel_FlxG.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;
flixel_FlxG.fixedTimestep = false;
this.healthBarBG = new flixel_FlxSprite(0,flixel_FlxG.height * 0.9).loadGraphic("assets/images/healthBar.png");
this.healthBarBG.screenCenter(flixel_util_FlxAxes.X);
this.healthBarBG.scrollFactor.set();
this.add(this.healthBarBG);
this.healthBar = new flixel_ui_FlxBar(this.healthBarBG.x + 4,this.healthBarBG.y + 4,flixel_ui_FlxBarFillDirection.RIGHT_TO_LEFT,this.healthBarBG.get_width() - 8 | 0,this.healthBarBG.get_height() - 8 | 0,this,"health",0,2);
this.healthBar.scrollFactor.set();
this.healthBar.createFilledBar(-65536,-10027213);
this.add(this.healthBar);
this.scoreTxt = new flixel_text_FlxText(this.healthBarBG.x + this.healthBarBG.get_width() - 190,this.healthBarBG.y + 30,0,"",20);
this.scoreTxt.setFormat("assets/fonts/vcr.ttf",16,-1,"right");
this.scoreTxt.scrollFactor.set();
this.add(this.scoreTxt);
this.iconP1 = new HealthIcon(PlayState.SONG.player1,true);
this.iconP1.set_y(this.healthBar.y - this.iconP1.get_height() / 2);
this.add(this.iconP1);
this.iconP2 = new HealthIcon(PlayState.SONG.player2,false);
this.iconP2.set_y(this.healthBar.y - this.iconP2.get_height() / 2);
this.add(this.iconP2);
this.strumLineNotes.set_cameras([this.camHUD]);
this.notes.set_cameras([this.camHUD]);
this.healthBar.set_cameras([this.camHUD]);
this.healthBarBG.set_cameras([this.camHUD]);
this.iconP1.set_cameras([this.camHUD]);
this.iconP2.set_cameras([this.camHUD]);
this.scoreTxt.set_cameras([this.camHUD]);
doof.set_cameras([this.camHUD]);
this.startingSong = true;
if(PlayState.isStoryMode) {
switch(this.curSong.toLowerCase()) {
case "roses":
flixel_FlxG.sound.play("assets/sounds/ANGRY" + TitleState.soundExt);
this.schoolIntro(doof);
break;
case "senpai":
this.schoolIntro(doof);
break;
case "thorns":
this.schoolIntro(doof);
break;
case "winter-horrorland":
var blackScreen = new flixel_FlxSprite(0,0).makeGraphic(flixel_FlxG.width * 2 | 0,flixel_FlxG.height * 2 | 0,-16777216);
this.add(blackScreen);
blackScreen.scrollFactor.set();
this.camHUD.set_visible(false);
new flixel_util_FlxTimer().start(0.1,function(tmr) {
_gthis.remove(blackScreen);
flixel_FlxG.sound.play("assets/sounds/Lights_Turn_On" + TitleState.soundExt);
_gthis.camFollow.set_y(-2050);
var _g = _gthis.camFollow;
_g.set_x(_g.x + 200);
var _this = flixel_FlxG.camera;
var point = _gthis.camFollow.getPosition();
_this.scroll.set(point.x - _this.width * 0.5,point.y - _this.height * 0.5);
if(point._weak) {
point.put();
}
flixel_FlxG.camera.set_zoom(1.5);
new flixel_util_FlxTimer().start(0.8,function(tmr) {
_gthis.camHUD.set_visible(true);
_gthis.remove(blackScreen);
flixel_tweens_FlxTween.tween(flixel_FlxG.camera,{ zoom : _gthis.defaultCamZoom},2.5,{ ease : flixel_tweens_FlxEase.quadInOut, onComplete : function(twn) {
_gthis.startCountdown();
}});
});
});
break;
default:
this.startCountdown();
}
} else {
var _g = this.curSong.toLowerCase();
this.startCountdown();
}
MusicBeatState.prototype.create.call(this);
}
,schoolIntro: function(dialogueBox) {
var _gthis = this;
var black = new flixel_FlxSprite(-100,-100).makeGraphic(flixel_FlxG.width * 2,flixel_FlxG.height * 2,-16777216);
black.scrollFactor.set();
this.add(black);
var red = new flixel_FlxSprite(-100,-100).makeGraphic(flixel_FlxG.width * 2,flixel_FlxG.height * 2,-58575);
red.scrollFactor.set();
var senpaiEvil = new flixel_FlxSprite();
senpaiEvil.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/weeb/senpaiCrazy.png","assets/images/weeb/senpaiCrazy.xml"));
senpaiEvil.animation.addByPrefix("idle","Senpai Pre Explosion",24,false);
senpaiEvil.setGraphicSize(senpaiEvil.get_width() * 6 | 0);
senpaiEvil.scrollFactor.set();
senpaiEvil.updateHitbox();
senpaiEvil.screenCenter();
if(PlayState.SONG.song.toLowerCase() == "roses" || PlayState.SONG.song.toLowerCase() == "thorns") {
this.remove(black);
if(PlayState.SONG.song.toLowerCase() == "thorns") {
this.add(red);
}
}
new flixel_util_FlxTimer().start(0.3,function(tmr) {
var _g = black;
_g.set_alpha(_g.alpha - 0.15);
if(black.alpha > 0) {
tmr.reset(0.3);
} else {
if(dialogueBox != null) {
_gthis.inCutscene = true;
if(PlayState.SONG.song.toLowerCase() == "thorns") {
_gthis.add(senpaiEvil);
senpaiEvil.set_alpha(0);
new flixel_util_FlxTimer().start(0.3,function(swagTimer) {
var _g = senpaiEvil;
_g.set_alpha(_g.alpha + 0.15);
if(senpaiEvil.alpha < 1) {
swagTimer.reset();
} else {
senpaiEvil.animation.play("idle");
flixel_FlxG.sound.play("assets/sounds/Senpai_Dies" + TitleState.soundExt,1,false,null,true,function() {
_gthis.remove(senpaiEvil);
_gthis.remove(red);
flixel_FlxG.camera.fade(-1,0.01,true,function() {
_gthis.add(dialogueBox);
},true);
});
new flixel_util_FlxTimer().start(3.2,function(deadTime) {
flixel_FlxG.camera.fade(-1,1.6,false);
});
}
});
} else {
_gthis.add(dialogueBox);
}
} else {
_gthis.startCountdown();
}
_gthis.remove(black);
}
});
}
,startTimer: null
,perfectMode: null
,startCountdown: function() {
var _gthis = this;
this.inCutscene = false;
this.generateStaticArrows(0);
this.generateStaticArrows(1);
this.talking = false;
this.startedCountdown = true;
Conductor.songPosition = 0;
Conductor.songPosition -= Conductor.crochet * 5;
var swagCounter = 0;
this.startTimer = new flixel_util_FlxTimer().start(Conductor.crochet / 1000,function(tmr) {
_gthis.dad.dance();
_gthis.gf.dance();
_gthis.boyfriend.playAnim("idle");
var introAssets_h = Object.create(null);
introAssets_h["default"] = ["ready.png","set.png","go.png"];
introAssets_h["school"] = ["weeb/pixelUI/ready-pixel.png","weeb/pixelUI/set-pixel.png","weeb/pixelUI/date-pixel.png"];
introAssets_h["schoolEvil"] = ["weeb/pixelUI/ready-pixel.png","weeb/pixelUI/set-pixel.png","weeb/pixelUI/date-pixel.png"];
var introAlts = introAssets_h["default"];
var altSuffix = "";
var value = haxe_ds_StringMap.keysIterator(introAssets_h);
while(value.hasNext()) {
var value1 = value.next();
if(value1 == PlayState.curStage) {
introAlts = introAssets_h[value1];
altSuffix = "-pixel";
}
}
switch(swagCounter) {
case 0:
flixel_FlxG.sound.play("assets/sounds/intro3" + altSuffix + TitleState.soundExt,0.6);
break;
case 1:
var ready = new flixel_FlxSprite().loadGraphic("assets/images/" + introAlts[0]);
ready.scrollFactor.set();
ready.updateHitbox();
if(StringTools.startsWith(PlayState.curStage,"school")) {
ready.setGraphicSize(ready.get_width() * PlayState.daPixelZoom | 0);
}
ready.screenCenter();
_gthis.add(ready);
var _g = ready;
flixel_tweens_FlxTween.tween(ready,{ y : _g.set_y(_g.y + 100), alpha : 0},Conductor.crochet / 1000,{ ease : flixel_tweens_FlxEase.cubeInOut, onComplete : function(twn) {
ready.destroy();
}});
flixel_FlxG.sound.play("assets/sounds/intro2" + altSuffix + TitleState.soundExt,0.6);
break;
case 2:
var set = new flixel_FlxSprite().loadGraphic("assets/images/" + introAlts[1]);
set.scrollFactor.set();
if(StringTools.startsWith(PlayState.curStage,"school")) {
set.setGraphicSize(set.get_width() * PlayState.daPixelZoom | 0);
}
set.screenCenter();
_gthis.add(set);
var _g = set;
flixel_tweens_FlxTween.tween(set,{ y : _g.set_y(_g.y + 100), alpha : 0},Conductor.crochet / 1000,{ ease : flixel_tweens_FlxEase.cubeInOut, onComplete : function(twn) {
set.destroy();
}});
flixel_FlxG.sound.play("assets/sounds/intro1" + altSuffix + TitleState.soundExt,0.6);
break;
case 3:
var go = new flixel_FlxSprite().loadGraphic("assets/images/" + introAlts[2]);
go.scrollFactor.set();
if(StringTools.startsWith(PlayState.curStage,"school")) {
go.setGraphicSize(go.get_width() * PlayState.daPixelZoom | 0);
}
go.updateHitbox();
go.screenCenter();
_gthis.add(go);
var _g = go;
flixel_tweens_FlxTween.tween(go,{ y : _g.set_y(_g.y + 100), alpha : 0},Conductor.crochet / 1000,{ ease : flixel_tweens_FlxEase.cubeInOut, onComplete : function(twn) {
go.destroy();
}});
flixel_FlxG.sound.play("assets/sounds/introGo" + altSuffix + TitleState.soundExt,0.6);
break;
case 4:
break;
}
swagCounter += 1;
},5);
}
,previousFrameTime: null
,lastReportedPlayheadPosition: null
,songTime: null
,startSong: function() {
this.startingSong = false;
this.previousFrameTime = flixel_FlxG.game.ticks;
this.lastReportedPlayheadPosition = 0;
if(!this.paused) {
flixel_FlxG.sound.playMusic("assets/music/" + PlayState.SONG.song + "_Inst" + TitleState.soundExt,1,false);
}
flixel_FlxG.sound.music.onComplete = $bind(this,this.endSong);
this.vocals.play();
}
,debugNum: null
,generateSong: function(dataPath) {
var songData = PlayState.SONG;
Conductor.changeBPM(songData.bpm);
this.curSong = songData.song;
if(PlayState.SONG.needsVoices) {
this.vocals = new flixel_system_FlxSound().loadEmbedded("assets/music/" + this.curSong + "_Voices" + TitleState.soundExt);
} else {
this.vocals = new flixel_system_FlxSound();
}
flixel_FlxG.sound.list.add(this.vocals);
this.notes = new flixel_group_FlxTypedGroup();
this.add(this.notes);
var noteData = songData.notes;
var playerCounter = 0;
var daBeats = 0;
var _g = 0;
while(_g < noteData.length) {
var section = noteData[_g];
++_g;
var coolSection = section.lengthInSteps / 4 | 0;
var _g1 = 0;
var _g2 = section.sectionNotes;
while(_g1 < _g2.length) {
var songNotes = _g2[_g1];
++_g1;
var daStrumTime = songNotes[0];
var daNoteData = songNotes[1] % 4 | 0;
var gottaHitNote = section.mustHitSection;
if(songNotes[1] > 3) {
gottaHitNote = !section.mustHitSection;
}
var oldNote;
if(this.unspawnNotes.length > 0) {
oldNote = this.unspawnNotes[this.unspawnNotes.length - 1 | 0];
} else {
oldNote = null;
}
var swagNote = new Note(daStrumTime,daNoteData,oldNote);
swagNote.sustainLength = songNotes[2];
swagNote.scrollFactor.set(0,0);
var susLength = swagNote.sustainLength;
susLength /= Conductor.stepCrochet;
this.unspawnNotes.push(swagNote);
var _g3 = 0;
var _g4 = Math.floor(susLength);
while(_g3 < _g4) {
var susNote = _g3++;
oldNote = this.unspawnNotes[this.unspawnNotes.length - 1 | 0];
var sustainNote = new Note(daStrumTime + Conductor.stepCrochet * susNote + Conductor.stepCrochet,daNoteData,oldNote,true);
sustainNote.scrollFactor.set();
this.unspawnNotes.push(sustainNote);
sustainNote.mustPress = gottaHitNote;
if(sustainNote.mustPress) {
var _g5 = sustainNote;
_g5.set_x(_g5.x + flixel_FlxG.width / 2);
}
}
swagNote.mustPress = gottaHitNote;
if(swagNote.mustPress) {
var _g6 = swagNote;
_g6.set_x(_g6.x + flixel_FlxG.width / 2);
}
}
++daBeats;
}
this.unspawnNotes.sort($bind(this,this.sortByShit));
this.generatedMusic = true;
}
,sortByShit: function(Obj1,Obj2) {
var Value1 = Obj1.strumTime;
var Value2 = Obj2.strumTime;
var result = 0;
if(Value1 < Value2) {
result = -1;
} else if(Value1 > Value2) {
result = 1;
}
return result;
}
,generateStaticArrows: function(player) {
var _g = 0;
while(_g < 4) {
var i = _g++;
var babyArrow = new flixel_FlxSprite(0,this.strumLine.y);
switch(PlayState.curStage) {
case "school":case "schoolEvil":
babyArrow.loadGraphic("assets/images/weeb/pixelUI/arrows-pixels.png",true,17,17);
babyArrow.animation.add("green",[6]);
babyArrow.animation.add("red",[7]);
babyArrow.animation.add("blue",[5]);
babyArrow.animation.add("purplel",[4]);
babyArrow.setGraphicSize(babyArrow.get_width() * PlayState.daPixelZoom | 0);
babyArrow.updateHitbox();
babyArrow.set_antialiasing(false);
switch(Math.abs(i)) {
case 0:
var _g1 = babyArrow;
_g1.set_x(_g1.x + Note.swagWidth * 0);
babyArrow.animation.add("static",[0]);
babyArrow.animation.add("pressed",[4,8],12,false);
babyArrow.animation.add("confirm",[12,16],24,false);
break;
case 1:
var _g2 = babyArrow;
_g2.set_x(_g2.x + Note.swagWidth);
babyArrow.animation.add("static",[1]);
babyArrow.animation.add("pressed",[5,9],12,false);
babyArrow.animation.add("confirm",[13,17],24,false);
break;
case 2:
var _g3 = babyArrow;
_g3.set_x(_g3.x + Note.swagWidth * 2);
babyArrow.animation.add("static",[2]);
babyArrow.animation.add("pressed",[6,10],12,false);
babyArrow.animation.add("confirm",[14,18],12,false);
break;
case 3:
var _g4 = babyArrow;
_g4.set_x(_g4.x + Note.swagWidth * 3);
babyArrow.animation.add("static",[3]);
babyArrow.animation.add("pressed",[7,11],12,false);
babyArrow.animation.add("confirm",[15,19],24,false);
break;
}
break;
default:
babyArrow.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/NOTE_assets.png","assets/images/NOTE_assets.xml"));
babyArrow.animation.addByPrefix("green","arrowUP");
babyArrow.animation.addByPrefix("blue","arrowDOWN");
babyArrow.animation.addByPrefix("purple","arrowLEFT");
babyArrow.animation.addByPrefix("red","arrowRIGHT");
babyArrow.set_antialiasing(true);
babyArrow.setGraphicSize(babyArrow.get_width() * 0.7 | 0);
switch(Math.abs(i)) {
case 0:
var _g5 = babyArrow;
_g5.set_x(_g5.x + Note.swagWidth * 0);
babyArrow.animation.addByPrefix("static","arrowLEFT");
babyArrow.animation.addByPrefix("pressed","left press",24,false);
babyArrow.animation.addByPrefix("confirm","left confirm",24,false);
break;
case 1:
var _g6 = babyArrow;
_g6.set_x(_g6.x + Note.swagWidth);
babyArrow.animation.addByPrefix("static","arrowDOWN");
babyArrow.animation.addByPrefix("pressed","down press",24,false);
babyArrow.animation.addByPrefix("confirm","down confirm",24,false);
break;
case 2:
var _g7 = babyArrow;
_g7.set_x(_g7.x + Note.swagWidth * 2);
babyArrow.animation.addByPrefix("static","arrowUP");
babyArrow.animation.addByPrefix("pressed","up press",24,false);
babyArrow.animation.addByPrefix("confirm","up confirm",24,false);
break;
case 3:
var _g8 = babyArrow;
_g8.set_x(_g8.x + Note.swagWidth * 3);
babyArrow.animation.addByPrefix("static","arrowRIGHT");
babyArrow.animation.addByPrefix("pressed","right press",24,false);
babyArrow.animation.addByPrefix("confirm","right confirm",24,false);
break;
}
}
babyArrow.updateHitbox();
babyArrow.scrollFactor.set();
if(!PlayState.isStoryMode) {
var _g9 = babyArrow;
_g9.set_y(_g9.y - 10);
babyArrow.set_alpha(0);
flixel_tweens_FlxTween.tween(babyArrow,{ y : babyArrow.y + 10, alpha : 1},1,{ ease : flixel_tweens_FlxEase.circOut, startDelay : 0.5 + 0.2 * i});
}
babyArrow.ID = i;
if(player == 1) {
this.playerStrums.add(babyArrow);
}
babyArrow.animation.play("static");
var _g10 = babyArrow;
_g10.set_x(_g10.x + 50);
var _g11 = babyArrow;
_g11.set_x(_g11.x + flixel_FlxG.width / 2 * player);
this.strumLineNotes.add(babyArrow);
}
}
,tweenCamIn: function() {
flixel_tweens_FlxTween.tween(flixel_FlxG.camera,{ zoom : 1.3},Conductor.stepCrochet * 4 / 1000,{ ease : flixel_tweens_FlxEase.elasticInOut});
}
,openSubState: function(SubState) {
if(this.paused) {
if(flixel_FlxG.sound.music != null) {
flixel_FlxG.sound.music.pause();
this.vocals.pause();
}
if(!this.startTimer.finished) {
this.startTimer.active = false;
}
}
MusicBeatState.prototype.openSubState.call(this,SubState);
}
,closeSubState: function() {
if(this.paused) {
if(flixel_FlxG.sound.music != null && !this.startingSong) {
this.resyncVocals();
}
if(!this.startTimer.finished) {
this.startTimer.active = true;
}
this.paused = false;
}
MusicBeatState.prototype.closeSubState.call(this);
}
,resyncVocals: function() {
this.vocals.pause();
flixel_FlxG.sound.music.play();
Conductor.songPosition = flixel_FlxG.sound.music._time;
this.vocals.set_time(Conductor.songPosition);
this.vocals.play();
}
,paused: null
,startedCountdown: null
,canPause: null
,update: function(elapsed) {
var _gthis = this;
this.perfectMode = false;
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(57,_this.status)) {
if(this.iconP1.animation._curAnim.name == "bf-old") {
this.iconP1.animation.play(PlayState.SONG.player1);
} else {
this.iconP1.animation.play("bf-old");
}
}
if(PlayState.curStage == "philly") {
if(this.trainMoving) {
this.trainFrameTiming += elapsed;
if(this.trainFrameTiming >= 0.041666666666666664) {
this.updateTrainPos();
this.trainFrameTiming = 0;
}
}
}
MusicBeatState.prototype.update.call(this,elapsed);
this.scoreTxt.set_text("Score:" + this.songScore);
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(13,_this.status) && this.startedCountdown && this.canPause) {
this.persistentUpdate = false;
this.persistentDraw = true;
this.paused = true;
this.openSubState(new PauseSubState(this.boyfriend.getScreenPosition().x,this.boyfriend.getScreenPosition().y));
}
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(55,_this.status)) {
var nextState = new ChartingState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
this.iconP1.setGraphicSize(150 + 0.50 * (this.iconP1.get_width() - 150) | 0);
this.iconP2.setGraphicSize(150 + 0.50 * (this.iconP2.get_width() - 150) | 0);
this.iconP1.updateHitbox();
this.iconP2.updateHitbox();
var iconOffset = 26;
this.iconP1.set_x(this.healthBar.x + (this.healthBar.get_width() * (flixel_math_FlxMath.remapToRange(this.healthBar.get_percent(),0,100,100,0) * 0.01) - iconOffset));
this.iconP2.set_x(this.healthBar.x + this.healthBar.get_width() * (flixel_math_FlxMath.remapToRange(this.healthBar.get_percent(),0,100,100,0) * 0.01) - (this.iconP2.get_width() - iconOffset));
if(this.health > 2) {
this.health = 2;
}
if(this.healthBar.get_percent() < 20) {
this.iconP1.animation._curAnim.set_curFrame(1);
} else {
this.iconP1.animation._curAnim.set_curFrame(0);
}
if(this.healthBar.get_percent() > 80) {
this.iconP2.animation._curAnim.set_curFrame(1);
} else {
this.iconP2.animation._curAnim.set_curFrame(0);
}
if(this.startingSong) {
if(this.startedCountdown) {
Conductor.songPosition += flixel_FlxG.elapsed * 1000;
if(Conductor.songPosition >= 0) {
this.startSong();
}
}
} else {
Conductor.songPosition += flixel_FlxG.elapsed * 1000;
if(!this.paused) {
this.songTime += flixel_FlxG.game.ticks - this.previousFrameTime;
this.previousFrameTime = flixel_FlxG.game.ticks;
if(Conductor.lastSongPos != Conductor.songPosition) {
this.songTime = (this.songTime + Conductor.songPosition) / 2;
Conductor.lastSongPos = Conductor.songPosition;
}
}
}
if(this.generatedMusic && PlayState.SONG.notes[this.curStep / 16 | 0] != null) {
var tmp = this.curBeat % 4 == 0;
if(this.camFollow.x != this.dad.getMidpoint().x + 150 && !PlayState.SONG.notes[this.curStep / 16 | 0].mustHitSection) {
this.camFollow.setPosition(this.dad.getMidpoint().x + 150,this.dad.getMidpoint().y - 100);
switch(this.dad.curCharacter) {
case "mom":
this.camFollow.set_y(this.dad.getMidpoint().y);
break;
case "senpai":
this.camFollow.set_y(this.dad.getMidpoint().y - 430);
this.camFollow.set_x(this.dad.getMidpoint().x - 100);
break;
case "senpai-angry":
this.camFollow.set_y(this.dad.getMidpoint().y - 430);
this.camFollow.set_x(this.dad.getMidpoint().x - 100);
break;
}
if(this.dad.curCharacter == "mom") {
this.vocals.set_volume(1);
}
if(PlayState.SONG.song.toLowerCase() == "tutorial") {
this.tweenCamIn();
}
}
if(PlayState.SONG.notes[this.curStep / 16 | 0].mustHitSection && this.camFollow.x != this.boyfriend.getMidpoint().x - 100) {
this.camFollow.setPosition(this.boyfriend.getMidpoint().x - 100,this.boyfriend.getMidpoint().y - 100);
switch(PlayState.curStage) {
case "limo":
this.camFollow.set_x(this.boyfriend.getMidpoint().x - 300);
break;
case "mall":
this.camFollow.set_y(this.boyfriend.getMidpoint().y - 200);
break;
case "school":
this.camFollow.set_x(this.boyfriend.getMidpoint().x - 200);
this.camFollow.set_y(this.boyfriend.getMidpoint().y - 200);
break;
case "schoolEvil":
this.camFollow.set_x(this.boyfriend.getMidpoint().x - 200);
this.camFollow.set_y(this.boyfriend.getMidpoint().y - 200);
break;
}
if(PlayState.SONG.song.toLowerCase() == "tutorial") {
flixel_tweens_FlxTween.tween(flixel_FlxG.camera,{ zoom : 1},Conductor.stepCrochet * 4 / 1000,{ ease : flixel_tweens_FlxEase.elasticInOut});
}
}
}
if(this.camZooming) {
var a = this.defaultCamZoom;
flixel_FlxG.camera.set_zoom(a + 0.95 * (flixel_FlxG.camera.zoom - a));
this.camHUD.set_zoom(1 + 0.95 * (this.camHUD.zoom - 1));
}
if(this.curSong == "Fresh") {
switch(this.curBeat) {
case 16:
this.camZooming = true;
this.gfSpeed = 2;
break;
case 48:
this.gfSpeed = 1;
break;
case 80:
this.gfSpeed = 2;
break;
case 112:
this.gfSpeed = 1;
break;
case 163:
break;
}
}
if(this.curSong == "Bopeebo") {
switch(this.curBeat) {
case 128:case 129:case 130:
this.vocals.set_volume(0);
break;
}
}
if(PlayerSettings.player1.controls._reset.check()) {
this.health = 0;
haxe_Log.trace("RESET = True",{ fileName : "source/PlayState.hx", lineNumber : 1452, className : "PlayState", methodName : "update"});
}
if(PlayerSettings.player1.controls._cheat.check()) {
this.health += 1;
haxe_Log.trace("User is cheating!",{ fileName : "source/PlayState.hx", lineNumber : 1459, className : "PlayState", methodName : "update"});
}
if(this.health <= 0) {
this.boyfriend.stunned = true;
this.persistentUpdate = false;
this.persistentDraw = false;
this.paused = true;
var _this = this.vocals;
_this.cleanup(_this.autoDestroy,true);
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
var Chance = 0.1;
if(Chance == null) {
Chance = 50;
}
if(flixel_FlxG.random.float(0,100) < Chance) {
var nextState = new GitarooPause();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
} else {
this.openSubState(new GameOverSubstate(this.boyfriend.getScreenPosition().x,this.boyfriend.getScreenPosition().y));
}
}
if(this.unspawnNotes[0] != null) {
if(this.unspawnNotes[0].strumTime - Conductor.songPosition < 1500) {
var dunceNote = this.unspawnNotes[0];
this.notes.add(dunceNote);
var index = this.unspawnNotes.indexOf(dunceNote);
this.unspawnNotes.splice(index,1);
}
}
if(this.generatedMusic) {
this.notes.forEachAlive(function(daNote) {
if(daNote.y > flixel_FlxG.height) {
daNote.set_active(false);
daNote.set_visible(false);
} else {
daNote.set_visible(true);
daNote.set_active(true);
}
daNote.set_y(_gthis.strumLine.y - (Conductor.songPosition - daNote.strumTime) * (0.45 * flixel_math_FlxMath.roundDecimal(PlayState.SONG.speed,2)));
if(daNote.isSustainNote && daNote.y + daNote.offset.y <= _gthis.strumLine.y + Note.swagWidth / 2 && (!daNote.mustPress || (daNote.wasGoodHit || daNote.prevNote.wasGoodHit && !daNote.canBeHit))) {
var swagRect = new flixel_math_FlxRect(0,_gthis.strumLine.y + Note.swagWidth / 2 - daNote.y,daNote.get_width() * 2,daNote.get_height() * 2);
swagRect.y /= daNote.scale.y;
swagRect.height -= swagRect.y;
daNote.set_clipRect(swagRect);
}
if(!daNote.mustPress && daNote.wasGoodHit) {
if(PlayState.SONG.song != "Tutorial") {
_gthis.camZooming = true;
}
var altAnim = "";
if(PlayState.SONG.notes[Math.floor(_gthis.curStep / 16)] != null) {
if(PlayState.SONG.notes[Math.floor(_gthis.curStep / 16)].altAnim) {
altAnim = "-alt";
}
}
switch(Math.abs(daNote.noteData)) {
case 0:
_gthis.dad.playAnim("singLEFT" + altAnim,true);
break;
case 1:
_gthis.dad.playAnim("singDOWN" + altAnim,true);
break;
case 2:
_gthis.dad.playAnim("singUP" + altAnim,true);
break;
case 3:
_gthis.dad.playAnim("singRIGHT" + altAnim,true);
break;
}
_gthis.dad.holdTimer = 0;
if(PlayState.SONG.needsVoices) {
_gthis.vocals.set_volume(1);
}
daNote.kill();
_gthis.notes.remove(daNote,true);
daNote.destroy();
}
if(daNote.y < -daNote.get_height()) {
if(daNote.isSustainNote && daNote.wasGoodHit) {
daNote.kill();
_gthis.notes.remove(daNote,true);
daNote.destroy();
} else {
if(daNote.tooLate || !daNote.wasGoodHit) {
_gthis.health -= 0.0475;
_gthis.vocals.set_volume(0);
}
daNote.set_active(false);
daNote.set_visible(false);
daNote.kill();
_gthis.notes.remove(daNote,true);
daNote.destroy();
}
}
});
}
if(!this.inCutscene) {
this.keyShit();
}
}
,endSong: function() {
this.canPause = false;
flixel_FlxG.sound.music.set_volume(0);
this.vocals.set_volume(0);
if(PlayState.SONG.validScore) {
Highscore.saveScore(PlayState.SONG.song,this.songScore,PlayState.storyDifficulty);
}
if(PlayState.isStoryMode) {
PlayState.campaignScore += this.songScore;
HxOverrides.remove(PlayState.storyPlaylist,PlayState.storyPlaylist[0]);
if(PlayState.storyPlaylist.length <= 0) {
flixel_FlxG.sound.playMusic("assets/music/freakyMenu" + TitleState.soundExt);
this.transIn = flixel_addons_transition_FlxTransitionableState.defaultTransIn;
this.transOut = flixel_addons_transition_FlxTransitionableState.defaultTransOut;
var nextState = new StoryMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
StoryMenuState.weekUnlocked[Math.min(PlayState.storyWeek + 1,StoryMenuState.weekUnlocked.length - 1) | 0] = true;
if(PlayState.SONG.validScore) {
if(NGio.isLoggedIn) {
var medal = io_newgrounds_NG.core.medals.h[60961];
if(!medal._data.unlocked) {
medal.sendUnlock();
}
}
Highscore.saveWeekScore(PlayState.storyWeek,PlayState.campaignScore,PlayState.storyDifficulty);
}
flixel_FlxG.save.data.weekUnlocked = StoryMenuState.weekUnlocked;
flixel_FlxG.save.flush();
} else {
var difficulty = "";
if(PlayState.storyDifficulty == 0) {
difficulty = "-easy";
}
if(PlayState.storyDifficulty == 2) {
difficulty = "-hard";
}
haxe_Log.trace("LOADING NEXT SONG",{ fileName : "source/PlayState.hx", lineNumber : 1649, className : "PlayState", methodName : "endSong"});
haxe_Log.trace(PlayState.storyPlaylist[0].toLowerCase() + difficulty,{ fileName : "source/PlayState.hx", lineNumber : 1650, className : "PlayState", methodName : "endSong"});
if(PlayState.SONG.song.toLowerCase() == "eggnog") {
var blackShit = new flixel_FlxSprite(-flixel_FlxG.width * flixel_FlxG.camera.zoom,-flixel_FlxG.height * flixel_FlxG.camera.zoom).makeGraphic(flixel_FlxG.width * 3,flixel_FlxG.height * 3,-16777216);
blackShit.scrollFactor.set();
this.add(blackShit);
this.camHUD.set_visible(false);
flixel_FlxG.sound.play("assets/sounds/Lights_Shut_off" + TitleState.soundExt);
}
flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true;
flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true;
PlayState.prevCamFollow = this.camFollow;
PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase() + difficulty,PlayState.storyPlaylist[0]);
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
var nextState = new PlayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
} else {
haxe_Log.trace("WENT BACK TO FREEPLAY??",{ fileName : "source/PlayState.hx", lineNumber : 1675, className : "PlayState", methodName : "endSong"});
var nextState = new FreeplayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
}
,endingSong: null
,popUpScore: function(strumtime) {
var noteDiff = Math.abs(strumtime - Conductor.songPosition);
this.vocals.set_volume(1);
var placement = Std.string(this.combo);
var coolText = new flixel_text_FlxText(0,0,0,placement,32);
coolText.screenCenter();
coolText.set_x(flixel_FlxG.width * 0.55);
var rating = new flixel_FlxSprite();
var score = 350;
var daRating = "sick";
if(noteDiff > Conductor.safeZoneOffset * 0.9) {
daRating = "shit";
score = 50;
} else if(noteDiff > Conductor.safeZoneOffset * 0.75) {
daRating = "bad";
score = 100;
} else if(noteDiff > Conductor.safeZoneOffset * 0.2) {
daRating = "good";
score = 200;
}
this.songScore += score;
var pixelShitPart1 = "";
var pixelShitPart2 = "";
if(StringTools.startsWith(PlayState.curStage,"school")) {
pixelShitPart1 = "weeb/pixelUI/";
pixelShitPart2 = "-pixel";
}
rating.loadGraphic("assets/images/" + pixelShitPart1 + daRating + pixelShitPart2 + ".png");
rating.screenCenter();
rating.set_x(coolText.x - 40);
var _g = rating;
_g.set_y(_g.y - 60);
rating.acceleration.set_y(550);
var _g = rating.velocity;
_g.set_y(_g.y - flixel_FlxG.random.int(140,175));
var _g = rating.velocity;
_g.set_x(_g.x - flixel_FlxG.random.int(0,10));
var comboSpr = new flixel_FlxSprite().loadGraphic("assets/images/" + pixelShitPart1 + "combo" + pixelShitPart2 + ".png");
comboSpr.screenCenter();
comboSpr.set_x(coolText.x);
comboSpr.acceleration.set_y(600);
var _g = comboSpr.velocity;
_g.set_y(_g.y - 150);
var _g = comboSpr.velocity;
_g.set_x(_g.x + flixel_FlxG.random.int(1,10));
this.add(rating);
if(!StringTools.startsWith(PlayState.curStage,"school")) {
rating.setGraphicSize(rating.get_width() * 0.7 | 0);
rating.set_antialiasing(true);
comboSpr.setGraphicSize(comboSpr.get_width() * 0.7 | 0);
comboSpr.set_antialiasing(true);
} else {
rating.setGraphicSize(rating.get_width() * PlayState.daPixelZoom * 0.7 | 0);
comboSpr.setGraphicSize(comboSpr.get_width() * PlayState.daPixelZoom * 0.7 | 0);
}
comboSpr.updateHitbox();
rating.updateHitbox();
var seperatedScore = [];
seperatedScore.push(Math.floor(this.combo / 100));
seperatedScore.push(Math.floor((this.combo - seperatedScore[0] * 100) / 10));
seperatedScore.push(this.combo % 10);
var daLoop = 0;
var _g = 0;
while(_g < seperatedScore.length) {
var i = seperatedScore[_g];
++_g;
var numScore = [new flixel_FlxSprite().loadGraphic("assets/images/" + pixelShitPart1 + "num" + (i | 0) + pixelShitPart2 + ".png")];
numScore[0].screenCenter();
numScore[0].set_x(coolText.x + 43 * daLoop - 90);
var _g1 = numScore[0];
_g1.set_y(_g1.y + 80);
if(!StringTools.startsWith(PlayState.curStage,"school")) {
numScore[0].set_antialiasing(true);
numScore[0].setGraphicSize(numScore[0].get_width() * 0.5 | 0);
} else {
numScore[0].setGraphicSize(numScore[0].get_width() * PlayState.daPixelZoom | 0);
}
numScore[0].updateHitbox();
numScore[0].acceleration.set_y(flixel_FlxG.random.int(200,300));
var _g2 = numScore[0].velocity;
_g2.set_y(_g2.y - flixel_FlxG.random.int(140,160));
numScore[0].velocity.set_x(flixel_FlxG.random.float(-5,5));
if(this.combo >= 10 || this.combo == 0) {
this.add(numScore[0]);
}
flixel_tweens_FlxTween.tween(numScore[0],{ alpha : 0},0.2,{ onComplete : (function(numScore) {
return function(tween) {
numScore[0].destroy();
};
})(numScore), startDelay : Conductor.crochet * 0.002});
++daLoop;
}
coolText.set_text(Std.string(seperatedScore));
flixel_tweens_FlxTween.tween(rating,{ alpha : 0},0.2,{ startDelay : Conductor.crochet * 0.001});
flixel_tweens_FlxTween.tween(comboSpr,{ alpha : 0},0.2,{ onComplete : function(tween) {
coolText.destroy();
comboSpr.destroy();
rating.destroy();
}, startDelay : Conductor.crochet * 0.001});
this.curSection += 1;
}
,keyShit: function() {
var _gthis = this;
var up = PlayerSettings.player1.controls._up.check();
var right = PlayerSettings.player1.controls._right.check();
var down = PlayerSettings.player1.controls._down.check();
var left = PlayerSettings.player1.controls._left.check();
var upP = PlayerSettings.player1.controls._upP.check();
var rightP = PlayerSettings.player1.controls._rightP.check();
var downP = PlayerSettings.player1.controls._downP.check();
var leftP = PlayerSettings.player1.controls._leftP.check();
var upR = PlayerSettings.player1.controls._upR.check();
var rightR = PlayerSettings.player1.controls._rightR.check();
var downR = PlayerSettings.player1.controls._downR.check();
var leftR = PlayerSettings.player1.controls._leftR.check();
var controlArray = [leftP,downP,upP,rightP];
if((upP || rightP || downP || leftP) && !this.boyfriend.stunned && this.generatedMusic) {
this.boyfriend.holdTimer = 0;
var possibleNotes = [];
var ignoreList = [];
this.notes.forEachAlive(function(daNote) {
if(daNote.canBeHit && daNote.mustPress && !daNote.tooLate) {
possibleNotes.push(daNote);
possibleNotes.sort(function(a,b) {
return a.strumTime - b.strumTime | 0;
});
ignoreList.push(daNote.noteData);
}
});
if(possibleNotes.length > 0) {
var daNote = possibleNotes[0];
if(this.perfectMode) {
this.noteCheck(true,daNote);
}
if(possibleNotes.length >= 2) {
if(possibleNotes[0].strumTime == possibleNotes[1].strumTime) {
var _g = 0;
while(_g < possibleNotes.length) {
var coolNote = possibleNotes[_g];
++_g;
if(controlArray[coolNote.noteData]) {
this.goodNoteHit(coolNote);
} else {
var inIgnoreList = false;
var _g1 = 0;
var _g2 = ignoreList.length;
while(_g1 < _g2) {
var shit = _g1++;
if(controlArray[ignoreList[shit]]) {
inIgnoreList = true;
}
}
if(!inIgnoreList) {
this.badNoteCheck();
}
}
}
} else if(possibleNotes[0].noteData == possibleNotes[1].noteData) {
this.noteCheck(controlArray[daNote.noteData],daNote);
} else {
var _g = 0;
while(_g < possibleNotes.length) {
var coolNote = possibleNotes[_g];
++_g;
this.noteCheck(controlArray[coolNote.noteData],coolNote);
}
}
} else {
this.noteCheck(controlArray[daNote.noteData],daNote);
}
if(daNote.wasGoodHit) {
daNote.kill();
this.notes.remove(daNote,true);
daNote.destroy();
}
} else {
this.badNoteCheck();
}
}
if((up || right || down || left) && !this.boyfriend.stunned && this.generatedMusic) {
this.notes.forEachAlive(function(daNote) {
if(daNote.canBeHit && daNote.mustPress && daNote.isSustainNote) {
switch(daNote.noteData) {
case 0:
if(left) {
_gthis.goodNoteHit(daNote);
}
break;
case 1:
if(down) {
_gthis.goodNoteHit(daNote);
}
break;
case 2:
if(up) {
_gthis.goodNoteHit(daNote);
}
break;
case 3:
if(right) {
_gthis.goodNoteHit(daNote);
}
break;
}
}
});
}
if(this.boyfriend.holdTimer > Conductor.stepCrochet * 4 * 0.001 && !up && !down && !right && !left) {
if(StringTools.startsWith(this.boyfriend.animation._curAnim.name,"sing") && !StringTools.endsWith(this.boyfriend.animation._curAnim.name,"miss")) {
this.boyfriend.playAnim("idle");
}
}
this.playerStrums.forEach(function(spr) {
switch(spr.ID) {
case 0:
if(leftP && spr.animation._curAnim.name != "confirm") {
spr.animation.play("pressed");
}
if(leftR) {
spr.animation.play("static");
}
break;
case 1:
if(downP && spr.animation._curAnim.name != "confirm") {
spr.animation.play("pressed");
}
if(downR) {
spr.animation.play("static");
}
break;
case 2:
if(upP && spr.animation._curAnim.name != "confirm") {
spr.animation.play("pressed");
}
if(upR) {
spr.animation.play("static");
}
break;
case 3:
if(rightP && spr.animation._curAnim.name != "confirm") {
spr.animation.play("pressed");
}
if(rightR) {
spr.animation.play("static");
}
break;
}
if(spr.animation._curAnim.name == "confirm" && !StringTools.startsWith(PlayState.curStage,"school")) {
spr.centerOffsets();
var _g = spr.offset;
_g.set_x(_g.x - 13);
var _g = spr.offset;
_g.set_y(_g.y - 13);
} else {
spr.centerOffsets();
}
});
}
,noteMiss: function(direction) {
if(direction == null) {
direction = 1;
}
var _gthis = this;
if(!this.boyfriend.stunned) {
this.health -= 0.04;
if(this.combo > 5) {
this.gf.playAnim("sad");
}
this.combo = 0;
this.songScore -= 10;
flixel_FlxG.sound.play("assets/sounds/missnote" + flixel_FlxG.random.int(1,3) + TitleState.soundExt,flixel_FlxG.random.float(0.1,0.2));
this.boyfriend.stunned = true;
new flixel_util_FlxTimer().start(0.083333333333333329,function(tmr) {
_gthis.boyfriend.stunned = false;
});
switch(direction) {
case 0:
this.boyfriend.playAnim("singLEFTmiss",true);
break;
case 1:
this.boyfriend.playAnim("singDOWNmiss",true);
break;
case 2:
this.boyfriend.playAnim("singUPmiss",true);
break;
case 3:
this.boyfriend.playAnim("singRIGHTmiss",true);
break;
}
}
}
,badNoteCheck: function() {
var upP = PlayerSettings.player1.controls._upP.check();
var rightP = PlayerSettings.player1.controls._rightP.check();
var downP = PlayerSettings.player1.controls._downP.check();
var leftP = PlayerSettings.player1.controls._leftP.check();
if(leftP) {
this.noteMiss(0);
}
if(downP) {
this.noteMiss(1);
}
if(upP) {
this.noteMiss(2);
}
if(rightP) {
this.noteMiss(3);
}
}
,noteCheck: function(keyP,note) {
if(keyP) {
this.goodNoteHit(note);
} else {
this.badNoteCheck();
}
}
,goodNoteHit: function(note) {
if(!note.wasGoodHit) {
if(!note.isSustainNote) {
this.popUpScore(note.strumTime);
this.combo += 1;
}
if(note.noteData >= 0) {
this.health += 0.023;
} else {
this.health += 0.004;
}
switch(note.noteData) {
case 0:
this.boyfriend.playAnim("singLEFT",true);
break;
case 1:
this.boyfriend.playAnim("singDOWN",true);
break;
case 2:
this.boyfriend.playAnim("singUP",true);
break;
case 3:
this.boyfriend.playAnim("singRIGHT",true);
break;
}
this.playerStrums.forEach(function(spr) {
if(Math.abs(note.noteData) == spr.ID) {
spr.animation.play("confirm",true);
}
});
note.wasGoodHit = true;
this.vocals.set_volume(1);
if(!note.isSustainNote) {
note.kill();
this.notes.remove(note,true);
note.destroy();
}
}
}
,fastCarCanDrive: null
,resetFastCar: function() {
this.fastCar.set_x(-12600);
this.fastCar.set_y(flixel_FlxG.random.int(140,250));
this.fastCar.velocity.set_x(0);
this.fastCarCanDrive = true;
}
,fastCarDrive: function() {
var _gthis = this;
flixel_FlxG.sound.play("assets/sounds/carPass" + flixel_FlxG.random.int(0,1) + TitleState.soundExt,0.7);
this.fastCar.velocity.set_x(flixel_FlxG.random.int(170,220) / flixel_FlxG.elapsed * 3);
this.fastCarCanDrive = false;
new flixel_util_FlxTimer().start(2,function(tmr) {
_gthis.resetFastCar();
});
}
,trainMoving: null
,trainFrameTiming: null
,trainCars: null
,trainFinishing: null
,trainCooldown: null
,trainStart: function() {
this.trainMoving = true;
if(this.trainSound._channel == null) {
this.trainSound.play(true);
}
}
,startedMoving: null
,updateTrainPos: function() {
if(this.trainSound._time >= 4700) {
this.startedMoving = true;
this.gf.playAnim("hairBlow");
}
if(this.startedMoving) {
var _g = this.phillyTrain;
_g.set_x(_g.x - 400);
if(this.phillyTrain.x < -2000 && !this.trainFinishing) {
this.phillyTrain.set_x(-1150);
this.trainCars -= 1;
if(this.trainCars <= 0) {
this.trainFinishing = true;
}
}
if(this.phillyTrain.x < -4000 && this.trainFinishing) {
this.trainReset();
}
}
}
,trainReset: function() {
this.gf.playAnim("hairFall");
this.phillyTrain.set_x(flixel_FlxG.width + 200);
this.trainMoving = false;
this.trainCars = 8;
this.trainFinishing = false;
this.startedMoving = false;
}
,lightningStrikeShit: function() {
flixel_FlxG.sound.play("assets/sounds/thunder_" + flixel_FlxG.random.int(1,2) + TitleState.soundExt);
this.halloweenBG.animation.play("lightning");
this.lightningStrikeBeat = this.curBeat;
this.lightningOffset = flixel_FlxG.random.int(8,24);
this.boyfriend.playAnim("scared",true);
this.gf.playAnim("scared",true);
}
,stepHit: function() {
MusicBeatState.prototype.stepHit.call(this);
if(PlayState.SONG.needsVoices) {
if(this.vocals._time > Conductor.songPosition + 20 || this.vocals._time < Conductor.songPosition - 20) {
this.resyncVocals();
}
}
var tmp = this.dad.curCharacter == "spooky" && this.curStep % 4 == 2;
}
,lightningStrikeBeat: null
,lightningOffset: null
,beatHit: function() {
MusicBeatState.prototype.beatHit.call(this);
if(this.generatedMusic) {
var Order = 1;
if(Order == null) {
Order = -1;
}
var _g = flixel_util_FlxSort.byY;
var a1 = Order;
var tmp = function(a2,a3) {
return _g(a1,a2,a3);
};
this.notes.members.sort(tmp);
}
if(PlayState.SONG.notes[Math.floor(this.curStep / 16)] != null) {
if(PlayState.SONG.notes[Math.floor(this.curStep / 16)].changeBPM) {
Conductor.changeBPM(PlayState.SONG.notes[Math.floor(this.curStep / 16)].bpm);
}
if(PlayState.SONG.notes[Math.floor(this.curStep / 16)].mustHitSection) {
this.dad.dance();
}
}
this.wiggleShit.update(Conductor.crochet);
if(this.curSong.toLowerCase() == "milf" && this.curBeat >= 168 && this.curBeat < 200 && this.camZooming && flixel_FlxG.camera.zoom < 1.35) {
var _g1 = flixel_FlxG.camera;
_g1.set_zoom(_g1.zoom + 0.015);
var _g1 = this.camHUD;
_g1.set_zoom(_g1.zoom + 0.03);
}
if(this.camZooming && flixel_FlxG.camera.zoom < 1.35 && this.curBeat % 4 == 0) {
var _g1 = flixel_FlxG.camera;
_g1.set_zoom(_g1.zoom + 0.015);
var _g1 = this.camHUD;
_g1.set_zoom(_g1.zoom + 0.03);
}
this.iconP1.setGraphicSize(this.iconP1.get_width() + 30 | 0);
this.iconP2.setGraphicSize(this.iconP2.get_width() + 30 | 0);
this.iconP1.updateHitbox();
this.iconP2.updateHitbox();
if(this.curBeat % this.gfSpeed == 0) {
this.gf.dance();
}
if(!StringTools.startsWith(this.boyfriend.animation._curAnim.name,"sing")) {
this.boyfriend.playAnim("idle");
}
if(this.curBeat % 8 == 7 && this.curSong == "Bopeebo") {
this.boyfriend.playAnim("hey",true);
if(PlayState.SONG.song == "Tutorial" && this.dad.curCharacter == "gf") {
this.dad.playAnim("cheer",true);
}
}
switch(PlayState.curStage) {
case "limo":
this.grpLimoDancers.forEach(function(dancer) {
dancer.dance();
});
var Chance = 10;
if(Chance == null) {
Chance = 50;
}
if(flixel_FlxG.random.float(0,100) < Chance && this.fastCarCanDrive) {
this.fastCarDrive();
}
break;
case "mall":
this.upperBoppers.animation.play("bop",true);
this.bottomBoppers.animation.play("bop",true);
this.santa.animation.play("idle",true);
break;
case "philly":
if(!this.trainMoving) {
this.trainCooldown += 1;
}
if(this.curBeat % 4 == 0) {
this.phillyCityLights.forEach(function(light) {
light.set_visible(false);
});
this.curLight = flixel_FlxG.random.int(0,this.phillyCityLights.length - 1);
this.phillyCityLights.members[this.curLight].set_visible(true);
}
var tmp;
if(this.curBeat % 8 == 4) {
var Chance = 30;
if(Chance == null) {
Chance = 50;
}
tmp = flixel_FlxG.random.float(0,100) < Chance;
} else {
tmp = false;
}
if(tmp && !this.trainMoving && this.trainCooldown > 8) {
this.trainCooldown = flixel_FlxG.random.int(-4,0);
this.trainStart();
}
break;
case "school":
this.bgGirls.dance();
break;
}
var tmp;
if(this.isHalloween) {
var Chance = 10;
if(Chance == null) {
Chance = 50;
}
tmp = flixel_FlxG.random.float(0,100) < Chance;
} else {
tmp = false;
}
if(tmp && this.curBeat > this.lightningStrikeBeat + this.lightningOffset) {
this.lightningStrikeShit();
}
}
,curLight: null
,__class__: PlayState
});
var PlayerSettings = function(id,scheme) {
this.id = id;
this.controls = new Controls("player" + id,scheme);
};
$hxClasses["PlayerSettings"] = PlayerSettings;
PlayerSettings.__name__ = "PlayerSettings";
PlayerSettings.player1 = null;
PlayerSettings.player2 = null;
PlayerSettings.init = function() {
if(PlayerSettings.player1 == null) {
PlayerSettings.player1 = new PlayerSettings(0,KeyboardScheme.Solo);
++PlayerSettings.numPlayers;
}
var numGamepads = flixel_FlxG.gamepads.get_numActiveGamepads();
if(numGamepads > 0) {
var gamepad = flixel_FlxG.gamepads._activeGamepads[0];
if(gamepad == null) {
throw haxe_Exception.thrown("Unexpected null gamepad. id:0");
}
PlayerSettings.player1.controls.addDefaultGamepad(0);
}
if(numGamepads > 1) {
if(PlayerSettings.player2 == null) {
PlayerSettings.player2 = new PlayerSettings(1,KeyboardScheme.None);
++PlayerSettings.numPlayers;
}
var gamepad = flixel_FlxG.gamepads._activeGamepads[1];
if(gamepad == null) {
throw haxe_Exception.thrown("Unexpected null gamepad. id:0");
}
PlayerSettings.player2.controls.addDefaultGamepad(1);
}
};
PlayerSettings.reset = function() {
PlayerSettings.player1 = null;
PlayerSettings.player2 = null;
PlayerSettings.numPlayers = 0;
};
PlayerSettings.prototype = {
id: null
,controls: null
,setKeyboardScheme: function(scheme) {
this.controls.setKeyboardScheme(scheme);
}
,__class__: PlayerSettings
};
var Reflect = function() { };
$hxClasses["Reflect"] = Reflect;
Reflect.__name__ = "Reflect";
Reflect.field = function(o,field) {
try {
return o[field];
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
return null;
}
};
Reflect.getProperty = function(o,field) {
var tmp;
if(o == null) {
return null;
} else {
var tmp1;
if(o.__properties__) {
tmp = o.__properties__["get_" + field];
tmp1 = tmp;
} else {
tmp1 = false;
}
if(tmp1) {
return o[tmp]();
} else {
return o[field];
}
}
};
Reflect.setProperty = function(o,field,value) {
var tmp;
var tmp1;
if(o.__properties__) {
tmp = o.__properties__["set_" + field];
tmp1 = tmp;
} else {
tmp1 = false;
}
if(tmp1) {
o[tmp](value);
} else {
o[field] = value;
}
};
Reflect.fields = function(o) {
var a = [];
if(o != null) {
var hasOwnProperty = Object.prototype.hasOwnProperty;
for( var f in o ) {
if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
a.push(f);
}
}
}
return a;
};
Reflect.isFunction = function(f) {
if(typeof(f) == "function") {
return !(f.__name__ || f.__ename__);
} else {
return false;
}
};
Reflect.compare = function(a,b) {
if(a == b) {
return 0;
} else if(a > b) {
return 1;
} else {
return -1;
}
};
Reflect.compareMethods = function(f1,f2) {
if(f1 == f2) {
return true;
}
if(!Reflect.isFunction(f1) || !Reflect.isFunction(f2)) {
return false;
}
if(f1.scope == f2.scope && f1.method == f2.method) {
return f1.method != null;
} else {
return false;
}
};
Reflect.isObject = function(v) {
if(v == null) {
return false;
}
var t = typeof(v);
if(!(t == "string" || t == "object" && v.__enum__ == null)) {
if(t == "function") {
return (v.__name__ || v.__ename__) != null;
} else {
return false;
}
} else {
return true;
}
};
Reflect.isEnumValue = function(v) {
if(v != null) {
return v.__enum__ != null;
} else {
return false;
}
};
Reflect.deleteField = function(o,field) {
if(!Object.prototype.hasOwnProperty.call(o,field)) {
return false;
}
delete(o[field]);
return true;
};
Reflect.makeVarArgs = function(f) {
return function() {
var a = Array.prototype.slice;
var a1 = arguments;
var a2 = a.call(a1);
return f(a2);
};
};
var Section = function(lengthInSteps) {
if(lengthInSteps == null) {
lengthInSteps = 16;
}
this.mustHitSection = true;
this.typeOfSection = 0;
this.lengthInSteps = 16;
this.sectionNotes = [];
this.lengthInSteps = lengthInSteps;
};
$hxClasses["Section"] = Section;
Section.__name__ = "Section";
Section.prototype = {
sectionNotes: null
,lengthInSteps: null
,typeOfSection: null
,mustHitSection: null
,__class__: Section
};
var Song = function(song,notes,bpm) {
this.player2 = "dad";
this.player1 = "bf";
this.speed = 1;
this.needsVoices = true;
this.song = song;
this.notes = notes;
this.bpm = bpm;
};
$hxClasses["Song"] = Song;
Song.__name__ = "Song";
Song.loadFromJson = function(jsonInput,folder) {
var rawJson = StringTools.trim(lime_utils_Assets.getText("assets/data/" + folder.toLowerCase() + "/" + jsonInput.toLowerCase() + ".json"));
while(!StringTools.endsWith(rawJson,"}")) rawJson = HxOverrides.substr(rawJson,0,rawJson.length - 1);
return Song.parseJSONshit(rawJson);
};
Song.parseJSONshit = function(rawJson) {
var swagShit = JSON.parse(rawJson).song;
swagShit.validScore = true;
return swagShit;
};
Song.prototype = {
song: null
,notes: null
,bpm: null
,needsVoices: null
,speed: null
,player1: null
,player2: null
,__class__: Song
};
var Std = function() { };
$hxClasses["Std"] = Std;
Std.__name__ = "Std";
Std.string = function(s) {
return js_Boot.__string_rec(s,"");
};
Std.parseInt = function(x) {
if(x != null) {
var _g = 0;
var _g1 = x.length;
while(_g < _g1) {
var i = _g++;
var c = x.charCodeAt(i);
if(c <= 8 || c >= 14 && c != 32 && c != 45) {
var nc = x.charCodeAt(i + 1);
var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
if(isNaN(v)) {
return null;
} else {
return v;
}
}
}
}
return null;
};
var StoryMenuState = function(TransIn,TransOut) {
this.intendedScore = 0;
this.lerpScore = 0;
this.stopspamming = false;
this.selectedWeek = false;
this.movedBack = false;
this.curWeek = 0;
this.weekNames = ["","Daddy Dearest","Spooky Month","PICO","MOMMY MUST MURDER","RED SNOW","hating simulator ft. moawling"];
this.weekCharacters = [["dad","bf","gf"],["dad","bf","gf"],["spooky","bf","gf"],["pico","bf","gf"],["mom","bf","gf"],["parents-christmas","bf","gf"],["senpai","bf","gf"]];
this.curDifficulty = 1;
this.weekData = [["Tutorial"],["Bopeebo","Fresh","Dadbattle"],["Spookeez","South"],["Pico","Philly","Blammed"],["Satin-Panties","High","Milf"],["Cocoa","Eggnog","Winter-Horrorland"],["Senpai","Roses","Thorns"]];
MusicBeatState.call(this,TransIn,TransOut);
};
$hxClasses["StoryMenuState"] = StoryMenuState;
StoryMenuState.__name__ = "StoryMenuState";
StoryMenuState.__super__ = MusicBeatState;
StoryMenuState.prototype = $extend(MusicBeatState.prototype,{
scoreText: null
,weekData: null
,curDifficulty: null
,weekCharacters: null
,weekNames: null
,txtWeekTitle: null
,curWeek: null
,txtTracklist: null
,grpWeekText: null
,grpWeekCharacters: null
,grpLocks: null
,difficultySelectors: null
,sprDifficulty: null
,leftArrow: null
,rightArrow: null
,create: function() {
this.transIn = flixel_addons_transition_FlxTransitionableState.defaultTransIn;
this.transOut = flixel_addons_transition_FlxTransitionableState.defaultTransOut;
if(flixel_FlxG.sound.music != null) {
if(flixel_FlxG.sound.music._channel == null) {
flixel_FlxG.sound.playMusic("assets/music/freakyMenu" + TitleState.soundExt);
}
}
this.persistentUpdate = this.persistentDraw = true;
this.scoreText = new flixel_text_FlxText(10,10,0,"SCORE: 49324858",36);
this.scoreText.setFormat("VCR OSD Mono",32);
this.txtWeekTitle = new flixel_text_FlxText(flixel_FlxG.width * 0.7,10,0,"",32);
this.txtWeekTitle.setFormat("VCR OSD Mono",32,-1,"right");
this.txtWeekTitle.set_alpha(0.7);
var rankText = new flixel_text_FlxText(0,10);
rankText.set_text("RANK: GREAT");
rankText.setFormat("assets/fonts/vcr.ttf",32);
rankText.set_size(this.scoreText._defaultFormat.size | 0);
rankText.screenCenter(flixel_util_FlxAxes.X);
var ui_tex = flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/campaign_menu_UI_assets.png","assets/images/campaign_menu_UI_assets.xml");
var yellowBG = new flixel_FlxSprite(0,56).makeGraphic(flixel_FlxG.width,400,-405679);
this.grpWeekText = new flixel_group_FlxTypedGroup();
this.add(this.grpWeekText);
var blackBarThingie = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width,56,-16777216);
this.add(blackBarThingie);
this.grpWeekCharacters = new flixel_group_FlxTypedGroup();
this.grpLocks = new flixel_group_FlxTypedGroup();
this.add(this.grpLocks);
haxe_Log.trace("Line 70",{ fileName : "source/StoryMenuState.hx", lineNumber : 111, className : "StoryMenuState", methodName : "create"});
var _g = 0;
var _g1 = this.weekData.length;
while(_g < _g1) {
var i = _g++;
var weekThing = new MenuItem(0,yellowBG.y + yellowBG.get_height() + 10,i);
var _g2 = weekThing;
_g2.set_y(_g2.y + (weekThing.get_height() + 20) * i);
weekThing.targetY = i;
this.grpWeekText.add(weekThing);
weekThing.screenCenter(flixel_util_FlxAxes.X);
weekThing.set_antialiasing(true);
if(!StoryMenuState.weekUnlocked[i]) {
var lock = new flixel_FlxSprite(weekThing.get_width() + 10 + weekThing.x);
lock.set_frames(ui_tex);
lock.animation.addByPrefix("lock","lock");
lock.animation.play("lock");
lock.ID = i;
lock.set_antialiasing(true);
this.grpLocks.add(lock);
}
}
haxe_Log.trace("Line 96",{ fileName : "source/StoryMenuState.hx", lineNumber : 137, className : "StoryMenuState", methodName : "create"});
var _g = 0;
while(_g < 3) {
var char = _g++;
var weekCharacterThing = new MenuCharacter(flixel_FlxG.width * 0.25 * (1 + char) - 150,this.weekCharacters[this.curWeek][char]);
var _g1 = weekCharacterThing;
_g1.set_y(_g1.y + 70);
weekCharacterThing.set_antialiasing(true);
switch(weekCharacterThing.character) {
case "bf":
weekCharacterThing.setGraphicSize(weekCharacterThing.get_width() * 0.9 | 0);
weekCharacterThing.updateHitbox();
var _g2 = weekCharacterThing;
_g2.set_x(_g2.x - 80);
break;
case "dad":
weekCharacterThing.setGraphicSize(weekCharacterThing.get_width() * 0.5 | 0);
weekCharacterThing.updateHitbox();
break;
case "gf":
weekCharacterThing.setGraphicSize(weekCharacterThing.get_width() * 0.5 | 0);
weekCharacterThing.updateHitbox();
break;
case "parents-christmas":
weekCharacterThing.setGraphicSize(weekCharacterThing.get_width() * 0.9 | 0);
weekCharacterThing.updateHitbox();
break;
case "pico":
weekCharacterThing.set_flipX(true);
break;
}
this.grpWeekCharacters.add(weekCharacterThing);
}
this.difficultySelectors = new flixel_group_FlxTypedGroup();
this.add(this.difficultySelectors);
haxe_Log.trace("Line 124",{ fileName : "source/StoryMenuState.hx", lineNumber : 170, className : "StoryMenuState", methodName : "create"});
this.leftArrow = new flixel_FlxSprite(this.grpWeekText.members[0].x + this.grpWeekText.members[0].get_width() + 10,this.grpWeekText.members[0].y + 10);
this.leftArrow.set_frames(ui_tex);
this.leftArrow.animation.addByPrefix("idle","arrow left");
this.leftArrow.animation.addByPrefix("press","arrow push left");
this.leftArrow.animation.play("idle");
this.difficultySelectors.add(this.leftArrow);
this.sprDifficulty = new flixel_FlxSprite(this.leftArrow.x + 130,this.leftArrow.y);
this.sprDifficulty.set_frames(ui_tex);
this.sprDifficulty.animation.addByPrefix("easy","EASY");
this.sprDifficulty.animation.addByPrefix("normal","NORMAL");
this.sprDifficulty.animation.addByPrefix("hard","HARD");
this.sprDifficulty.animation.play("easy");
this.changeDifficulty();
this.difficultySelectors.add(this.sprDifficulty);
this.rightArrow = new flixel_FlxSprite(this.sprDifficulty.x + this.sprDifficulty.get_width() + 50,this.leftArrow.y);
this.rightArrow.set_frames(ui_tex);
this.rightArrow.animation.addByPrefix("idle","arrow right");
this.rightArrow.animation.addByPrefix("press","arrow push right",24,false);
this.rightArrow.animation.play("idle");
this.difficultySelectors.add(this.rightArrow);
haxe_Log.trace("Line 150",{ fileName : "source/StoryMenuState.hx", lineNumber : 196, className : "StoryMenuState", methodName : "create"});
this.add(yellowBG);
this.add(this.grpWeekCharacters);
this.txtTracklist = new flixel_text_FlxText(flixel_FlxG.width * 0.05,yellowBG.x + yellowBG.get_height() + 100,0,"Tracks",32);
this.txtTracklist.set_alignment("center");
this.txtTracklist.set_font(rankText._font);
this.txtTracklist.set_color(-1747081);
this.add(this.txtTracklist);
this.add(this.scoreText);
this.add(this.txtWeekTitle);
this.updateText();
haxe_Log.trace("Line 165",{ fileName : "source/StoryMenuState.hx", lineNumber : 212, className : "StoryMenuState", methodName : "create"});
MusicBeatState.prototype.create.call(this);
}
,update: function(elapsed) {
var _gthis = this;
var a = this.lerpScore;
this.lerpScore = Math.floor(a + 0.5 * (this.intendedScore - a));
this.scoreText.set_text("WEEK SCORE:" + this.lerpScore);
this.txtWeekTitle.set_text(this.weekNames[this.curWeek].toUpperCase());
this.txtWeekTitle.set_x(flixel_FlxG.width - (this.txtWeekTitle.get_width() + 10));
this.difficultySelectors.set_visible(StoryMenuState.weekUnlocked[this.curWeek]);
this.grpLocks.forEach(function(lock) {
lock.set_y(_gthis.grpWeekText.members[lock.ID].y);
});
if(!this.movedBack) {
if(!this.selectedWeek) {
if(PlayerSettings.player1.controls._upP.check()) {
this.changeWeek(-1);
}
if(PlayerSettings.player1.controls._downP.check()) {
this.changeWeek(1);
}
if(PlayerSettings.player1.controls._right.check()) {
this.rightArrow.animation.play("press");
} else {
this.rightArrow.animation.play("idle");
}
if(PlayerSettings.player1.controls._left.check()) {
this.leftArrow.animation.play("press");
} else {
this.leftArrow.animation.play("idle");
}
if(PlayerSettings.player1.controls._rightP.check()) {
this.changeDifficulty(1);
}
if(PlayerSettings.player1.controls._leftP.check()) {
this.changeDifficulty(-1);
}
}
if(PlayerSettings.player1.controls._accept.check()) {
this.selectWeek();
}
}
if(PlayerSettings.player1.controls._back.check() && !this.movedBack && !this.selectedWeek) {
flixel_FlxG.sound.play("assets/sounds/cancelMenu" + TitleState.soundExt);
this.movedBack = true;
var nextState = new MainMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
}
MusicBeatState.prototype.update.call(this,elapsed);
}
,movedBack: null
,selectedWeek: null
,stopspamming: null
,selectWeek: function() {
if(StoryMenuState.weekUnlocked[this.curWeek]) {
if(this.stopspamming == false) {
flixel_FlxG.sound.play("assets/sounds/confirmMenu" + TitleState.soundExt);
var _this = this.grpWeekText.members[this.curWeek].week.animation;
if(_this._curAnim != null) {
_this._curAnim.paused = false;
}
this.grpWeekCharacters.members[1].animation.play("bfConfirm");
this.stopspamming = true;
}
PlayState.storyPlaylist = this.weekData[this.curWeek];
PlayState.isStoryMode = true;
this.selectedWeek = true;
var diffic = "";
switch(this.curDifficulty) {
case 0:
diffic = "-easy";
break;
case 2:
diffic = "-hard";
break;
}
PlayState.storyDifficulty = this.curDifficulty;
PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase() + diffic,PlayState.storyPlaylist[0].toLowerCase());
PlayState.storyWeek = this.curWeek;
PlayState.campaignScore = 0;
new flixel_util_FlxTimer().start(1,function(tmr) {
if(flixel_FlxG.sound.music != null) {
var _this = flixel_FlxG.sound.music;
_this.cleanup(_this.autoDestroy,true);
}
var nextState = new PlayState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
});
}
}
,changeDifficulty: function(change) {
if(change == null) {
change = 0;
}
this.curDifficulty += change;
if(this.curDifficulty < 0) {
this.curDifficulty = 2;
}
if(this.curDifficulty > 2) {
this.curDifficulty = 0;
}
this.sprDifficulty.offset.set_x(0);
switch(this.curDifficulty) {
case 0:
this.sprDifficulty.animation.play("easy");
this.sprDifficulty.offset.set_x(20);
break;
case 1:
this.sprDifficulty.animation.play("normal");
this.sprDifficulty.offset.set_x(70);
break;
case 2:
this.sprDifficulty.animation.play("hard");
this.sprDifficulty.offset.set_x(20);
break;
}
this.sprDifficulty.set_alpha(0);
this.sprDifficulty.set_y(this.leftArrow.y - 15);
this.intendedScore = Highscore.getWeekScore(this.curWeek,this.curDifficulty);
this.intendedScore = Highscore.getWeekScore(this.curWeek,this.curDifficulty);
flixel_tweens_FlxTween.tween(this.sprDifficulty,{ y : this.leftArrow.y + 15, alpha : 1},0.07);
}
,lerpScore: null
,intendedScore: null
,changeWeek: function(change) {
if(change == null) {
change = 0;
}
this.curWeek += change;
if(this.curWeek >= this.weekData.length) {
this.curWeek = 0;
}
if(this.curWeek < 0) {
this.curWeek = this.weekData.length - 1;
}
var bullShit = 0;
var _g = 0;
var _g1 = this.grpWeekText.members;
while(_g < _g1.length) {
var item = _g1[_g];
++_g;
item.targetY = bullShit - this.curWeek;
if(item.targetY == 0 && StoryMenuState.weekUnlocked[this.curWeek]) {
item.set_alpha(1);
} else {
item.set_alpha(0.6);
}
++bullShit;
}
flixel_FlxG.sound.play("assets/sounds/scrollMenu" + TitleState.soundExt);
this.updateText();
}
,updateText: function() {
this.grpWeekCharacters.members[0].animation.play(this.weekCharacters[this.curWeek][0]);
this.grpWeekCharacters.members[1].animation.play(this.weekCharacters[this.curWeek][1]);
this.grpWeekCharacters.members[2].animation.play(this.weekCharacters[this.curWeek][2]);
this.txtTracklist.set_text("Tracks\n");
switch(this.grpWeekCharacters.members[0].animation._curAnim.name) {
case "dad":
this.grpWeekCharacters.members[0].offset.set(120,200);
this.grpWeekCharacters.members[0].setGraphicSize(this.grpWeekCharacters.members[0].get_width() | 0);
break;
case "mom":
this.grpWeekCharacters.members[0].offset.set(100,200);
this.grpWeekCharacters.members[0].setGraphicSize(this.grpWeekCharacters.members[0].get_width() | 0);
break;
case "parents-christmas":
this.grpWeekCharacters.members[0].offset.set(200,200);
this.grpWeekCharacters.members[0].setGraphicSize(this.grpWeekCharacters.members[0].get_width() * 0.99 | 0);
break;
case "senpai":
this.grpWeekCharacters.members[0].offset.set(130,0);
this.grpWeekCharacters.members[0].setGraphicSize(this.grpWeekCharacters.members[0].get_width() * 1.4 | 0);
break;
default:
this.grpWeekCharacters.members[0].offset.set(100,100);
this.grpWeekCharacters.members[0].setGraphicSize(this.grpWeekCharacters.members[0].get_width() | 0);
}
var stringThing = this.weekData[this.curWeek];
var _g = 0;
while(_g < stringThing.length) {
var i = stringThing[_g];
++_g;
var _g1 = this.txtTracklist;
_g1.set_text(_g1.text + ("\n" + i));
}
this.txtTracklist.set_text(this.txtTracklist.text.toUpperCase());
this.txtTracklist.screenCenter(flixel_util_FlxAxes.X);
var _g = this.txtTracklist;
_g.set_x(_g.x - flixel_FlxG.width * 0.35);
this.intendedScore = Highscore.getWeekScore(this.curWeek,this.curDifficulty);
}
,__class__: StoryMenuState
});
var _$String_String_$Impl_$ = function() { };
$hxClasses["_String.String_Impl_"] = _$String_String_$Impl_$;
_$String_String_$Impl_$.__name__ = "_String.String_Impl_";
_$String_String_$Impl_$.fromCharCode = function(code) {
return String.fromCodePoint(code);
};
var StringBuf = function() {
this.b = "";
};
$hxClasses["StringBuf"] = StringBuf;
StringBuf.__name__ = "StringBuf";
StringBuf.prototype = {
b: null
,__class__: StringBuf
};
var StringTools = function() { };
$hxClasses["StringTools"] = StringTools;
StringTools.__name__ = "StringTools";
StringTools.htmlEscape = function(s,quotes) {
var buf_b = "";
var _g_offset = 0;
var _g_s = s;
while(_g_offset < _g_s.length) {
var s = _g_s;
var index = _g_offset++;
var c = s.charCodeAt(index);
if(c >= 55296 && c <= 56319) {
c = c - 55232 << 10 | s.charCodeAt(index + 1) & 1023;
}
var c1 = c;
if(c1 >= 65536) {
++_g_offset;
}
var code = c1;
switch(code) {
case 34:
if(quotes) {
buf_b += "&quot;";
} else {
buf_b += String.fromCodePoint(code);
}
break;
case 38:
buf_b += "&amp;";
break;
case 39:
if(quotes) {
buf_b += "&#039;";
} else {
buf_b += String.fromCodePoint(code);
}
break;
case 60:
buf_b += "&lt;";
break;
case 62:
buf_b += "&gt;";
break;
default:
buf_b += String.fromCodePoint(code);
}
}
return buf_b;
};
StringTools.startsWith = function(s,start) {
if(s.length >= start.length) {
return s.lastIndexOf(start,0) == 0;
} else {
return false;
}
};
StringTools.endsWith = function(s,end) {
var elen = end.length;
var slen = s.length;
if(slen >= elen) {
return s.indexOf(end,slen - elen) == slen - elen;
} else {
return false;
}
};
StringTools.isSpace = function(s,pos) {
var c = HxOverrides.cca(s,pos);
if(!(c > 8 && c < 14)) {
return c == 32;
} else {
return true;
}
};
StringTools.ltrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,r)) ++r;
if(r > 0) {
return HxOverrides.substr(s,r,l - r);
} else {
return s;
}
};
StringTools.rtrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
if(r > 0) {
return HxOverrides.substr(s,0,l - r);
} else {
return s;
}
};
StringTools.trim = function(s) {
return StringTools.ltrim(StringTools.rtrim(s));
};
StringTools.replace = function(s,sub,by) {
return s.split(sub).join(by);
};
StringTools.hex = function(n,digits) {
var s = "";
var hexChars = "0123456789ABCDEF";
while(true) {
s = hexChars.charAt(n & 15) + s;
n >>>= 4;
if(!(n > 0)) {
break;
}
}
if(digits != null) {
while(s.length < digits) s = "0" + s;
}
return s;
};
var TitleState = function(TransIn,TransOut) {
this.skippedIntro = false;
this.transitioning = false;
this.danceLeft = false;
this.curWacky = [];
MusicBeatState.call(this,TransIn,TransOut);
};
$hxClasses["TitleState"] = TitleState;
TitleState.__name__ = "TitleState";
TitleState.__super__ = MusicBeatState;
TitleState.prototype = $extend(MusicBeatState.prototype,{
blackScreen: null
,credGroup: null
,credTextShit: null
,textGroup: null
,ngSpr: null
,curWacky: null
,wackyImage: null
,create: function() {
var _gthis = this;
polymod_Polymod.init({ modRoot : "mods", dirs : ["introMod"]});
PlayerSettings.init();
this.curWacky = flixel_FlxG.random.getObject_Array_String(this.getIntroTextShit());
MusicBeatState.prototype.create.call(this);
NGio.noLogin(APIStuff.API);
flixel_FlxG.save.bind("funkin","ninjamuffin99");
Highscore.load();
if(flixel_FlxG.save.data.weekUnlocked != null) {
if(StoryMenuState.weekUnlocked.length < 4) {
StoryMenuState.weekUnlocked.splice(0,0,true);
}
if(!StoryMenuState.weekUnlocked[0]) {
StoryMenuState.weekUnlocked[0] = true;
}
}
new flixel_util_FlxTimer().start(1,function(tmr) {
_gthis.startIntro();
});
}
,logoBl: null
,gfDance: null
,danceLeft: null
,titleText: null
,startIntro: function() {
if(!TitleState.initialized) {
var diamond = flixel_graphics_FlxGraphic.fromClass(flixel_addons_transition_GraphicTransTileDiamond);
diamond.persist = true;
diamond.set_destroyOnNoUse(false);
flixel_addons_transition_FlxTransitionableState.defaultTransIn = new flixel_addons_transition_TransitionData("fade",-16777216,1,new flixel_math_FlxPoint(0,-1),{ asset : diamond, width : 32, height : 32},new flixel_math_FlxRect(-200,-200,flixel_FlxG.width * 1.4,flixel_FlxG.height * 1.4));
flixel_addons_transition_FlxTransitionableState.defaultTransOut = new flixel_addons_transition_TransitionData("fade",-16777216,0.7,new flixel_math_FlxPoint(0,1),{ asset : diamond, width : 32, height : 32},new flixel_math_FlxRect(-200,-200,flixel_FlxG.width * 1.4,flixel_FlxG.height * 1.4));
this.transIn = flixel_addons_transition_FlxTransitionableState.defaultTransIn;
this.transOut = flixel_addons_transition_FlxTransitionableState.defaultTransOut;
flixel_FlxG.sound.playMusic("assets/music/freakyMenu" + TitleState.soundExt,0);
var _this = flixel_FlxG.sound.music;
var Duration = 4;
var From = 0;
var To = 0.7;
if(To == null) {
To = 1;
}
if(From == null) {
From = 0;
}
if(Duration == null) {
Duration = 1;
}
if(_this._channel == null) {
_this.play();
}
if(_this.fadeTween != null) {
_this.fadeTween.cancel();
}
_this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween));
}
Conductor.changeBPM(102);
this.persistentUpdate = true;
var bg = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width,flixel_FlxG.height,-16777216);
this.add(bg);
this.logoBl = new flixel_FlxSprite(-150,-100);
this.logoBl.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/logoBumpin.png","assets/images/logoBumpin.xml"));
this.logoBl.set_antialiasing(true);
this.logoBl.animation.addByPrefix("bump","logo bumpin",24);
this.logoBl.animation.play("bump");
this.logoBl.updateHitbox();
this.gfDance = new flixel_FlxSprite(flixel_FlxG.width * 0.4,flixel_FlxG.height * 0.07);
this.gfDance.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/gfDanceTitle.png","assets/images/gfDanceTitle.xml"));
this.gfDance.animation.addByIndices("danceLeft","gfDance",[30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"",24,false);
this.gfDance.animation.addByIndices("danceRight","gfDance",[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"",24,false);
this.gfDance.set_antialiasing(true);
this.add(this.gfDance);
this.add(this.logoBl);
this.titleText = new flixel_FlxSprite(100,flixel_FlxG.height * 0.8);
this.titleText.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromSparrow("assets/images/titleEnter.png","assets/images/titleEnter.xml"));
this.titleText.animation.addByPrefix("idle","Press Enter to Begin",24);
this.titleText.animation.addByPrefix("press","ENTER PRESSED",24);
this.titleText.set_antialiasing(true);
this.titleText.animation.play("idle");
this.titleText.updateHitbox();
this.add(this.titleText);
var logo = new flixel_FlxSprite().loadGraphic("assets/images/logo.png");
logo.screenCenter();
logo.set_antialiasing(true);
this.credGroup = new flixel_group_FlxTypedGroup();
this.add(this.credGroup);
this.textGroup = new flixel_group_FlxTypedGroup();
this.blackScreen = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width,flixel_FlxG.height,-16777216);
this.credGroup.add(this.blackScreen);
this.credTextShit = new Alphabet(0,0,"ninjamuffin99\nPhantomArcade\nkawaisprite\nevilsk8er",true);
this.credTextShit.screenCenter();
this.credTextShit.set_visible(false);
this.ngSpr = new flixel_FlxSprite(0,flixel_FlxG.height * 0.52).loadGraphic("assets/images/newgrounds_logo.png");
this.add(this.ngSpr);
this.ngSpr.set_visible(false);
this.ngSpr.setGraphicSize(this.ngSpr.get_width() * 0.8 | 0);
this.ngSpr.updateHitbox();
this.ngSpr.screenCenter(flixel_util_FlxAxes.X);
this.ngSpr.set_antialiasing(true);
flixel_tweens_FlxTween.tween(this.credTextShit,{ y : this.credTextShit.y + 20},2.9,{ ease : flixel_tweens_FlxEase.quadInOut, type : 4});
flixel_FlxG.mouse.set_visible(false);
if(TitleState.initialized) {
this.skipIntro();
} else {
TitleState.initialized = true;
}
}
,getIntroTextShit: function() {
var fullText = openfl_utils_Assets.getText("assets/data/introText.txt");
var firstArray = fullText.split("\n");
var swagGoodArray = [];
var _g = 0;
while(_g < firstArray.length) {
var i = firstArray[_g];
++_g;
swagGoodArray.push(i.split("--"));
}
return swagGoodArray;
}
,transitioning: null
,update: function(elapsed) {
if(flixel_FlxG.sound.music != null) {
Conductor.songPosition = flixel_FlxG.sound.music._time;
}
var _this = flixel_FlxG.keys.justPressed;
if(_this.keyManager.checkStatus(70,_this.status)) {
flixel_FlxG.set_fullscreen(!flixel_FlxG.get_fullscreen());
}
var _this = flixel_FlxG.keys.justPressed;
var pressedEnter = _this.keyManager.checkStatus(13,_this.status);
var gamepad = flixel_FlxG.gamepads.lastActive;
if(gamepad != null) {
var _this = gamepad.justPressed;
var id = 7;
var _this1 = _this.gamepad;
var Status = _this.status;
var tmp;
switch(id) {
case -2:
tmp = _this1.anyButton(Status);
break;
case -1:
tmp = !_this1.anyButton(Status);
break;
default:
var RawID = _this1.mapping.getRawID(id);
var button = _this1.buttons[RawID];
tmp = button != null && button.hasState(Status);
}
if(tmp) {
pressedEnter = true;
}
}
if(pressedEnter && !this.transitioning && this.skippedIntro) {
if(NGio.isLoggedIn) {
var medal = io_newgrounds_NG.core.medals.h[60960];
if(!medal._data.unlocked) {
medal.sendUnlock();
}
}
if(new Date().getDay() == 5) {
if(NGio.isLoggedIn) {
var medal = io_newgrounds_NG.core.medals.h[61034];
if(!medal._data.unlocked) {
medal.sendUnlock();
}
}
}
this.titleText.animation.play("press");
flixel_FlxG.camera.flash(-1,1);
flixel_FlxG.sound.play("assets/sounds/confirmMenu" + TitleState.soundExt,0.7);
this.transitioning = true;
new flixel_util_FlxTimer().start(2,function(tmr) {
var nextState = new MainMenuState();
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
});
}
if(pressedEnter && !this.skippedIntro) {
this.skipIntro();
}
MusicBeatState.prototype.update.call(this,elapsed);
}
,createCoolText: function(textArray) {
var _g = 0;
var _g1 = textArray.length;
while(_g < _g1) {
var i = _g++;
var money = new Alphabet(0,0,textArray[i],true,false);
money.screenCenter(flixel_util_FlxAxes.X);
var _g2 = money;
_g2.set_y(_g2.y + (i * 60 + 200));
this.credGroup.add(money);
this.textGroup.add(money);
}
}
,addMoreText: function(text) {
var coolText = new Alphabet(0,0,text,true,false);
coolText.screenCenter(flixel_util_FlxAxes.X);
var _g = coolText;
_g.set_y(_g.y + (this.textGroup.length * 60 + 200));
this.credGroup.add(coolText);
this.textGroup.add(coolText);
}
,deleteCoolText: function() {
while(this.textGroup.members.length > 0) {
this.credGroup.remove(this.textGroup.members[0],true);
this.textGroup.remove(this.textGroup.members[0],true);
}
}
,beatHit: function() {
MusicBeatState.prototype.beatHit.call(this);
this.logoBl.animation.play("bump");
this.danceLeft = !this.danceLeft;
if(this.danceLeft) {
this.gfDance.animation.play("danceRight");
} else {
this.gfDance.animation.play("danceLeft");
}
switch(this.curBeat) {
case 1:
this.createCoolText(["ninjamuffin99","phantomArcade","kawaisprite","evilsk8er"]);
break;
case 3:
this.addMoreText("present");
break;
case 4:
this.deleteCoolText();
break;
case 5:
this.createCoolText(["In association","with"]);
break;
case 7:
this.addMoreText("newgrounds");
this.ngSpr.set_visible(true);
break;
case 8:
this.deleteCoolText();
this.ngSpr.set_visible(false);
break;
case 9:
this.createCoolText([this.curWacky[0]]);
break;
case 11:
this.addMoreText(this.curWacky[1]);
break;
case 12:
this.deleteCoolText();
break;
case 13:
this.addMoreText("Friday");
break;
case 14:
this.addMoreText("Night");
break;
case 15:
this.addMoreText("Funkin");
break;
case 16:
this.skipIntro();
break;
}
}
,skippedIntro: null
,skipIntro: function() {
if(!this.skippedIntro) {
this.remove(this.ngSpr);
flixel_FlxG.camera.flash(-1,4);
this.remove(this.credGroup);
this.skippedIntro = true;
}
}
,__class__: TitleState
});
var ValueType = $hxEnums["ValueType"] = { __ename__ : "ValueType", __constructs__ : ["TNull","TInt","TFloat","TBool","TObject","TFunction","TClass","TEnum","TUnknown"]
,TNull: {_hx_index:0,__enum__:"ValueType",toString:$estr}
,TInt: {_hx_index:1,__enum__:"ValueType",toString:$estr}
,TFloat: {_hx_index:2,__enum__:"ValueType",toString:$estr}
,TBool: {_hx_index:3,__enum__:"ValueType",toString:$estr}
,TObject: {_hx_index:4,__enum__:"ValueType",toString:$estr}
,TFunction: {_hx_index:5,__enum__:"ValueType",toString:$estr}
,TClass: ($_=function(c) { return {_hx_index:6,c:c,__enum__:"ValueType",toString:$estr}; },$_.__params__ = ["c"],$_)
,TEnum: ($_=function(e) { return {_hx_index:7,e:e,__enum__:"ValueType",toString:$estr}; },$_.__params__ = ["e"],$_)
,TUnknown: {_hx_index:8,__enum__:"ValueType",toString:$estr}
};
var Type = function() { };
$hxClasses["Type"] = Type;
Type.__name__ = "Type";
Type.getEnum = function(o) {
if(o == null) {
return null;
}
return $hxEnums[o.__enum__];
};
Type.resolveEnum = function(name) {
return $hxEnums[name];
};
Type.createInstance = function(cl,args) {
var ctor = Function.prototype.bind.apply(cl,[null].concat(args));
return new (ctor);
};
Type.createEnum = function(e,constr,params) {
var f = Reflect.field(e,constr);
if(f == null) {
throw haxe_Exception.thrown("No such constructor " + constr);
}
if(Reflect.isFunction(f)) {
if(params == null) {
throw haxe_Exception.thrown("Constructor " + constr + " need parameters");
}
return f.apply(e,params);
}
if(params != null && params.length != 0) {
throw haxe_Exception.thrown("Constructor " + constr + " does not need parameters");
}
return f;
};
Type.getInstanceFields = function(c) {
var a = [];
for(var i in c.prototype) a.push(i);
HxOverrides.remove(a,"__class__");
HxOverrides.remove(a,"__properties__");
return a;
};
Type.getClassFields = function(c) {
var a = Reflect.fields(c);
HxOverrides.remove(a,"__name__");
HxOverrides.remove(a,"__interfaces__");
HxOverrides.remove(a,"__properties__");
HxOverrides.remove(a,"__super__");
HxOverrides.remove(a,"__meta__");
HxOverrides.remove(a,"prototype");
return a;
};
Type.typeof = function(v) {
switch(typeof(v)) {
case "boolean":
return ValueType.TBool;
case "function":
if(v.__name__ || v.__ename__) {
return ValueType.TObject;
}
return ValueType.TFunction;
case "number":
if(Math.ceil(v) == v % 2147483648.0) {
return ValueType.TInt;
}
return ValueType.TFloat;
case "object":
if(v == null) {
return ValueType.TNull;
}
var e = v.__enum__;
if(e != null) {
return ValueType.TEnum($hxEnums[e]);
}
var c = js_Boot.getClass(v);
if(c != null) {
return ValueType.TClass(c);
}
return ValueType.TObject;
case "string":
return ValueType.TClass(String);
case "undefined":
return ValueType.TNull;
default:
return ValueType.TUnknown;
}
};
Type.enumEq = function(a,b) {
if(a == b) {
return true;
}
try {
var e = a.__enum__;
if(e == null || e != b.__enum__) {
return false;
}
if(a._hx_index != b._hx_index) {
return false;
}
var enm = $hxEnums[e];
var ctorName = enm.__constructs__[a._hx_index];
var params = enm[ctorName].__params__;
var _g = 0;
while(_g < params.length) {
var f = params[_g];
++_g;
if(!Type.enumEq(a[f],b[f])) {
return false;
}
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
return false;
}
return true;
};
Type.enumParameters = function(e) {
var enm = $hxEnums[e.__enum__];
var ctorName = enm.__constructs__[e._hx_index];
var params = enm[ctorName].__params__;
if(params != null) {
var _g = [];
var _g1 = 0;
while(_g1 < params.length) {
var p = params[_g1];
++_g1;
_g.push(e[p]);
}
return _g;
} else {
return [];
}
};
var UInt = {};
UInt.gt = function(a,b) {
var aNeg = a < 0;
var bNeg = b < 0;
if(aNeg != bNeg) {
return aNeg;
} else {
return a > b;
}
};
UInt.toFloat = function(this1) {
var int = this1;
if(int < 0) {
return 4294967296.0 + int;
} else {
return int + 0.0;
}
};
var UnicodeString = {};
UnicodeString.__properties__ = {get_length:"get_length"};
UnicodeString.charCodeAt = function(this1,index) {
if(index < 0) {
return null;
}
var unicodeOffset = 0;
var nativeOffset = 0;
while(nativeOffset < this1.length) {
var index1 = nativeOffset++;
var c = this1.charCodeAt(index1);
if(c >= 55296 && c <= 56319) {
c = c - 55232 << 10 | this1.charCodeAt(index1 + 1) & 1023;
}
var c1 = c;
if(unicodeOffset == index) {
return c1;
}
if(c1 >= 65536) {
++nativeOffset;
}
++unicodeOffset;
}
return null;
};
UnicodeString.substr = function(this1,pos,len) {
if(pos < 0) {
pos = UnicodeString.get_length(this1) + pos;
if(pos < 0) {
pos = 0;
}
}
if(len != null) {
if(len < 0) {
len = UnicodeString.get_length(this1) + len;
}
if(len <= 0) {
return "";
}
}
var unicodeOffset = 0;
var nativeOffset = 0;
var fromOffset = -1;
var subLength = 0;
while(nativeOffset < this1.length) {
var c = this1.charCodeAt(nativeOffset);
if(c >= 55296 && c <= 56319) {
c = c - 55232 << 10 | this1.charCodeAt(nativeOffset + 1) & 1023;
}
var c1 = c;
if(unicodeOffset >= pos) {
if(fromOffset < 0) {
if(len == null) {
return HxOverrides.substr(this1,nativeOffset,null);
}
fromOffset = nativeOffset;
}
++subLength;
if(subLength >= len) {
var lastOffset = c1 < 65536 ? nativeOffset : nativeOffset + 1;
return HxOverrides.substr(this1,fromOffset,lastOffset - fromOffset + 1);
}
}
nativeOffset += c1 >= 65536 ? 2 : 1;
++unicodeOffset;
}
if(fromOffset < 0) {
return "";
} else {
return HxOverrides.substr(this1,fromOffset,null);
}
};
UnicodeString.get_length = function(this1) {
var l = 0;
var _g_offset = 0;
var _g_s = this1;
while(_g_offset < _g_s.length) {
var s = _g_s;
var index = _g_offset++;
var c = s.charCodeAt(index);
if(c >= 55296 && c <= 56319) {
c = c - 55232 << 10 | s.charCodeAt(index + 1) & 1023;
}
var c1 = c;
if(c1 >= 65536) {
++_g_offset;
}
var c2 = c1;
++l;
}
return l;
};
var WiggleEffectType = $hxEnums["WiggleEffectType"] = { __ename__ : "WiggleEffectType", __constructs__ : ["DREAMY","WAVY","HEAT_WAVE_HORIZONTAL","HEAT_WAVE_VERTICAL","FLAG"]
,DREAMY: {_hx_index:0,__enum__:"WiggleEffectType",toString:$estr}
,WAVY: {_hx_index:1,__enum__:"WiggleEffectType",toString:$estr}
,HEAT_WAVE_HORIZONTAL: {_hx_index:2,__enum__:"WiggleEffectType",toString:$estr}
,HEAT_WAVE_VERTICAL: {_hx_index:3,__enum__:"WiggleEffectType",toString:$estr}
,FLAG: {_hx_index:4,__enum__:"WiggleEffectType",toString:$estr}
};
var WiggleEffect = function() {
this.waveAmplitude = 0;
this.waveFrequency = 0;
this.waveSpeed = 0;
this.effectType = WiggleEffectType.DREAMY;
this.shader = new WiggleShader();
this.shader.uTime.value = [0];
};
$hxClasses["WiggleEffect"] = WiggleEffect;
WiggleEffect.__name__ = "WiggleEffect";
WiggleEffect.prototype = {
shader: null
,effectType: null
,waveSpeed: null
,waveFrequency: null
,waveAmplitude: null
,update: function(elapsed) {
this.shader.uTime.value[0] += elapsed;
}
,set_effectType: function(v) {
this.effectType = v;
var tmp = WiggleEffectType.__constructs__.slice();
this.shader.effectType.value = [tmp.indexOf(Std.string(v))];
return v;
}
,set_waveSpeed: function(v) {
this.waveSpeed = v;
this.shader.uSpeed.value = [this.waveSpeed];
return v;
}
,set_waveFrequency: function(v) {
this.waveFrequency = v;
this.shader.uFrequency.value = [this.waveFrequency];
return v;
}
,set_waveAmplitude: function(v) {
this.waveAmplitude = v;
this.shader.uWaveAmplitude.value = [this.waveAmplitude];
return v;
}
,__class__: WiggleEffect
,__properties__: {set_waveAmplitude:"set_waveAmplitude",set_waveFrequency:"set_waveFrequency",set_waveSpeed:"set_waveSpeed",set_effectType:"set_effectType"}
};
var openfl_display_Shader = function(code) {
this.byteCode = code;
this.precisionHint = 1;
this.__glSourceDirty = true;
this.__numPasses = 1;
this.__data = openfl_display_ShaderData._new(code);
};
$hxClasses["openfl.display.Shader"] = openfl_display_Shader;
openfl_display_Shader.__name__ = "openfl.display.Shader";
openfl_display_Shader.prototype = {
byteCode: null
,glProgram: null
,precisionHint: null
,program: null
,__alpha: null
,__bitmap: null
,__colorMultiplier: null
,__colorOffset: null
,__context: null
,__data: null
,__glFragmentSource: null
,__glSourceDirty: null
,__glVertexSource: null
,__hasColorTransform: null
,__inputBitmapData: null
,__isGenerated: null
,__matrix: null
,__numPasses: null
,__paramBool: null
,__paramFloat: null
,__paramInt: null
,__position: null
,__textureCoord: null
,__texture: null
,__textureSize: null
,__clearUseArray: function() {
var _g = 0;
var _g1 = this.__paramBool;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__useArray = false;
}
var _g = 0;
var _g1 = this.__paramFloat;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__useArray = false;
}
var _g = 0;
var _g1 = this.__paramInt;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__useArray = false;
}
}
,__createGLShader: function(source,type) {
var gl = this.__context.gl;
var shader = gl.createShader(type);
gl.shaderSource(shader,source);
gl.compileShader(shader);
if(gl.getShaderParameter(shader,gl.COMPILE_STATUS) == 0) {
var message = type == gl.VERTEX_SHADER ? "Error compiling vertex shader" : "Error compiling fragment shader";
message += "\n" + gl.getShaderInfoLog(shader);
message += "\n" + source;
lime_utils_Log.error(message,{ fileName : "openfl/display/Shader.hx", lineNumber : 329, className : "openfl.display.Shader", methodName : "__createGLShader"});
}
return shader;
}
,__createGLProgram: function(vertexSource,fragmentSource) {
var gl = this.__context.gl;
var vertexShader = this.__createGLShader(vertexSource,gl.VERTEX_SHADER);
var fragmentShader = this.__createGLShader(fragmentSource,gl.FRAGMENT_SHADER);
var program = gl.createProgram();
var _g = 0;
var _g1 = this.__paramFloat;
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(param.name.indexOf("Position") > -1 && StringTools.startsWith(param.name,"openfl_")) {
gl.bindAttribLocation(program,0,param.name);
break;
}
}
gl.attachShader(program,vertexShader);
gl.attachShader(program,fragmentShader);
gl.linkProgram(program);
if(gl.getProgramParameter(program,gl.LINK_STATUS) == 0) {
var message = "Unable to initialize the shader program";
message += "\n" + gl.getProgramInfoLog(program);
lime_utils_Log.error(message,{ fileName : "openfl/display/Shader.hx", lineNumber : 362, className : "openfl.display.Shader", methodName : "__createGLProgram"});
}
return program;
}
,__disable: function() {
if(this.program != null) {
this.__disableGL();
}
}
,__disableGL: function() {
var gl = this.__context.gl;
var textureCount = 0;
var _g = 0;
var _g1 = this.__inputBitmapData;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.__disableGL(this.__context,textureCount);
++textureCount;
}
var _g = 0;
var _g1 = this.__paramBool;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__disableGL(this.__context);
}
var _g = 0;
var _g1 = this.__paramFloat;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__disableGL(this.__context);
}
var _g = 0;
var _g1 = this.__paramInt;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__disableGL(this.__context);
}
this.__context.__bindGLArrayBuffer(null);
if(this.__context.__context.type == "opengl") {
gl.disable(gl.TEXTURE_2D);
}
}
,__enable: function() {
this.__init();
if(this.program != null) {
this.__enableGL();
}
}
,__enableGL: function() {
var textureCount = 0;
var gl = this.__context.gl;
var _g = 0;
var _g1 = this.__inputBitmapData;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
gl.uniform1i(input.index,textureCount);
++textureCount;
}
if(this.__context.__context.type == "opengl" && textureCount > 0) {
gl.enable(gl.TEXTURE_2D);
}
}
,__init: function() {
if(this.__data == null) {
this.__data = openfl_display_ShaderData._new(null);
}
if(this.__glFragmentSource != null && this.__glVertexSource != null && (this.program == null || this.__glSourceDirty)) {
this.__initGL();
}
}
,__initGL: function() {
if(this.__glSourceDirty || this.__paramBool == null) {
this.__glSourceDirty = false;
this.program = null;
this.__inputBitmapData = [];
this.__paramBool = [];
this.__paramFloat = [];
this.__paramInt = [];
this.__processGLData(this.get_glVertexSource(),"attribute");
this.__processGLData(this.get_glVertexSource(),"uniform");
this.__processGLData(this.get_glFragmentSource(),"uniform");
}
if(this.__context != null && this.program == null) {
var gl = this.__context.gl;
var prefix = "#ifdef GL_ES\n\t\t\t\t" + (this.precisionHint == 1 ? "#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\t\tprecision highp float;\n\t\t\t\t#else\n\t\t\t\tprecision mediump float;\n\t\t\t\t#endif" : "precision lowp float;") + "\n\t\t\t\t#endif\n\t\t\t\t";
var vertex = prefix + this.get_glVertexSource();
var fragment = prefix + this.get_glFragmentSource();
var id = vertex + fragment;
if(Object.prototype.hasOwnProperty.call(this.__context.__programs.h,id)) {
this.program = this.__context.__programs.h[id];
} else {
this.program = this.__context.createProgram(1);
this.program.__glProgram = this.__createGLProgram(vertex,fragment);
this.__context.__programs.h[id] = this.program;
}
if(this.program != null) {
this.glProgram = this.program.__glProgram;
var _g = 0;
var _g1 = this.__inputBitmapData;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(input.__isUniform) {
input.index = gl.getUniformLocation(this.glProgram,input.name);
} else {
input.index = gl.getAttribLocation(this.glProgram,input.name);
}
}
var _g = 0;
var _g1 = this.__paramBool;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
if(parameter.__isUniform) {
parameter.index = gl.getUniformLocation(this.glProgram,parameter.name);
} else {
parameter.index = gl.getAttribLocation(this.glProgram,parameter.name);
}
}
var _g = 0;
var _g1 = this.__paramFloat;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
if(parameter.__isUniform) {
parameter.index = gl.getUniformLocation(this.glProgram,parameter.name);
} else {
parameter.index = gl.getAttribLocation(this.glProgram,parameter.name);
}
}
var _g = 0;
var _g1 = this.__paramInt;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
if(parameter.__isUniform) {
parameter.index = gl.getUniformLocation(this.glProgram,parameter.name);
} else {
parameter.index = gl.getAttribLocation(this.glProgram,parameter.name);
}
}
}
}
}
,__processGLData: function(source,storageType) {
var lastMatch = 0;
var position;
var regex;
var name;
var type;
if(storageType == "uniform") {
regex = new EReg("uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)","");
} else {
regex = new EReg("attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)","");
}
while(regex.matchSub(source,lastMatch)) {
type = regex.matched(1);
name = regex.matched(2);
if(StringTools.startsWith(name,"gl_")) {
continue;
}
var isUniform = storageType == "uniform";
if(StringTools.startsWith(type,"sampler")) {
var input = new openfl_display_ShaderInput();
input.name = name;
input.__isUniform = isUniform;
this.__inputBitmapData.push(input);
switch(name) {
case "bitmap":
this.__bitmap = input;
break;
case "openfl_Texture":
this.__texture = input;
break;
default:
}
this.__data[name] = input;
if(this.__isGenerated) {
this[name] = input;
}
} else if(!Object.prototype.hasOwnProperty.call(this.__data,name) || Reflect.field(this.__data,name) == null) {
var parameterType;
switch(type) {
case "bool":
parameterType = 0;
break;
case "bvec2":
parameterType = 1;
break;
case "bvec3":
parameterType = 2;
break;
case "bvec4":
parameterType = 3;
break;
case "dvec2":case "vec2":
parameterType = 5;
break;
case "dvec3":case "vec3":
parameterType = 6;
break;
case "double":case "float":
parameterType = 4;
break;
case "ivec3":case "uvec3":
parameterType = 10;
break;
case "ivec4":case "uvec4":
parameterType = 11;
break;
case "mat2":case "mat2x2":
parameterType = 12;
break;
case "mat2x3":
parameterType = 13;
break;
case "mat2x4":
parameterType = 14;
break;
case "mat3x2":
parameterType = 15;
break;
case "mat3":case "mat3x3":
parameterType = 16;
break;
case "mat3x4":
parameterType = 17;
break;
case "mat4":case "mat4x4":
parameterType = 20;
break;
case "mat4x2":
parameterType = 18;
break;
case "mat4x3":
parameterType = 19;
break;
case "int":case "uint":
parameterType = 8;
break;
case "ivec2":case "uvec2":
parameterType = 9;
break;
case "dvec4":case "vec4":
parameterType = 7;
break;
default:
parameterType = null;
}
var length;
switch(parameterType) {
case 1:case 5:case 9:
length = 2;
break;
case 3:case 7:case 11:case 12:
length = 4;
break;
case 2:case 6:case 10:
length = 3;
break;
case 16:
length = 9;
break;
case 20:
length = 16;
break;
default:
length = 1;
}
var arrayLength;
switch(parameterType) {
case 12:
arrayLength = 2;
break;
case 16:
arrayLength = 3;
break;
case 20:
arrayLength = 4;
break;
default:
arrayLength = 1;
}
switch(parameterType) {
case 0:case 1:case 2:case 3:
var parameter = new openfl_display_ShaderParameter();
parameter.set_name(name);
parameter.type = parameterType;
parameter.__arrayLength = arrayLength;
parameter.__isBool = true;
parameter.__isUniform = isUniform;
parameter.__length = length;
this.__paramBool.push(parameter);
if(name == "openfl_HasColorTransform") {
this.__hasColorTransform = parameter;
}
this.__data[name] = parameter;
if(this.__isGenerated) {
this[name] = parameter;
}
break;
case 8:case 9:case 10:case 11:
var parameter1 = new openfl_display_ShaderParameter();
parameter1.set_name(name);
parameter1.type = parameterType;
parameter1.__arrayLength = arrayLength;
parameter1.__isInt = true;
parameter1.__isUniform = isUniform;
parameter1.__length = length;
this.__paramInt.push(parameter1);
this.__data[name] = parameter1;
if(this.__isGenerated) {
this[name] = parameter1;
}
break;
default:
var parameter2 = new openfl_display_ShaderParameter();
parameter2.set_name(name);
parameter2.type = parameterType;
parameter2.__arrayLength = arrayLength;
if(arrayLength > 0) {
var elements = arrayLength * arrayLength;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Float32Array(elements);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
parameter2.__uniformMatrix = this1;
}
parameter2.__isFloat = true;
parameter2.__isUniform = isUniform;
parameter2.__length = length;
this.__paramFloat.push(parameter2);
if(StringTools.startsWith(name,"openfl_")) {
switch(name) {
case "openfl_Alpha":
this.__alpha = parameter2;
break;
case "openfl_ColorMultiplier":
this.__colorMultiplier = parameter2;
break;
case "openfl_ColorOffset":
this.__colorOffset = parameter2;
break;
case "openfl_Matrix":
this.__matrix = parameter2;
break;
case "openfl_Position":
this.__position = parameter2;
break;
case "openfl_TextureCoord":
this.__textureCoord = parameter2;
break;
case "openfl_TextureSize":
this.__textureSize = parameter2;
break;
default:
}
}
this.__data[name] = parameter2;
if(this.__isGenerated) {
this[name] = parameter2;
}
}
}
position = regex.matchedPos();
lastMatch = position.pos + position.len;
}
}
,__update: function() {
if(this.program != null) {
this.__updateGL();
}
}
,__updateFromBuffer: function(shaderBuffer,bufferOffset) {
if(this.program != null) {
this.__updateGLFromBuffer(shaderBuffer,bufferOffset);
}
}
,__updateGL: function() {
var textureCount = 0;
var _g = 0;
var _g1 = this.__inputBitmapData;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.__updateGL(this.__context,textureCount);
++textureCount;
}
var _g = 0;
var _g1 = this.__paramBool;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__updateGL(this.__context);
}
var _g = 0;
var _g1 = this.__paramFloat;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__updateGL(this.__context);
}
var _g = 0;
var _g1 = this.__paramInt;
while(_g < _g1.length) {
var parameter = _g1[_g];
++_g;
parameter.__updateGL(this.__context);
}
}
,__updateGLFromBuffer: function(shaderBuffer,bufferOffset) {
var textureCount = 0;
var input;
var inputData;
var inputFilter;
var inputMipFilter;
var inputWrap;
var _g = 0;
var _g1 = shaderBuffer.inputCount;
while(_g < _g1) {
var i = _g++;
input = shaderBuffer.inputRefs[i];
inputData = shaderBuffer.inputs[i];
inputFilter = shaderBuffer.inputFilter[i];
inputMipFilter = shaderBuffer.inputMipFilter[i];
inputWrap = shaderBuffer.inputWrap[i];
if(inputData != null) {
input.__updateGL(this.__context,textureCount,inputData,inputFilter,inputMipFilter,inputWrap);
++textureCount;
}
}
var gl = this.__context.gl;
if(shaderBuffer.paramDataLength > 0) {
if(shaderBuffer.paramDataBuffer == null) {
shaderBuffer.paramDataBuffer = gl.createBuffer();
}
this.__context.__bindGLArrayBuffer(shaderBuffer.paramDataBuffer);
lime_graphics_WebGLRenderContext.bufferData(gl,gl.ARRAY_BUFFER,shaderBuffer.paramData,gl.DYNAMIC_DRAW);
} else {
this.__context.__bindGLArrayBuffer(null);
}
var boolIndex = 0;
var floatIndex = 0;
var intIndex = 0;
var boolCount = shaderBuffer.paramBoolCount;
var floatCount = shaderBuffer.paramFloatCount;
var paramData = shaderBuffer.paramData;
var boolRef;
var floatRef;
var intRef;
var hasOverride;
var overrideBoolValue = null;
var overrideFloatValue = null;
var overrideIntValue = null;
var _g = 0;
var _g1 = shaderBuffer.paramCount;
while(_g < _g1) {
var i = _g++;
hasOverride = false;
if(i < boolCount) {
boolRef = shaderBuffer.paramRefs_Bool[boolIndex];
var _g2 = 0;
var _g3 = shaderBuffer.overrideBoolCount;
while(_g2 < _g3) {
var j = _g2++;
if(boolRef.name == shaderBuffer.overrideBoolNames[j]) {
overrideBoolValue = shaderBuffer.overrideBoolValues[j];
hasOverride = true;
break;
}
}
if(hasOverride) {
boolRef.__updateGL(this.__context,overrideBoolValue);
} else {
boolRef.__updateGLFromBuffer(this.__context,paramData,shaderBuffer.paramPositions[i],shaderBuffer.paramLengths[i],bufferOffset);
}
++boolIndex;
} else if(i < boolCount + floatCount) {
floatRef = shaderBuffer.paramRefs_Float[floatIndex];
var _g4 = 0;
var _g5 = shaderBuffer.overrideFloatCount;
while(_g4 < _g5) {
var j1 = _g4++;
if(floatRef.name == shaderBuffer.overrideFloatNames[j1]) {
overrideFloatValue = shaderBuffer.overrideFloatValues[j1];
hasOverride = true;
break;
}
}
if(hasOverride) {
floatRef.__updateGL(this.__context,overrideFloatValue);
} else {
floatRef.__updateGLFromBuffer(this.__context,paramData,shaderBuffer.paramPositions[i],shaderBuffer.paramLengths[i],bufferOffset);
}
++floatIndex;
} else {
intRef = shaderBuffer.paramRefs_Int[intIndex];
var _g6 = 0;
var _g7 = shaderBuffer.overrideIntCount;
while(_g6 < _g7) {
var j2 = _g6++;
if(intRef.name == shaderBuffer.overrideIntNames[j2]) {
overrideIntValue = shaderBuffer.overrideIntValues[j2];
hasOverride = true;
break;
}
}
if(hasOverride) {
intRef.__updateGL(this.__context,overrideIntValue);
} else {
intRef.__updateGLFromBuffer(this.__context,paramData,shaderBuffer.paramPositions[i],shaderBuffer.paramLengths[i],bufferOffset);
}
++intIndex;
}
}
}
,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;
}
,__class__: openfl_display_Shader
,__properties__: {set_glVertexSource:"set_glVertexSource",get_glVertexSource:"get_glVertexSource",set_glFragmentSource:"set_glFragmentSource",get_glFragmentSource:"get_glFragmentSource",set_data:"set_data",get_data:"get_data"}
};
var openfl_display_GraphicsShader = function(code) {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}";
}
openfl_display_Shader.call(this,code);
this.__isGenerated = true;
this.__initGL();
};
$hxClasses["openfl.display.GraphicsShader"] = openfl_display_GraphicsShader;
openfl_display_GraphicsShader.__name__ = "openfl.display.GraphicsShader";
openfl_display_GraphicsShader.__super__ = openfl_display_Shader;
openfl_display_GraphicsShader.prototype = $extend(openfl_display_Shader.prototype,{
openfl_Alpha: null
,openfl_ColorMultiplier: null
,openfl_ColorOffset: null
,openfl_Position: null
,openfl_TextureCoord: null
,openfl_Matrix: null
,openfl_HasColorTransform: null
,openfl_TextureSize: null
,bitmap: null
,__class__: openfl_display_GraphicsShader
});
var flixel_graphics_tile_FlxGraphicsShader = function() {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}";
}
openfl_display_GraphicsShader.call(this);
this.__isGenerated = true;
this.__initGL();
};
$hxClasses["flixel.graphics.tile.FlxGraphicsShader"] = flixel_graphics_tile_FlxGraphicsShader;
flixel_graphics_tile_FlxGraphicsShader.__name__ = "flixel.graphics.tile.FlxGraphicsShader";
flixel_graphics_tile_FlxGraphicsShader.__super__ = openfl_display_GraphicsShader;
flixel_graphics_tile_FlxGraphicsShader.prototype = $extend(openfl_display_GraphicsShader.prototype,{
alpha: null
,colorMultiplier: null
,colorOffset: null
,hasColorTransform: null
,hasTransform: null
,__class__: flixel_graphics_tile_FlxGraphicsShader
});
var WiggleShader = function() {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t//uniform float tx, ty; // x,y waves phase\n\t\tuniform float uTime;\n\t\t\n\t\tconst int EFFECT_TYPE_DREAMY = 0;\n\t\tconst int EFFECT_TYPE_WAVY = 1;\n\t\tconst int EFFECT_TYPE_HEAT_WAVE_HORIZONTAL = 2;\n\t\tconst int EFFECT_TYPE_HEAT_WAVE_VERTICAL = 3;\n\t\tconst int EFFECT_TYPE_FLAG = 4;\n\t\t\n\t\tuniform int effectType;\n\t\t\n\t\t/**\n\t\t * How fast the waves move over time\n\t\t */\n\t\tuniform float uSpeed;\n\t\t\n\t\t/**\n\t\t * Number of waves over time\n\t\t */\n\t\tuniform float uFrequency;\n\t\t\n\t\t/**\n\t\t * How much the pixels are going to stretch over the waves\n\t\t */\n\t\tuniform float uWaveAmplitude;\n\n\t\tvec2 sineWave(vec2 pt)\n\t\t{\n\t\t\tfloat x = 0.0;\n\t\t\tfloat y = 0.0;\n\t\t\t\n\t\t\tif (effectType == EFFECT_TYPE_DREAMY) \n\t\t\t{\n\t\t\t\tfloat offsetX = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;\n pt.x += offsetX; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving\n\t\t\t}\n\t\t\telse if (effectType == EFFECT_TYPE_WAVY) \n\t\t\t{\n\t\t\t\tfloat offsetY = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;\n\t\t\t\tpt.y += offsetY; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving\n\t\t\t}\n\t\t\telse if (effectType == EFFECT_TYPE_HEAT_WAVE_HORIZONTAL)\n\t\t\t{\n\t\t\t\tx = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;\n\t\t\t}\n\t\t\telse if (effectType == EFFECT_TYPE_HEAT_WAVE_VERTICAL)\n\t\t\t{\n\t\t\t\ty = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;\n\t\t\t}\n\t\t\telse if (effectType == EFFECT_TYPE_FLAG)\n\t\t\t{\n\t\t\t\ty = sin(pt.y * uFrequency + 10.0 * pt.x + uTime * uSpeed) * uWaveAmplitude;\n\t\t\t\tx = sin(pt.x * uFrequency + 5.0 * pt.y + uTime * uSpeed) * uWaveAmplitude;\n\t\t\t}\n\t\t\t\n\t\t\treturn vec2(pt.x + x, pt.y + y);\n\t\t}\n\n\t\tvoid main()\n\t\t{\n\t\t\tvec2 uv = sineWave(openfl_TextureCoordv);\n\t\t\tgl_FragColor = texture2D(bitmap, uv);\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}";
}
flixel_graphics_tile_FlxGraphicsShader.call(this);
this.__isGenerated = true;
this.__initGL();
};
$hxClasses["WiggleShader"] = WiggleShader;
WiggleShader.__name__ = "WiggleShader";
WiggleShader.__super__ = flixel_graphics_tile_FlxGraphicsShader;
WiggleShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{
tx: null
,uTime: null
,effectType: null
,uSpeed: null
,uFrequency: null
,uWaveAmplitude: null
,__class__: WiggleShader
});
var XmlType = {};
XmlType.toString = function(this1) {
switch(this1) {
case 0:
return "Element";
case 1:
return "PCData";
case 2:
return "CData";
case 3:
return "Comment";
case 4:
return "DocType";
case 5:
return "ProcessingInstruction";
case 6:
return "Document";
}
};
var Xml = function(nodeType) {
this.nodeType = nodeType;
this.children = [];
this.attributeMap = new haxe_ds_StringMap();
};
$hxClasses["Xml"] = Xml;
Xml.__name__ = "Xml";
Xml.parse = function(str) {
return haxe_xml_Parser.parse(str);
};
Xml.createElement = function(name) {
var xml = new Xml(Xml.Element);
if(xml.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType)));
}
xml.nodeName = name;
return xml;
};
Xml.createPCData = function(data) {
var xml = new Xml(Xml.PCData);
if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType)));
}
xml.nodeValue = data;
return xml;
};
Xml.createCData = function(data) {
var xml = new Xml(Xml.CData);
if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType)));
}
xml.nodeValue = data;
return xml;
};
Xml.createComment = function(data) {
var xml = new Xml(Xml.Comment);
if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType)));
}
xml.nodeValue = data;
return xml;
};
Xml.createDocType = function(data) {
var xml = new Xml(Xml.DocType);
if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType)));
}
xml.nodeValue = data;
return xml;
};
Xml.createProcessingInstruction = function(data) {
var xml = new Xml(Xml.ProcessingInstruction);
if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType)));
}
xml.nodeValue = data;
return xml;
};
Xml.createDocument = function() {
return new Xml(Xml.Document);
};
Xml.prototype = {
nodeType: null
,nodeName: null
,nodeValue: null
,parent: null
,children: null
,attributeMap: null
,get: function(att) {
if(this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
return this.attributeMap.h[att];
}
,set: function(att,value) {
if(this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
this.attributeMap.h[att] = value;
}
,exists: function(att) {
if(this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
return Object.prototype.hasOwnProperty.call(this.attributeMap.h,att);
}
,attributes: function() {
if(this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
return haxe_ds_StringMap.keysIterator(this.attributeMap.h);
}
,elements: function() {
if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
var _g = [];
var _g1 = 0;
var _g2 = this.children;
while(_g1 < _g2.length) {
var child = _g2[_g1];
++_g1;
if(child.nodeType == Xml.Element) {
_g.push(child);
}
}
var ret = _g;
return new haxe_iterators_ArrayIterator(ret);
}
,elementsNamed: function(name) {
if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
var _g = [];
var _g1 = 0;
var _g2 = this.children;
while(_g1 < _g2.length) {
var child = _g2[_g1];
++_g1;
var tmp;
if(child.nodeType == Xml.Element) {
if(child.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (child.nodeType == null ? "null" : XmlType.toString(child.nodeType)));
}
tmp = child.nodeName == name;
} else {
tmp = false;
}
if(tmp) {
_g.push(child);
}
}
var ret = _g;
return new haxe_iterators_ArrayIterator(ret);
}
,firstElement: function() {
if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
var _g = 0;
var _g1 = this.children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
if(child.nodeType == Xml.Element) {
return child;
}
}
return null;
}
,addChild: function(x) {
if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
if(x.parent != null) {
x.parent.removeChild(x);
}
this.children.push(x);
x.parent = this;
}
,removeChild: function(x) {
if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
if(HxOverrides.remove(this.children,x)) {
x.parent = null;
return true;
}
return false;
}
,insertChild: function(x,pos) {
if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType)));
}
if(x.parent != null) {
HxOverrides.remove(x.parent.children,x);
}
this.children.splice(pos,0,x);
x.parent = this;
}
,toString: function() {
return haxe_xml_Printer.print(this);
}
,__class__: Xml
};
var flixel_IFlxBasic = function() { };
$hxClasses["flixel.IFlxBasic"] = flixel_IFlxBasic;
flixel_IFlxBasic.__name__ = "flixel.IFlxBasic";
flixel_IFlxBasic.__isInterface__ = true;
flixel_IFlxBasic.prototype = {
set_active: null
,set_visible: null
,set_alive: null
,set_exists: null
,ID: null
,active: null
,visible: null
,alive: null
,exists: null
,draw: null
,update: null
,destroy: null
,kill: null
,revive: null
,toString: null
,__class__: flixel_IFlxBasic
,__properties__: {set_exists:"set_exists",set_alive:"set_alive",set_visible:"set_visible",set_active:"set_active"}
};
var flixel_util_FlxPool_$flixel_$math_$FlxPoint = function(classObj) {
this._count = 0;
this._pool = [];
this._class = classObj;
};
$hxClasses["flixel.util.FlxPool_flixel_math_FlxPoint"] = flixel_util_FlxPool_$flixel_$math_$FlxPoint;
flixel_util_FlxPool_$flixel_$math_$FlxPoint.__name__ = "flixel.util.FlxPool_flixel_math_FlxPoint";
flixel_util_FlxPool_$flixel_$math_$FlxPoint.__interfaces__ = [flixel_util_IFlxPool];
flixel_util_FlxPool_$flixel_$math_$FlxPoint.prototype = {
_pool: null
,_class: null
,_count: null
,get: function() {
if(this._count == 0) {
return Type.createInstance(this._class,[]);
}
return this._pool[--this._count];
}
,put: function(obj) {
if(obj != null) {
var i = this._pool.indexOf(obj);
if(i == -1 || i >= this._count) {
obj.destroy();
this._pool[this._count++] = obj;
}
}
}
,putUnsafe: function(obj) {
if(obj != null) {
obj.destroy();
this._pool[this._count++] = obj;
}
}
,preAllocate: function(numObjects) {
while(numObjects-- > 0) this._pool[this._count++] = Type.createInstance(this._class,[]);
}
,clear: function() {
this._count = 0;
var oldPool = this._pool;
this._pool = [];
return oldPool;
}
,get_length: function() {
return this._count;
}
,__class__: flixel_util_FlxPool_$flixel_$math_$FlxPoint
,__properties__: {get_length:"get_length"}
};
var flixel_math_FlxPoint = function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._inPool = false;
this._weak = false;
this.y = 0;
this.x = 0;
this.set(X,Y);
};
$hxClasses["flixel.math.FlxPoint"] = flixel_math_FlxPoint;
flixel_math_FlxPoint.__name__ = "flixel.math.FlxPoint";
flixel_math_FlxPoint.__interfaces__ = [flixel_util_IFlxPooled];
flixel_math_FlxPoint.__properties__ = {get_pool:"get_pool"};
flixel_math_FlxPoint.get = function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
return point;
};
flixel_math_FlxPoint.weak = function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
return point1;
};
flixel_math_FlxPoint.get_pool = function() {
return flixel_math_FlxPoint._pool;
};
flixel_math_FlxPoint.prototype = {
x: null
,y: null
,_weak: null
,_inPool: null
,put: function() {
if(!this._inPool) {
this._inPool = true;
this._weak = false;
flixel_math_FlxPoint._pool.putUnsafe(this);
}
}
,putWeak: function() {
if(this._weak) {
this.put();
}
}
,set: function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.set_x(X);
this.set_y(Y);
return this;
}
,add: function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = this;
_g.set_x(_g.x + X);
var _g = this;
_g.set_y(_g.y + Y);
return this;
}
,addPoint: function(point) {
var _g = this;
_g.set_x(_g.x + point.x);
var _g = this;
_g.set_y(_g.y + point.y);
if(point._weak) {
point.put();
}
return this;
}
,addPointWeak: function(point) {
var _g = this;
_g.set_x(_g.x + point.x);
var _g = this;
_g.set_y(_g.y + point.y);
return this;
}
,subtract: function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = this;
_g.set_x(_g.x - X);
var _g = this;
_g.set_y(_g.y - Y);
return this;
}
,subtractPoint: function(point) {
var _g = this;
_g.set_x(_g.x - point.x);
var _g = this;
_g.set_y(_g.y - point.y);
if(point._weak) {
point.put();
}
return this;
}
,subtractPointWeak: function(point) {
var _g = this;
_g.set_x(_g.x - point.x);
var _g = this;
_g.set_y(_g.y - point.y);
return this;
}
,scale: function(k) {
var _g = this;
_g.set_x(_g.x * k);
var _g = this;
_g.set_y(_g.y * k);
return this;
}
,copyFrom: function(point) {
this.set_x(point.x);
this.set_y(point.y);
if(point._weak) {
point.put();
}
return this;
}
,copyTo: function(point) {
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
point.set_x(this.x);
point.set_y(this.y);
return point;
}
,copyFromFlash: function(FlashPoint) {
this.set_x(FlashPoint.x);
this.set_y(FlashPoint.y);
return this;
}
,copyToFlash: function(FlashPoint) {
if(FlashPoint == null) {
FlashPoint = new openfl_geom_Point();
}
FlashPoint.x = this.x;
FlashPoint.y = this.y;
return FlashPoint;
}
,addToFlash: function(FlashPoint) {
FlashPoint.x += this.x;
FlashPoint.y += this.y;
return FlashPoint;
}
,subtractFromFlash: function(FlashPoint) {
FlashPoint.x -= this.x;
FlashPoint.y -= this.y;
return FlashPoint;
}
,inCoords: function(RectX,RectY,RectWidth,RectHeight) {
return flixel_math_FlxMath.pointInCoordinates(this.x,this.y,RectX,RectY,RectWidth,RectHeight);
}
,inRect: function(Rect) {
return flixel_math_FlxMath.pointInFlxRect(this.x,this.y,Rect);
}
,distanceTo: function(point) {
var dx = this.x - point.x;
var dy = this.y - point.y;
if(point._weak) {
point.put();
}
return Math.sqrt(dx * dx + dy * dy);
}
,floor: function() {
this.set_x(Math.floor(this.x));
this.set_y(Math.floor(this.y));
return this;
}
,ceil: function() {
this.set_x(Math.ceil(this.x));
this.set_y(Math.ceil(this.y));
return this;
}
,round: function() {
this.set_x(Math.round(this.x));
this.set_y(Math.round(this.y));
return this;
}
,rotate: function(Pivot,Angle) {
var radians = Angle * (Math.PI / 180);
var n = radians;
n *= 0.3183098862;
if(n > 1) {
n -= Math.ceil(n) >> 1 << 1;
} else if(n < -1) {
n += Math.ceil(-n) >> 1 << 1;
}
var sin = n > 0 ? n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))) : n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6)));
var n = radians + 1.570796327;
n *= 0.3183098862;
if(n > 1) {
n -= Math.ceil(n) >> 1 << 1;
} else if(n < -1) {
n += Math.ceil(-n) >> 1 << 1;
}
var cos = n > 0 ? n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))) : n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6)));
var dx = this.x - Pivot.x;
var dy = this.y - Pivot.y;
this.set_x(cos * dx - sin * dy + Pivot.x);
this.set_y(sin * dx + cos * dy + Pivot.y);
if(Pivot._weak) {
Pivot.put();
}
return this;
}
,angleBetween: function(point) {
var x = point.x - this.x;
var y = point.y - this.y;
var angle = 0;
if(x != 0 || y != 0) {
var c1 = Math.PI * 0.25;
var c2 = 3 * c1;
var ay = y < 0 ? -y : y;
if(x >= 0) {
angle = c1 - c1 * ((x - ay) / (x + ay));
} else {
angle = c2 - c1 * ((x + ay) / (ay - x));
}
angle = (y < 0 ? -angle : angle) * (180 / Math.PI);
if(angle > 90) {
angle -= 270;
} else {
angle += 90;
}
}
if(point._weak) {
point.put();
}
return angle;
}
,toVector: function() {
var x = this.x;
var y = this.y;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
return point;
}
,equals: function(point) {
var result = Math.abs(this.x - point.x) <= 0.0000001 && Math.abs(this.y - point.y) <= 0.0000001;
if(point._weak) {
point.put();
}
return result;
}
,destroy: function() {
}
,transform: function(matrix) {
var x1 = this.x * matrix.a + this.y * matrix.c + matrix.tx;
var y1 = this.x * matrix.b + this.y * matrix.d + matrix.ty;
return this.set(x1,y1);
}
,toString: function() {
var value = this.x;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "x";
_this.value = value;
var value = this.y;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "y";
_this1.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1]);
}
,set_x: function(Value) {
return this.x = Value;
}
,set_y: function(Value) {
return this.y = Value;
}
,__class__: flixel_math_FlxPoint
,__properties__: {set_y:"set_y",set_x:"set_x"}
};
var lime_math_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;
};
$hxClasses["lime.math.Matrix3"] = lime_math_Matrix3;
lime_math_Matrix3.__name__ = "lime.math.Matrix3";
lime_math_Matrix3.prototype = {
a: null
,b: null
,c: null
,d: null
,tx: null
,ty: null
,clone: function() {
return new lime_math_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 haxe_Exception.thrown("Column " + column + " out of bounds (2)");
} else if(column == 0) {
this.a = vector4.x;
this.b = vector4.y;
} else if(column == 1) {
this.c = vector4.x;
this.d = vector4.y;
} else {
this.tx = vector4.x;
this.ty = vector4.y;
}
}
,copyColumnTo: function(column,vector4) {
if(column > 2) {
throw haxe_Exception.thrown("Column " + column + " out of bounds (2)");
} else if(column == 0) {
vector4.x = this.a;
vector4.y = this.b;
vector4.z = 0;
} else if(column == 1) {
vector4.x = this.c;
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 haxe_Exception.thrown("Row " + row + " out of bounds (2)");
} else if(row == 0) {
this.a = vector4.x;
this.c = vector4.y;
this.tx = vector4.z;
} else if(row == 1) {
this.b = vector4.x;
this.d = vector4.y;
this.ty = vector4.z;
}
}
,copyRowTo: function(row,vector4) {
if(row > 2) {
throw haxe_Exception.thrown("Row " + row + " out of bounds (2)");
} else if(row == 0) {
vector4.x = this.a;
vector4.y = this.c;
vector4.z = this.tx;
} else if(row == 1) {
vector4.x = this.b;
vector4.y = this.d;
vector4.z = this.ty;
} else {
vector4.x = 0;
vector4.y = 0;
vector4.z = 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;
}
,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;
}
}
,deltaTransformVector: function(Vector2,result) {
if(result == null) {
result = new lime_math_Vector2();
}
result.x = Vector2.x * this.a + Vector2.y * this.c;
result.y = Vector2.x * this.b + Vector2.y * this.d;
return result;
}
,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, " + (this.tx | 0) + ", " + (this.ty | 0) + ", 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)";
}
}
,toString: function() {
return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")";
}
,transformRect: function(rect,result) {
if(result == null) {
result = new lime_math_Rectangle();
}
var tx0 = this.a * rect.x + this.c * rect.y;
var tx1 = tx0;
var ty0 = this.b * rect.x + this.d * rect.y;
var ty1 = ty0;
var tx = this.a * (rect.x + rect.width) + this.c * rect.y;
var ty = this.b * (rect.x + rect.width) + this.d * rect.y;
if(tx < tx0) {
tx0 = tx;
}
if(ty < ty0) {
ty0 = ty;
}
if(tx > tx1) {
tx1 = tx;
}
if(ty > ty1) {
ty1 = ty;
}
tx = this.a * (rect.x + rect.width) + this.c * (rect.y + rect.height);
ty = this.b * (rect.x + rect.width) + this.d * (rect.y + rect.height);
if(tx < tx0) {
tx0 = tx;
}
if(ty < ty0) {
ty0 = ty;
}
if(tx > tx1) {
tx1 = tx;
}
if(ty > ty1) {
ty1 = ty;
}
tx = this.a * rect.x + this.c * (rect.y + rect.height);
ty = this.b * rect.x + this.d * (rect.y + rect.height);
if(tx < tx0) {
tx0 = tx;
}
if(ty < ty0) {
ty0 = ty;
}
if(tx > tx1) {
tx1 = tx;
}
if(ty > ty1) {
ty1 = ty;
}
result.setTo(tx0 + tx,ty0 + ty,tx1 - tx0,ty1 - ty0);
return result;
}
,transformVector: function(pos,result) {
if(result == null) {
result = new lime_math_Vector2();
}
result.x = pos.x * this.a + pos.y * this.c + this.tx;
result.y = pos.x * this.b + pos.y * this.d + this.ty;
return result;
}
,translate: function(dx,dy) {
this.tx += dx;
this.ty += dy;
}
,__class__: lime_math_Matrix3
};
var openfl_geom_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;
};
$hxClasses["openfl.geom.Matrix"] = openfl_geom_Matrix;
openfl_geom_Matrix.__name__ = "openfl.geom.Matrix";
openfl_geom_Matrix.prototype = {
a: null
,b: null
,c: null
,d: null
,tx: null
,ty: null
,__array: null
,clone: function() {
return new openfl_geom_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 haxe_Exception.thrown("Column " + column + " out of bounds (2)");
} else if(column == 0) {
this.a = vector3D.x;
this.b = vector3D.y;
} else if(column == 1) {
this.c = vector3D.x;
this.d = vector3D.y;
} else {
this.tx = vector3D.x;
this.ty = vector3D.y;
}
}
,copyColumnTo: function(column,vector3D) {
if(column > 2) {
throw haxe_Exception.thrown("Column " + column + " out of bounds (2)");
} else if(column == 0) {
vector3D.x = this.a;
vector3D.y = this.b;
vector3D.z = 0;
} else if(column == 1) {
vector3D.x = this.c;
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 haxe_Exception.thrown("Row " + row + " out of bounds (2)");
} else if(row == 0) {
this.a = vector3D.x;
this.c = vector3D.y;
this.tx = vector3D.z;
} else if(row == 1) {
this.b = vector3D.x;
this.d = vector3D.y;
this.ty = vector3D.z;
}
}
,copyRowTo: function(row,vector3D) {
if(row > 2) {
throw haxe_Exception.thrown("Row " + row + " out of bounds (2)");
} else if(row == 0) {
vector3D.x = this.a;
vector3D.y = this.c;
vector3D.z = this.tx;
} else if(row == 1) {
vector3D.x = this.b;
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(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, " + (this.tx | 0) + ", " + (this.ty | 0) + ", 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(pos.x * this.a + pos.y * this.c + this.tx,pos.x * this.b + pos.y * this.d + this.ty);
}
,translate: function(dx,dy) {
this.tx += dx;
this.ty += dy;
}
,toArray: function(transpose) {
if(transpose == null) {
transpose = false;
}
if(this.__array == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = 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() {
openfl_geom_Matrix.__matrix3.setTo(this.a,this.b,this.c,this.d,this.tx,this.ty);
return openfl_geom_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 = px * this.a + py * this.c + this.tx;
point.y = px * this.b + py * this.d + this.ty;
}
,__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 = px * this.a + py * this.c + this.tx;
this.ty = px * this.b + py * this.d + this.ty;
}
,__class__: openfl_geom_Matrix
};
var openfl_geom_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;
};
$hxClasses["openfl.geom.ColorTransform"] = openfl_geom_ColorTransform;
openfl_geom_ColorTransform.__name__ = "openfl.geom.ColorTransform";
openfl_geom_ColorTransform.__limeColorMatrix = null;
openfl_geom_ColorTransform.prototype = {
alphaMultiplier: null
,alphaOffset: null
,blueMultiplier: null
,blueOffset: null
,greenMultiplier: null
,greenOffset: null
,redMultiplier: null
,redOffset: null
,concat: function(second) {
this.redOffset = second.redOffset * this.redMultiplier + this.redOffset;
this.greenOffset = second.greenOffset * this.greenMultiplier + this.greenOffset;
this.blueOffset = second.blueOffset * this.blueMultiplier + this.blueOffset;
this.alphaOffset = second.alphaOffset * this.alphaMultiplier + this.alphaOffset;
this.redMultiplier *= second.redMultiplier;
this.greenMultiplier *= second.greenMultiplier;
this.blueMultiplier *= second.blueMultiplier;
this.alphaMultiplier *= second.alphaMultiplier;
}
,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 openfl_geom_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;
}
,__invert: function() {
this.redMultiplier = this.redMultiplier != 0 ? 1 / this.redMultiplier : 1;
this.greenMultiplier = this.greenMultiplier != 0 ? 1 / this.greenMultiplier : 1;
this.blueMultiplier = this.blueMultiplier != 0 ? 1 / this.blueMultiplier : 1;
this.alphaMultiplier = this.alphaMultiplier != 0 ? 1 / this.alphaMultiplier : 1;
this.redOffset = -this.redOffset;
this.greenOffset = -this.greenOffset;
this.blueOffset = -this.blueOffset;
this.alphaOffset = -this.alphaOffset;
}
,__equals: function(ct,ignoreAlphaMultiplier) {
if(ct != null && this.redMultiplier == ct.redMultiplier && this.greenMultiplier == ct.greenMultiplier && this.blueMultiplier == ct.blueMultiplier && (ignoreAlphaMultiplier || 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(ignoreAlphaMultiplier) {
if(ignoreAlphaMultiplier) {
if(this.redMultiplier == 1 && this.greenMultiplier == 1 && this.blueMultiplier == 1 && this.redOffset == 0 && this.greenOffset == 0 && this.blueOffset == 0) {
return this.alphaOffset == 0;
} else {
return false;
}
} else 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;
}
}
,__setArrays: function(colorMultipliers,colorOffsets) {
colorMultipliers[0] = this.redMultiplier;
colorMultipliers[1] = this.greenMultiplier;
colorMultipliers[2] = this.blueMultiplier;
colorMultipliers[3] = this.alphaMultiplier;
colorOffsets[0] = this.redOffset;
colorOffsets[1] = this.greenOffset;
colorOffsets[2] = this.blueOffset;
colorOffsets[3] = this.alphaOffset;
}
,get_color: function() {
return (this.redOffset | 0) << 16 | (this.greenOffset | 0) << 8 | (this.blueOffset | 0);
}
,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(openfl_geom_ColorTransform.__limeColorMatrix == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Float32Array(20);
openfl_geom_ColorTransform.__limeColorMatrix = this1;
}
openfl_geom_ColorTransform.__limeColorMatrix[0] = this.redMultiplier;
openfl_geom_ColorTransform.__limeColorMatrix[4] = this.redOffset / 255;
openfl_geom_ColorTransform.__limeColorMatrix[6] = this.greenMultiplier;
openfl_geom_ColorTransform.__limeColorMatrix[9] = this.greenOffset / 255;
openfl_geom_ColorTransform.__limeColorMatrix[12] = this.blueMultiplier;
openfl_geom_ColorTransform.__limeColorMatrix[14] = this.blueOffset / 255;
openfl_geom_ColorTransform.__limeColorMatrix[18] = this.alphaMultiplier;
openfl_geom_ColorTransform.__limeColorMatrix[19] = this.alphaOffset / 255;
return openfl_geom_ColorTransform.__limeColorMatrix;
}
,__class__: openfl_geom_ColorTransform
,__properties__: {set_color:"set_color",get_color:"get_color"}
};
var flixel_FlxCamera = function(X,Y,Width,Height,Zoom) {
if(Zoom == null) {
Zoom = 0;
}
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._helperPoint = new openfl_geom_Point();
this._helperMatrix = new flixel_math_FlxMatrix();
var _this = flixel_math_FlxRect._pool.get();
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
_this._inPool = false;
this._bounds = _this;
this._scrollRect = new openfl_display_Sprite();
this.initialZoom = 1;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this._point = point;
this._fxShakeAxes = flixel_util_FlxAxes.XY;
this._fxShakeDuration = 0;
this._fxShakeIntensity = 0;
this._fxFadeAlpha = 0;
this._fxFadeCompleted = true;
this._fxFadeComplete = null;
this._fxFadeIn = false;
this._fxFadeDuration = 0;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this._scrollTarget = point;
this._fxFadeColor = 0;
this._fxFlashAlpha = 0;
this._fxFlashComplete = null;
this._fxFlashDuration = 0;
this._fxFlashColor = 0;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this._flashOffset = point;
this._flashPoint = new openfl_geom_Point();
this.filtersEnabled = true;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.followLead = point;
this.antialiasing = false;
this.color = -1;
this.angle = 0;
this.alpha = 1;
this._useBlitMatrix = false;
this._blitMatrix = new flixel_math_FlxMatrix();
this.viewHeight = 0;
this.viewWidth = 0;
this.viewOffsetHeight = 0;
this.viewOffsetWidth = 0;
this.viewOffsetY = 0;
this.viewOffsetX = 0;
this.height = 0;
this.width = 0;
this.flashSprite = new openfl_display_Sprite();
this.useBgAlphaBlending = false;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.scroll = point;
this.followLerp = 60 / flixel_FlxG.updateFramerate;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.targetOffset = point;
this.scaleY = 0;
this.scaleX = 0;
this.y = 0;
this.x = 0;
flixel_FlxBasic.call(this);
this.set_x(X);
this.set_y(Y);
this.set_width(Width <= 0 ? flixel_FlxG.width : Width);
this.set_height(Height <= 0 ? flixel_FlxG.height : Height);
this._flashRect = new openfl_geom_Rectangle(0,0,this.width,this.height);
this.flashSprite.addChild(this._scrollRect);
this._scrollRect.set_scrollRect(new openfl_geom_Rectangle());
this.pixelPerfectRender = flixel_FlxG.renderBlit;
if(flixel_FlxG.renderBlit) {
this.screen = new flixel_FlxSprite();
this.buffer = new openfl_display_BitmapData(this.width,this.height,true,0);
this.screen.set_pixels(this.buffer);
this.screen.origin.set();
this._flashBitmap = new openfl_display_Bitmap(this.buffer);
this._scrollRect.addChild(this._flashBitmap);
this._fill = new openfl_display_BitmapData(this.width,this.height,true,0);
} else {
this.canvas = new openfl_display_Sprite();
this._scrollRect.addChild(this.canvas);
}
this.set_color(-1);
this.initialZoom = Zoom == 0 ? flixel_FlxCamera.defaultZoom : Zoom;
this.set_zoom(Zoom);
this.updateScrollRect();
this.updateFlashOffset();
this.updateFlashSpritePosition();
this.updateInternalSpritePositions();
this.bgColor = flixel_FlxG.cameras.get_bgColor();
};
$hxClasses["flixel.FlxCamera"] = flixel_FlxCamera;
flixel_FlxCamera.__name__ = "flixel.FlxCamera";
flixel_FlxCamera.defaultZoom = null;
flixel_FlxCamera.defaultCameras = null;
flixel_FlxCamera._storageTilesHead = null;
flixel_FlxCamera._storageTrianglesHead = null;
flixel_FlxCamera.__super__ = flixel_FlxBasic;
flixel_FlxCamera.prototype = $extend(flixel_FlxBasic.prototype,{
x: null
,y: null
,scaleX: null
,scaleY: null
,totalScaleX: null
,totalScaleY: null
,style: null
,target: null
,targetOffset: null
,followLerp: null
,deadzone: null
,minScrollX: null
,maxScrollX: null
,minScrollY: null
,maxScrollY: null
,scroll: null
,buffer: null
,bgColor: null
,screen: null
,useBgAlphaBlending: null
,flashSprite: null
,pixelPerfectRender: null
,width: null
,height: null
,zoom: null
,viewOffsetX: null
,viewOffsetY: null
,viewOffsetWidth: null
,viewOffsetHeight: null
,viewWidth: null
,viewHeight: null
,_blitMatrix: null
,_useBlitMatrix: null
,alpha: null
,angle: null
,color: null
,antialiasing: null
,followLead: null
,filtersEnabled: null
,_flashRect: null
,_flashPoint: null
,_flashOffset: null
,_fxFlashColor: null
,_fxFlashDuration: null
,_fxFlashComplete: null
,_fxFlashAlpha: null
,_fxFadeColor: null
,_lastTargetPosition: null
,_scrollTarget: null
,_fxFadeDuration: null
,_fxFadeIn: null
,_fxFadeComplete: null
,_fxFadeCompleted: null
,_fxFadeAlpha: null
,_fxShakeIntensity: null
,_fxShakeDuration: null
,_fxShakeComplete: null
,_fxShakeAxes: null
,_point: null
,_filters: null
,initialZoom: null
,_fill: null
,_flashBitmap: null
,_scrollRect: null
,_bounds: null
,canvas: null
,_helperMatrix: null
,_helperPoint: null
,_currentDrawItem: null
,_headOfDrawStack: null
,_headTiles: null
,_headTriangles: null
,startQuadBatch: function(graphic,colored,hasColorOffsets,blend,smooth,shader) {
if(smooth == null) {
smooth = false;
}
if(hasColorOffsets == null) {
hasColorOffsets = false;
}
var itemToReturn = null;
var blendInt = flixel_graphics_tile_FlxDrawBaseItem.blendToInt(blend);
if(this._currentDrawItem != null && this._currentDrawItem.type == flixel_graphics_tile_FlxDrawItemType.TILES && this._headTiles.graphics == graphic && this._headTiles.colored == colored && this._headTiles.hasColorOffsets == hasColorOffsets && this._headTiles.blending == blendInt && this._headTiles.blend == blend && this._headTiles.antialiasing == smooth && this._headTiles.shader == shader) {
return this._headTiles;
}
if(flixel_FlxCamera._storageTilesHead != null) {
itemToReturn = flixel_FlxCamera._storageTilesHead;
var newHead = flixel_FlxCamera._storageTilesHead.nextTyped;
itemToReturn.reset();
flixel_FlxCamera._storageTilesHead = newHead;
} else {
itemToReturn = new flixel_graphics_tile_FlxDrawQuadsItem();
}
itemToReturn.graphics = graphic;
itemToReturn.antialiasing = smooth;
itemToReturn.colored = colored;
itemToReturn.hasColorOffsets = hasColorOffsets;
itemToReturn.blending = blendInt;
itemToReturn.blend = blend;
itemToReturn.shader = shader;
itemToReturn.nextTyped = this._headTiles;
this._headTiles = itemToReturn;
if(this._headOfDrawStack == null) {
this._headOfDrawStack = itemToReturn;
}
if(this._currentDrawItem != null) {
this._currentDrawItem.next = itemToReturn;
}
this._currentDrawItem = itemToReturn;
return itemToReturn;
}
,startTrianglesBatch: function(graphic,smoothing,isColored,blend) {
if(isColored == null) {
isColored = false;
}
if(smoothing == null) {
smoothing = false;
}
var blendInt = flixel_graphics_tile_FlxDrawBaseItem.blendToInt(blend);
if(this._currentDrawItem != null && this._currentDrawItem.type == flixel_graphics_tile_FlxDrawItemType.TRIANGLES && this._headTriangles.graphics == graphic && this._headTriangles.antialiasing == smoothing && this._headTriangles.colored == isColored && this._headTriangles.blending == blendInt) {
return this._headTriangles;
}
return this.getNewDrawTrianglesItem(graphic,smoothing,isColored,blend);
}
,getNewDrawTrianglesItem: function(graphic,smoothing,isColored,blend) {
if(isColored == null) {
isColored = false;
}
if(smoothing == null) {
smoothing = false;
}
var itemToReturn = null;
var blendInt = flixel_graphics_tile_FlxDrawBaseItem.blendToInt(blend);
if(flixel_FlxCamera._storageTrianglesHead != null) {
itemToReturn = flixel_FlxCamera._storageTrianglesHead;
var newHead = flixel_FlxCamera._storageTrianglesHead.nextTyped;
itemToReturn.reset();
flixel_FlxCamera._storageTrianglesHead = newHead;
} else {
itemToReturn = new flixel_graphics_tile_FlxDrawTrianglesItem();
}
itemToReturn.graphics = graphic;
itemToReturn.antialiasing = smoothing;
itemToReturn.colored = isColored;
itemToReturn.blending = blendInt;
itemToReturn.nextTyped = this._headTriangles;
this._headTriangles = itemToReturn;
if(this._headOfDrawStack == null) {
this._headOfDrawStack = itemToReturn;
}
if(this._currentDrawItem != null) {
this._currentDrawItem.next = itemToReturn;
}
this._currentDrawItem = itemToReturn;
return itemToReturn;
}
,clearDrawStack: function() {
var currTiles = this._headTiles;
var newTilesHead;
while(currTiles != null) {
newTilesHead = currTiles.nextTyped;
currTiles.reset();
currTiles.nextTyped = flixel_FlxCamera._storageTilesHead;
flixel_FlxCamera._storageTilesHead = currTiles;
currTiles = newTilesHead;
}
var currTriangles = this._headTriangles;
var newTrianglesHead;
while(currTriangles != null) {
newTrianglesHead = currTriangles.nextTyped;
currTriangles.reset();
currTriangles.nextTyped = flixel_FlxCamera._storageTrianglesHead;
flixel_FlxCamera._storageTrianglesHead = currTriangles;
currTriangles = newTrianglesHead;
}
this._currentDrawItem = null;
this._headOfDrawStack = null;
this._headTiles = null;
this._headTriangles = null;
}
,render: function() {
var currItem = this._headOfDrawStack;
while(currItem != null) {
currItem.render(this);
currItem = currItem.next;
}
}
,drawPixels: function(frame,pixels,matrix,transform,blend,smoothing,shader) {
if(smoothing == null) {
smoothing = false;
}
if(flixel_FlxG.renderBlit) {
this._helperMatrix.copyFrom(matrix);
if(this._useBlitMatrix) {
this._helperMatrix.concat(this._blitMatrix);
this.buffer.draw(pixels,this._helperMatrix,null,null,null,smoothing || this.antialiasing);
} else {
this._helperMatrix.translate(-this.viewOffsetX,-this.viewOffsetY);
this.buffer.draw(pixels,this._helperMatrix,null,blend,null,smoothing || this.antialiasing);
}
} else {
var isColored = transform != null && flixel_util_FlxColorTransformUtil.hasRGBMultipliers(transform);
var hasColorOffsets = transform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(transform);
var drawItem = this.startQuadBatch(frame.parent,isColored,hasColorOffsets,blend,smoothing,shader);
drawItem.addQuad(frame,matrix,transform);
}
}
,copyPixels: function(frame,pixels,sourceRect,destPoint,transform,blend,smoothing,shader) {
if(smoothing == null) {
smoothing = false;
}
if(flixel_FlxG.renderBlit) {
if(pixels != null) {
if(this._useBlitMatrix) {
this._helperMatrix.identity();
this._helperMatrix.translate(destPoint.x,destPoint.y);
this._helperMatrix.concat(this._blitMatrix);
this.buffer.draw(pixels,this._helperMatrix,null,null,null,smoothing || this.antialiasing);
} else {
this._helperPoint.x = destPoint.x - (this.viewOffsetX | 0);
this._helperPoint.y = destPoint.y - (this.viewOffsetY | 0);
this.buffer.copyPixels(pixels,sourceRect,this._helperPoint,null,null,true);
}
} else if(frame != null) {
frame.paint(this.buffer,destPoint,true);
}
} else {
this._helperMatrix.identity();
this._helperMatrix.translate(destPoint.x + frame.offset.x,destPoint.y + frame.offset.y);
var isColored = transform != null && flixel_util_FlxColorTransformUtil.hasRGBMultipliers(transform);
var hasColorOffsets = transform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(transform);
var drawItem = this.startQuadBatch(frame.parent,isColored,hasColorOffsets,blend,smoothing,shader);
drawItem.addQuad(frame,this._helperMatrix,transform);
}
}
,drawTriangles: function(graphic,vertices,indices,uvtData,colors,position,blend,repeat,smoothing) {
if(smoothing == null) {
smoothing = false;
}
if(repeat == null) {
repeat = false;
}
if(flixel_FlxG.renderBlit) {
if(position == null) {
position = flixel_FlxCamera.renderPoint.set();
}
var _this = this._bounds;
var X = 0;
var Y = 0;
var Width = this.width;
var Height = this.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;
var verticesLength = vertices.get_length();
var currentVertexPosition = 0;
var tempX;
var tempY;
var i = 0;
var _this = flixel_FlxCamera.renderRect;
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
var bounds = _this;
flixel_FlxCamera.drawVertices.splice(0,flixel_FlxCamera.drawVertices.get_length());
while(i < verticesLength) {
tempX = position.x + vertices.get(i);
tempY = position.y + vertices.get(i + 1);
flixel_FlxCamera.drawVertices.set(currentVertexPosition++,tempX);
flixel_FlxCamera.drawVertices.set(currentVertexPosition++,tempY);
if(i == 0) {
var X = tempX;
var Y = tempY;
var Width = 0;
var Height = 0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
bounds.x = X;
bounds.y = Y;
bounds.width = Width;
bounds.height = Height;
} else {
if(tempX < bounds.x) {
bounds.width += bounds.x - tempX;
bounds.x = tempX;
}
if(tempY < bounds.y) {
bounds.height += bounds.y - tempY;
bounds.y = tempY;
}
if(tempX > bounds.x + bounds.width) {
bounds.width = tempX - bounds.x;
}
if(tempY > bounds.y + bounds.height) {
bounds.height = tempY - bounds.y;
}
}
i += 2;
}
if(position._weak) {
position.put();
}
var _this = this._bounds;
var result = bounds.x + bounds.width > _this.x && bounds.x < _this.x + _this.width && bounds.y + bounds.height > _this.y && bounds.y < _this.y + _this.height;
if(bounds._weak) {
if(!bounds._inPool) {
bounds._inPool = true;
bounds._weak = false;
flixel_math_FlxRect._pool.putUnsafe(bounds);
}
}
if(!result) {
flixel_FlxCamera.drawVertices.splice(flixel_FlxCamera.drawVertices.get_length() - verticesLength,verticesLength);
} else {
flixel_FlxCamera.trianglesSprite.get_graphics().clear();
flixel_FlxCamera.trianglesSprite.get_graphics().beginBitmapFill(graphic.bitmap,null,repeat,smoothing);
flixel_FlxCamera.trianglesSprite.get_graphics().drawTriangles(flixel_FlxCamera.drawVertices,indices,uvtData);
flixel_FlxCamera.trianglesSprite.get_graphics().endFill();
if(this._useBlitMatrix) {
this._helperMatrix.copyFrom(this._blitMatrix);
} else {
this._helperMatrix.identity();
this._helperMatrix.translate(-this.viewOffsetX,-this.viewOffsetY);
}
this.buffer.draw(flixel_FlxCamera.trianglesSprite,this._helperMatrix);
}
if(!bounds._inPool) {
bounds._inPool = true;
bounds._weak = false;
flixel_math_FlxRect._pool.putUnsafe(bounds);
}
} else {
var _this = this._bounds;
var X = 0;
var Y = 0;
var Width = this.width;
var Height = this.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;
var isColored = colors != null && colors.get_length() != 0;
var drawItem = this.startTrianglesBatch(graphic,smoothing,isColored,blend);
drawItem.addTriangles(vertices,indices,uvtData,colors,position,this._bounds);
}
}
,transformRect: function(rect) {
if(flixel_FlxG.renderBlit) {
rect.x += -this.viewOffsetX;
rect.y += -this.viewOffsetY;
if(this._useBlitMatrix) {
rect.x *= this.zoom;
rect.y *= this.zoom;
rect.width *= this.zoom;
rect.height *= this.zoom;
}
}
return rect;
}
,transformPoint: function(point) {
if(flixel_FlxG.renderBlit) {
var X = this.viewOffsetX;
var Y = this.viewOffsetY;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = point;
_g.set_x(_g.x - X);
var _g = point;
_g.set_y(_g.y - Y);
if(this._useBlitMatrix) {
point.scale(this.zoom);
}
}
return point;
}
,transformVector: function(vector) {
if(flixel_FlxG.renderBlit && this._useBlitMatrix) {
vector.scale(this.zoom);
}
return vector;
}
,transformObject: function(object) {
var _g = object;
_g.set_scaleX(_g.get_scaleX() * this.totalScaleX);
var _g = object;
_g.set_scaleY(_g.get_scaleY() * this.totalScaleY);
var _g = object;
_g.set_x(_g.get_x() - this.scroll.x * this.totalScaleX);
var _g = object;
_g.set_y(_g.get_y() - this.scroll.y * this.totalScaleY);
var _g = object;
_g.set_x(_g.get_x() - 0.5 * this.width * (this.scaleX - this.initialZoom) * flixel_FlxG.scaleMode.scale.x);
var _g = object;
_g.set_y(_g.get_y() - 0.5 * this.height * (this.scaleY - this.initialZoom) * flixel_FlxG.scaleMode.scale.y);
return object;
}
,destroy: function() {
flixel_util_FlxDestroyUtil.removeChild(this.flashSprite,this._scrollRect);
if(flixel_FlxG.renderBlit) {
flixel_util_FlxDestroyUtil.removeChild(this._scrollRect,this._flashBitmap);
this.screen = flixel_util_FlxDestroyUtil.destroy(this.screen);
this.buffer = null;
this._flashBitmap = null;
this._fill = flixel_util_FlxDestroyUtil.dispose(this._fill);
} else {
flixel_util_FlxDestroyUtil.removeChild(this._scrollRect,this.canvas);
if(this.canvas != null) {
var _g = 0;
var _g1 = this.canvas.get_numChildren();
while(_g < _g1) {
var i = _g++;
this.canvas.removeChildAt(0);
}
this.canvas = null;
}
if(this._headOfDrawStack != null) {
this.clearDrawStack();
}
this._blitMatrix = null;
this._helperMatrix = null;
this._helperPoint = null;
}
this._bounds = null;
this.scroll = flixel_util_FlxDestroyUtil.put(this.scroll);
this.targetOffset = flixel_util_FlxDestroyUtil.put(this.targetOffset);
this.deadzone = flixel_util_FlxDestroyUtil.put(this.deadzone);
this.target = null;
this.flashSprite = null;
this._scrollRect = null;
this._flashRect = null;
this._flashPoint = null;
this._fxFlashComplete = null;
this._fxFadeComplete = null;
this._fxShakeComplete = null;
flixel_FlxBasic.prototype.destroy.call(this);
}
,update: function(elapsed) {
if(this.target != null) {
this.updateFollow();
}
this.updateScroll();
this.updateFlash(elapsed);
this.updateFade(elapsed);
this.flashSprite.set_filters(this.filtersEnabled ? this._filters : null);
this.updateFlashSpritePosition();
this.updateShake(elapsed);
}
,updateScroll: function() {
var zoom = this.zoom / flixel_FlxG.initialZoom;
var minX = this.minScrollX == null ? null : this.minScrollX - (zoom - 1) * this.width / (2 * zoom);
var maxX = this.maxScrollX == null ? null : this.maxScrollX + (zoom - 1) * this.width / (2 * zoom);
var minY = this.minScrollY == null ? null : this.minScrollY - (zoom - 1) * this.height / (2 * zoom);
var maxY = this.maxScrollY == null ? null : this.maxScrollY + (zoom - 1) * this.height / (2 * zoom);
var Value = this.scroll.x;
var Max = maxX != null ? maxX - this.width : null;
var lowerBound = minX != null && Value < minX ? minX : Value;
this.scroll.set_x(Max != null && lowerBound > Max ? Max : lowerBound);
var Value = this.scroll.y;
var Max = maxY != null ? maxY - this.height : null;
var lowerBound = minY != null && Value < minY ? minY : Value;
this.scroll.set_y(Max != null && lowerBound > Max ? Max : lowerBound);
}
,updateFollow: function() {
if(this.deadzone == null) {
this.target.getMidpoint(this._point);
this._point.addPoint(this.targetOffset);
var point = this._point;
this.scroll.set(point.x - this.width * 0.5,point.y - this.height * 0.5);
if(point._weak) {
point.put();
}
} else {
var edge;
var targetX = this.target.x + this.targetOffset.x;
var targetY = this.target.y + this.targetOffset.y;
if(this.style == flixel_FlxCameraFollowStyle.SCREEN_BY_SCREEN) {
if(targetX >= this.scroll.x + this.width) {
var _g = this._scrollTarget;
_g.set_x(_g.x + this.width);
} else if(targetX < this.scroll.x) {
var _g = this._scrollTarget;
_g.set_x(_g.x - this.width);
}
if(targetY >= this.scroll.y + this.height) {
var _g = this._scrollTarget;
_g.set_y(_g.y + this.height);
} else if(targetY < this.scroll.y) {
var _g = this._scrollTarget;
_g.set_y(_g.y - this.height);
}
} else {
edge = targetX - this.deadzone.x;
if(this._scrollTarget.x > edge) {
this._scrollTarget.set_x(edge);
}
edge = targetX + this.target.get_width() - this.deadzone.x - this.deadzone.width;
if(this._scrollTarget.x < edge) {
this._scrollTarget.set_x(edge);
}
edge = targetY - this.deadzone.y;
if(this._scrollTarget.y > edge) {
this._scrollTarget.set_y(edge);
}
edge = targetY + this.target.get_height() - this.deadzone.y - this.deadzone.height;
if(this._scrollTarget.y < edge) {
this._scrollTarget.set_y(edge);
}
}
if(((this.target) instanceof flixel_FlxSprite)) {
if(this._lastTargetPosition == null) {
var X = this.target.x;
var Y = this.target.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this._lastTargetPosition = point;
}
var _g = this._scrollTarget;
_g.set_x(_g.x + (this.target.x - this._lastTargetPosition.x) * this.followLead.x);
var _g = this._scrollTarget;
_g.set_y(_g.y + (this.target.y - this._lastTargetPosition.y) * this.followLead.y);
this._lastTargetPosition.set_x(this.target.x);
this._lastTargetPosition.set_y(this.target.y);
}
if(this.followLerp >= 60 / flixel_FlxG.updateFramerate) {
var _this = this.scroll;
var point = this._scrollTarget;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
} else {
var _g = this.scroll;
_g.set_x(_g.x + (this._scrollTarget.x - this.scroll.x) * this.followLerp * flixel_FlxG.updateFramerate / 60);
var _g = this.scroll;
_g.set_y(_g.y + (this._scrollTarget.y - this.scroll.y) * this.followLerp * flixel_FlxG.updateFramerate / 60);
}
}
}
,updateFlash: function(elapsed) {
if(this._fxFlashAlpha > 0.0) {
this._fxFlashAlpha -= elapsed / this._fxFlashDuration;
if(this._fxFlashAlpha <= 0 && this._fxFlashComplete != null) {
this._fxFlashComplete();
}
}
}
,updateFade: function(elapsed) {
if(this._fxFadeCompleted) {
return;
}
if(this._fxFadeIn) {
this._fxFadeAlpha -= elapsed / this._fxFadeDuration;
if(this._fxFadeAlpha <= 0.0) {
this._fxFadeAlpha = 0.0;
this.completeFade();
}
} else {
this._fxFadeAlpha += elapsed / this._fxFadeDuration;
if(this._fxFadeAlpha >= 1.0) {
this._fxFadeAlpha = 1.0;
this.completeFade();
}
}
}
,completeFade: function() {
this._fxFadeCompleted = true;
if(this._fxFadeComplete != null) {
this._fxFadeComplete();
}
}
,updateShake: function(elapsed) {
if(this._fxShakeDuration > 0) {
this._fxShakeDuration -= elapsed;
if(this._fxShakeDuration <= 0) {
if(this._fxShakeComplete != null) {
this._fxShakeComplete();
}
} else {
if(this._fxShakeAxes != flixel_util_FlxAxes.Y) {
var _g = this.flashSprite;
_g.set_x(_g.get_x() + flixel_FlxG.random.float(-this._fxShakeIntensity * this.width,this._fxShakeIntensity * this.width) * this.zoom * flixel_FlxG.scaleMode.scale.x);
}
if(this._fxShakeAxes != flixel_util_FlxAxes.X) {
var _g = this.flashSprite;
_g.set_y(_g.get_y() + flixel_FlxG.random.float(-this._fxShakeIntensity * this.height,this._fxShakeIntensity * this.height) * this.zoom * flixel_FlxG.scaleMode.scale.y);
}
}
}
}
,updateFlashSpritePosition: function() {
if(this.flashSprite != null) {
this.flashSprite.set_x(this.x * flixel_FlxG.scaleMode.scale.x + this._flashOffset.x);
this.flashSprite.set_y(this.y * flixel_FlxG.scaleMode.scale.y + this._flashOffset.y);
}
}
,updateFlashOffset: function() {
this._flashOffset.set_x(this.width * 0.5 * flixel_FlxG.scaleMode.scale.x * this.initialZoom);
this._flashOffset.set_y(this.height * 0.5 * flixel_FlxG.scaleMode.scale.y * this.initialZoom);
}
,updateScrollRect: function() {
var rect = this._scrollRect != null ? this._scrollRect.get_scrollRect() : null;
if(rect != null) {
rect.x = rect.y = 0;
rect.width = this.width * this.initialZoom * flixel_FlxG.scaleMode.scale.x;
rect.height = this.height * this.initialZoom * flixel_FlxG.scaleMode.scale.y;
this._scrollRect.set_scrollRect(rect);
this._scrollRect.set_x(-0.5 * rect.width);
this._scrollRect.set_y(-0.5 * rect.height);
}
}
,updateInternalSpritePositions: function() {
if(flixel_FlxG.renderBlit) {
if(this._flashBitmap != null) {
this._flashBitmap.set_x(0);
this._flashBitmap.set_y(0);
}
} else if(this.canvas != null) {
this.canvas.set_x(-0.5 * this.width * (this.scaleX - this.initialZoom) * flixel_FlxG.scaleMode.scale.x);
this.canvas.set_y(-0.5 * this.height * (this.scaleY - this.initialZoom) * flixel_FlxG.scaleMode.scale.y);
this.canvas.set_scaleX(this.totalScaleX);
this.canvas.set_scaleY(this.totalScaleY);
}
}
,follow: function(Target,Style,Lerp) {
if(Style == null) {
Style = flixel_FlxCameraFollowStyle.LOCKON;
}
if(Lerp == null) {
Lerp = 60 / flixel_FlxG.updateFramerate;
}
this.style = Style;
this.target = Target;
this.set_followLerp(Lerp);
var helper;
var w = 0;
var h = 0;
this._lastTargetPosition = null;
switch(Style._hx_index) {
case 0:
if(this.target != null) {
w = this.target.get_width();
h = this.target.get_height();
}
var X = (this.width - w) / 2;
var Y = (this.height - h) / 2 - h * 0.25;
var Width = w;
var Height = h;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.deadzone = rect;
break;
case 1:
var w = this.width / 8;
var h = this.height / 3;
var X = (this.width - w) / 2;
var Y = (this.height - h) / 2 - h * 0.25;
var Width = w;
var Height = h;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.deadzone = rect;
break;
case 2:
helper = Math.max(this.width,this.height) / 4;
var X = (this.width - helper) / 2;
var Y = (this.height - helper) / 2;
var Width = helper;
var Height = helper;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.deadzone = rect;
break;
case 3:
helper = Math.max(this.width,this.height) / 8;
var X = (this.width - helper) / 2;
var Y = (this.height - helper) / 2;
var Width = helper;
var Height = helper;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.deadzone = rect;
break;
case 4:
var X = 0;
var Y = 0;
var Width = this.width;
var Height = this.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.deadzone = rect;
break;
case 5:
this.deadzone = null;
break;
}
}
,snapToTarget: function() {
this.updateFollow();
var _this = this.scroll;
var point = this._scrollTarget;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
}
,focusOn: function(point) {
this.scroll.set(point.x - this.width * 0.5,point.y - this.height * 0.5);
if(point._weak) {
point.put();
}
}
,flash: function(Color,Duration,OnComplete,Force) {
if(Force == null) {
Force = false;
}
if(Duration == null) {
Duration = 1;
}
if(Color == null) {
Color = -1;
}
if(!Force && this._fxFlashAlpha > 0.0) {
return;
}
this._fxFlashColor = Color;
if(Duration <= 0) {
Duration = 0.000001;
}
this._fxFlashDuration = Duration;
this._fxFlashComplete = OnComplete;
this._fxFlashAlpha = 1.0;
}
,fade: function(Color,Duration,FadeIn,OnComplete,Force) {
if(Force == null) {
Force = false;
}
if(FadeIn == null) {
FadeIn = false;
}
if(Duration == null) {
Duration = 1;
}
if(Color == null) {
Color = -16777216;
}
if(!this._fxFadeCompleted && !Force) {
return;
}
this._fxFadeColor = Color;
if(Duration <= 0) {
Duration = 0.000001;
}
this._fxFadeIn = FadeIn;
this._fxFadeDuration = Duration;
this._fxFadeComplete = OnComplete;
this._fxFadeAlpha = this._fxFadeIn ? 0.999999 : 0.000001;
this._fxFadeCompleted = false;
}
,shake: function(Intensity,Duration,OnComplete,Force,Axes) {
if(Force == null) {
Force = true;
}
if(Duration == null) {
Duration = 0.5;
}
if(Intensity == null) {
Intensity = 0.05;
}
if(Axes == null) {
Axes = flixel_util_FlxAxes.XY;
}
if(!Force && this._fxShakeDuration > 0) {
return;
}
this._fxShakeIntensity = Intensity;
this._fxShakeDuration = Duration;
this._fxShakeComplete = OnComplete;
this._fxShakeAxes = Axes;
}
,stopFX: function() {
this._fxFlashAlpha = 0.0;
this._fxFadeAlpha = 0.0;
this._fxShakeDuration = 0;
this.updateFlashSpritePosition();
}
,setFilters: function(filters) {
this._filters = filters;
}
,copyFrom: function(Camera) {
this.setScrollBounds(Camera.minScrollX,Camera.maxScrollX,Camera.minScrollY,Camera.maxScrollY);
this.target = Camera.target;
if(this.target != null) {
if(Camera.deadzone == null) {
this.deadzone = null;
} else {
if(this.deadzone == null) {
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this.deadzone = rect;
}
var _this = this.deadzone;
var Rect = Camera.deadzone;
_this.x = Rect.x;
_this.y = Rect.y;
_this.width = Rect.width;
_this.height = Rect.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
}
}
return this;
}
,fill: function(Color,BlendAlpha,FxAlpha,graphics) {
if(FxAlpha == null) {
FxAlpha = 1.0;
}
if(BlendAlpha == null) {
BlendAlpha = true;
}
if(flixel_FlxG.renderBlit) {
if(BlendAlpha) {
this._fill.fillRect(this._flashRect,Color);
this.buffer.copyPixels(this._fill,this._flashRect,this._flashPoint,null,null,BlendAlpha);
} else {
this.buffer.fillRect(this._flashRect,Color);
}
} else {
if(FxAlpha == 0) {
return;
}
var targetGraphics = graphics == null ? this.canvas.get_graphics() : graphics;
targetGraphics.beginFill(Color,FxAlpha);
targetGraphics.drawRect(this.viewOffsetX - 1,this.viewOffsetY - 1,this.viewWidth + 2,this.viewHeight + 2);
targetGraphics.endFill();
}
}
,drawFX: function() {
var alphaComponent;
if(this._fxFlashAlpha > 0.0) {
alphaComponent = this._fxFlashColor >> 24 & 255;
if(flixel_FlxG.renderBlit) {
this.fill((((alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFlashAlpha | 0) << 24) + (this._fxFlashColor & 16777215));
} else {
this.fill(this._fxFlashColor & 16777215,true,(alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFlashAlpha / 255,this.canvas.get_graphics());
}
}
if(this._fxFadeAlpha > 0.0) {
alphaComponent = this._fxFadeColor >> 24 & 255;
if(flixel_FlxG.renderBlit) {
this.fill((((alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFadeAlpha | 0) << 24) + (this._fxFadeColor & 16777215));
} else {
this.fill(this._fxFadeColor & 16777215,true,(alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFadeAlpha / 255,this.canvas.get_graphics());
}
}
}
,checkResize: function() {
if(flixel_FlxG.renderBlit) {
if(this.width != this.buffer.width || this.height != this.buffer.height) {
var oldBuffer = this.screen.graphic;
this.buffer = new openfl_display_BitmapData(this.width,this.height,true,0);
this.screen.set_pixels(this.buffer);
this.screen.origin.set();
this._flashBitmap.set_bitmapData(this.buffer);
this._flashRect.width = this.width;
this._flashRect.height = this.height;
this._fill = flixel_util_FlxDestroyUtil.dispose(this._fill);
this._fill = new openfl_display_BitmapData(this.width,this.height,true,0);
flixel_FlxG.bitmap.removeIfNoUse(oldBuffer);
}
this._blitMatrix.identity();
this._blitMatrix.translate(-this.viewOffsetX,-this.viewOffsetY);
this._blitMatrix.scale(this.scaleX,this.scaleY);
this._useBlitMatrix = this.scaleX < this.initialZoom || this.scaleY < this.initialZoom;
}
}
,updateBlitMatrix: function() {
this._blitMatrix.identity();
this._blitMatrix.translate(-this.viewOffsetX,-this.viewOffsetY);
this._blitMatrix.scale(this.scaleX,this.scaleY);
this._useBlitMatrix = this.scaleX < this.initialZoom || this.scaleY < this.initialZoom;
}
,setSize: function(Width,Height) {
this.set_width(Width);
this.set_height(Height);
}
,setPosition: function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.set_x(X);
this.set_y(Y);
}
,setScrollBoundsRect: function(X,Y,Width,Height,UpdateWorld) {
if(UpdateWorld == null) {
UpdateWorld = false;
}
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
if(UpdateWorld) {
var _this = flixel_FlxG.worldBounds;
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
}
this.setScrollBounds(X,X + Width,Y,Y + Height);
}
,setScrollBounds: function(MinX,MaxX,MinY,MaxY) {
this.minScrollX = MinX;
this.maxScrollX = MaxX;
this.minScrollY = MinY;
this.maxScrollY = MaxY;
this.updateScroll();
}
,setScale: function(X,Y) {
this.scaleX = X;
this.scaleY = Y;
this.totalScaleX = this.scaleX * flixel_FlxG.scaleMode.scale.x;
this.totalScaleY = this.scaleY * flixel_FlxG.scaleMode.scale.y;
if(flixel_FlxG.renderBlit) {
this._blitMatrix.identity();
this._blitMatrix.translate(-this.viewOffsetX,-this.viewOffsetY);
this._blitMatrix.scale(this.scaleX,this.scaleY);
this._useBlitMatrix = this.scaleX < this.initialZoom || this.scaleY < this.initialZoom;
if(this._useBlitMatrix) {
this._flashBitmap.set_scaleX(this.initialZoom * flixel_FlxG.scaleMode.scale.x);
this._flashBitmap.set_scaleY(this.initialZoom * flixel_FlxG.scaleMode.scale.y);
} else {
this._flashBitmap.set_scaleX(this.totalScaleX);
this._flashBitmap.set_scaleY(this.totalScaleY);
}
}
this.viewOffsetX = 0.5 * this.width * (this.scaleX - this.initialZoom) / this.scaleX;
this.viewOffsetWidth = this.width - this.viewOffsetX;
this.viewWidth = this.width - 2 * this.viewOffsetX;
this.viewOffsetY = 0.5 * this.height * (this.scaleY - this.initialZoom) / this.scaleY;
this.viewOffsetHeight = this.height - this.viewOffsetY;
this.viewHeight = this.height - 2 * this.viewOffsetY;
this.updateScrollRect();
this.updateInternalSpritePositions();
flixel_FlxG.cameras.cameraResized.dispatch(this);
}
,onResize: function() {
this.updateFlashOffset();
this.setScale(this.scaleX,this.scaleY);
}
,containsPoint: function(point,width,height) {
if(height == null) {
height = 0;
}
if(width == null) {
width = 0;
}
if(point.x + width > this.viewOffsetX && point.x < this.viewOffsetWidth && point.y + height > this.viewOffsetY) {
return point.y < this.viewOffsetHeight;
} else {
return false;
}
}
,set_followLerp: function(Value) {
var Max = 60 / flixel_FlxG.updateFramerate;
var lowerBound = Value < 0 ? 0 : Value;
return this.followLerp = Max != null && lowerBound > Max ? Max : lowerBound;
}
,set_width: function(Value) {
if(this.width != Value && Value > 0) {
this.width = Value;
this.viewOffsetX = 0.5 * this.width * (this.scaleX - this.initialZoom) / this.scaleX;
this.viewOffsetWidth = this.width - this.viewOffsetX;
this.viewWidth = this.width - 2 * this.viewOffsetX;
this.updateFlashOffset();
this.updateScrollRect();
this.updateInternalSpritePositions();
flixel_FlxG.cameras.cameraResized.dispatch(this);
}
return Value;
}
,set_height: function(Value) {
if(this.height != Value && Value > 0) {
this.height = Value;
this.viewOffsetY = 0.5 * this.height * (this.scaleY - this.initialZoom) / this.scaleY;
this.viewOffsetHeight = this.height - this.viewOffsetY;
this.viewHeight = this.height - 2 * this.viewOffsetY;
this.updateFlashOffset();
this.updateScrollRect();
this.updateInternalSpritePositions();
flixel_FlxG.cameras.cameraResized.dispatch(this);
}
return Value;
}
,set_zoom: function(Zoom) {
this.zoom = Zoom == 0 ? flixel_FlxCamera.defaultZoom : Zoom;
this.setScale(this.zoom,this.zoom);
return this.zoom;
}
,set_alpha: function(Alpha) {
var lowerBound = Alpha < 0 ? 0 : Alpha;
this.alpha = lowerBound > 1 ? 1 : lowerBound;
if(flixel_FlxG.renderBlit) {
this._flashBitmap.set_alpha(Alpha);
} else {
this.canvas.set_alpha(Alpha);
}
return Alpha;
}
,set_angle: function(Angle) {
this.angle = Angle;
this.flashSprite.set_rotation(Angle);
return Angle;
}
,set_color: function(Color) {
this.color = Color;
var colorTransform;
if(flixel_FlxG.renderBlit) {
if(this._flashBitmap == null) {
return Color;
}
colorTransform = this._flashBitmap.get_transform().get_colorTransform();
} else {
colorTransform = this.canvas.get_transform().get_colorTransform();
}
colorTransform.redMultiplier = (this.color >> 16 & 255) / 255;
colorTransform.greenMultiplier = (this.color >> 8 & 255) / 255;
colorTransform.blueMultiplier = (this.color & 255) / 255;
if(flixel_FlxG.renderBlit) {
this._flashBitmap.get_transform().set_colorTransform(colorTransform);
} else {
this.canvas.get_transform().set_colorTransform(colorTransform);
}
return Color;
}
,set_antialiasing: function(Antialiasing) {
this.antialiasing = Antialiasing;
if(flixel_FlxG.renderBlit) {
this._flashBitmap.smoothing = Antialiasing;
}
return Antialiasing;
}
,set_x: function(x) {
this.x = x;
this.updateFlashSpritePosition();
return x;
}
,set_y: function(y) {
this.y = y;
this.updateFlashSpritePosition();
return y;
}
,set_visible: function(visible) {
if(this.flashSprite != null) {
this.flashSprite.set_visible(visible);
}
return this.visible = visible;
}
,calcOffsetX: function() {
this.viewOffsetX = 0.5 * this.width * (this.scaleX - this.initialZoom) / this.scaleX;
this.viewOffsetWidth = this.width - this.viewOffsetX;
this.viewWidth = this.width - 2 * this.viewOffsetX;
}
,calcOffsetY: function() {
this.viewOffsetY = 0.5 * this.height * (this.scaleY - this.initialZoom) / this.scaleY;
this.viewOffsetHeight = this.height - this.viewOffsetY;
this.viewHeight = this.height - 2 * this.viewOffsetY;
}
,__class__: flixel_FlxCamera
,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{set_antialiasing:"set_antialiasing",set_color:"set_color",set_angle:"set_angle",set_alpha:"set_alpha",set_zoom:"set_zoom",set_height:"set_height",set_width:"set_width",set_followLerp:"set_followLerp",set_y:"set_y",set_x:"set_x"})
});
var flixel_FlxCameraFollowStyle = $hxEnums["flixel.FlxCameraFollowStyle"] = { __ename__ : "flixel.FlxCameraFollowStyle", __constructs__ : ["LOCKON","PLATFORMER","TOPDOWN","TOPDOWN_TIGHT","SCREEN_BY_SCREEN","NO_DEAD_ZONE"]
,LOCKON: {_hx_index:0,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr}
,PLATFORMER: {_hx_index:1,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr}
,TOPDOWN: {_hx_index:2,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr}
,TOPDOWN_TIGHT: {_hx_index:3,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr}
,SCREEN_BY_SCREEN: {_hx_index:4,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr}
,NO_DEAD_ZONE: {_hx_index:5,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr}
};
var flixel_system_FlxVersion = function(Major,Minor,Patch) {
this.major = Major;
this.minor = Minor;
this.patch = Patch;
};
$hxClasses["flixel.system.FlxVersion"] = flixel_system_FlxVersion;
flixel_system_FlxVersion.__name__ = "flixel.system.FlxVersion";
flixel_system_FlxVersion.prototype = {
major: null
,minor: null
,patch: null
,toString: function() {
var sha = flixel_system_FlxVersion.sha;
if(sha != "") {
sha = "@" + sha.substring(0,7);
}
return "HaxeFlixel " + this.major + "." + this.minor + "." + this.patch + sha;
}
,__class__: flixel_system_FlxVersion
};
var flixel_system_frontEnds_BitmapFrontEnd = function() {
this._lastUniqueKeyIndex = 0;
this.reset();
};
$hxClasses["flixel.system.frontEnds.BitmapFrontEnd"] = flixel_system_frontEnds_BitmapFrontEnd;
flixel_system_frontEnds_BitmapFrontEnd.__name__ = "flixel.system.frontEnds.BitmapFrontEnd";
flixel_system_frontEnds_BitmapFrontEnd.prototype = {
_cache: null
,_whitePixel: null
,_lastUniqueKeyIndex: null
,onAssetsReload: function(_) {
var key = haxe_ds_StringMap.keysIterator(this._cache.h);
while(key.hasNext()) {
var key1 = key.next();
var obj = this._cache.h[key1];
if(obj != null && (obj.assetsClass != null || obj.assetsKey != null)) {
obj.onAssetsReload();
}
}
}
,onContext: function() {
var key = haxe_ds_StringMap.keysIterator(this._cache.h);
while(key.hasNext()) {
var key1 = key.next();
var obj = this._cache.h[key1];
if(obj != null && obj.isDumped) {
obj.onContext();
}
}
}
,dumpCache: function() {
}
,undumpCache: function() {
}
,checkCache: function(Key) {
return this._cache.h[Key] != null;
}
,create: function(Width,Height,Color,Unique,Key) {
if(Unique == null) {
Unique = false;
}
return flixel_graphics_FlxGraphic.fromRectangle(Width,Height,Color,Unique,Key);
}
,add: function(Graphic,Unique,Key) {
if(Unique == null) {
Unique = false;
}
if(((Graphic) instanceof flixel_graphics_FlxGraphic)) {
return flixel_graphics_FlxGraphic.fromGraphic(Graphic,Unique,Key);
} else if(((Graphic) instanceof openfl_display_BitmapData)) {
return flixel_graphics_FlxGraphic.fromBitmapData(Graphic,Unique,Key);
}
return flixel_graphics_FlxGraphic.fromAssetKey(Std.string(Graphic),Unique,Key);
}
,addGraphic: function(graphic) {
this._cache.h[graphic.key] = graphic;
return graphic;
}
,get: function(key) {
return this._cache.h[key];
}
,findKeyForBitmap: function(bmd) {
var key = haxe_ds_StringMap.keysIterator(this._cache.h);
while(key.hasNext()) {
var key1 = key.next();
var obj = this._cache.h[key1];
if(obj != null && obj.bitmap == bmd) {
return key1;
}
}
return null;
}
,getKeyForClass: function(source) {
return source.__name__;
}
,generateKey: function(systemKey,userKey,unique) {
if(unique == null) {
unique = false;
}
var key = userKey;
if(key == null) {
key = systemKey;
}
if(unique || key == null) {
key = this.getUniqueKey(key);
}
return key;
}
,getUniqueKey: function(baseKey) {
if(baseKey == null) {
baseKey = "pixels";
}
if(this._cache.h[baseKey] == null) {
return baseKey;
}
var i = this._lastUniqueKeyIndex;
var uniqueKey;
while(true) {
++i;
uniqueKey = baseKey + i;
if(!(this._cache.h[uniqueKey] != null)) {
break;
}
}
this._lastUniqueKeyIndex = i;
return uniqueKey;
}
,getKeyWithSpacesAndBorders: function(baseKey,frameSize,frameSpacing,frameBorder,region) {
var result = baseKey;
if(region != null) {
result += "_Region:" + region.x + "_" + region.y + "_" + region.width + "_" + region.height;
}
if(frameSize != null) {
result += "_FrameSize:" + frameSize.x + "_" + frameSize.y;
}
if(frameSpacing != null) {
result += "_Spaces:" + frameSpacing.x + "_" + frameSpacing.y;
}
if(frameBorder != null) {
result += "_Border:" + frameBorder.x + "_" + frameBorder.y;
}
return result;
}
,remove: function(graphic) {
if(graphic != null) {
var key = graphic.key;
if(key != null) {
openfl_utils_Assets.cache.removeBitmapData(key);
var _this = this._cache;
if(Object.prototype.hasOwnProperty.call(_this.h,key)) {
delete(_this.h[key]);
}
}
graphic.destroy();
}
}
,removeByKey: function(key) {
if(key != null) {
var obj = this._cache.h[key];
if(key != null) {
openfl_utils_Assets.cache.removeBitmapData(key);
var _this = this._cache;
if(Object.prototype.hasOwnProperty.call(_this.h,key)) {
delete(_this.h[key]);
}
}
if(obj != null) {
obj.destroy();
}
}
}
,removeIfNoUse: function(graphic) {
if(graphic != null && graphic.get_useCount() == 0 && !graphic.persist) {
this.remove(graphic);
}
}
,clearCache: function() {
if(this._cache == null) {
this._cache = new haxe_ds_StringMap();
return;
}
var key = haxe_ds_StringMap.keysIterator(this._cache.h);
while(key.hasNext()) {
var key1 = key.next();
var obj = this._cache.h[key1];
if(obj != null && !obj.persist && obj.get_useCount() <= 0) {
if(key1 != null) {
openfl_utils_Assets.cache.removeBitmapData(key1);
var _this = this._cache;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
obj.destroy();
}
}
}
,removeKey: function(key) {
if(key != null) {
openfl_utils_Assets.cache.removeBitmapData(key);
var _this = this._cache;
if(Object.prototype.hasOwnProperty.call(_this.h,key)) {
delete(_this.h[key]);
}
}
}
,reset: function() {
if(this._cache == null) {
this._cache = new haxe_ds_StringMap();
return;
}
var key = haxe_ds_StringMap.keysIterator(this._cache.h);
while(key.hasNext()) {
var key1 = key.next();
var obj = this._cache.h[key1];
if(key1 != null) {
openfl_utils_Assets.cache.removeBitmapData(key1);
var _this = this._cache;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
if(obj != null) {
obj.destroy();
}
}
}
,clearUnused: function() {
var key = haxe_ds_StringMap.keysIterator(this._cache.h);
while(key.hasNext()) {
var key1 = key.next();
var obj = this._cache.h[key1];
if(obj != null && obj.get_useCount() <= 0 && !obj.persist && obj.get_destroyOnNoUse()) {
this.removeByKey(key1);
}
}
}
,get_maxTextureSize: function() {
return lime_graphics_opengl_GL.context.getParameter(3379);
}
,get_whitePixel: function() {
if(this._whitePixel == null) {
var bd = new openfl_display_BitmapData(10,10,true,-1);
var graphic = flixel_FlxG.bitmap.add(bd,true,"whitePixels");
graphic.persist = true;
this._whitePixel = graphic.get_imageFrame().get_frame();
}
return this._whitePixel;
}
,__class__: flixel_system_frontEnds_BitmapFrontEnd
,__properties__: {get_whitePixel:"get_whitePixel",get_maxTextureSize:"get_maxTextureSize"}
};
var flixel_system_frontEnds_BitmapLogFrontEnd = function() {
};
$hxClasses["flixel.system.frontEnds.BitmapLogFrontEnd"] = flixel_system_frontEnds_BitmapLogFrontEnd;
flixel_system_frontEnds_BitmapLogFrontEnd.__name__ = "flixel.system.frontEnds.BitmapLogFrontEnd";
flixel_system_frontEnds_BitmapLogFrontEnd.prototype = {
add: function(Data,Name) {
if(Name == null) {
Name = "";
}
}
,clear: function() {
}
,clearAt: function(Index) {
if(Index == null) {
Index = -1;
}
}
,viewCache: function() {
}
,__class__: flixel_system_frontEnds_BitmapLogFrontEnd
};
var flixel_system_frontEnds_CameraFrontEnd = function() {
this._cameraRect = new openfl_geom_Rectangle();
this.useBufferLocking = false;
this.cameraResized = new flixel_util__$FlxSignal_FlxSignal1();
this.cameraRemoved = new flixel_util__$FlxSignal_FlxSignal1();
this.cameraAdded = new flixel_util__$FlxSignal_FlxSignal1();
this.list = [];
flixel_FlxCamera.defaultCameras = this.list;
};
$hxClasses["flixel.system.frontEnds.CameraFrontEnd"] = flixel_system_frontEnds_CameraFrontEnd;
flixel_system_frontEnds_CameraFrontEnd.__name__ = "flixel.system.frontEnds.CameraFrontEnd";
flixel_system_frontEnds_CameraFrontEnd.prototype = {
list: null
,cameraAdded: null
,cameraRemoved: null
,cameraResized: null
,useBufferLocking: null
,_cameraRect: null
,add: function(NewCamera) {
flixel_FlxG.game.addChildAt(NewCamera.flashSprite,flixel_FlxG.game.getChildIndex(flixel_FlxG.game._inputContainer));
flixel_FlxG.cameras.list.push(NewCamera);
NewCamera.ID = flixel_FlxG.cameras.list.length - 1;
this.cameraAdded.dispatch(NewCamera);
return NewCamera;
}
,remove: function(Camera,Destroy) {
if(Destroy == null) {
Destroy = true;
}
var index = this.list.indexOf(Camera);
if(Camera != null && index != -1) {
flixel_FlxG.game.removeChild(Camera.flashSprite);
this.list.splice(index,1);
} else {
return;
}
if(flixel_FlxG.renderTile) {
var _g = 0;
var _g1 = this.list.length;
while(_g < _g1) {
var i = _g++;
this.list[i].ID = i;
}
}
if(Destroy) {
Camera.destroy();
}
this.cameraRemoved.dispatch(Camera);
}
,reset: function(NewCamera) {
while(this.list.length > 0) this.remove(this.list[0]);
if(NewCamera == null) {
NewCamera = new flixel_FlxCamera(0,0,flixel_FlxG.width,flixel_FlxG.height);
}
flixel_FlxG.camera = this.add(NewCamera);
NewCamera.ID = 0;
flixel_FlxCamera.defaultCameras = this.list;
}
,flash: function(Color,Duration,OnComplete,Force) {
if(Force == null) {
Force = false;
}
if(Duration == null) {
Duration = 1;
}
if(Color == null) {
Color = -1;
}
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
camera.flash(Color,Duration,OnComplete,Force);
}
}
,fade: function(Color,Duration,FadeIn,OnComplete,Force) {
if(Force == null) {
Force = false;
}
if(FadeIn == null) {
FadeIn = false;
}
if(Duration == null) {
Duration = 1;
}
if(Color == null) {
Color = -16777216;
}
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
camera.fade(Color,Duration,FadeIn,OnComplete,Force);
}
}
,shake: function(Intensity,Duration,OnComplete,Force,Axes) {
if(Force == null) {
Force = true;
}
if(Duration == null) {
Duration = 0.5;
}
if(Intensity == null) {
Intensity = 0.05;
}
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
camera.shake(Intensity,Duration,OnComplete,Force,Axes);
}
}
,lock: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(camera == null || !camera.exists || !camera.visible) {
continue;
}
if(flixel_FlxG.renderBlit) {
camera.checkResize();
if(this.useBufferLocking) {
camera.buffer.lock();
}
}
if(flixel_FlxG.renderTile) {
camera.clearDrawStack();
camera.canvas.get_graphics().clear();
}
if(flixel_FlxG.renderBlit) {
camera.fill(camera.bgColor,camera.useBgAlphaBlending);
camera.screen.dirty = true;
} else {
camera.fill(camera.bgColor & 16777215,camera.useBgAlphaBlending,(camera.bgColor >> 24 & 255) / 255);
}
}
}
,render: function() {
if(flixel_FlxG.renderTile) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(camera != null && camera.exists && camera.visible) {
camera.render();
}
}
}
}
,unlock: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(camera == null || !camera.exists || !camera.visible) {
continue;
}
camera.drawFX();
if(flixel_FlxG.renderBlit) {
if(this.useBufferLocking) {
camera.buffer.unlock();
}
camera.screen.dirty = true;
}
}
}
,update: function(elapsed) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(camera != null && camera.exists && camera.active) {
camera.update(elapsed);
}
}
}
,resize: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
camera.onResize();
}
}
,get_bgColor: function() {
if(flixel_FlxG.camera == null) {
return -16777216;
} else {
return flixel_FlxG.camera.bgColor;
}
}
,set_bgColor: function(Color) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
camera.bgColor = Color;
}
return Color;
}
,__class__: flixel_system_frontEnds_CameraFrontEnd
,__properties__: {set_bgColor:"set_bgColor",get_bgColor:"get_bgColor"}
};
var flixel_system_frontEnds_ConsoleFrontEnd = function() {
this.stepAfterCommand = true;
this.autoPause = true;
};
$hxClasses["flixel.system.frontEnds.ConsoleFrontEnd"] = flixel_system_frontEnds_ConsoleFrontEnd;
flixel_system_frontEnds_ConsoleFrontEnd.__name__ = "flixel.system.frontEnds.ConsoleFrontEnd";
flixel_system_frontEnds_ConsoleFrontEnd.prototype = {
autoPause: null
,stepAfterCommand: null
,registerFunction: function(FunctionAlias,Function1) {
}
,registerObject: function(ObjectAlias,AnyObject) {
}
,registerClass: function(cl) {
}
,registerEnum: function(e) {
}
,__class__: flixel_system_frontEnds_ConsoleFrontEnd
};
var flixel_system_frontEnds_DebuggerFrontEnd = function() {
this.visible = false;
this.visibilityChanged = new flixel_util__$FlxSignal_FlxSignal0();
this.drawDebugChanged = new flixel_util__$FlxSignal_FlxSignal0();
this.drawDebug = false;
this.toggleKeys = [113,192,220];
this.precision = 3;
};
$hxClasses["flixel.system.frontEnds.DebuggerFrontEnd"] = flixel_system_frontEnds_DebuggerFrontEnd;
flixel_system_frontEnds_DebuggerFrontEnd.__name__ = "flixel.system.frontEnds.DebuggerFrontEnd";
flixel_system_frontEnds_DebuggerFrontEnd.prototype = {
precision: null
,toggleKeys: null
,drawDebug: null
,drawDebugChanged: null
,visibilityChanged: null
,visible: null
,setLayout: function(Layout) {
}
,resetLayout: function() {
}
,addButton: function(Alignment,Icon,UpHandler,ToggleMode,UpdateLayout) {
if(UpdateLayout == null) {
UpdateLayout = true;
}
if(ToggleMode == null) {
ToggleMode = false;
}
return null;
}
,track: function(ObjectOrClass,WindowTitle) {
return null;
}
,addTrackerProfile: function(Profile) {
}
,removeButton: function(Button,UpdateLayout) {
if(UpdateLayout == null) {
UpdateLayout = true;
}
}
,set_drawDebug: function(Value) {
if(this.drawDebug == Value) {
return this.drawDebug;
}
this.drawDebug = Value;
return this.drawDebug;
}
,set_visible: function(Value) {
if(this.visible == Value) {
return this.visible;
}
this.visible = Value;
return this.visible;
}
,__class__: flixel_system_frontEnds_DebuggerFrontEnd
,__properties__: {set_visible:"set_visible",set_drawDebug:"set_drawDebug"}
};
var flixel_system_frontEnds_HTML5FrontEnd = function() {
this.browser = this.getBrowser();
this.platform = this.getPlatform();
this.onMobile = this.getOnMobile();
};
$hxClasses["flixel.system.frontEnds.HTML5FrontEnd"] = flixel_system_frontEnds_HTML5FrontEnd;
flixel_system_frontEnds_HTML5FrontEnd.__name__ = "flixel.system.frontEnds.HTML5FrontEnd";
flixel_system_frontEnds_HTML5FrontEnd.prototype = {
browser: null
,platform: null
,onMobile: null
,browserPosition: null
,getBrowser: function() {
if(this.userAgentContains(" OPR/")) {
return flixel_system_frontEnds_FlxBrowser.OPERA;
} else if(this.userAgentContains("chrome",true)) {
return flixel_system_frontEnds_FlxBrowser.CHROME;
} else if($global.navigator.appName == "Netscape") {
return flixel_system_frontEnds_FlxBrowser.FIREFOX;
} else if(document.documentMode) {
return flixel_system_frontEnds_FlxBrowser.INTERNET_EXPLORER;
} else if(Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor") > 0) {
return flixel_system_frontEnds_FlxBrowser.SAFARI;
}
return flixel_system_frontEnds_FlxBrowser.UNKNOWN;
}
,getPlatform: function() {
if(this.userAgentContains("Win")) {
return flixel_system_frontEnds_FlxPlatform.WINDOWS;
} else if(this.userAgentContains("IEMobile")) {
return flixel_system_frontEnds_FlxPlatform.WINDOWS_PHONE;
} else if(this.userAgentContains("Android")) {
return flixel_system_frontEnds_FlxPlatform.ANDROID;
} else if(this.userAgentContains("Linux")) {
return flixel_system_frontEnds_FlxPlatform.LINUX;
} else if(this.userAgentContains("BlackBerry")) {
return flixel_system_frontEnds_FlxPlatform.BLACKBERRY;
} else if(this.userAgentContains("iPhone")) {
return flixel_system_frontEnds_FlxPlatform.IOS(flixel_system_frontEnds_FlxIOSDevice.IPHONE);
} else if(this.userAgentContains("iPad")) {
return flixel_system_frontEnds_FlxPlatform.IOS(flixel_system_frontEnds_FlxIOSDevice.IPAD);
} else if(this.userAgentContains("iPod")) {
return flixel_system_frontEnds_FlxPlatform.IOS(flixel_system_frontEnds_FlxIOSDevice.IPOD);
} else if(this.userAgentContains("Mac")) {
return flixel_system_frontEnds_FlxPlatform.MAC;
} else {
return flixel_system_frontEnds_FlxPlatform.UNKNOWN;
}
}
,getOnMobile: function() {
var _g = this.platform;
switch(_g._hx_index) {
case 3:case 4:case 5:
return true;
case 6:
var _g1 = _g.device;
return true;
default:
return false;
}
}
,userAgentContains: function(substring,toLowerCase) {
if(toLowerCase == null) {
toLowerCase = false;
}
var userAgent = $global.navigator.userAgent;
if(toLowerCase) {
userAgent = userAgent.toLowerCase();
}
return userAgent.indexOf(substring) != -1;
}
,get_browserPosition: function() {
if(this.browserPosition == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.browserPosition = point;
}
this.browserPosition.set(window.screenX,window.screenY);
return this.browserPosition;
}
,get_browserWidth: function() {
return window.innerWidth;
}
,get_browserHeight: function() {
return window.innerHeight;
}
,__class__: flixel_system_frontEnds_HTML5FrontEnd
,__properties__: {get_browserPosition:"get_browserPosition",get_browserHeight:"get_browserHeight",get_browserWidth:"get_browserWidth"}
};
var flixel_system_frontEnds_InputFrontEnd = function() {
this.resetOnStateSwitch = true;
this.list = [];
};
$hxClasses["flixel.system.frontEnds.InputFrontEnd"] = flixel_system_frontEnds_InputFrontEnd;
flixel_system_frontEnds_InputFrontEnd.__name__ = "flixel.system.frontEnds.InputFrontEnd";
flixel_system_frontEnds_InputFrontEnd.prototype = {
add_flixel_input_actions_FlxActionManager: function(Input) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) {
return Input;
}
}
this.list.push(Input);
return Input;
}
,add_flixel_input_gamepad_FlxGamepadManager: function(Input) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) {
return Input;
}
}
this.list.push(Input);
return Input;
}
,add_flixel_input_touch_FlxTouchManager: function(Input) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) {
return Input;
}
}
this.list.push(Input);
return Input;
}
,add_flixel_input_keyboard_FlxKeyboard: function(Input) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) {
return Input;
}
}
this.list.push(Input);
return Input;
}
,replace_flixel_input_mouse_FlxMouse: function(Old,New) {
var i = 0;
var success = false;
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(input == Old) {
this.list[i] = New;
success = true;
break;
}
++i;
}
if(success) {
return New;
}
return null;
}
,add_flixel_input_mouse_FlxMouse: function(Input) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) {
return Input;
}
}
this.list.push(Input);
return Input;
}
,list: null
,resetOnStateSwitch: null
,reset: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.reset();
}
}
,update: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.update();
}
}
,onFocus: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.onFocus();
}
}
,onFocusLost: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.onFocusLost();
}
}
,onStateSwitch: function() {
if(this.resetOnStateSwitch) {
this.reset();
}
}
,destroy: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input = flixel_util_FlxDestroyUtil.destroy(input);
}
}
,__class__: flixel_system_frontEnds_InputFrontEnd
};
var flixel_system_frontEnds_LogFrontEnd = function() {
this.redirectTraces = false;
this._standardTraceFunction = haxe_Log.trace;
};
$hxClasses["flixel.system.frontEnds.LogFrontEnd"] = flixel_system_frontEnds_LogFrontEnd;
flixel_system_frontEnds_LogFrontEnd.__name__ = "flixel.system.frontEnds.LogFrontEnd";
flixel_system_frontEnds_LogFrontEnd.prototype = {
redirectTraces: null
,_standardTraceFunction: null
,add: function(Data) {
}
,warn: function(Data) {
}
,error: function(Data) {
}
,notice: function(Data) {
}
,advanced: function(Data,Style,FireOnce) {
if(FireOnce == null) {
FireOnce = false;
}
}
,clear: function() {
}
,set_redirectTraces: function(Redirect) {
haxe_Log.trace = Redirect ? $bind(this,this.processTraceData) : this._standardTraceFunction;
return this.redirectTraces = Redirect;
}
,processTraceData: function(Data,Info) {
var paramArray = [Data];
if(Info.customParams != null) {
var _g = 0;
var _g1 = Info.customParams;
while(_g < _g1.length) {
var i = _g1[_g];
++_g;
paramArray.push(i);
}
}
this.advanced(paramArray,flixel_system_debug_log_LogStyle.NORMAL);
}
,__class__: flixel_system_frontEnds_LogFrontEnd
,__properties__: {set_redirectTraces:"set_redirectTraces"}
};
var haxe_Log = function() { };
$hxClasses["haxe.Log"] = haxe_Log;
haxe_Log.__name__ = "haxe.Log";
haxe_Log.formatOutput = function(v,infos) {
var str = Std.string(v);
if(infos == null) {
return str;
}
var pstr = infos.fileName + ":" + infos.lineNumber;
if(infos.customParams != null) {
var _g = 0;
var _g1 = infos.customParams;
while(_g < _g1.length) {
var v = _g1[_g];
++_g;
str += ", " + Std.string(v);
}
}
return pstr + ": " + str;
};
haxe_Log.trace = function(v,infos) {
var str = haxe_Log.formatOutput(v,infos);
if(typeof(console) != "undefined" && console.log != null) {
console.log(str);
}
};
var js_Boot = function() { };
$hxClasses["js.Boot"] = js_Boot;
js_Boot.__name__ = "js.Boot";
js_Boot.getClass = function(o) {
if(o == null) {
return null;
} else if(((o) instanceof Array)) {
return Array;
} else {
var cl = o.__class__;
if(cl != null) {
return cl;
}
var name = js_Boot.__nativeClassName(o);
if(name != null) {
return js_Boot.__resolveNativeClass(name);
}
return null;
}
};
js_Boot.__string_rec = function(o,s) {
if(o == null) {
return "null";
}
if(s.length >= 5) {
return "<...>";
}
var t = typeof(o);
if(t == "function" && (o.__name__ || o.__ename__)) {
t = "object";
}
switch(t) {
case "function":
return "<function>";
case "object":
if(o.__enum__) {
var e = $hxEnums[o.__enum__];
var n = e.__constructs__[o._hx_index];
var con = e[n];
if(con.__params__) {
s = s + "\t";
return n + "(" + ((function($this) {
var $r;
var _g = [];
{
var _g1 = 0;
var _g2 = con.__params__;
while(true) {
if(!(_g1 < _g2.length)) {
break;
}
var p = _g2[_g1];
_g1 = _g1 + 1;
_g.push(js_Boot.__string_rec(o[p],s));
}
}
$r = _g;
return $r;
}(this))).join(",") + ")";
} else {
return n;
}
}
if(((o) instanceof Array)) {
var str = "[";
s += "\t";
var _g = 0;
var _g1 = o.length;
while(_g < _g1) {
var i = _g++;
str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
}
str += "]";
return str;
}
var tostr;
try {
tostr = o.toString;
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
return "???";
}
if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
var s2 = o.toString();
if(s2 != "[object Object]") {
return s2;
}
}
var str = "{\n";
s += "\t";
var hasp = o.hasOwnProperty != null;
var k = null;
for( k in o ) {
if(hasp && !o.hasOwnProperty(k)) {
continue;
}
if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
continue;
}
if(str.length != 2) {
str += ", \n";
}
str += s + k + " : " + js_Boot.__string_rec(o[k],s);
}
s = s.substring(1);
str += "\n" + s + "}";
return str;
case "string":
return o;
default:
return String(o);
}
};
js_Boot.__interfLoop = function(cc,cl) {
if(cc == null) {
return false;
}
if(cc == cl) {
return true;
}
var intf = cc.__interfaces__;
if(intf != null) {
var _g = 0;
var _g1 = intf.length;
while(_g < _g1) {
var i = _g++;
var i1 = intf[i];
if(i1 == cl || js_Boot.__interfLoop(i1,cl)) {
return true;
}
}
}
return js_Boot.__interfLoop(cc.__super__,cl);
};
js_Boot.__instanceof = function(o,cl) {
if(cl == null) {
return false;
}
switch(cl) {
case Array:
return ((o) instanceof Array);
case Bool:
return typeof(o) == "boolean";
case Dynamic:
return o != null;
case Float:
return typeof(o) == "number";
case 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(js_Boot.__downcastCheck(o,cl)) {
return true;
}
} else if(typeof(cl) == "object" && js_Boot.__isNativeObj(cl)) {
if(((o) instanceof cl)) {
return true;
}
}
} else {
return false;
}
if(cl == Class ? o.__name__ != null : false) {
return true;
}
if(cl == Enum ? o.__ename__ != null : false) {
return true;
}
return o.__enum__ != null ? $hxEnums[o.__enum__] == cl : false;
}
};
js_Boot.__downcastCheck = function(o,cl) {
if(!((o) instanceof cl)) {
if(cl.__isInterface__) {
return js_Boot.__interfLoop(js_Boot.getClass(o),cl);
} else {
return false;
}
} else {
return true;
}
};
js_Boot.__implements = function(o,iface) {
return js_Boot.__interfLoop(js_Boot.getClass(o),iface);
};
js_Boot.__cast = function(o,t) {
if(o == null || js_Boot.__instanceof(o,t)) {
return o;
} else {
throw haxe_Exception.thrown("Cannot cast " + Std.string(o) + " to " + Std.string(t));
}
};
js_Boot.__toStr = null;
js_Boot.__nativeClassName = function(o) {
var name = js_Boot.__toStr.call(o).slice(8,-1);
if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") {
return null;
}
return name;
};
js_Boot.__isNativeObj = function(o) {
return js_Boot.__nativeClassName(o) != null;
};
js_Boot.__resolveNativeClass = function(name) {
return $global[name];
};
var flixel_math_FlxRandom = function(InitialSeed) {
this.internalSeed = 1;
this._floatNormalRho = 0;
this._twoPI = Math.PI * 2;
this._floatNormalRand2 = 0;
this._floatNormalRand1 = 0;
this._hasFloatNormalSpare = false;
this.initialSeed = 1;
if(InitialSeed != null) {
var lowerBound = InitialSeed < 1 ? 1 : InitialSeed;
var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
this.initialSeed = (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0;
} else {
var Value = Math.random() * 2147483647 | 0;
var lowerBound = Value < 1 ? 1 : Value;
var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
this.initialSeed = (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0;
}
};
$hxClasses["flixel.math.FlxRandom"] = flixel_math_FlxRandom;
flixel_math_FlxRandom.__name__ = "flixel.math.FlxRandom";
flixel_math_FlxRandom.rangeBound = function(Value) {
var lowerBound = Value < 1 ? 1 : Value;
return (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
};
flixel_math_FlxRandom.prototype = {
getObject_flixel_group_FlxTypedGroup_T: function(Objects,WeightsArray,StartIndex,EndIndex) {
if(StartIndex == null) {
StartIndex = 0;
}
var selected = null;
if(Objects.length != 0) {
if(WeightsArray == null) {
var _g = [];
var _g1 = 0;
var _g2 = Objects.length;
while(_g1 < _g2) {
var i = _g1++;
_g.push(1);
}
WeightsArray = _g;
}
if(EndIndex == null) {
EndIndex = Objects.length - 1;
}
var Max = Objects.length - 1;
var lowerBound = StartIndex < 0 ? 0 : StartIndex;
StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
var Max = Objects.length - 1;
var lowerBound = EndIndex < 0 ? 0 : EndIndex;
EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
if(EndIndex < StartIndex) {
StartIndex += EndIndex;
EndIndex = StartIndex - EndIndex;
StartIndex -= EndIndex;
}
if(EndIndex > WeightsArray.length - 1) {
EndIndex = WeightsArray.length - 1;
}
var _g = [];
var _g1 = StartIndex;
var _g2 = EndIndex + 1;
while(_g1 < _g2) {
var i = _g1++;
_g.push(WeightsArray[i]);
}
flixel_math_FlxRandom._arrayFloatHelper = _g;
selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)];
}
return selected;
}
,getObject_flixel_system_FlxSound: function(Objects,WeightsArray,StartIndex,EndIndex) {
if(StartIndex == null) {
StartIndex = 0;
}
var selected = null;
if(Objects.length != 0) {
if(WeightsArray == null) {
var _g = [];
var _g1 = 0;
var _g2 = Objects.length;
while(_g1 < _g2) {
var i = _g1++;
_g.push(1);
}
WeightsArray = _g;
}
if(EndIndex == null) {
EndIndex = Objects.length - 1;
}
var Max = Objects.length - 1;
var lowerBound = StartIndex < 0 ? 0 : StartIndex;
StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
var Max = Objects.length - 1;
var lowerBound = EndIndex < 0 ? 0 : EndIndex;
EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
if(EndIndex < StartIndex) {
StartIndex += EndIndex;
EndIndex = StartIndex - EndIndex;
StartIndex -= EndIndex;
}
if(EndIndex > WeightsArray.length - 1) {
EndIndex = WeightsArray.length - 1;
}
var _g = [];
var _g1 = StartIndex;
var _g2 = EndIndex + 1;
while(_g1 < _g2) {
var i = _g1++;
_g.push(WeightsArray[i]);
}
flixel_math_FlxRandom._arrayFloatHelper = _g;
selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)];
}
return selected;
}
,getObject_Array_String: function(Objects,WeightsArray,StartIndex,EndIndex) {
if(StartIndex == null) {
StartIndex = 0;
}
var selected = null;
if(Objects.length != 0) {
if(WeightsArray == null) {
var _g = [];
var _g1 = 0;
var _g2 = Objects.length;
while(_g1 < _g2) {
var i = _g1++;
_g.push(1);
}
WeightsArray = _g;
}
if(EndIndex == null) {
EndIndex = Objects.length - 1;
}
var Max = Objects.length - 1;
var lowerBound = StartIndex < 0 ? 0 : StartIndex;
StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
var Max = Objects.length - 1;
var lowerBound = EndIndex < 0 ? 0 : EndIndex;
EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
if(EndIndex < StartIndex) {
StartIndex += EndIndex;
EndIndex = StartIndex - EndIndex;
StartIndex -= EndIndex;
}
if(EndIndex > WeightsArray.length - 1) {
EndIndex = WeightsArray.length - 1;
}
var _g = [];
var _g1 = StartIndex;
var _g2 = EndIndex + 1;
while(_g1 < _g2) {
var i = _g1++;
_g.push(WeightsArray[i]);
}
flixel_math_FlxRandom._arrayFloatHelper = _g;
selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)];
}
return selected;
}
,initialSeed: null
,resetInitialSeed: function() {
var Value = Math.random() * 2147483647 | 0;
var lowerBound = Value < 1 ? 1 : Value;
var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
return this.initialSeed = (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0;
}
,int: function(Min,Max,Excludes) {
if(Max == null) {
Max = 2147483647;
}
if(Min == null) {
Min = 0;
}
if(Min == 0 && Max == 2147483647 && Excludes == null) {
return (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) | 0;
} else if(Min == Max) {
return Min;
} else {
if(Min > Max) {
Min += Max;
Max = Min - Max;
Min -= Max;
}
if(Excludes == null) {
return Math.floor(Min + (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647 * (Max - Min + 1));
} else {
var result = 0;
while(true) {
result = Math.floor(Min + (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647 * (Max - Min + 1));
if(!(Excludes.indexOf(result) >= 0)) {
break;
}
}
return result;
}
}
}
,float: function(Min,Max,Excludes) {
if(Max == null) {
Max = 1;
}
if(Min == null) {
Min = 0;
}
var result = 0;
if(Min == 0 && Max == 1 && Excludes == null) {
return (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647;
} else if(Min == Max) {
result = Min;
} else {
if(Min > Max) {
Min += Max;
Max = Min - Max;
Min -= Max;
}
if(Excludes == null) {
result = Min + (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647 * (Max - Min);
} else {
while(true) {
result = Min + (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647 * (Max - Min);
if(!(Excludes.indexOf(result) >= 0)) {
break;
}
}
}
}
return result;
}
,_hasFloatNormalSpare: null
,_floatNormalRand1: null
,_floatNormalRand2: null
,_twoPI: null
,_floatNormalRho: null
,floatNormal: function(Mean,StdDev) {
if(StdDev == null) {
StdDev = 1;
}
if(Mean == null) {
Mean = 0;
}
if(this._hasFloatNormalSpare) {
this._hasFloatNormalSpare = false;
var scale = StdDev * this._floatNormalRho;
return Mean + scale * this._floatNormalRand2;
}
this._hasFloatNormalSpare = true;
var theta = this._twoPI * ((this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647);
this._floatNormalRho = Math.sqrt(-2 * Math.log(1 - (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647));
var scale = StdDev * this._floatNormalRho;
this._floatNormalRand1 = Math.cos(theta);
this._floatNormalRand2 = Math.sin(theta);
return Mean + scale * this._floatNormalRand1;
}
,bool: function(Chance) {
if(Chance == null) {
Chance = 50;
}
return this.float(0,100) < Chance;
}
,sign: function(Chance) {
if(Chance == null) {
Chance = 50;
}
var Chance1 = Chance;
if(Chance1 == null) {
Chance1 = 50;
}
if(this.float(0,100) < Chance1) {
return 1;
} else {
return -1;
}
}
,weightedPick: function(WeightsArray) {
var totalWeight = 0;
var pick = 0;
var _g = 0;
while(_g < WeightsArray.length) {
var i = WeightsArray[_g];
++_g;
totalWeight += i;
}
totalWeight = this.float(0,totalWeight);
var _g = 0;
var _g1 = WeightsArray.length;
while(_g < _g1) {
var i = _g++;
if(totalWeight < WeightsArray[i]) {
pick = i;
break;
}
totalWeight -= WeightsArray[i];
}
return pick;
}
,color: function(Min,Max,Alpha,GreyScale) {
if(GreyScale == null) {
GreyScale = false;
}
var red;
var green;
var blue;
var alpha;
if(Min == null && Max == null) {
red = this.int(0,255);
green = this.int(0,255);
blue = this.int(0,255);
alpha = Alpha == null ? this.int(0,255) : Alpha;
} else if(Max == null) {
red = this.int(Min >> 16 & 255,255);
green = GreyScale ? red : this.int(Min >> 8 & 255,255);
blue = GreyScale ? red : this.int(Min & 255,255);
alpha = Alpha == null ? this.int(Min >> 24 & 255,255) : Alpha;
} else if(Min == null) {
red = this.int(0,Max >> 16 & 255);
green = GreyScale ? red : this.int(0,Max >> 8 & 255);
blue = GreyScale ? red : this.int(0,Max & 255);
alpha = Alpha == null ? this.int(0,Max >> 24 & 255) : Alpha;
} else {
red = this.int(Min >> 16 & 255,Max >> 16 & 255);
green = GreyScale ? red : this.int(Min >> 8 & 255,Max >> 8 & 255);
blue = GreyScale ? red : this.int(Min & 255,Max & 255);
alpha = Alpha == null ? this.int(Min >> 24 & 255,Max >> 24 & 255) : Alpha;
}
var Alpha = alpha;
if(Alpha == null) {
Alpha = 255;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 255;
}
color &= -16711681;
color |= (red > 255 ? 255 : red < 0 ? 0 : red) << 16;
color &= -65281;
color |= (green > 255 ? 255 : green < 0 ? 0 : green) << 8;
color &= -256;
color |= blue > 255 ? 255 : blue < 0 ? 0 : blue;
color &= 16777215;
color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24;
return color;
}
,generate: function() {
return this.internalSeed = this.internalSeed * 48271.0 % 2147483647;
}
,internalSeed: null
,set_initialSeed: function(NewSeed) {
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
return this.initialSeed = (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0;
}
,get_currentSeed: function() {
return this.internalSeed | 0;
}
,set_currentSeed: function(NewSeed) {
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
return (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0;
}
,__class__: flixel_math_FlxRandom
,__properties__: {set_currentSeed:"set_currentSeed",get_currentSeed:"get_currentSeed",set_initialSeed:"set_initialSeed"}
};
var flixel_util_FlxSave = function() {
this._closeRequested = false;
};
$hxClasses["flixel.util.FlxSave"] = flixel_util_FlxSave;
flixel_util_FlxSave.__name__ = "flixel.util.FlxSave";
flixel_util_FlxSave.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_util_FlxSave.prototype = {
data: null
,name: null
,path: null
,_sharedObject: null
,_onComplete: null
,_closeRequested: null
,destroy: function() {
this._sharedObject = null;
this.name = null;
this.path = null;
this.data = null;
this._onComplete = null;
this._closeRequested = false;
}
,bind: function(Name,Path) {
this.destroy();
this.name = Name;
this.path = Path;
try {
this._sharedObject = openfl_net_SharedObject.getLocal(this.name,this.path);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(((haxe_Exception.caught(_g).unwrap()) instanceof openfl_errors_Error)) {
this.destroy();
return false;
} else {
throw _g;
}
}
this.data = this._sharedObject.data;
return true;
}
,close: function(MinFileSize,OnComplete) {
if(MinFileSize == null) {
MinFileSize = 0;
}
this._closeRequested = true;
return this.flush(MinFileSize,OnComplete);
}
,flush: function(MinFileSize,OnComplete) {
if(MinFileSize == null) {
MinFileSize = 0;
}
if(!this.checkBinding()) {
return false;
}
this._onComplete = OnComplete;
var result = null;
try {
result = this._sharedObject.flush();
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(((haxe_Exception.caught(_g).unwrap()) instanceof openfl_errors_Error)) {
return this.onDone(flixel_util_FlxSaveStatus.ERROR);
} else {
throw _g;
}
}
return this.onDone(result == 0 ? flixel_util_FlxSaveStatus.SUCCESS : flixel_util_FlxSaveStatus.PENDING);
}
,erase: function() {
if(!this.checkBinding()) {
return false;
}
this._sharedObject.clear();
this.data = { };
return true;
}
,onDone: function(Result) {
switch(Result._hx_index) {
case 1:
break;
case 2:
break;
default:
}
if(this._onComplete != null) {
this._onComplete(Result == flixel_util_FlxSaveStatus.SUCCESS);
}
if(this._closeRequested) {
this.destroy();
}
return Result == flixel_util_FlxSaveStatus.SUCCESS;
}
,checkBinding: function() {
if(this._sharedObject == null) {
return false;
}
return true;
}
,__class__: flixel_util_FlxSave
};
var flixel_system_scaleModes_BaseScaleMode = function() {
this.verticalAlign = flixel_util_FlxVerticalAlign.CENTER;
this.horizontalAlign = flixel_util_FlxHorizontalAlign.CENTER;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.deviceSize = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.gameSize = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.scale = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.offset = point;
};
$hxClasses["flixel.system.scaleModes.BaseScaleMode"] = flixel_system_scaleModes_BaseScaleMode;
flixel_system_scaleModes_BaseScaleMode.__name__ = "flixel.system.scaleModes.BaseScaleMode";
flixel_system_scaleModes_BaseScaleMode.prototype = {
deviceSize: null
,gameSize: null
,scale: null
,offset: null
,horizontalAlign: null
,verticalAlign: null
,onMeasure: function(Width,Height) {
flixel_FlxG.width = flixel_FlxG.initialWidth;
flixel_FlxG.height = flixel_FlxG.initialHeight;
this.updateGameSize(Width,Height);
this.updateDeviceSize(Width,Height);
this.updateScaleOffset();
this.updateGamePosition();
}
,updateGameSize: function(Width,Height) {
this.gameSize.set(Width,Height);
}
,updateDeviceSize: function(Width,Height) {
this.deviceSize.set(Width,Height);
}
,updateScaleOffset: function() {
this.scale.set_x(this.gameSize.x / (flixel_FlxG.width * flixel_FlxG.initialZoom));
this.scale.set_y(this.gameSize.y / (flixel_FlxG.height * flixel_FlxG.initialZoom));
this.updateOffsetX();
this.updateOffsetY();
}
,updateOffsetX: function() {
var tmp;
switch(this.horizontalAlign._hx_index) {
case 0:
tmp = 0;
break;
case 1:
tmp = Math.ceil((this.deviceSize.x - this.gameSize.x) * 0.5);
break;
case 2:
tmp = this.deviceSize.x - this.gameSize.x;
break;
}
this.offset.set_x(tmp);
}
,updateOffsetY: function() {
var tmp;
switch(this.verticalAlign._hx_index) {
case 0:
tmp = 0;
break;
case 1:
tmp = Math.ceil((this.deviceSize.y - this.gameSize.y) * 0.5);
break;
case 2:
tmp = this.deviceSize.y - this.gameSize.y;
break;
}
this.offset.set_y(tmp);
}
,updateGamePosition: function() {
if(flixel_FlxG.game == null) {
return;
}
flixel_FlxG.game.set_x(this.offset.x);
flixel_FlxG.game.set_y(this.offset.y);
}
,set_horizontalAlign: function(value) {
this.horizontalAlign = value;
if(this.offset != null) {
this.updateOffsetX();
this.updateGamePosition();
}
return value;
}
,set_verticalAlign: function(value) {
this.verticalAlign = value;
if(this.offset != null) {
this.updateOffsetY();
this.updateGamePosition();
}
return value;
}
,__class__: flixel_system_scaleModes_BaseScaleMode
,__properties__: {set_verticalAlign:"set_verticalAlign",set_horizontalAlign:"set_horizontalAlign"}
};
var flixel_system_scaleModes_RatioScaleMode = function(fillScreen) {
if(fillScreen == null) {
fillScreen = false;
}
flixel_system_scaleModes_BaseScaleMode.call(this);
this.fillScreen = fillScreen;
};
$hxClasses["flixel.system.scaleModes.RatioScaleMode"] = flixel_system_scaleModes_RatioScaleMode;
flixel_system_scaleModes_RatioScaleMode.__name__ = "flixel.system.scaleModes.RatioScaleMode";
flixel_system_scaleModes_RatioScaleMode.__super__ = flixel_system_scaleModes_BaseScaleMode;
flixel_system_scaleModes_RatioScaleMode.prototype = $extend(flixel_system_scaleModes_BaseScaleMode.prototype,{
fillScreen: null
,updateGameSize: function(Width,Height) {
var ratio = flixel_FlxG.width / flixel_FlxG.height;
var realRatio = Width / Height;
var scaleY = realRatio < ratio;
if(this.fillScreen) {
scaleY = !scaleY;
}
if(scaleY) {
this.gameSize.set_x(Width);
this.gameSize.set_y(Math.floor(this.gameSize.x / ratio));
} else {
this.gameSize.set_y(Height);
this.gameSize.set_x(Math.floor(this.gameSize.y * ratio));
}
}
,__class__: flixel_system_scaleModes_RatioScaleMode
});
var flixel_system_frontEnds_SignalFrontEnd = function() {
this.focusLost = new flixel_util__$FlxSignal_FlxSignal0();
this.focusGained = new flixel_util__$FlxSignal_FlxSignal0();
this.postDraw = new flixel_util__$FlxSignal_FlxSignal0();
this.preDraw = new flixel_util__$FlxSignal_FlxSignal0();
this.postUpdate = new flixel_util__$FlxSignal_FlxSignal0();
this.preUpdate = new flixel_util__$FlxSignal_FlxSignal0();
this.postGameStart = new flixel_util__$FlxSignal_FlxSignal0();
this.preGameStart = new flixel_util__$FlxSignal_FlxSignal0();
this.postGameReset = new flixel_util__$FlxSignal_FlxSignal0();
this.preGameReset = new flixel_util__$FlxSignal_FlxSignal0();
this.gameResized = new flixel_util__$FlxSignal_FlxSignal2();
this.preStateCreate = new flixel_util__$FlxSignal_FlxSignal1();
this.postStateSwitch = new flixel_util__$FlxSignal_FlxSignal0();
this.preStateSwitch = new flixel_util__$FlxSignal_FlxSignal0();
};
$hxClasses["flixel.system.frontEnds.SignalFrontEnd"] = flixel_system_frontEnds_SignalFrontEnd;
flixel_system_frontEnds_SignalFrontEnd.__name__ = "flixel.system.frontEnds.SignalFrontEnd";
flixel_system_frontEnds_SignalFrontEnd.prototype = {
preStateSwitch: null
,postStateSwitch: null
,preStateCreate: null
,gameResized: null
,preGameReset: null
,postGameReset: null
,preGameStart: null
,postGameStart: null
,preUpdate: null
,postUpdate: null
,preDraw: null
,postDraw: null
,focusGained: null
,focusLost: null
,get_stateSwitched: function() {
return this.preStateSwitch;
}
,get_gameStarted: function() {
return this.postGameStart;
}
,__class__: flixel_system_frontEnds_SignalFrontEnd
,__properties__: {get_gameStarted:"get_gameStarted",get_stateSwitched:"get_stateSwitched"}
};
var flixel_system_frontEnds_WatchFrontEnd = function() {
};
$hxClasses["flixel.system.frontEnds.WatchFrontEnd"] = flixel_system_frontEnds_WatchFrontEnd;
flixel_system_frontEnds_WatchFrontEnd.__name__ = "flixel.system.frontEnds.WatchFrontEnd";
flixel_system_frontEnds_WatchFrontEnd.prototype = {
add: function(object,field,displayName) {
}
,remove: function(object,field) {
}
,addQuick: function(displayName,value) {
}
,removeQuick: function(displayName) {
}
,addExpression: function(expression,displayName) {
}
,removeExpression: function(displayName) {
}
,addMouse: function() {
}
,removeMouse: function() {
}
,__class__: flixel_system_frontEnds_WatchFrontEnd
};
var flixel_FlxG = function() { };
$hxClasses["flixel.FlxG"] = flixel_FlxG;
flixel_FlxG.__name__ = "flixel.FlxG";
flixel_FlxG.__properties__ = {set_mouse:"set_mouse",set_fullscreen:"set_fullscreen",get_fullscreen:"get_fullscreen",set_scaleMode:"set_scaleMode",get_onMobile:"get_onMobile",set_drawFramerate:"set_drawFramerate",set_updateFramerate:"set_updateFramerate",get_state:"get_state",get_stage:"get_stage"};
flixel_FlxG.camera = null;
flixel_FlxG.game = null;
flixel_FlxG.updateFramerate = null;
flixel_FlxG.drawFramerate = null;
flixel_FlxG.renderMethod = null;
flixel_FlxG.renderBlit = null;
flixel_FlxG.renderTile = null;
flixel_FlxG.width = null;
flixel_FlxG.height = null;
flixel_FlxG.mouse = null;
flixel_FlxG.touches = null;
flixel_FlxG.keys = null;
flixel_FlxG.gamepads = null;
flixel_FlxG.accelerometer = null;
flixel_FlxG.vcr = null;
flixel_FlxG.plugins = null;
flixel_FlxG.sound = null;
flixel_FlxG.resizeGame = function(Width,Height) {
flixel_FlxG.scaleMode.onMeasure(Width,Height);
};
flixel_FlxG.resizeWindow = function(Width,Height) {
};
flixel_FlxG.resetGame = function() {
flixel_FlxG.game._resetGame = true;
};
flixel_FlxG.switchState = function(nextState) {
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
};
flixel_FlxG.resetState = function() {
var nextState = Type.createInstance(js_Boot.getClass(flixel_FlxG.game._state),[]);
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
};
flixel_FlxG.overlap = function(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,ProcessCallback) {
if(ObjectOrGroup1 == null) {
ObjectOrGroup1 = flixel_FlxG.game._state;
}
if(ObjectOrGroup2 == ObjectOrGroup1) {
ObjectOrGroup2 = null;
}
flixel_system_FlxQuadTree.divisions = flixel_FlxG.worldDivisions;
var quadTree = flixel_system_FlxQuadTree.recycle(flixel_FlxG.worldBounds.x,flixel_FlxG.worldBounds.y,flixel_FlxG.worldBounds.width,flixel_FlxG.worldBounds.height);
quadTree.load(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,ProcessCallback);
var result = quadTree.execute();
quadTree.destroy();
return result;
};
flixel_FlxG.pixelPerfectOverlap = function(Sprite1,Sprite2,AlphaTolerance,Camera) {
if(AlphaTolerance == null) {
AlphaTolerance = 255;
}
return flixel_util_FlxCollision.pixelPerfectCheck(Sprite1,Sprite2,AlphaTolerance,Camera);
};
flixel_FlxG.collide = function(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback) {
return flixel_FlxG.overlap(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,flixel_FlxObject.separate);
};
flixel_FlxG.addChildBelowMouse = function(Child,IndexModifier) {
if(IndexModifier == null) {
IndexModifier = 0;
}
var index = flixel_FlxG.game.getChildIndex(flixel_FlxG.game._inputContainer);
var max = flixel_FlxG.game.get_numChildren();
index = flixel_math_FlxMath.maxAdd(index,IndexModifier,max);
flixel_FlxG.game.addChildAt(Child,index);
return Child;
};
flixel_FlxG.removeChild = function(Child) {
if(flixel_FlxG.game.contains(Child)) {
flixel_FlxG.game.removeChild(Child);
}
return Child;
};
flixel_FlxG.addPostProcess = function(postProcess) {
return postProcess;
};
flixel_FlxG.removePostProcess = function(postProcess) {
};
flixel_FlxG.openURL = function(URL1,Target) {
if(Target == null) {
Target = "_blank";
}
var prefix = "";
if(!new EReg("^https?://","").match(URL1)) {
prefix = "http://";
}
openfl_Lib.getURL(new openfl_net_URLRequest(prefix + URL1),Target);
};
flixel_FlxG.init = function(Game,Width,Height,Zoom) {
flixel_FlxG.game = Game;
flixel_FlxG.width = Math.abs(Width) | 0;
flixel_FlxG.height = Math.abs(Height) | 0;
flixel_FlxG.initRenderMethod();
flixel_FlxG.initialWidth = flixel_FlxG.width;
flixel_FlxG.initialHeight = flixel_FlxG.height;
flixel_FlxG.initialZoom = flixel_FlxCamera.defaultZoom = Zoom;
var Width = openfl_Lib.get_current().stage.stageWidth;
var Height = openfl_Lib.get_current().stage.stageHeight;
flixel_FlxG.scaleMode.onMeasure(Width,Height);
flixel_FlxG.keys = flixel_FlxG.inputs.add_flixel_input_keyboard_FlxKeyboard(new flixel_input_keyboard_FlxKeyboard());
flixel_FlxG.set_mouse(flixel_FlxG.inputs.add_flixel_input_mouse_FlxMouse(new flixel_input_mouse_FlxMouse(flixel_FlxG.game._inputContainer)));
flixel_FlxG.touches = flixel_FlxG.inputs.add_flixel_input_touch_FlxTouchManager(new flixel_input_touch_FlxTouchManager());
flixel_FlxG.gamepads = flixel_FlxG.inputs.add_flixel_input_gamepad_FlxGamepadManager(new flixel_input_gamepad_FlxGamepadManager());
flixel_FlxG.accelerometer = new flixel_input_FlxAccelerometer();
flixel_FlxG.save.bind("flixel");
flixel_FlxG.plugins = new flixel_system_frontEnds_PluginFrontEnd();
flixel_FlxG.vcr = new flixel_system_frontEnds_VCRFrontEnd();
flixel_FlxG.sound = new flixel_system_frontEnds_SoundFrontEnd();
};
flixel_FlxG.initRenderMethod = function() {
flixel_FlxG.renderMethod = flixel_FlxRenderMethod.BLITTING;
var tmp;
switch(openfl_Lib.get_current().stage.window.context.type) {
case "opengl":case "opengles":case "webgl":
tmp = flixel_FlxRenderMethod.DRAW_TILES;
break;
default:
tmp = flixel_FlxRenderMethod.BLITTING;
}
flixel_FlxG.renderMethod = tmp;
flixel_FlxG.renderBlit = flixel_FlxG.renderMethod == flixel_FlxRenderMethod.BLITTING;
flixel_FlxG.renderTile = flixel_FlxG.renderMethod == flixel_FlxRenderMethod.DRAW_TILES;
flixel_FlxObject.defaultPixelPerfectPosition = flixel_FlxG.renderBlit;
};
flixel_FlxG.reset = function() {
var _this = flixel_FlxG.random;
var Value = Math.random() * 2147483647 | 0;
var lowerBound = Value < 1 ? 1 : Value;
var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0;
var lowerBound = NewSeed < 1 ? 1 : NewSeed;
_this.initialSeed = (_this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0;
flixel_FlxG.bitmap.reset();
flixel_FlxG.inputs.reset();
flixel_FlxG.sound.destroy(true);
flixel_FlxG.autoPause = true;
flixel_FlxG.fixedTimestep = true;
flixel_FlxG.timeScale = 1.0;
flixel_FlxG.elapsed = 0;
flixel_FlxG.maxElapsed = 0.1;
var _this = flixel_FlxG.worldBounds;
var X = -10;
var Y = -10;
var Width = flixel_FlxG.width + 20;
var Height = flixel_FlxG.height + 20;
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;
flixel_FlxG.worldDivisions = 6;
};
flixel_FlxG.set_scaleMode = function(ScaleMode) {
flixel_FlxG.scaleMode = ScaleMode;
flixel_FlxG.game.onResize(null);
return ScaleMode;
};
flixel_FlxG.set_mouse = function(NewMouse) {
if(flixel_FlxG.mouse == null) {
flixel_FlxG.mouse = flixel_FlxG.inputs.add_flixel_input_mouse_FlxMouse(NewMouse);
return flixel_FlxG.mouse;
}
var oldMouse = flixel_FlxG.mouse;
var result = flixel_FlxG.inputs.replace_flixel_input_mouse_FlxMouse(oldMouse,NewMouse);
if(result != null) {
flixel_FlxG.mouse = result;
oldMouse.destroy();
return NewMouse;
}
return oldMouse;
};
flixel_FlxG.set_updateFramerate = function(Framerate) {
var tmp = Framerate < flixel_FlxG.drawFramerate;
flixel_FlxG.updateFramerate = Framerate;
flixel_FlxG.game._stepMS = Math.abs(1000 / Framerate);
flixel_FlxG.game._stepSeconds = flixel_FlxG.game._stepMS / 1000;
if(flixel_FlxG.game._maxAccumulation < flixel_FlxG.game._stepMS) {
flixel_FlxG.game._maxAccumulation = flixel_FlxG.game._stepMS;
}
return Framerate;
};
flixel_FlxG.set_drawFramerate = function(Framerate) {
var tmp = Framerate > flixel_FlxG.updateFramerate;
flixel_FlxG.drawFramerate = Math.abs(Framerate) | 0;
if(flixel_FlxG.game.stage != null) {
flixel_FlxG.game.stage.set_frameRate(flixel_FlxG.drawFramerate);
}
flixel_FlxG.game._maxAccumulation = 2000 / flixel_FlxG.drawFramerate - 1;
if(flixel_FlxG.game._maxAccumulation < flixel_FlxG.game._stepMS) {
flixel_FlxG.game._maxAccumulation = flixel_FlxG.game._stepMS;
}
return Framerate;
};
flixel_FlxG.get_fullscreen = function() {
if(openfl_Lib.get_current().stage.get_displayState() != 0) {
return openfl_Lib.get_current().stage.get_displayState() == 1;
} else {
return true;
}
};
flixel_FlxG.set_fullscreen = function(Value) {
openfl_Lib.get_current().stage.set_displayState(Value ? 0 : 2);
return Value;
};
flixel_FlxG.get_stage = function() {
return openfl_Lib.get_current().stage;
};
flixel_FlxG.get_state = function() {
return flixel_FlxG.game._state;
};
flixel_FlxG.get_onMobile = function() {
return flixel_FlxG.html5.onMobile;
};
var flixel_FlxRenderMethod = $hxEnums["flixel.FlxRenderMethod"] = { __ename__ : "flixel.FlxRenderMethod", __constructs__ : ["DRAW_TILES","BLITTING"]
,DRAW_TILES: {_hx_index:0,__enum__:"flixel.FlxRenderMethod",toString:$estr}
,BLITTING: {_hx_index:1,__enum__:"flixel.FlxRenderMethod",toString:$estr}
};
var flixel_FlxGame = function(GameWidth,GameHeight,InitialState,Zoom,UpdateFramerate,DrawFramerate,SkipSplash,StartFullscreen) {
if(StartFullscreen == null) {
StartFullscreen = false;
}
if(SkipSplash == null) {
SkipSplash = false;
}
if(DrawFramerate == null) {
DrawFramerate = 60;
}
if(UpdateFramerate == null) {
UpdateFramerate = 60;
}
if(Zoom == null) {
Zoom = 1;
}
if(GameHeight == null) {
GameHeight = 0;
}
if(GameWidth == null) {
GameWidth = 0;
}
this._resetGame = false;
this._skipSplash = false;
this._customSoundTray = flixel_system_ui_FlxSoundTray;
this._lostFocus = false;
this._startTime = 0;
this._total = 0;
this._gameJustStarted = false;
this.filtersEnabled = true;
this.ticks = 0;
this.focusLostFramerate = 10;
openfl_display_Sprite.call(this);
this._inputContainer = new openfl_display_Sprite();
if(GameWidth == 0) {
GameWidth = openfl_Lib.get_current().stage.stageWidth;
}
if(GameHeight == 0) {
GameHeight = openfl_Lib.get_current().stage.stageHeight;
}
flixel_FlxG.init(this,GameWidth,GameHeight,Zoom);
flixel_FlxG.set_updateFramerate(UpdateFramerate);
flixel_FlxG.set_drawFramerate(DrawFramerate);
this._accumulator = this._stepMS;
this._skipSplash = SkipSplash;
this._initialState = InitialState == null ? flixel_FlxState : InitialState;
this.addEventListener("addedToStage",$bind(this,this.create));
};
$hxClasses["flixel.FlxGame"] = flixel_FlxGame;
flixel_FlxGame.__name__ = "flixel.FlxGame";
flixel_FlxGame.__super__ = openfl_display_Sprite;
flixel_FlxGame.prototype = $extend(openfl_display_Sprite.prototype,{
focusLostFramerate: null
,soundTray: null
,ticks: null
,filtersEnabled: null
,_gameJustStarted: null
,_initialState: null
,_state: null
,_total: null
,_startTime: null
,_accumulator: null
,_elapsedMS: null
,_stepMS: null
,_stepSeconds: null
,_maxAccumulation: null
,_lostFocus: null
,_filters: null
,_inputContainer: null
,_customSoundTray: null
,_skipSplash: null
,_requestedState: null
,_resetGame: null
,setFilters: function(filters) {
this._filters = filters;
}
,create: function(_) {
if(this.stage == null) {
return;
}
this.removeEventListener("addedToStage",$bind(this,this.create));
this._startTime = this.getTimer();
this._total = this.getTimer() - this._startTime;
this.stage.set_scaleMode(2);
this.stage.align = 6;
this.stage.set_frameRate(flixel_FlxG.drawFramerate);
this.addChild(this._inputContainer);
this.soundTray = Type.createInstance(this._customSoundTray,[]);
this.addChild(this.soundTray);
this.stage.addEventListener("deactivate",$bind(this,this.onFocusLost));
this.stage.addEventListener("activate",$bind(this,this.onFocus));
flixel_FlxG.signals.preGameReset.dispatch();
if(this._skipSplash || flixel_system_FlxSplash.nextState != null) {
this._requestedState = Type.createInstance(this._initialState,[]);
if(flixel_system_FlxSplash.nextState == null) {
this._gameJustStarted = true;
}
} else {
flixel_system_FlxSplash.nextState = this._initialState;
this._requestedState = new flixel_system_FlxSplash();
this._skipSplash = true;
}
flixel_FlxG.reset();
flixel_FlxG.signals.postGameReset.dispatch();
this.switchState();
var tmp = flixel_FlxG.updateFramerate < flixel_FlxG.drawFramerate;
this.stage.addEventListener("enterFrame",$bind(this,this.onEnterFrame));
this.stage.addEventListener("resize",$bind(this,this.onResize));
this.resizeGame(openfl_Lib.get_current().stage.stageWidth,openfl_Lib.get_current().stage.stageHeight);
openfl_utils_Assets.addEventListener("change",($_=flixel_FlxG.bitmap,$bind($_,$_.onAssetsReload)));
}
,onFocus: function(_) {
this._lostFocus = false;
flixel_FlxG.signals.focusGained.dispatch();
this._state.onFocus();
if(!flixel_FlxG.autoPause) {
return;
}
this.stage.set_frameRate(flixel_FlxG.drawFramerate);
flixel_FlxG.sound.onFocus();
var _g = 0;
var _g1 = flixel_FlxG.inputs.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.onFocus();
}
}
,onFocusLost: function(event) {
this._lostFocus = true;
flixel_FlxG.signals.focusLost.dispatch();
this._state.onFocusLost();
if(!flixel_FlxG.autoPause) {
return;
}
this.stage.set_frameRate(this.focusLostFramerate);
flixel_FlxG.sound.onFocusLost();
var _g = 0;
var _g1 = flixel_FlxG.inputs.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.onFocusLost();
}
}
,onResize: function(_) {
var width = openfl_Lib.get_current().stage.stageWidth;
var height = openfl_Lib.get_current().stage.stageHeight;
if(flixel_FlxG.renderTile) {
flixel_FlxG.bitmap.onContext();
}
this.resizeGame(width,height);
}
,resizeGame: function(width,height) {
flixel_FlxG.scaleMode.onMeasure(width,height);
this._state.onResize(width,height);
flixel_FlxG.cameras.resize();
flixel_FlxG.signals.gameResized.dispatch(width,height);
if(this.soundTray != null) {
this.soundTray.screenCenter();
}
}
,onEnterFrame: function(_) {
this.ticks = this.getTimer() - this._startTime;
this._elapsedMS = this.ticks - this._total;
this._total = this.ticks;
if(this.soundTray != null && this.soundTray.active) {
this.soundTray.update(this._elapsedMS);
}
if(!this._lostFocus || !flixel_FlxG.autoPause) {
if(flixel_FlxG.vcr.paused) {
if(flixel_FlxG.vcr.stepRequested) {
flixel_FlxG.vcr.stepRequested = false;
} else if(this._state == this._requestedState) {
return;
}
}
if(flixel_FlxG.fixedTimestep) {
this._accumulator += this._elapsedMS;
this._accumulator = this._accumulator > this._maxAccumulation ? this._maxAccumulation : this._accumulator;
while(this._accumulator >= this._stepMS) {
this.step();
this._accumulator -= this._stepMS;
}
} else {
this.step();
}
this.draw();
}
}
,resetGame: function() {
flixel_FlxG.signals.preGameReset.dispatch();
if(this._skipSplash || flixel_system_FlxSplash.nextState != null) {
this._requestedState = Type.createInstance(this._initialState,[]);
if(flixel_system_FlxSplash.nextState == null) {
this._gameJustStarted = true;
}
} else {
flixel_system_FlxSplash.nextState = this._initialState;
this._requestedState = new flixel_system_FlxSplash();
this._skipSplash = true;
}
flixel_FlxG.reset();
flixel_FlxG.signals.postGameReset.dispatch();
}
,switchState: function() {
flixel_FlxG.cameras.reset();
flixel_FlxG.inputs.onStateSwitch();
flixel_FlxG.sound.destroy();
flixel_FlxG.signals.preStateSwitch.dispatch();
if(this._state != null) {
this._state.destroy();
}
flixel_FlxG.bitmap.clearCache();
this._state = this._requestedState;
if(this._gameJustStarted) {
flixel_FlxG.signals.preGameStart.dispatch();
}
flixel_FlxG.signals.preStateCreate.dispatch(this._state);
this._state.create();
if(this._gameJustStarted) {
this.gameStart();
}
flixel_FlxG.signals.postStateSwitch.dispatch();
}
,gameStart: function() {
flixel_FlxG.signals.postGameStart.dispatch();
this._gameJustStarted = false;
}
,step: function() {
if(this._resetGame) {
flixel_FlxG.signals.preGameReset.dispatch();
if(this._skipSplash || flixel_system_FlxSplash.nextState != null) {
this._requestedState = Type.createInstance(this._initialState,[]);
if(flixel_system_FlxSplash.nextState == null) {
this._gameJustStarted = true;
}
} else {
flixel_system_FlxSplash.nextState = this._initialState;
this._requestedState = new flixel_system_FlxSplash();
this._skipSplash = true;
}
flixel_FlxG.reset();
flixel_FlxG.signals.postGameReset.dispatch();
this._resetGame = false;
}
this.handleReplayRequests();
this.update();
}
,handleReplayRequests: function() {
}
,update: function() {
if(!this._state.active || !this._state.exists) {
return;
}
if(this._state != this._requestedState) {
this.switchState();
}
this.updateElapsed();
flixel_FlxG.signals.preUpdate.dispatch();
this.updateInput();
flixel_FlxG.sound.update(flixel_FlxG.elapsed);
var elapsed = flixel_FlxG.elapsed;
var _g = 0;
var _g1 = flixel_FlxG.plugins.list;
while(_g < _g1.length) {
var plugin = _g1[_g];
++_g;
if(plugin.exists && plugin.active) {
plugin.update(elapsed);
}
}
this._state.tryUpdate(flixel_FlxG.elapsed);
var elapsed = flixel_FlxG.elapsed;
var _g = 0;
var _g1 = flixel_FlxG.cameras.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(camera != null && camera.exists && camera.active) {
camera.update(elapsed);
}
}
flixel_FlxG.signals.postUpdate.dispatch();
flixel_util_FlxArrayUtil.clearArray(flixel_FlxG.swipes);
this.set_filters(this.filtersEnabled ? this._filters : null);
}
,updateElapsed: function() {
if(flixel_FlxG.fixedTimestep) {
flixel_FlxG.elapsed = flixel_FlxG.timeScale * this._stepSeconds;
} else {
flixel_FlxG.elapsed = flixel_FlxG.timeScale * (this._elapsedMS / 1000);
var max = flixel_FlxG.maxElapsed * flixel_FlxG.timeScale;
if(flixel_FlxG.elapsed > max) {
flixel_FlxG.elapsed = max;
}
}
}
,updateInput: function() {
var _g = 0;
var _g1 = flixel_FlxG.inputs.list;
while(_g < _g1.length) {
var input = _g1[_g];
++_g;
input.update();
}
}
,draw: function() {
if(!this._state.visible || !this._state.exists) {
return;
}
flixel_FlxG.signals.preDraw.dispatch();
if(flixel_FlxG.renderTile) {
flixel_graphics_tile_FlxDrawBaseItem.drawCalls = 0;
}
var _this = flixel_FlxG.cameras;
var _g = 0;
var _g1 = _this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(camera == null || !camera.exists || !camera.visible) {
continue;
}
if(flixel_FlxG.renderBlit) {
camera.checkResize();
if(_this.useBufferLocking) {
camera.buffer.lock();
}
}
if(flixel_FlxG.renderTile) {
camera.clearDrawStack();
camera.canvas.get_graphics().clear();
}
if(flixel_FlxG.renderBlit) {
camera.fill(camera.bgColor,camera.useBgAlphaBlending);
camera.screen.dirty = true;
} else {
camera.fill(camera.bgColor & 16777215,camera.useBgAlphaBlending,(camera.bgColor >> 24 & 255) / 255);
}
}
var _g = 0;
var _g1 = flixel_FlxG.plugins.list;
while(_g < _g1.length) {
var plugin = _g1[_g];
++_g;
if(plugin.exists && plugin.visible) {
plugin.draw();
}
}
this._state.draw();
if(flixel_FlxG.renderTile) {
if(flixel_FlxG.renderTile) {
var _g = 0;
var _g1 = flixel_FlxG.cameras.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(camera != null && camera.exists && camera.visible) {
camera.render();
}
}
}
}
var _this = flixel_FlxG.cameras;
var _g = 0;
var _g1 = _this.list;
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(camera == null || !camera.exists || !camera.visible) {
continue;
}
camera.drawFX();
if(flixel_FlxG.renderBlit) {
if(_this.useBufferLocking) {
camera.buffer.unlock();
}
camera.screen.dirty = true;
}
}
flixel_FlxG.signals.postDraw.dispatch();
}
,getTicks: function() {
return this.getTimer() - this._startTime;
}
,getTimer: function() {
return openfl_Lib.getTimer();
}
,__class__: flixel_FlxGame
});
var flixel_IFlxSprite = function() { };
$hxClasses["flixel.IFlxSprite"] = flixel_IFlxSprite;
flixel_IFlxSprite.__name__ = "flixel.IFlxSprite";
flixel_IFlxSprite.__isInterface__ = true;
flixel_IFlxSprite.__interfaces__ = [flixel_IFlxBasic];
flixel_IFlxSprite.prototype = {
set_x: null
,set_y: null
,set_alpha: null
,set_angle: null
,set_facing: null
,set_moves: null
,set_immovable: null
,x: null
,y: null
,alpha: null
,angle: null
,facing: null
,moves: null
,immovable: null
,offset: null
,origin: null
,scale: null
,velocity: null
,maxVelocity: null
,acceleration: null
,drag: null
,scrollFactor: null
,reset: null
,setPosition: null
,__class__: flixel_IFlxSprite
,__properties__: {set_immovable:"set_immovable",set_moves:"set_moves",set_facing:"set_facing",set_angle:"set_angle",set_alpha:"set_alpha",set_y:"set_y",set_x:"set_x"}
};
var flixel_addons_display_FlxGridOverlay = function() { };
$hxClasses["flixel.addons.display.FlxGridOverlay"] = flixel_addons_display_FlxGridOverlay;
flixel_addons_display_FlxGridOverlay.__name__ = "flixel.addons.display.FlxGridOverlay";
flixel_addons_display_FlxGridOverlay.create = function(CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2) {
if(Color2 == null) {
Color2 = -2501163;
}
if(Color1 == null) {
Color1 = -1579290;
}
if(Alternate == null) {
Alternate = true;
}
if(Height == null) {
Height = -1;
}
if(Width == null) {
Width = -1;
}
if(Width == -1) {
Width = flixel_FlxG.width;
}
if(Height == -1) {
Height = flixel_FlxG.height;
}
if(Width < CellWidth || Height < CellHeight) {
return null;
}
var grid = flixel_addons_display_FlxGridOverlay.createGrid(CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2);
var output = new flixel_FlxSprite();
output.set_pixels(grid);
output.dirty = true;
return output;
};
flixel_addons_display_FlxGridOverlay.overlay = function(Sprite,CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2) {
if(Color2 == null) {
Color2 = -1998989867;
}
if(Color1 == null) {
Color1 = -1998067994;
}
if(Alternate == null) {
Alternate = true;
}
if(Height == null) {
Height = -1;
}
if(Width == null) {
Width = -1;
}
if(Width == -1) {
Width = flixel_FlxG.width;
}
if(Height == -1) {
Height = flixel_FlxG.height;
}
if(Width < CellWidth || Height < CellHeight) {
return null;
}
var grid = flixel_addons_display_FlxGridOverlay.createGrid(CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2);
Sprite.get_pixels().copyPixels(grid,new openfl_geom_Rectangle(0,0,Width,Height),new openfl_geom_Point(0,0),null,null,true);
return Sprite;
};
flixel_addons_display_FlxGridOverlay.createGrid = function(CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2) {
var rowColor = Color1;
var lastColor = Color1;
var grid = new openfl_display_BitmapData(Width,Height,true);
var y = 0;
while(y <= Height) {
if(y > 0 && lastColor == rowColor && Alternate) {
if(lastColor == Color1) {
lastColor = Color2;
} else {
lastColor = Color1;
}
} else if(y > 0 && lastColor != rowColor && Alternate == false) {
if(lastColor == Color2) {
lastColor = Color1;
} else {
lastColor = Color2;
}
}
var x = 0;
while(x <= Width) {
if(x == 0) {
rowColor = lastColor;
}
grid.fillRect(new openfl_geom_Rectangle(x,y,CellWidth,CellHeight),lastColor);
if(lastColor == Color1) {
lastColor = Color2;
} else {
lastColor = Color1;
}
x += CellWidth;
}
y += CellHeight;
}
return grid;
};
var flixel_addons_effects_FlxTrail = function(Target,Graphic,Length,Delay,Alpha,Diff) {
if(Diff == null) {
Diff = 0.05;
}
if(Alpha == null) {
Alpha = 0.4;
}
if(Delay == null) {
Delay = 3;
}
if(Length == null) {
Length = 10;
}
this._recentAnimations = [];
this._recentFlipY = [];
this._recentFlipX = [];
this._recentFrames = [];
this._recentScales = [];
this._recentAngles = [];
this._recentPositions = [];
this._transp = 1;
this._trailLength = 0;
this._counter = 0;
this.framesEnabled = true;
this.scalesEnabled = true;
this.rotationsEnabled = true;
this.yEnabled = true;
this.xEnabled = true;
flixel_group_FlxTypedSpriteGroup.call(this);
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var _this = point;
var point = Target.origin;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
this._spriteOrigin = _this;
this.target = Target;
this.delay = Delay;
this._graphic = Graphic;
this._transp = Alpha;
this._difference = Diff;
this.increaseLength(Length);
this.set_solid(false);
};
$hxClasses["flixel.addons.effects.FlxTrail"] = flixel_addons_effects_FlxTrail;
flixel_addons_effects_FlxTrail.__name__ = "flixel.addons.effects.FlxTrail";
flixel_addons_effects_FlxTrail.__super__ = flixel_group_FlxTypedSpriteGroup;
flixel_addons_effects_FlxTrail.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{
target: null
,delay: null
,xEnabled: null
,yEnabled: null
,rotationsEnabled: null
,scalesEnabled: null
,framesEnabled: null
,_counter: null
,_trailLength: null
,_graphic: null
,_transp: null
,_difference: null
,_recentPositions: null
,_recentAngles: null
,_recentScales: null
,_recentFrames: null
,_recentFlipX: null
,_recentFlipY: null
,_recentAnimations: null
,_spriteOrigin: null
,destroy: function() {
flixel_util_FlxDestroyUtil.putArray(this._recentPositions);
flixel_util_FlxDestroyUtil.putArray(this._recentScales);
this._recentAngles = null;
this._recentPositions = null;
this._recentScales = null;
this._recentFrames = null;
this._recentFlipX = null;
this._recentFlipY = null;
this._recentAnimations = null;
this._spriteOrigin = null;
this.target = null;
this._graphic = null;
flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this);
}
,update: function(elapsed) {
this._counter++;
if(this._counter >= this.delay && this._trailLength >= 1) {
this._counter = 0;
var spritePosition = null;
if(this._recentPositions.length == this._trailLength) {
spritePosition = this._recentPositions.pop();
} else {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
spritePosition = point;
}
spritePosition.set(this.target.x - this.target.offset.x,this.target.y - this.target.offset.y);
this._recentPositions.unshift(spritePosition);
if(this.rotationsEnabled) {
this.cacheValue(this._recentAngles,this.target.angle);
}
if(this.scalesEnabled) {
var spriteScale = null;
if(this._recentScales.length == this._trailLength) {
spriteScale = this._recentScales.pop();
} else {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
spriteScale = point;
}
spriteScale.set(this.target.scale.x,this.target.scale.y);
this._recentScales.unshift(spriteScale);
}
if(this.framesEnabled && this._graphic == null) {
this.cacheValue(this._recentFrames,this.target.animation.frameIndex);
this.cacheValue(this._recentFlipX,this.target.flipX);
this.cacheValue(this._recentFlipY,this.target.flipY);
this.cacheValue(this._recentAnimations,this.target.animation._curAnim);
}
var trailSprite;
var _g = 0;
var _g1 = this._recentPositions.length;
while(_g < _g1) {
var i = _g++;
trailSprite = this.group.members[i];
trailSprite.set_x(this._recentPositions[i].x);
trailSprite.set_y(this._recentPositions[i].y);
if(this.rotationsEnabled) {
trailSprite.set_angle(this._recentAngles[i]);
trailSprite.origin.set_x(this._spriteOrigin.x);
trailSprite.origin.set_y(this._spriteOrigin.y);
}
if(this.scalesEnabled) {
trailSprite.scale.set_x(this._recentScales[i].x);
trailSprite.scale.set_y(this._recentScales[i].y);
}
if(this.framesEnabled && this._graphic == null) {
trailSprite.animation.set_frameIndex(this._recentFrames[i]);
trailSprite.set_flipX(this._recentFlipX[i]);
trailSprite.set_flipY(this._recentFlipY[i]);
var _this = trailSprite.animation;
var Anim = this._recentAnimations[i];
if(Anim != _this._curAnim) {
if(_this._curAnim != null) {
_this._curAnim.stop();
}
if(Anim != null) {
Anim.play();
}
}
_this._curAnim = Anim;
}
trailSprite.set_exists(true);
}
}
flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed);
}
,cacheValue: function(array,value) {
array.unshift(value);
flixel_util_FlxArrayUtil.setLength_cacheValue_T(array,this._trailLength);
}
,resetTrail: function() {
this._recentPositions.splice(0,this._recentPositions.length);
this._recentAngles.splice(0,this._recentAngles.length);
this._recentScales.splice(0,this._recentScales.length);
this._recentFrames.splice(0,this._recentFrames.length);
this._recentFlipX.splice(0,this._recentFlipX.length);
this._recentFlipY.splice(0,this._recentFlipY.length);
this._recentAnimations.splice(0,this._recentAnimations.length);
var _g = 0;
var _g1 = this.group.members.length;
while(_g < _g1) {
var i = _g++;
if(this.group.members[i] != null) {
this.group.members[i].set_exists(false);
}
}
}
,increaseLength: function(Amount) {
if(Amount <= 0) {
return;
}
this._trailLength += Amount;
var _g = 0;
var _g1 = Amount;
while(_g < _g1) {
var i = _g++;
var trailSprite = new flixel_FlxSprite(0,0);
if(this._graphic == null) {
trailSprite.loadGraphicFromSprite(this.target);
} else {
trailSprite.loadGraphic(this._graphic);
}
trailSprite.set_exists(false);
this.add(trailSprite);
trailSprite.set_alpha(this._transp);
this._transp -= this._difference;
trailSprite.set_solid((this.allowCollisions & 4369) > 0);
if(trailSprite.alpha <= 0) {
trailSprite.kill();
}
}
}
,changeGraphic: function(Image1) {
this._graphic = Image1;
var _g = 0;
var _g1 = this._trailLength;
while(_g < _g1) {
var i = _g++;
this.group.members[i].loadGraphic(Image1);
}
}
,changeValuesEnabled: function(Angle,X,Y,Scale) {
if(Scale == null) {
Scale = true;
}
if(Y == null) {
Y = true;
}
if(X == null) {
X = true;
}
this.rotationsEnabled = Angle;
this.xEnabled = X;
this.yEnabled = Y;
this.scalesEnabled = Scale;
}
,__class__: flixel_addons_effects_FlxTrail
});
var flixel_addons_effects_FlxTrailArea = function(X,Y,Width,Height,AlphaMultiplier,Delay,SimpleRender,Antialiasing,TrailBlendMode) {
if(Antialiasing == null) {
Antialiasing = false;
}
if(SimpleRender == null) {
SimpleRender = false;
}
if(Delay == null) {
Delay = 2;
}
if(AlphaMultiplier == null) {
AlphaMultiplier = 0.8;
}
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._height = 1;
this._width = 1;
this._counter = 0;
this.alphaOffset = 0;
this.blueOffset = 0;
this.greenOffset = 0;
this.redOffset = 0;
this.blueMultiplier = 1;
this.greenMultiplier = 1;
this.redMultiplier = 1;
this.blendMode = null;
this.simpleRender = false;
this.delay = 2;
flixel_FlxSprite.call(this,X,Y);
this.group = new flixel_group_FlxTypedGroup();
this.delay = Delay;
this.simpleRender = SimpleRender;
this.blendMode = TrailBlendMode;
this.set_antialiasing(Antialiasing);
this.alphaMultiplier = AlphaMultiplier;
this.setSize(Width,Height);
this.set_pixels(this._areaPixels);
};
$hxClasses["flixel.addons.effects.FlxTrailArea"] = flixel_addons_effects_FlxTrailArea;
flixel_addons_effects_FlxTrailArea.__name__ = "flixel.addons.effects.FlxTrailArea";
flixel_addons_effects_FlxTrailArea.__super__ = flixel_FlxSprite;
flixel_addons_effects_FlxTrailArea.prototype = $extend(flixel_FlxSprite.prototype,{
delay: null
,simpleRender: null
,blendMode: null
,group: null
,redMultiplier: null
,greenMultiplier: null
,blueMultiplier: null
,alphaMultiplier: null
,redOffset: null
,greenOffset: null
,blueOffset: null
,alphaOffset: null
,_counter: null
,_width: null
,_height: null
,_areaPixels: null
,setSize: function(Width,Height) {
if(Width <= 0) {
Width = flixel_FlxG.width;
}
if(Height <= 0) {
Height = flixel_FlxG.height;
}
if(Width != this._width || Height != this._height) {
this._width = Width;
this._height = Height;
this._areaPixels = new openfl_display_BitmapData(this._width | 0,this._height | 0,true,0);
}
}
,destroy: function() {
this.group = flixel_util_FlxDestroyUtil.destroy(this.group);
this.blendMode = null;
if(this.get_pixels() != this._areaPixels) {
this._areaPixels.dispose();
}
this._areaPixels = null;
flixel_FlxSprite.prototype.destroy.call(this);
}
,draw: function() {
this._counter++;
if(this._counter >= this.delay) {
this._counter = 0;
this._areaPixels.lock();
var cTrans = new openfl_geom_ColorTransform(this.redMultiplier,this.greenMultiplier,this.blueMultiplier,this.alphaMultiplier,this.redOffset,this.greenOffset,this.blueOffset,this.alphaOffset);
this._areaPixels.colorTransform(new openfl_geom_Rectangle(0,0,this._areaPixels.width,this._areaPixels.height),cTrans);
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(member.exists) {
var finalX = member.x - this.x - member.offset.x;
var finalY = member.y - this.y - member.offset.y;
if(this.simpleRender) {
this._areaPixels.copyPixels(member.updateFramePixels(),new openfl_geom_Rectangle(0,0,member.frameWidth,member.frameHeight),new openfl_geom_Point(finalX,finalY),null,null,true);
} else {
var scaled = member.scale.x != 1 || member.scale.y != 1;
var rotated = member.angle != 0 && member.bakedRotationAngle <= 0;
this._matrix.identity();
if(rotated || scaled) {
this._matrix.translate(-member.origin.x,-member.origin.y);
if(scaled) {
this._matrix.scale(member.scale.x,member.scale.y);
}
if(rotated) {
this._matrix.rotate(member.angle * (Math.PI / 180));
}
this._matrix.translate(member.origin.x,member.origin.y);
}
this._matrix.translate(finalX,finalY);
this._areaPixels.draw(member.updateFramePixels(),this._matrix,member.colorTransform,this.blendMode,null,this.antialiasing);
}
}
}
this._areaPixels.unlock();
this.set_pixels(this._areaPixels);
}
flixel_FlxSprite.prototype.draw.call(this);
}
,resetTrail: function() {
this._areaPixels.fillRect(new openfl_geom_Rectangle(0,0,this._areaPixels.width,this._areaPixels.height),0);
}
,add: function(Sprite) {
return this.group.add(Sprite);
}
,get_width: function() {
return this._width;
}
,set_width: function(Width) {
if(Width <= 0) {
Width = flixel_FlxG.width;
}
if(Width != this._width) {
this._areaPixels = new openfl_display_BitmapData(Width | 0,this._height | 0,true,0);
}
return this._width = Width;
}
,get_height: function() {
return this._height;
}
,set_height: function(Height) {
if(Height <= 0) {
Height = flixel_FlxG.height;
}
if(Height != this._height) {
this._areaPixels = new openfl_display_BitmapData(this._width | 0,Height | 0,true,0);
}
return this._height = Height;
}
,__class__: flixel_addons_effects_FlxTrailArea
});
var flixel_addons_effects_chainable_FlxEffectSprite = function(Target,Effects) {
this.updateTargetAnimation = true;
this.effectsEnabled = true;
flixel_FlxSprite.call(this);
this.target = Target;
this.effects = Effects != null ? Effects : [];
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this._effectOffset = point;
};
$hxClasses["flixel.addons.effects.chainable.FlxEffectSprite"] = flixel_addons_effects_chainable_FlxEffectSprite;
flixel_addons_effects_chainable_FlxEffectSprite.__name__ = "flixel.addons.effects.chainable.FlxEffectSprite";
flixel_addons_effects_chainable_FlxEffectSprite.__super__ = flixel_FlxSprite;
flixel_addons_effects_chainable_FlxEffectSprite.prototype = $extend(flixel_FlxSprite.prototype,{
effectsEnabled: null
,target: null
,updateTargetAnimation: null
,effects: null
,_effectOffset: null
,destroy: function() {
this.effects = flixel_util_FlxDestroyUtil.destroyArray(this.effects);
this._effectOffset = flixel_util_FlxDestroyUtil.put(this._effectOffset);
this.target = null;
flixel_FlxSprite.prototype.destroy.call(this);
}
,getScreenPosition: function(point,Camera) {
return flixel_FlxSprite.prototype.getScreenPosition.call(this,point,Camera).addPoint(this._effectOffset);
}
,draw: function() {
if(this.target.dirty) {
this.target.drawFrame();
}
if(this.target.framePixels == null) {
flixel_FlxSprite.prototype.draw.call(this);
return;
}
if(this.get_pixels() != null && this.get_pixels().width == this.target.framePixels.width && this.get_pixels().height == this.target.framePixels.height) {
this.get_pixels().fillRect(this.get_pixels().rect,0);
this.get_pixels().draw(this.target.framePixels);
} else {
flixel_util_FlxDestroyUtil.dispose(this.get_pixels());
this.set_pixels(this.target.framePixels.clone());
}
this._effectOffset.set(0,0);
if(this.effectsEnabled) {
this.get_pixels().lock();
var _g = 0;
var _g1 = this.effects;
while(_g < _g1.length) {
var effect = _g1[_g];
++_g;
if(effect.active) {
this.set_pixels(effect.apply(this.get_pixels()));
if(effect.offset != null) {
this._effectOffset.addPoint(effect.offset);
}
}
}
this.get_pixels().unlock();
this._flashRect = this.get_pixels().rect;
}
flixel_FlxSprite.prototype.draw.call(this);
}
,update: function(elapsed) {
if(this.updateTargetAnimation && this.target.animation._sprite.numFrames > 1) {
this.target.updateAnimation(elapsed);
}
if(this.effectsEnabled) {
var _g = 0;
var _g1 = this.effects;
while(_g < _g1.length) {
var effect = _g1[_g];
++_g;
if(effect.active) {
effect.update(elapsed);
}
}
}
flixel_FlxSprite.prototype.update.call(this,elapsed);
}
,__class__: flixel_addons_effects_chainable_FlxEffectSprite
});
var flixel_addons_effects_chainable_IFlxEffect = function() { };
$hxClasses["flixel.addons.effects.chainable.IFlxEffect"] = flixel_addons_effects_chainable_IFlxEffect;
flixel_addons_effects_chainable_IFlxEffect.__name__ = "flixel.addons.effects.chainable.IFlxEffect";
flixel_addons_effects_chainable_IFlxEffect.__isInterface__ = true;
flixel_addons_effects_chainable_IFlxEffect.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_addons_effects_chainable_IFlxEffect.prototype = {
active: null
,offset: null
,update: null
,apply: null
,__class__: flixel_addons_effects_chainable_IFlxEffect
};
var flixel_addons_effects_chainable_FlxWaveEffect = function(Mode,Strength,Center,Speed,Wavelength,Direction,InterlaceOffset) {
if(InterlaceOffset == null) {
InterlaceOffset = 0;
}
if(Wavelength == null) {
Wavelength = 5;
}
if(Speed == null) {
Speed = 3;
}
if(Center == null) {
Center = 0.5;
}
if(Strength == null) {
Strength = 10;
}
this._flashRect = new openfl_geom_Rectangle();
this._flashPoint = new openfl_geom_Point();
this._time = 0;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.offset = point;
this.active = true;
this.strength = Strength;
this.mode = Mode == null ? flixel_addons_effects_chainable_FlxWaveMode.ALL : Mode;
this.speed = Speed;
this.wavelength = Wavelength;
this.direction = Direction != null ? Direction : flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL;
this.center = Center;
this.set_interlaceOffset(InterlaceOffset);
};
$hxClasses["flixel.addons.effects.chainable.FlxWaveEffect"] = flixel_addons_effects_chainable_FlxWaveEffect;
flixel_addons_effects_chainable_FlxWaveEffect.__name__ = "flixel.addons.effects.chainable.FlxWaveEffect";
flixel_addons_effects_chainable_FlxWaveEffect.__interfaces__ = [flixel_addons_effects_chainable_IFlxEffect];
flixel_addons_effects_chainable_FlxWaveEffect.prototype = {
active: null
,offset: null
,mode: null
,speed: null
,center: null
,direction: null
,wavelength: null
,strength: null
,interlaceOffset: null
,_time: null
,_flashPoint: null
,_flashRect: null
,_pixels: null
,destroy: function() {
this._flashPoint = null;
this._flashRect = null;
this.offset = flixel_util_FlxDestroyUtil.put(this.offset);
this._pixels = flixel_util_FlxDestroyUtil.dispose(this._pixels);
}
,update: function(elapsed) {
this._time += elapsed * this.speed;
}
,apply: function(bitmapData) {
var horizontalStrength = this.direction == flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL ? this.strength : 0;
var verticalStrength = this.direction == flixel_addons_effects_chainable_FlxWaveDirection.VERTICAL ? this.strength : 0;
this.offset.set(-horizontalStrength,-verticalStrength);
if(this._pixels == null || this._pixels.width < bitmapData.width + horizontalStrength * 2 || this._pixels.height < bitmapData.height + verticalStrength * 2) {
flixel_util_FlxDestroyUtil.dispose(this._pixels);
this._pixels = new openfl_display_BitmapData(bitmapData.width + horizontalStrength * 2,bitmapData.height + verticalStrength * 2,true,0);
} else {
this._pixels.fillRect(this._pixels.rect,0);
}
var length = this.direction == flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL ? bitmapData.height : bitmapData.width;
var p = 0;
while(p < length) {
var pixelOffset = 0;
var offsetP = length * this.center;
var size = 1;
switch(this.mode._hx_index) {
case 0:
offsetP = this.strength;
break;
case 1:
if(p <= offsetP) {
offsetP = (1 - p / offsetP) * this.strength;
} else {
size = length - p;
offsetP = 0;
}
break;
case 2:
if(p >= offsetP) {
offsetP = (1 - (1 - p / length) / (1 - this.center)) * this.strength;
} else {
size = Math.ceil(offsetP);
offsetP = 0;
}
break;
}
var waveOffset = 0;
if(this.interlaceOffset != 0 && this.interlaceOffset != 1 && ((p | 0) & 1) != 0) {
waveOffset = Math.PI * 2 * this.interlaceOffset;
}
var n = p / this.wavelength + this._time + waveOffset;
n *= 0.3183098862;
if(n > 1) {
n -= Math.ceil(n) >> 1 << 1;
} else if(n < -1) {
n += Math.ceil(-n) >> 1 << 1;
}
pixelOffset = offsetP * (n > 0 ? n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))) : n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6))));
if(this.direction == flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL) {
this._flashPoint.setTo(this.strength + pixelOffset,p);
this._flashRect.setTo(0,p,bitmapData.width,size);
} else {
this._flashPoint.setTo(p,this.strength + pixelOffset);
this._flashRect.setTo(p,0,size,bitmapData.height);
}
this._pixels.copyPixels(bitmapData,this._flashRect,this._flashPoint);
p += size;
}
flixel_util_FlxDestroyUtil.dispose(bitmapData);
return this._pixels.clone();
}
,calculateOffset: function(p,length) {
var waveOffset = 0;
if(this.interlaceOffset != 0 && this.interlaceOffset != 1 && ((p | 0) & 1) != 0) {
waveOffset = Math.PI * 2 * this.interlaceOffset;
}
var n = p / this.wavelength + this._time + waveOffset;
n *= 0.3183098862;
if(n > 1) {
n -= Math.ceil(n) >> 1 << 1;
} else if(n < -1) {
n += Math.ceil(-n) >> 1 << 1;
}
if(n > 0) {
return n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6)));
} else {
return n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6)));
}
}
,set_interlaceOffset: function(InterlaceOffset) {
var lowerBound = InterlaceOffset < 0 ? 0 : InterlaceOffset;
return this.interlaceOffset = lowerBound > 1 ? 1 : lowerBound;
}
,__class__: flixel_addons_effects_chainable_FlxWaveEffect
,__properties__: {set_interlaceOffset:"set_interlaceOffset"}
};
var flixel_addons_effects_chainable_FlxWaveMode = $hxEnums["flixel.addons.effects.chainable.FlxWaveMode"] = { __ename__ : "flixel.addons.effects.chainable.FlxWaveMode", __constructs__ : ["ALL","START","END"]
,ALL: {_hx_index:0,__enum__:"flixel.addons.effects.chainable.FlxWaveMode",toString:$estr}
,START: {_hx_index:1,__enum__:"flixel.addons.effects.chainable.FlxWaveMode",toString:$estr}
,END: {_hx_index:2,__enum__:"flixel.addons.effects.chainable.FlxWaveMode",toString:$estr}
};
var flixel_addons_effects_chainable_FlxWaveDirection = $hxEnums["flixel.addons.effects.chainable.FlxWaveDirection"] = { __ename__ : "flixel.addons.effects.chainable.FlxWaveDirection", __constructs__ : ["HORIZONTAL","VERTICAL"]
,HORIZONTAL: {_hx_index:0,__enum__:"flixel.addons.effects.chainable.FlxWaveDirection",toString:$estr}
,VERTICAL: {_hx_index:1,__enum__:"flixel.addons.effects.chainable.FlxWaveDirection",toString:$estr}
};
var openfl_media_Sound = function(stream,context) {
openfl_events_EventDispatcher.call(this,this);
this.bytesLoaded = 0;
this.bytesTotal = 0;
this.isBuffering = false;
this.url = null;
if(stream != null) {
this.load(stream,context);
}
};
$hxClasses["openfl.media.Sound"] = openfl_media_Sound;
openfl_media_Sound.__name__ = "openfl.media.Sound";
openfl_media_Sound.fromAudioBuffer = function(buffer) {
var sound = new openfl_media_Sound();
sound.__buffer = buffer;
return sound;
};
openfl_media_Sound.fromFile = function(path) {
return openfl_media_Sound.fromAudioBuffer(lime_media_AudioBuffer.fromFile(path));
};
openfl_media_Sound.loadFromFile = function(path) {
return lime_media_AudioBuffer.loadFromFile(path).then(function(audioBuffer) {
return lime_app_Future.withValue(openfl_media_Sound.fromAudioBuffer(audioBuffer));
});
};
openfl_media_Sound.loadFromFiles = function(paths) {
return lime_media_AudioBuffer.loadFromFiles(paths).then(function(audioBuffer) {
return lime_app_Future.withValue(openfl_media_Sound.fromAudioBuffer(audioBuffer));
});
};
openfl_media_Sound.__super__ = openfl_events_EventDispatcher;
openfl_media_Sound.prototype = $extend(openfl_events_EventDispatcher.prototype,{
bytesLoaded: null
,bytesTotal: null
,isBuffering: null
,url: null
,__buffer: null
,close: function() {
if(this.__buffer != null) {
this.__buffer.dispose();
this.__buffer = null;
}
}
,load: function(stream,context) {
var _gthis = this;
this.url = stream.url;
var defaultLibrary = lime_utils_Assets.getLibrary("default");
if(defaultLibrary != null && Object.prototype.hasOwnProperty.call(defaultLibrary.cachedAudioBuffers.h,this.url)) {
this.AudioBuffer_onURLLoad(defaultLibrary.cachedAudioBuffers.h[this.url]);
} else {
lime_media_AudioBuffer.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("ioError"));
return;
}
if(UInt.gt(bytes.position,0) || UInt.gt(openfl_utils_ByteArray.get_length(bytes),bytesLength)) {
var length = bytesLength;
if(length == null) {
length = 0;
}
var this1 = new openfl_utils_ByteArrayData(length);
var copy = this1;
var offset = bytes.position;
var length = bytesLength;
if(length == null) {
length = 0;
}
if(offset == null) {
offset = 0;
}
copy.writeBytes(bytes,offset,length);
bytes = copy;
}
this.__buffer = lime_media_AudioBuffer.fromBytes(openfl_utils_ByteArray.toBytes(bytes));
if(this.__buffer == null) {
this.dispatchEvent(new openfl_events_IOErrorEvent("ioError"));
} else {
this.dispatchEvent(new openfl_events_Event("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("ioError"));
return;
}
var bitsPerSample = format == "float" ? 32 : 16;
var channels = stereo ? 2 : 1;
var bytesLength = samples * channels * (bitsPerSample / 8) | 0;
if(UInt.gt(bytes.position,0) || UInt.gt(openfl_utils_ByteArray.get_length(bytes),bytesLength)) {
var length = bytesLength;
if(length == null) {
length = 0;
}
var this1 = new openfl_utils_ByteArrayData(length);
var copy = this1;
var offset = bytes.position;
var length = bytesLength;
if(length == null) {
length = 0;
}
if(offset == null) {
offset = 0;
}
copy.writeBytes(bytes,offset,length);
bytes = copy;
}
var audioBuffer = new lime_media_AudioBuffer();
audioBuffer.bitsPerSample = bitsPerSample;
audioBuffer.channels = channels;
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = openfl_utils_ByteArray.toArrayBuffer(bytes);
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
audioBuffer.data = this1;
audioBuffer.sampleRate = sampleRate | 0;
this.__buffer = audioBuffer;
this.dispatchEvent(new openfl_events_Event("complete"));
}
,play: function(startTime,loops,sndTransform) {
if(loops == null) {
loops = 0;
}
if(startTime == null) {
startTime = 0.0;
}
if(this.__buffer == null || openfl_media_SoundMixer.__soundChannels.length >= 32) {
return null;
}
if(sndTransform == null) {
sndTransform = new openfl_media_SoundTransform();
} else {
sndTransform = sndTransform.clone();
}
var pan = openfl_media_SoundMixer.__soundTransform.pan + sndTransform.pan;
if(pan > 1) {
pan = 1;
}
if(pan < -1) {
pan = -1;
}
var volume = openfl_media_SoundMixer.__soundTransform.volume * sndTransform.volume;
var source = new lime_media_AudioSource(this.__buffer);
source.offset = startTime | 0;
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(source,sndTransform);
}
,get_id3: function() {
return new openfl_media_ID3Info();
}
,get_length: function() {
if(this.__buffer != null) {
return this.__buffer.get_src().duration() * 1000 | 0;
}
return 0;
}
,AudioBuffer_onURLLoad: function(buffer) {
if(buffer == null) {
this.dispatchEvent(new openfl_events_IOErrorEvent("ioError"));
} else {
this.__buffer = buffer;
this.dispatchEvent(new openfl_events_Event("complete"));
}
}
,__class__: openfl_media_Sound
,__properties__: {get_length:"get_length",get_id3:"get_id3"}
});
var flixel_addons_text_TypeSound = function(stream,context) {
openfl_media_Sound.call(this,stream,context);
};
$hxClasses["flixel.addons.text.TypeSound"] = flixel_addons_text_TypeSound;
flixel_addons_text_TypeSound.__name__ = "flixel.addons.text.TypeSound";
flixel_addons_text_TypeSound.__super__ = openfl_media_Sound;
flixel_addons_text_TypeSound.prototype = $extend(openfl_media_Sound.prototype,{
__class__: flixel_addons_text_TypeSound
});
var flixel_text_FlxText = function(X,Y,FieldWidth,Text1,Size,EmbeddedFont) {
if(EmbeddedFont == null) {
EmbeddedFont = true;
}
if(Size == null) {
Size = 8;
}
if(FieldWidth == null) {
FieldWidth = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._hasBorderAlpha = false;
this._regen = true;
this._formatRanges = [];
this.borderQuality = 1;
this.borderSize = 1;
this.borderColor = 0;
this.borderStyle = flixel_text_FlxTextBorderStyle.NONE;
this.text = "";
flixel_FlxSprite.call(this,X,Y);
if(Text1 == null || Text1 == "") {
this.set_text("");
Text1 = " ";
} else {
this.set_text(Text1);
}
this.textField = new openfl_text_TextField();
this.textField.set_selectable(false);
this.textField.set_multiline(true);
this.textField.set_wordWrap(true);
this._defaultFormat = new openfl_text_TextFormat(null,Size,16777215);
this.set_font(flixel_system_FlxAssets.FONT_DEFAULT);
this._formatAdjusted = new openfl_text_TextFormat();
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.set_text(Text1);
this.set_fieldWidth(FieldWidth);
this.textField.set_embedFonts(EmbeddedFont);
this.textField.set_sharpness(100);
this.textField.set_height(Text1.length <= 0 ? 1 : 10);
this.set_allowCollisions(0);
this.set_moves(false);
this.drawFrame();
var X = 1;
var Y = 1;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.shadowOffset = point;
};
$hxClasses["flixel.text.FlxText"] = flixel_text_FlxText;
flixel_text_FlxText.__name__ = "flixel.text.FlxText";
flixel_text_FlxText.__super__ = flixel_FlxSprite;
flixel_text_FlxText.prototype = $extend(flixel_FlxSprite.prototype,{
text: null
,borderStyle: null
,borderColor: null
,borderSize: null
,borderQuality: null
,textField: null
,shadowOffset: null
,_defaultFormat: null
,_formatAdjusted: null
,_formatRanges: null
,_font: null
,_regen: null
,_borderPixels: null
,_borderColorTransform: null
,_hasBorderAlpha: null
,destroy: function() {
this.textField = null;
this._font = null;
this._defaultFormat = null;
this._formatAdjusted = null;
this.shadowOffset = flixel_util_FlxDestroyUtil.put(this.shadowOffset);
flixel_FlxSprite.prototype.destroy.call(this);
}
,drawFrame: function(Force) {
if(Force == null) {
Force = false;
}
this._regen = this._regen || Force;
flixel_FlxSprite.prototype.drawFrame.call(this,this._regen);
}
,stampOnAtlas: function(atlas) {
this.regenGraphic();
var node = atlas.addNode(this.graphic.bitmap,this.graphic.key);
var result = node != null;
if(node != null) {
this.set_frames(node.getImageFrame());
}
return result;
}
,applyMarkup: function(input,rules) {
if(rules == null || rules.length == 0) {
return this;
}
this.clearFormats();
var rangeStarts = [];
var rangeEnds = [];
var rulesToApply = [];
var i = 0;
var _g = 0;
while(_g < rules.length) {
var rule = rules[_g];
++_g;
if(rule.marker == null || rule.format == null) {
continue;
}
var start = false;
var markerLength = UnicodeString.get_length(rule.marker);
if(input.indexOf(rule.marker) == -1) {
continue;
}
var _g1 = 0;
var _g2 = UnicodeString.get_length(input);
while(_g1 < _g2) {
var charIndex = _g1++;
if(UnicodeString.substr(input,charIndex,markerLength) != rule.marker) {
continue;
}
if(start) {
start = false;
rangeEnds.push(charIndex);
} else {
start = true;
rangeStarts.push(charIndex);
rulesToApply.push(rule);
}
}
if(start) {
rangeEnds.push(-1);
}
++i;
}
var _g = 0;
while(_g < rules.length) {
var rule = rules[_g];
++_g;
input = StringTools.replace(input,rule.marker,"");
}
var _g = 0;
var _g1 = rangeStarts.length;
while(_g < _g1) {
var i = _g++;
var delIndex = rangeStarts[i];
var markerLength = UnicodeString.get_length(rulesToApply[i].marker);
var _g2 = 0;
var _g3 = rangeStarts.length;
while(_g2 < _g3) {
var j = _g2++;
if(rangeStarts[j] > delIndex) {
rangeStarts[j] -= markerLength;
}
if(rangeEnds[j] > delIndex) {
rangeEnds[j] -= markerLength;
}
}
delIndex = rangeEnds[i];
var _g4 = 0;
var _g5 = rangeStarts.length;
while(_g4 < _g5) {
var j1 = _g4++;
if(rangeStarts[j1] > delIndex) {
rangeStarts[j1] -= markerLength;
}
if(rangeEnds[j1] > delIndex) {
rangeEnds[j1] -= markerLength;
}
}
}
this.set_text(input);
var _g = 0;
var _g1 = rangeStarts.length;
while(_g < _g1) {
var i = _g++;
this.addFormat(rulesToApply[i].format,rangeStarts[i],rangeEnds[i]);
}
return this;
}
,addFormat: function(Format,Start,End) {
if(End == null) {
End = -1;
}
if(Start == null) {
Start = -1;
}
this._formatRanges.push(new flixel_text__$FlxText_FlxTextFormatRange(Format,Start,End));
this._formatRanges.sort(function(left,right) {
if(left.range.start < right.range.start) {
return -1;
} else {
return 1;
}
});
this._regen = true;
return this;
}
,removeFormat: function(Format,Start,End) {
var i = this._formatRanges.length;
while(i-- > 0) {
var formatRange = this._formatRanges[i];
if(formatRange.format != Format) {
continue;
}
if(Start != null && End != null) {
var range = formatRange.range;
if(Start >= range.end || End <= range.start) {
continue;
}
if(Start > range.start && End < range.end) {
this.addFormat(formatRange.format,End + 1,range.end);
range.end = Start;
continue;
}
if(Start <= range.start && End < range.end) {
range.start = End;
continue;
}
if(Start > range.start && End >= range.end) {
range.end = Start;
continue;
}
}
HxOverrides.remove(this._formatRanges,formatRange);
}
this._regen = true;
return this;
}
,clearFormats: function() {
this._formatRanges = [];
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
return this;
}
,setFormat: function(Font,Size,Color,Alignment,BorderStyle,BorderColor,EmbeddedFont) {
if(EmbeddedFont == null) {
EmbeddedFont = true;
}
if(BorderColor == null) {
BorderColor = 0;
}
if(Color == null) {
Color = -1;
}
if(Size == null) {
Size = 8;
}
if(BorderStyle == null) {
BorderStyle = flixel_text_FlxTextBorderStyle.NONE;
}
if(EmbeddedFont) {
this.set_font(Font);
} else if(Font != null) {
this.set_systemFont(Font);
}
this.set_size(Size);
this.set_color(Color);
if(Alignment != null) {
this.set_alignment(Alignment);
}
var Color = BorderColor;
if(Color == null) {
Color = 0;
}
this.set_borderStyle(BorderStyle);
this.set_borderColor(Color);
this.set_borderSize(1);
this.set_borderQuality(1);
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
return this;
}
,setBorderStyle: function(Style,Color,Size,Quality) {
if(Quality == null) {
Quality = 1;
}
if(Size == null) {
Size = 1;
}
if(Color == null) {
Color = 0;
}
this.set_borderStyle(Style);
this.set_borderColor(Color);
this.set_borderSize(Size);
this.set_borderQuality(Quality);
return this;
}
,updateHitbox: function() {
this.regenGraphic();
flixel_FlxSprite.prototype.updateHitbox.call(this);
}
,set_fieldWidth: function(value) {
if(this.textField == null) {
return value;
}
if(value <= 0) {
this.set_wordWrap(false);
this.set_autoSize(true);
} else {
this.set_autoSize(false);
this.set_wordWrap(true);
this.textField.set_width(value);
}
this._regen = true;
return value;
}
,get_fieldWidth: function() {
if(this.textField != null) {
return this.textField.get_width();
} else {
return 0;
}
}
,set_autoSize: function(value) {
if(this.textField != null) {
this.textField.set_autoSize(value ? 1 : 2);
this._regen = true;
}
return value;
}
,get_autoSize: function() {
if(this.textField != null) {
return this.textField.get_autoSize() != 2;
} else {
return false;
}
}
,set_text: function(Text1) {
this.text = Text1;
if(this.textField != null) {
var ot = this.textField.get_text();
this.textField.set_text(Text1);
this._regen = this.textField.get_text() != ot || this._regen;
}
return Text1;
}
,get_size: function() {
return this._defaultFormat.size | 0;
}
,set_size: function(Size) {
this._defaultFormat.size = Size;
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
return Size;
}
,set_color: function(Color) {
if(this._defaultFormat.color == (Color & 16777215)) {
return Color;
}
this._defaultFormat.color = Color & 16777215;
this.color = Color;
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
return Color;
}
,get_font: function() {
return this._font;
}
,set_font: function(Font) {
this.textField.set_embedFonts(true);
if(Font != null) {
var newFontName = Font;
if(openfl_utils_Assets.exists(Font,"FONT")) {
newFontName = openfl_utils_Assets.getFont(Font).name;
}
this._defaultFormat.font = newFontName;
} else {
this._defaultFormat.font = flixel_system_FlxAssets.FONT_DEFAULT;
}
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
return this._font = this._defaultFormat.font;
}
,get_embedded: function() {
return this.textField.set_embedFonts(true);
}
,get_systemFont: function() {
return this._defaultFormat.font;
}
,set_systemFont: function(Font) {
this.textField.set_embedFonts(false);
this._defaultFormat.font = Font;
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
return Font;
}
,get_bold: function() {
return this._defaultFormat.bold;
}
,set_bold: function(value) {
if(this._defaultFormat.bold != value) {
this._defaultFormat.bold = value;
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
}
return value;
}
,get_italic: function() {
return this._defaultFormat.italic;
}
,set_italic: function(value) {
if(this._defaultFormat.italic != value) {
this._defaultFormat.italic = value;
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
}
return value;
}
,get_wordWrap: function() {
return this.textField.get_wordWrap();
}
,set_wordWrap: function(value) {
if(this.textField.get_wordWrap() != value) {
this.textField.set_wordWrap(value);
this._regen = true;
}
return value;
}
,get_alignment: function() {
return flixel_text_FlxTextAlign.fromOpenFL(this._defaultFormat.align);
}
,set_alignment: function(Alignment) {
this._defaultFormat.align = flixel_text_FlxTextAlign.toOpenFL(Alignment);
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
return Alignment;
}
,set_borderStyle: function(style) {
if(style != this.borderStyle) {
this._regen = true;
}
return this.borderStyle = style;
}
,set_borderColor: function(Color) {
if(this.borderColor != Color && this.borderStyle != flixel_text_FlxTextBorderStyle.NONE) {
this._regen = true;
}
this._hasBorderAlpha = (Color >> 24 & 255) / 255 < 1;
return this.borderColor = Color;
}
,set_borderSize: function(Value) {
if(Value != this.borderSize && this.borderStyle != flixel_text_FlxTextBorderStyle.NONE) {
this._regen = true;
}
return this.borderSize = Value;
}
,set_borderQuality: function(Value) {
var lowerBound = Value < 0 ? 0 : Value;
Value = lowerBound > 1 ? 1 : lowerBound;
if(Value != this.borderQuality && this.borderStyle != flixel_text_FlxTextBorderStyle.NONE) {
this._regen = true;
}
return this.borderQuality = Value;
}
,set_graphic: function(Value) {
var oldGraphic = this.graphic;
var graph = flixel_FlxSprite.prototype.set_graphic.call(this,Value);
flixel_FlxG.bitmap.removeIfNoUse(oldGraphic);
return graph;
}
,get_width: function() {
this.regenGraphic();
return flixel_FlxSprite.prototype.get_width.call(this);
}
,get_height: function() {
this.regenGraphic();
return flixel_FlxSprite.prototype.get_height.call(this);
}
,updateColorTransform: function() {
if(this.colorTransform == null) {
this.colorTransform = new openfl_geom_ColorTransform();
}
if(this.alpha != 1) {
this.colorTransform.alphaMultiplier = this.alpha;
this.useColorTransform = true;
} else {
this.colorTransform.alphaMultiplier = 1;
this.useColorTransform = false;
}
this.dirty = true;
}
,regenGraphic: function() {
if(this.textField == null || !this._regen) {
return;
}
var oldWidth = 0;
var oldHeight = 4;
if(this.graphic != null) {
oldWidth = this.graphic.width;
oldHeight = this.graphic.height;
}
var newWidth = this.textField.get_width();
var newHeight = this.textField.get_textHeight() + 4;
if(this.textField.get_textHeight() == 0) {
newHeight = oldHeight;
}
if(oldWidth != newWidth || oldHeight != newHeight) {
this.set_height(newHeight);
var key = flixel_FlxG.bitmap.getUniqueKey("text");
this.makeGraphic(newWidth | 0,newHeight | 0,0,false,key);
if(this._hasBorderAlpha) {
this._borderPixels = this.graphic.bitmap.clone();
}
this.frameHeight = this.get_height() | 0;
this.textField.set_height(this.get_height() * 1.2);
this._flashRect.x = 0;
this._flashRect.y = 0;
this._flashRect.width = newWidth;
this._flashRect.height = newHeight;
} else {
this.graphic.bitmap.fillRect(this._flashRect,0);
if(this._hasBorderAlpha) {
if(this._borderPixels == null) {
this._borderPixels = new openfl_display_BitmapData(this.frameWidth,this.frameHeight,true);
} else {
this._borderPixels.fillRect(this._flashRect,0);
}
}
}
if(this.textField != null && this.textField.get_text() != null && this.textField.get_text().length > 0) {
this.copyTextFormat(this._defaultFormat,this._formatAdjusted);
this._matrix.identity();
this.applyBorderStyle();
if(this._hasBorderAlpha) {
if(this._borderColorTransform == null) {
this._borderColorTransform = new openfl_geom_ColorTransform();
}
this._borderColorTransform.alphaMultiplier = (this.borderColor >> 24 & 255) / 255;
this._borderPixels.colorTransform(this._borderPixels.rect,this._borderColorTransform);
this.graphic.bitmap.draw(this._borderPixels);
}
this.applyFormats(this._formatAdjusted,false);
this.drawTextFieldTo(this.graphic.bitmap);
}
this._regen = false;
this.set_frame(this.frame);
}
,drawTextFieldTo: function(graphic) {
graphic.draw(this.textField,this._matrix);
}
,draw: function() {
this.regenGraphic();
flixel_FlxSprite.prototype.draw.call(this);
}
,calcFrame: function(RunOnCpp) {
if(RunOnCpp == null) {
RunOnCpp = false;
}
if(this.textField == null) {
return;
}
if(flixel_FlxG.renderTile && !RunOnCpp) {
return;
}
this.regenGraphic();
flixel_FlxSprite.prototype.calcFrame.call(this,RunOnCpp);
}
,applyBorderStyle: function() {
var iterations = this.borderSize * this.borderQuality | 0;
if(iterations <= 0) {
iterations = 1;
}
var delta = this.borderSize / iterations;
switch(this.borderStyle._hx_index) {
case 0:
break;
case 1:
this.applyFormats(this._formatAdjusted,true);
var _g = 0;
var _g1 = iterations;
while(_g < _g1) {
var i = _g++;
var graphic = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(delta,delta);
this.drawTextFieldTo(graphic);
}
this._matrix.translate(-this.shadowOffset.x * this.borderSize,-this.shadowOffset.y * this.borderSize);
break;
case 2:
this.applyFormats(this._formatAdjusted,true);
var curDelta = delta;
var _g = 0;
var _g1 = iterations;
while(_g < _g1) {
var i = _g++;
var graphic = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(-curDelta,-curDelta);
this.drawTextFieldTo(graphic);
var graphic1 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(curDelta,0);
this.drawTextFieldTo(graphic1);
var graphic2 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(curDelta,0);
this.drawTextFieldTo(graphic2);
var graphic3 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(0,curDelta);
this.drawTextFieldTo(graphic3);
var graphic4 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(0,curDelta);
this.drawTextFieldTo(graphic4);
var graphic5 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(-curDelta,0);
this.drawTextFieldTo(graphic5);
var graphic6 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(-curDelta,0);
this.drawTextFieldTo(graphic6);
var graphic7 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(0,-curDelta);
this.drawTextFieldTo(graphic7);
this._matrix.translate(curDelta,0);
curDelta += delta;
}
break;
case 3:
this.applyFormats(this._formatAdjusted,true);
var curDelta = delta;
var _g = 0;
var _g1 = iterations;
while(_g < _g1) {
var i = _g++;
var graphic = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(-curDelta,-curDelta);
this.drawTextFieldTo(graphic);
var graphic1 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(curDelta * 2,0);
this.drawTextFieldTo(graphic1);
var graphic2 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(0,curDelta * 2);
this.drawTextFieldTo(graphic2);
var graphic3 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(-curDelta * 2,0);
this.drawTextFieldTo(graphic3);
this._matrix.translate(curDelta,-curDelta);
curDelta += delta;
}
break;
}
}
,applyBorderTransparency: function() {
if(!this._hasBorderAlpha) {
return;
}
if(this._borderColorTransform == null) {
this._borderColorTransform = new openfl_geom_ColorTransform();
}
this._borderColorTransform.alphaMultiplier = (this.borderColor >> 24 & 255) / 255;
this._borderPixels.colorTransform(this._borderPixels.rect,this._borderColorTransform);
this.graphic.bitmap.draw(this._borderPixels);
}
,copyTextWithOffset: function(x,y) {
var graphic = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap;
this._matrix.translate(x,y);
this.drawTextFieldTo(graphic);
}
,applyFormats: function(FormatAdjusted,UseBorderColor) {
if(UseBorderColor == null) {
UseBorderColor = false;
}
this.copyTextFormat(this._defaultFormat,FormatAdjusted,false);
FormatAdjusted.color = UseBorderColor ? this.borderColor & 16777215 : this._defaultFormat.color;
this.textField.setTextFormat(FormatAdjusted);
var _g = 0;
var _g1 = this._formatRanges;
while(_g < _g1.length) {
var formatRange = _g1[_g];
++_g;
if(this.textField.get_text().length - 1 < formatRange.range.start) {
break;
} else {
var textFormat = formatRange.format.format;
this.copyTextFormat(textFormat,FormatAdjusted,false);
FormatAdjusted.color = UseBorderColor ? formatRange.format.borderColor & 16777215 : textFormat.color;
}
this.textField.setTextFormat(FormatAdjusted,formatRange.range.start,Math.min(formatRange.range.end,this.textField.get_text().length) | 0);
}
}
,copyTextFormat: function(from,to,withAlign) {
if(withAlign == null) {
withAlign = true;
}
to.font = from.font;
to.bold = from.bold;
to.italic = from.italic;
to.size = from.size;
to.color = from.color;
if(withAlign) {
to.align = from.align;
}
}
,dtfCopy: function() {
var dtf = this.textField.get_defaultTextFormat();
return new openfl_text_TextFormat(dtf.font,dtf.size,dtf.color,dtf.bold,dtf.italic,dtf.underline,dtf.url,dtf.target,dtf.align);
}
,updateDefaultFormat: function() {
this.textField.set_defaultTextFormat(this._defaultFormat);
this.textField.setTextFormat(this._defaultFormat);
this._regen = true;
}
,set_frames: function(Frames) {
flixel_FlxSprite.prototype.set_frames.call(this,Frames);
this._regen = false;
return Frames;
}
,__class__: flixel_text_FlxText
,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_autoSize:"set_autoSize",get_autoSize:"get_autoSize",set_fieldWidth:"set_fieldWidth",get_fieldWidth:"get_fieldWidth",set_borderQuality:"set_borderQuality",set_borderSize:"set_borderSize",set_borderColor:"set_borderColor",set_borderStyle:"set_borderStyle",set_alignment:"set_alignment",get_alignment:"get_alignment",set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_italic:"set_italic",get_italic:"get_italic",set_bold:"set_bold",get_bold:"get_bold",set_systemFont:"set_systemFont",get_systemFont:"get_systemFont",get_embedded:"get_embedded",set_font:"set_font",get_font:"get_font",set_size:"set_size",get_size:"get_size",set_text:"set_text"})
});
var flixel_addons_text_FlxTypeText = function(X,Y,Width,Text1,Size,EmbeddedFont) {
if(EmbeddedFont == null) {
EmbeddedFont = true;
}
if(Size == null) {
Size = 8;
}
this._typeVarPercent = 0.5;
this._typingVariation = false;
this._cursorTimer = 0.0;
this._waiting = false;
this._erasing = false;
this._typing = false;
this._length = 0;
this._waitTimer = 0.0;
this._timer = 0.0;
this._finalText = "";
this.skipKeys = [];
this.finishSounds = false;
this.useDefaultSound = false;
this.paused = false;
this.waitTime = 1.0;
this.autoErase = false;
this.prefix = "";
this.cursorBlinkSpeed = 0.5;
this.cursorCharacter = "|";
this.showCursor = false;
this.eraseDelay = 0.02;
this.delay = 0.05;
flixel_text_FlxText.call(this,X,Y,Width,"",Size,EmbeddedFont);
this._finalText = Text1;
};
$hxClasses["flixel.addons.text.FlxTypeText"] = flixel_addons_text_FlxTypeText;
flixel_addons_text_FlxTypeText.__name__ = "flixel.addons.text.FlxTypeText";
flixel_addons_text_FlxTypeText.__super__ = flixel_text_FlxText;
flixel_addons_text_FlxTypeText.prototype = $extend(flixel_text_FlxText.prototype,{
delay: null
,eraseDelay: null
,showCursor: null
,cursorCharacter: null
,cursorBlinkSpeed: null
,prefix: null
,autoErase: null
,waitTime: null
,paused: null
,sounds: null
,useDefaultSound: null
,finishSounds: null
,skipKeys: null
,completeCallback: null
,eraseCallback: null
,_finalText: null
,_timer: null
,_waitTimer: null
,_length: null
,_typing: null
,_erasing: null
,_waiting: null
,_cursorTimer: null
,_typingVariation: null
,_typeVarPercent: null
,_sound: null
,start: function(Delay,ForceRestart,AutoErase,SkipKeys,Callback) {
if(AutoErase == null) {
AutoErase = false;
}
if(ForceRestart == null) {
ForceRestart = false;
}
if(Delay != null) {
this.delay = Delay;
}
this._typing = true;
this._erasing = false;
this.paused = false;
this._waiting = false;
if(ForceRestart) {
this.set_text("");
this._length = 0;
}
this.autoErase = AutoErase;
if(SkipKeys != null) {
this.skipKeys = SkipKeys;
}
this.completeCallback = Callback;
this.insertBreakLines();
if(this.useDefaultSound) {
this.loadDefaultSound();
}
}
,applyMarkup: function(input,rules) {
flixel_text_FlxText.prototype.applyMarkup.call(this,input,rules);
this.resetText(this.text);
return this;
}
,insertBreakLines: function() {
var saveText = this.text;
var last = this._finalText.length;
var n0 = 0;
var n1 = 0;
while(true) {
last = HxOverrides.substr(this._finalText,0,last).lastIndexOf(" ");
if(last <= 0) {
break;
}
this.set_text(this.prefix + this._finalText);
n0 = this.textField.get_numLines();
var nextText = HxOverrides.substr(this._finalText,0,last) + "\n" + HxOverrides.substr(this._finalText,last + 1,this._finalText.length);
this.set_text(this.prefix + nextText);
n1 = this.textField.get_numLines();
if(n0 == n1) {
this._finalText = nextText;
}
}
this.set_text(saveText);
}
,erase: function(Delay,ForceRestart,SkipKeys,Callback) {
if(ForceRestart == null) {
ForceRestart = false;
}
this._erasing = true;
this._typing = false;
this.paused = false;
this._waiting = false;
if(Delay != null) {
this.eraseDelay = Delay;
}
if(ForceRestart) {
this._length = this._finalText.length;
this.set_text(this._finalText);
}
if(SkipKeys != null) {
this.skipKeys = SkipKeys;
}
this.eraseCallback = Callback;
if(this.useDefaultSound) {
this.loadDefaultSound();
}
}
,resetText: function(Text1) {
this.set_text("");
this._finalText = Text1;
this._typing = false;
this._erasing = false;
this.paused = false;
this._waiting = false;
this._length = 0;
}
,setTypingVariation: function(Amount,On) {
if(On == null) {
On = true;
}
if(Amount == null) {
Amount = 0.5;
}
this._typingVariation = On;
var lowerBound = Amount < 0 ? 0 : Amount;
this._typeVarPercent = lowerBound > 1 ? 1 : lowerBound;
}
,onComplete: function() {
this._timer = 0;
this._typing = false;
if(this.useDefaultSound) {
var _this = this._sound;
_this.cleanup(_this.autoDestroy,true);
} else if(this.sounds != null) {
var _g = 0;
var _g1 = this.sounds;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
sound.cleanup(sound.autoDestroy,true);
}
}
if(this.completeCallback != null) {
this.completeCallback();
}
if(this.autoErase && this.waitTime <= 0) {
this._erasing = true;
} else if(this.autoErase) {
this._waitTimer = this.waitTime;
this._waiting = true;
}
}
,onErased: function() {
this._timer = 0;
this._erasing = false;
if(this.eraseCallback != null) {
this.eraseCallback();
}
}
,update: function(elapsed) {
if(this.skipKeys != null && this.skipKeys.length > 0 && flixel_FlxG.keys.checkKeyArrayState(this.skipKeys,2)) {
this.skip();
}
if(this._waiting && !this.paused) {
this._waitTimer -= elapsed;
if(this._waitTimer <= 0) {
this._waiting = false;
this._erasing = true;
}
}
if(!this._waiting && !this.paused) {
if(this._length < this._finalText.length && this._typing) {
this._timer += elapsed;
}
if(this._length > 0 && this._erasing) {
this._timer += elapsed;
}
}
if(this._typing || this._erasing) {
if(this._typing && this._timer >= this.delay) {
this._length += this._timer / this.delay | 0;
if(this._length > this._finalText.length) {
this._length = this._finalText.length;
}
}
if(this._erasing && this._timer >= this.eraseDelay) {
this._length -= this._timer / this.eraseDelay | 0;
if(this._length < 0) {
this._length = 0;
}
}
if(this._typing && this._timer >= this.delay || this._erasing && this._timer >= this.eraseDelay) {
if(this._typingVariation) {
if(this._typing) {
this._timer = flixel_FlxG.random.float(-this.delay * this._typeVarPercent / 2,this.delay * this._typeVarPercent / 2);
} else {
this._timer = flixel_FlxG.random.float(-this.eraseDelay * this._typeVarPercent / 2,this.eraseDelay * this._typeVarPercent / 2);
}
} else {
this._timer %= this.delay;
}
if(this.sounds != null && !this.useDefaultSound) {
if(!this.finishSounds) {
var _g = 0;
var _g1 = this.sounds;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
sound.cleanup(sound.autoDestroy,true);
}
}
flixel_FlxG.random.getObject_flixel_system_FlxSound(this.sounds).play(!this.finishSounds);
} else if(this.useDefaultSound) {
this._sound.play(!this.finishSounds);
}
}
}
flixel_addons_text_FlxTypeText.helperString = this.prefix + HxOverrides.substr(this._finalText,0,this._length);
if(this.showCursor) {
this._cursorTimer += elapsed;
var isBreakLine = (this.prefix + this._finalText).charAt(flixel_addons_text_FlxTypeText.helperString.length) == "\n";
if(this._cursorTimer > this.cursorBlinkSpeed / 2 && !isBreakLine) {
flixel_addons_text_FlxTypeText.helperString += this.cursorCharacter.charAt(0);
}
if(this._cursorTimer > this.cursorBlinkSpeed) {
this._cursorTimer = 0;
}
}
if(flixel_addons_text_FlxTypeText.helperString != this.text) {
this.set_text(flixel_addons_text_FlxTypeText.helperString);
if(this._length >= this._finalText.length && this._typing && !this._waiting && !this._erasing) {
this.onComplete();
}
if(this._length == 0 && this._erasing && !this._typing && !this._waiting) {
this.onErased();
}
}
flixel_text_FlxText.prototype.update.call(this,elapsed);
}
,skip: function() {
if(this._erasing || this._waiting) {
this._length = 0;
this._waiting = false;
} else if(this._typing) {
this._length = this._finalText.length;
}
}
,loadDefaultSound: function() {
this._sound = flixel_FlxG.sound.load(new flixel_addons_text_TypeSound());
}
,__class__: flixel_addons_text_FlxTypeText
});
var lime_math_Vector2 = function(x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
this.x = x;
this.y = y;
};
$hxClasses["lime.math.Vector2"] = lime_math_Vector2;
lime_math_Vector2.__name__ = "lime.math.Vector2";
lime_math_Vector2.distance = function(pt1,pt2) {
var dx = pt1.x - pt2.x;
var dy = pt1.y - pt2.y;
return Math.sqrt(dx * dx + dy * dy);
};
lime_math_Vector2.interpolate = function(pt1,pt2,f,result) {
if(result == null) {
result = new lime_math_Vector2();
}
result.x = pt2.x + f * (pt1.x - pt2.x);
result.y = pt2.y + f * (pt1.y - pt2.y);
return result;
};
lime_math_Vector2.polar = function(len,angle,result) {
if(result == null) {
result = new lime_math_Vector2();
}
var ya = len * Math.sin(angle);
result.x = len * Math.cos(angle);
result.y = ya;
return result;
};
lime_math_Vector2.prototype = {
x: null
,y: null
,add: function(v,result) {
if(result == null) {
result = new lime_math_Vector2();
}
result.x = v.x + this.x;
result.y = v.y + this.y;
return result;
}
,clone: function() {
return new lime_math_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,result) {
if(result == null) {
result = new lime_math_Vector2();
}
result.x = this.x - v.x;
result.y = this.y - v.y;
return result;
}
,__toFlashPoint: function() {
return null;
}
,get_length: function() {
return Math.sqrt(this.x * this.x + this.y * this.y);
}
,get_lengthSquared: function() {
return this.x * this.x + this.y * this.y;
}
,__class__: lime_math_Vector2
,__properties__: {get_lengthSquared:"get_lengthSquared",get_length:"get_length"}
};
var openfl_display_BitmapData = function(width,height,transparent,fillColor) {
if(fillColor == null) {
fillColor = -1;
}
if(transparent == null) {
transparent = true;
}
this.transparent = transparent;
if(width == null) {
width = 0;
}
if(height == null) {
height = 0;
}
if(width < 0) {
width = 0;
}
if(height < 0) {
height = 0;
}
this.width = width;
this.height = height;
this.rect = new openfl_geom_Rectangle(0,0,width,height);
this.__textureWidth = width;
this.__textureHeight = 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(null,0,0,width,height,fillColor);
this.image.set_transparent(transparent);
this.__isValid = true;
this.readable = true;
}
this.__renderTransform = new openfl_geom_Matrix();
this.__worldAlpha = 1;
this.__worldTransform = new openfl_geom_Matrix();
this.__worldColorTransform = new openfl_geom_ColorTransform();
this.__renderable = true;
};
$hxClasses["openfl.display.BitmapData"] = openfl_display_BitmapData;
openfl_display_BitmapData.__name__ = "openfl.display.BitmapData";
openfl_display_BitmapData.__interfaces__ = [openfl_display_IBitmapDrawable];
openfl_display_BitmapData.__textureFormat = null;
openfl_display_BitmapData.__textureInternalFormat = null;
openfl_display_BitmapData.fromBase64 = function(base64,type) {
return null;
};
openfl_display_BitmapData.fromBytes = function(bytes,rawAlpha) {
return null;
};
openfl_display_BitmapData.fromCanvas = function(canvas,transparent) {
if(transparent == null) {
transparent = true;
}
if(canvas == null) {
return null;
}
var bitmapData = new openfl_display_BitmapData(0,0,transparent,0);
bitmapData.__fromImage(lime_graphics_Image.fromCanvas(canvas));
bitmapData.image.set_transparent(transparent);
return bitmapData;
};
openfl_display_BitmapData.fromFile = function(path) {
return null;
};
openfl_display_BitmapData.fromImage = function(image,transparent) {
if(transparent == null) {
transparent = true;
}
if(image == null || image.buffer == null) {
return null;
}
var bitmapData = new openfl_display_BitmapData(0,0,transparent,0);
bitmapData.__fromImage(image);
bitmapData.image.set_transparent(transparent);
if(bitmapData.image != null) {
return bitmapData;
} else {
return null;
}
};
openfl_display_BitmapData.fromTexture = function(texture) {
if(texture == null) {
return null;
}
var bitmapData = new openfl_display_BitmapData(texture.__width,texture.__height,true,0);
bitmapData.readable = false;
bitmapData.__texture = texture;
bitmapData.__textureContext = texture.__textureContext;
bitmapData.image = null;
return bitmapData;
};
openfl_display_BitmapData.loadFromBase64 = function(base64,type) {
return lime_graphics_Image.loadFromBase64(base64,type).then(function(image) {
return lime_app_Future.withValue(openfl_display_BitmapData.fromImage(image));
});
};
openfl_display_BitmapData.loadFromBytes = function(bytes,rawAlpha) {
return lime_graphics_Image.loadFromBytes(openfl_utils_ByteArray.toBytes(bytes)).then(function(image) {
var bitmapData = openfl_display_BitmapData.fromImage(image);
if(rawAlpha != null) {
bitmapData.__applyAlpha(rawAlpha);
}
return lime_app_Future.withValue(bitmapData);
});
};
openfl_display_BitmapData.loadFromFile = function(path) {
return lime_graphics_Image.loadFromFile(path).then(function(image) {
return lime_app_Future.withValue(openfl_display_BitmapData.fromImage(image));
});
};
openfl_display_BitmapData.prototype = {
height: null
,image: null
,readable: null
,rect: null
,transparent: null
,width: null
,__blendMode: null
,__framebuffer: null
,__framebufferContext: null
,__indexBuffer: null
,__indexBufferContext: null
,__indexBufferData: null
,__indexBufferGrid: null
,__isMask: null
,__isValid: null
,__mask: null
,__renderable: null
,__renderTransform: null
,__scrollRect: null
,__stencilBuffer: null
,__surface: null
,__texture: null
,__textureContext: null
,__textureHeight: null
,__textureVersion: null
,__textureWidth: null
,__transform: null
,__uvRect: null
,__vertexBuffer: null
,__vertexBufferContext: null
,__vertexBufferData: null
,__vertexBufferGrid: null
,__vertexBufferHeight: null
,__vertexBufferScaleX: null
,__vertexBufferScaleY: null
,__vertexBufferWidth: null
,__worldAlpha: null
,__worldColorTransform: null
,__worldTransform: null
,applyFilter: function(sourceBitmapData,sourceRect,destPoint,filter) {
if(!this.readable || sourceBitmapData == null || !sourceBitmapData.readable) {
return;
}
var needSecondBitmapData = filter.__needSecondBitmapData;
var needCopyOfOriginal = filter.__preserveObject;
var bitmapData2 = null;
var bitmapData3 = null;
if(needSecondBitmapData) {
bitmapData2 = new openfl_display_BitmapData(this.width,this.height,true,0);
} else {
bitmapData2 = this;
}
if(needCopyOfOriginal) {
bitmapData3 = new openfl_display_BitmapData(this.width,this.height,true,0);
}
if(filter.__preserveObject) {
bitmapData3.copyPixels(this,this.rect,destPoint);
}
var lastBitmap = filter.__applyFilter(bitmapData2,this,sourceRect,destPoint);
if(filter.__preserveObject) {
lastBitmap.draw(bitmapData3,null,null);
}
if(needSecondBitmapData && lastBitmap == bitmapData2) {
bitmapData2.image.version = this.image.version;
this.image = bitmapData2.image;
}
this.image.dirty = true;
this.image.version++;
}
,clone: function() {
var bitmapData;
if(!this.__isValid) {
bitmapData = new openfl_display_BitmapData(this.width,this.height,this.transparent,0);
} else if(!this.readable && this.image == null) {
bitmapData = new openfl_display_BitmapData(0,0,this.transparent,0);
bitmapData.width = this.width;
bitmapData.height = this.height;
bitmapData.__textureWidth = this.__textureWidth;
bitmapData.__textureHeight = this.__textureHeight;
bitmapData.rect.copyFrom(this.rect);
bitmapData.__framebuffer = this.__framebuffer;
bitmapData.__framebufferContext = this.__framebufferContext;
bitmapData.__texture = this.__texture;
bitmapData.__textureContext = this.__textureContext;
bitmapData.__isValid = true;
} else {
bitmapData = openfl_display_BitmapData.fromImage(this.image.clone(),this.transparent);
}
bitmapData.__worldTransform.copyFrom(this.__worldTransform);
bitmapData.__renderTransform.copyFrom(this.__renderTransform);
return bitmapData;
}
,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 _g = 0;
var _g1 = bytes.length;
while(_g < _g1) {
var i = _g++;
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 _g = 0;
var _g1 = this.height;
while(_g < _g1) {
var y = _g++;
var _g2 = 0;
var _g3 = this.width;
while(_g2 < _g3) {
var x = _g2++;
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 openfl_display_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.RED;
break;
case 2:
sourceChannel1 = lime_graphics_ImageChannel.GREEN;
break;
case 4:
sourceChannel1 = lime_graphics_ImageChannel.BLUE;
break;
case 8:
sourceChannel1 = lime_graphics_ImageChannel.ALPHA;
break;
default:
return;
}
var destChannel1;
switch(destChannel) {
case 1:
destChannel1 = lime_graphics_ImageChannel.RED;
break;
case 2:
destChannel1 = lime_graphics_ImageChannel.GREEN;
break;
case 4:
destChannel1 = lime_graphics_ImageChannel.BLUE;
break;
case 8:
destChannel1 = lime_graphics_ImageChannel.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) {
openfl_display_BitmapData.__tempVector.x = alphaPoint.x;
openfl_display_BitmapData.__tempVector.y = alphaPoint.y;
}
this.image.copyPixels(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),alphaBitmapData != null ? alphaBitmapData.image : null,alphaPoint != null ? openfl_display_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.__vertexBuffer = 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(source == null) {
return;
}
source.__update(false,true);
var transform = openfl_geom_Matrix.__pool.get();
transform.copyFrom(source.__renderTransform);
transform.invert();
if(matrix != null) {
transform.concat(matrix);
}
var clipMatrix = null;
if(clipRect != null) {
clipMatrix = openfl_geom_Matrix.__pool.get();
clipMatrix.copyFrom(transform);
clipMatrix.invert();
}
var _colorTransform = new openfl_geom_ColorTransform();
_colorTransform.__copyFrom(source.__worldColorTransform);
_colorTransform.__invert();
if(!this.readable && openfl_Lib.get_current().stage.context3D != null) {
if(this.__textureContext == null) {
this.__textureContext = lime_app_Application.current.__window.context;
}
if(colorTransform != null) {
_colorTransform.__combine(colorTransform);
}
var renderer = new openfl_display_OpenGLRenderer(openfl_Lib.get_current().stage.context3D,this);
renderer.__allowSmoothing = smoothing;
renderer.__overrideBlendMode = blendMode;
renderer.__worldTransform = transform;
renderer.__worldAlpha = 1 / source.__worldAlpha;
renderer.__worldColorTransform = _colorTransform;
renderer.__resize(this.width,this.height);
if(clipRect != null) {
renderer.__pushMaskRect(clipRect,clipMatrix);
}
this.__drawGL(source,renderer);
if(clipRect != null) {
renderer.__popMaskRect();
openfl_geom_Matrix.__pool.release(clipMatrix);
}
} else {
if(colorTransform != null) {
var bounds = openfl_geom_Rectangle.__pool.get();
var boundsMatrix = openfl_geom_Matrix.__pool.get();
source.__getBounds(bounds,boundsMatrix);
var width = Math.ceil(bounds.width);
var height = Math.ceil(bounds.height);
boundsMatrix.tx = -bounds.x;
boundsMatrix.ty = -bounds.y;
var copy = new openfl_display_BitmapData(width,height,true,0);
copy.draw(source,boundsMatrix);
copy.colorTransform(copy.rect,colorTransform);
copy.__renderTransform.identity();
copy.__renderTransform.tx = bounds.x;
copy.__renderTransform.ty = bounds.y;
copy.__renderTransform.concat(source.__renderTransform);
copy.__worldAlpha = source.__worldAlpha;
copy.__worldColorTransform.__copyFrom(source.__worldColorTransform);
source = copy;
openfl_geom_Rectangle.__pool.release(bounds);
openfl_geom_Matrix.__pool.release(boundsMatrix);
}
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this.image);
var renderer = new openfl_display_CanvasRenderer(this.image.buffer.__srcContext);
renderer.__allowSmoothing = smoothing;
renderer.__overrideBlendMode = blendMode;
renderer.__worldTransform = transform;
renderer.__worldAlpha = 1 / source.__worldAlpha;
renderer.__worldColorTransform = _colorTransform;
if(clipRect != null) {
renderer.__pushMaskRect(clipRect,clipMatrix);
}
this.__drawCanvas(source,renderer);
if(clipRect != null) {
renderer.__popMaskRect();
openfl_geom_Matrix.__pool.release(clipMatrix);
}
}
openfl_geom_Matrix.__pool.release(transform);
}
,drawWithQuality: function(source,matrix,colorTransform,blendMode,clipRect,smoothing,quality) {
if(smoothing == null) {
smoothing = false;
}
this.draw(source,matrix,colorTransform,blendMode,clipRect,quality != 2 && smoothing);
}
,encode: function(rect,compressor,byteArray) {
if(!this.readable || rect == null) {
byteArray = null;
return byteArray;
}
if(byteArray == null) {
var this1 = new openfl_utils_ByteArrayData(0);
byteArray = this1;
}
var image = this.image;
if(!rect.equals(this.rect)) {
var matrix = openfl_geom_Matrix.__pool.get();
matrix.tx = Math.round(-rect.x);
matrix.ty = Math.round(-rect.y);
var bitmapData = new openfl_display_BitmapData(Math.ceil(rect.width),Math.ceil(rect.height),true,0);
bitmapData.draw(this,matrix);
image = bitmapData.image;
openfl_geom_Matrix.__pool.release(matrix);
}
if(((compressor) instanceof openfl_display_PNGEncoderOptions)) {
byteArray.writeBytes(openfl_utils_ByteArray.fromBytes(image.encode(lime_graphics_ImageFileFormat.PNG)),0,0);
return byteArray;
} else if(((compressor) instanceof openfl_display_JPEGEncoderOptions)) {
byteArray.writeBytes(openfl_utils_ByteArray.fromBytes(image.encode(lime_graphics_ImageFileFormat.JPEG,(js_Boot.__cast(compressor , openfl_display_JPEGEncoderOptions)).quality)),0,0);
return byteArray;
}
byteArray = null;
return byteArray;
}
,fillRect: function(rect,color) {
this.__fillRect(rect,color,true);
}
,floodFill: function(x,y,color) {
if(!this.readable) {
return;
}
this.image.floodFill(x,y,color,1);
}
,generateFilterRect: function(sourceRect,filter) {
return sourceRect.clone();
}
,getIndexBuffer: function(context,scale9Grid) {
var gl = context.gl;
if(this.__indexBuffer == null || this.__indexBufferContext != context.__context || scale9Grid != null && this.__indexBufferGrid == null || this.__indexBufferGrid != null && !this.__indexBufferGrid.equals(scale9Grid)) {
this.__indexBufferContext = context.__context;
this.__indexBuffer = null;
if(scale9Grid != null) {
if(this.__indexBufferGrid == null) {
this.__indexBufferGrid = new openfl_geom_Rectangle();
}
this.__indexBufferGrid.copyFrom(scale9Grid);
var centerX = scale9Grid.width;
var centerY = scale9Grid.height;
if(centerX != 0 && centerY != 0) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Uint16Array(54);
this.__indexBufferData = this1;
this.__indexBufferData[0] = 0;
this.__indexBufferData[1] = 1;
this.__indexBufferData[2] = 2;
this.__indexBufferData[3] = 2;
this.__indexBufferData[4] = 1;
this.__indexBufferData[5] = 3;
this.__indexBufferData[6] = 4;
this.__indexBufferData[7] = 0;
this.__indexBufferData[8] = 5;
this.__indexBufferData[9] = 5;
this.__indexBufferData[10] = 0;
this.__indexBufferData[11] = 2;
this.__indexBufferData[12] = 6;
this.__indexBufferData[13] = 4;
this.__indexBufferData[14] = 7;
this.__indexBufferData[15] = 7;
this.__indexBufferData[16] = 4;
this.__indexBufferData[17] = 5;
this.__indexBufferData[18] = 8;
this.__indexBufferData[19] = 9;
this.__indexBufferData[20] = 0;
this.__indexBufferData[21] = 0;
this.__indexBufferData[22] = 9;
this.__indexBufferData[23] = 1;
this.__indexBufferData[24] = 10;
this.__indexBufferData[25] = 8;
this.__indexBufferData[26] = 4;
this.__indexBufferData[27] = 4;
this.__indexBufferData[28] = 8;
this.__indexBufferData[29] = 0;
this.__indexBufferData[30] = 11;
this.__indexBufferData[31] = 10;
this.__indexBufferData[32] = 6;
this.__indexBufferData[33] = 6;
this.__indexBufferData[34] = 10;
this.__indexBufferData[35] = 4;
this.__indexBufferData[36] = 12;
this.__indexBufferData[37] = 13;
this.__indexBufferData[38] = 8;
this.__indexBufferData[39] = 8;
this.__indexBufferData[40] = 13;
this.__indexBufferData[41] = 9;
this.__indexBufferData[42] = 14;
this.__indexBufferData[43] = 12;
this.__indexBufferData[44] = 10;
this.__indexBufferData[45] = 10;
this.__indexBufferData[46] = 12;
this.__indexBufferData[47] = 8;
this.__indexBufferData[48] = 15;
this.__indexBufferData[49] = 14;
this.__indexBufferData[50] = 11;
this.__indexBufferData[51] = 11;
this.__indexBufferData[52] = 14;
this.__indexBufferData[53] = 10;
this.__indexBuffer = context.createIndexBuffer(54);
} else if(centerX == 0 && centerY != 0) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Uint16Array(18);
this.__indexBufferData = this1;
this.__indexBufferData[0] = 0;
this.__indexBufferData[1] = 1;
this.__indexBufferData[2] = 2;
this.__indexBufferData[3] = 2;
this.__indexBufferData[4] = 1;
this.__indexBufferData[5] = 3;
this.__indexBufferData[6] = 4;
this.__indexBufferData[7] = 5;
this.__indexBufferData[8] = 0;
this.__indexBufferData[9] = 0;
this.__indexBufferData[10] = 5;
this.__indexBufferData[11] = 1;
this.__indexBufferData[12] = 6;
this.__indexBufferData[13] = 7;
this.__indexBufferData[14] = 4;
this.__indexBufferData[15] = 4;
this.__indexBufferData[16] = 7;
this.__indexBufferData[17] = 5;
this.__indexBuffer = context.createIndexBuffer(18);
} else if(centerX != 0 && centerY == 0) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Uint16Array(18);
this.__indexBufferData = this1;
this.__indexBufferData[0] = 0;
this.__indexBufferData[1] = 1;
this.__indexBufferData[2] = 2;
this.__indexBufferData[3] = 2;
this.__indexBufferData[4] = 1;
this.__indexBufferData[5] = 3;
this.__indexBufferData[6] = 4;
this.__indexBufferData[7] = 0;
this.__indexBufferData[8] = 5;
this.__indexBufferData[9] = 5;
this.__indexBufferData[10] = 0;
this.__indexBufferData[11] = 2;
this.__indexBufferData[12] = 6;
this.__indexBufferData[13] = 4;
this.__indexBufferData[14] = 7;
this.__indexBufferData[15] = 7;
this.__indexBufferData[16] = 4;
this.__indexBufferData[17] = 5;
this.__indexBuffer = context.createIndexBuffer(18);
}
} else {
this.__indexBufferGrid = null;
}
if(this.__indexBuffer == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Uint16Array(6);
this.__indexBufferData = this1;
this.__indexBufferData[0] = 0;
this.__indexBufferData[1] = 1;
this.__indexBufferData[2] = 2;
this.__indexBufferData[3] = 2;
this.__indexBufferData[4] = 1;
this.__indexBufferData[5] = 3;
this.__indexBuffer = context.createIndexBuffer(6);
}
this.__indexBuffer.uploadFromTypedArray(this.__indexBufferData);
}
return this.__indexBuffer;
}
,getVertexBuffer: function(context,scale9Grid,targetObject) {
var gl = context.gl;
if(this.__vertexBuffer == null || this.__vertexBufferContext != context.__context || scale9Grid != null && this.__vertexBufferGrid == null || this.__vertexBufferGrid != null && !this.__vertexBufferGrid.equals(scale9Grid) || targetObject != null && (this.__vertexBufferWidth != targetObject.get_width() || this.__vertexBufferHeight != targetObject.get_height() || this.__vertexBufferScaleX != targetObject.get_scaleX() || this.__vertexBufferScaleY != targetObject.get_scaleY())) {
this.__uvRect = new openfl_geom_Rectangle(0,0,this.width,this.height);
var uvWidth = 1;
var uvHeight = 1;
this.__vertexBufferContext = context.__context;
this.__vertexBuffer = null;
if(targetObject != null) {
this.__vertexBufferWidth = targetObject.get_width();
this.__vertexBufferHeight = targetObject.get_height();
this.__vertexBufferScaleX = targetObject.get_scaleX();
this.__vertexBufferScaleY = targetObject.get_scaleY();
}
if(scale9Grid != null && targetObject != null) {
if(this.__vertexBufferGrid == null) {
this.__vertexBufferGrid = new openfl_geom_Rectangle();
}
this.__vertexBufferGrid.copyFrom(scale9Grid);
this.__vertexBufferWidth = targetObject.get_width();
this.__vertexBufferHeight = targetObject.get_height();
this.__vertexBufferScaleX = targetObject.get_scaleX();
this.__vertexBufferScaleY = targetObject.get_scaleY();
var centerX = scale9Grid.width;
var centerY = scale9Grid.height;
if(centerX != 0 && centerY != 0) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Float32Array(224);
this.__vertexBufferData = this1;
var left = scale9Grid.x;
var top = scale9Grid.y;
var right = this.width - centerX - left;
var bottom = this.height - centerY - top;
var uvLeft = left / this.width;
var uvTop = top / this.height;
var uvCenterX = centerX / this.width;
var uvCenterY = centerY / this.height;
var uvRight = right / this.width;
var uvBottom = bottom / this.height;
var renderedLeft = left / targetObject.get_scaleX();
var renderedTop = top / targetObject.get_scaleY();
var renderedRight = right / targetObject.get_scaleX();
var renderedBottom = bottom / targetObject.get_scaleY();
var renderedCenterX = targetObject.get_width() / targetObject.get_scaleX() - renderedLeft - renderedRight;
var renderedCenterY = targetObject.get_height() / targetObject.get_scaleY() - renderedTop - renderedBottom;
this.__vertexBufferData[0] = renderedLeft;
this.__vertexBufferData[1] = renderedTop;
this.__vertexBufferData[3] = uvWidth * uvLeft;
this.__vertexBufferData[4] = uvHeight * uvTop;
this.__vertexBufferData[15] = renderedTop;
this.__vertexBufferData[18] = uvHeight * uvTop;
this.__vertexBufferData[28] = renderedLeft;
this.__vertexBufferData[31] = uvWidth * uvLeft;
this.__vertexBufferData[56] = renderedLeft + renderedCenterX;
this.__vertexBufferData[57] = renderedTop;
this.__vertexBufferData[59] = uvWidth * (uvLeft + uvCenterX);
this.__vertexBufferData[60] = uvHeight * uvTop;
this.__vertexBufferData[70] = renderedLeft + renderedCenterX;
this.__vertexBufferData[73] = uvWidth * (uvLeft + uvCenterX);
this.__vertexBufferData[84] = this.width;
this.__vertexBufferData[85] = renderedTop;
this.__vertexBufferData[87] = uvWidth;
this.__vertexBufferData[88] = uvHeight * uvTop;
this.__vertexBufferData[98] = this.width;
this.__vertexBufferData[101] = uvWidth;
this.__vertexBufferData[112] = renderedLeft;
this.__vertexBufferData[113] = renderedTop + renderedCenterY;
this.__vertexBufferData[115] = uvWidth * uvLeft;
this.__vertexBufferData[116] = uvHeight * (uvTop + uvCenterY);
this.__vertexBufferData[127] = renderedTop + renderedCenterY;
this.__vertexBufferData[130] = uvHeight * (uvTop + uvCenterY);
this.__vertexBufferData[140] = renderedLeft + renderedCenterX;
this.__vertexBufferData[141] = renderedTop + renderedCenterY;
this.__vertexBufferData[143] = uvWidth * (uvLeft + uvCenterX);
this.__vertexBufferData[144] = uvHeight * (uvTop + uvCenterY);
this.__vertexBufferData[154] = this.width;
this.__vertexBufferData[155] = renderedTop + renderedCenterY;
this.__vertexBufferData[157] = uvWidth;
this.__vertexBufferData[158] = uvHeight * (uvTop + uvCenterY);
this.__vertexBufferData[168] = renderedLeft;
this.__vertexBufferData[169] = this.height;
this.__vertexBufferData[171] = uvWidth * uvLeft;
this.__vertexBufferData[172] = uvHeight;
this.__vertexBufferData[183] = this.height;
this.__vertexBufferData[186] = uvHeight;
this.__vertexBufferData[196] = renderedLeft + renderedCenterX;
this.__vertexBufferData[197] = this.height;
this.__vertexBufferData[199] = uvWidth * (uvLeft + uvCenterX);
this.__vertexBufferData[200] = uvHeight;
this.__vertexBufferData[210] = this.width;
this.__vertexBufferData[211] = this.height;
this.__vertexBufferData[213] = uvWidth;
this.__vertexBufferData[214] = uvHeight;
this.__vertexBuffer = context.createVertexBuffer(16,14);
} else if(centerX == 0 && centerY != 0) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Float32Array(112);
this.__vertexBufferData = this1;
var top = scale9Grid.y;
var bottom = this.height - centerY - top;
var uvTop = top / this.height;
var uvCenterY = centerY / this.height;
var uvBottom = bottom / this.height;
var renderedTop = top / targetObject.get_scaleY();
var renderedBottom = bottom / targetObject.get_scaleY();
var renderedCenterY = targetObject.get_height() / targetObject.get_scaleY() - renderedTop - renderedBottom;
var renderedWidth = targetObject.get_width() / targetObject.get_scaleX();
this.__vertexBufferData[0] = renderedWidth;
this.__vertexBufferData[1] = renderedTop;
this.__vertexBufferData[3] = uvWidth;
this.__vertexBufferData[4] = uvHeight * uvTop;
this.__vertexBufferData[15] = renderedTop;
this.__vertexBufferData[18] = uvHeight * uvTop;
this.__vertexBufferData[28] = renderedWidth;
this.__vertexBufferData[31] = uvWidth;
this.__vertexBufferData[56] = renderedWidth;
this.__vertexBufferData[57] = renderedTop + renderedCenterY;
this.__vertexBufferData[59] = uvWidth;
this.__vertexBufferData[60] = uvHeight * (uvTop + uvCenterY);
this.__vertexBufferData[71] = renderedTop + renderedCenterY;
this.__vertexBufferData[74] = uvHeight * (uvTop + uvCenterY);
this.__vertexBufferData[84] = renderedWidth;
this.__vertexBufferData[85] = this.height;
this.__vertexBufferData[87] = uvWidth;
this.__vertexBufferData[88] = uvHeight;
this.__vertexBufferData[99] = this.height;
this.__vertexBufferData[102] = uvHeight;
this.__vertexBuffer = context.createVertexBuffer(8,14);
} else if(centerY == 0 && centerX != 0) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Float32Array(112);
this.__vertexBufferData = this1;
var left = scale9Grid.x;
var right = this.width - centerX - left;
var uvLeft = left / this.width;
var uvCenterX = centerX / this.width;
var uvRight = right / this.width;
var renderedLeft = left / targetObject.get_scaleX();
var renderedRight = right / targetObject.get_scaleX();
var renderedCenterX = targetObject.get_width() / targetObject.get_scaleX() - renderedLeft - renderedRight;
var renderedHeight = targetObject.get_height() / targetObject.get_scaleY();
this.__vertexBufferData[0] = renderedLeft;
this.__vertexBufferData[1] = renderedHeight;
this.__vertexBufferData[3] = uvWidth * uvLeft;
this.__vertexBufferData[4] = uvHeight;
this.__vertexBufferData[15] = renderedHeight;
this.__vertexBufferData[18] = uvHeight;
this.__vertexBufferData[28] = renderedLeft;
this.__vertexBufferData[31] = uvWidth * uvLeft;
this.__vertexBufferData[56] = renderedLeft + renderedCenterX;
this.__vertexBufferData[57] = renderedHeight;
this.__vertexBufferData[59] = uvWidth * (uvLeft + uvCenterX);
this.__vertexBufferData[60] = uvHeight;
this.__vertexBufferData[70] = renderedLeft + renderedCenterX;
this.__vertexBufferData[73] = uvWidth * (uvLeft + uvCenterX);
this.__vertexBufferData[84] = this.width;
this.__vertexBufferData[85] = renderedHeight;
this.__vertexBufferData[87] = uvWidth;
this.__vertexBufferData[88] = uvHeight;
this.__vertexBufferData[98] = this.width;
this.__vertexBufferData[101] = uvWidth;
this.__vertexBuffer = context.createVertexBuffer(8,14);
}
} else {
this.__vertexBufferGrid = null;
}
if(this.__vertexBuffer == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Float32Array(56);
this.__vertexBufferData = this1;
this.__vertexBufferData[0] = this.width;
this.__vertexBufferData[1] = this.height;
this.__vertexBufferData[3] = uvWidth;
this.__vertexBufferData[4] = uvHeight;
this.__vertexBufferData[15] = this.height;
this.__vertexBufferData[18] = uvHeight;
this.__vertexBufferData[28] = this.width;
this.__vertexBufferData[31] = uvWidth;
this.__vertexBuffer = context.createVertexBuffer(3,14);
}
this.__vertexBuffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.__vertexBufferData));
}
return this.__vertexBuffer;
}
,getColorBoundsRect: function(mask,color,findColor) {
if(findColor == null) {
findColor = true;
}
if(!this.readable) {
return new openfl_geom_Rectangle(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(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.fromBytes(this.image.getPixels(rect.__toLimeRectangle(),1));
byteArray.__endian = 0;
return byteArray;
}
,getSurface: function() {
if(!this.readable) {
return null;
}
if(this.__surface == null) {
this.__surface = lime_graphics_cairo_CairoImageSurface.fromImage(this.image);
}
return this.__surface;
}
,getTexture: function(context) {
if(!this.__isValid) {
return null;
}
if(this.__texture == null || this.__textureContext != context.__context) {
this.__textureContext = context.__context;
this.__texture = context.createRectangleTexture(this.width,this.height,1,false);
this.__textureVersion = -1;
}
lime__$internal_graphics_ImageCanvasUtil.sync(this.image,false);
if(this.image != null && this.image.version > this.__textureVersion) {
if(this.__surface != null) {
lime_graphics_cairo_CairoSurface.flush(this.__surface);
}
var textureImage = this.image;
if(!openfl_display3D_textures_TextureBase.__supportsBGRA && textureImage.get_format() != 0) {
textureImage = textureImage.clone();
textureImage.set_format(0);
}
this.__texture.__uploadFromImage(textureImage);
this.__textureVersion = this.image.version;
this.__textureWidth = textureImage.buffer.width;
this.__textureHeight = textureImage.buffer.height;
}
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 = UInt.toFloat(openfl_utils_ByteArray.get_length(pixels)) / UInt.toFloat(4) | 0;
var result = openfl_Vector.toIntVector(null,length,true);
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
result.set(i,pixels.readUnsignedInt());
}
return result;
}
,histogram: function(hRect) {
var rect = hRect != null ? hRect : new openfl_geom_Rectangle(0,0,this.width,this.height);
var pixels = this.getPixels(rect);
var _g = [];
var _g1 = [];
var _g2 = 0;
while(_g2 < 256) {
var j = _g2++;
_g1.push(0);
}
_g.push(_g1);
var _g1 = [];
var _g2 = 0;
while(_g2 < 256) {
var j = _g2++;
_g1.push(0);
}
_g.push(_g1);
var _g1 = [];
var _g2 = 0;
while(_g2 < 256) {
var j = _g2++;
_g1.push(0);
}
_g.push(_g1);
var _g1 = [];
var _g2 = 0;
while(_g2 < 256) {
var j = _g2++;
_g1.push(0);
}
_g.push(_g1);
var result = _g;
var _g = 0;
var _g1 = openfl_utils_ByteArray.get_length(pixels);
while(_g < _g1) {
var i = _g++;
var result1 = result[i % 4];
++result1[pixels.readUnsignedByte()];
}
return result;
}
,hitTest: function(firstPoint,firstAlphaThreshold,secondObject,secondBitmapDataPoint,secondAlphaThreshold) {
if(secondAlphaThreshold == null) {
secondAlphaThreshold = 1;
}
if(!this.readable) {
return false;
}
if(((secondObject) instanceof openfl_display_Bitmap)) {
secondObject = (js_Boot.__cast(secondObject , openfl_display_Bitmap)).__bitmapData;
}
if(((secondObject) instanceof openfl_geom_Point)) {
var secondPoint = secondObject;
var x = secondPoint.x - firstPoint.x | 0;
var y = secondPoint.y - firstPoint.y | 0;
if(this.rect.contains(x,y)) {
var pixel = this.getPixel32(x,y);
if((pixel >> 24 & 255) > firstAlphaThreshold) {
return true;
}
}
} else if(((secondObject) instanceof openfl_display_BitmapData)) {
var secondBitmapData = secondObject;
var x;
var y;
if(secondBitmapDataPoint == null) {
x = 0;
y = 0;
} else {
x = Math.round(secondBitmapDataPoint.x - firstPoint.x);
y = Math.round(secondBitmapDataPoint.y - firstPoint.y);
}
var hitRect = openfl_geom_Rectangle.__pool.get();
hitRect.setTo(x,y,secondBitmapData.width,secondBitmapData.height);
if(this.rect.intersects(hitRect)) {
if(x < 0) {
hitRect.x = 0;
hitRect.width = Math.min(secondBitmapData.width + x,this.width);
} else {
hitRect.width = Math.min(secondBitmapData.width,this.width - x);
}
if(y < 0) {
hitRect.y = 0;
hitRect.height = Math.min(secondBitmapData.height + y,this.height);
} else {
hitRect.height = Math.min(secondBitmapData.height,this.height - y);
}
var pixels = this.getPixels(hitRect);
hitRect.x = x < 0 ? -x : 0;
hitRect.y = y < 0 ? -y : 0;
var testPixels = secondBitmapData.getPixels(hitRect);
var length = hitRect.width * hitRect.height | 0;
var pixel;
var testPixel;
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
pixel = pixels.readUnsignedInt();
testPixel = testPixels.readUnsignedInt();
if(UInt.gt(pixel >>> 24 & 255,firstAlphaThreshold) && UInt.gt(testPixel >>> 24 & 255,secondAlphaThreshold)) {
openfl_geom_Rectangle.__pool.release(hitRect);
return true;
}
}
}
openfl_geom_Rectangle.__pool.release(hitRect);
} else if(((secondObject) instanceof openfl_geom_Rectangle)) {
var secondRectangle = openfl_geom_Rectangle.__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 pixels = this.getPixels(secondRectangle);
var length = UInt.toFloat(openfl_utils_ByteArray.get_length(pixels)) / UInt.toFloat(4) | 0;
var pixel;
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
pixel = pixels.readUnsignedInt();
if(UInt.gt(pixel >>> 24 & 255,firstAlphaThreshold)) {
openfl_geom_Rectangle.__pool.release(secondRectangle);
return true;
}
}
}
openfl_geom_Rectangle.__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 (Math.abs(randomSeed / 65536) | 0) % 32768;
};
var rand = func;
rand();
var range = high - low;
var redChannel = (channelOptions & 1) == 1;
var greenChannel = (channelOptions & 2) >> 1 == 1;
var blueChannel = (channelOptions & 4) >> 2 == 1;
var alphaChannel = (channelOptions & 8) >> 3 == 1;
var _g = 0;
var _g1 = this.height;
while(_g < _g1) {
var y = _g++;
var _g2 = 0;
var _g3 = this.width;
while(_g2 < _g3) {
var x = _g2++;
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 = sourceRect.width | 0;
var sh = sourceRect.height | 0;
var pixels = sourceBitmapData.getPixels(sourceRect);
var pixelValue;
var r;
var g;
var b;
var a;
var color;
var _g = 0;
var _g1 = sh * sw;
while(_g < _g1) {
var i = _g++;
pixelValue = pixels.readUnsignedInt();
a = alphaArray == null ? pixelValue & -16777216 : alphaArray[pixelValue >> 24 & 255];
r = redArray == null ? pixelValue & 16711680 : redArray[pixelValue >> 16 & 255];
g = greenArray == null ? pixelValue & 65280 : greenArray[pixelValue >> 8 & 255];
b = blueArray == null ? pixelValue & 255 : blueArray[pixelValue & 255];
color = a + r + g + b;
pixels.position = i * 4;
pixels.writeUnsignedInt(color);
}
pixels.position = 0;
var destRect = openfl_geom_Rectangle.__pool.get();
destRect.setTo(destPoint.x,destPoint.y,sw,sh);
this.setPixels(destRect,pixels);
openfl_geom_Rectangle.__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_display__$internal_PerlinNoise(randomSeed,numOctaves,channelOptions,grayScale,0.5,stitch,0.15);
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.toFloat(byteArray.length - byteArray.position) < length) {
throw haxe_Exception.thrown(new openfl_errors_Error("End of file was encountered.",2030));
}
this.image.setPixels(rect.__toLimeRectangle(),openfl_utils_ByteArray.toBytePointer(byteArray),1,openfl_utils_Endian.toLimeEndian(byteArray.__endian));
}
,setVector: function(rect,inputVector) {
var this1 = new openfl_utils_ByteArrayData(0);
var byteArray = this1;
openfl_utils_ByteArray.set_length(byteArray,inputVector.get_length() * 4);
var color = inputVector.iterator();
while(color.hasNext()) {
var color1 = color.next();
byteArray.writeUnsignedInt(color1);
}
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__$internal_graphics_ImageCanvasUtil.convertToCanvas(this.image);
lime__$internal_graphics_ImageCanvasUtil.createImageData(this.image);
var data = this.image.buffer.data;
var _g = 0;
var _g1 = openfl_utils_ByteArray.get_length(alpha);
while(_g < _g1) {
var i = _g++;
data[i * 4 + 3] = alpha.readUnsignedByte();
}
this.image.version++;
}
,__drawCairo: function(source,renderer) {
}
,__drawCanvas: function(source,renderer) {
var buffer = this.image.buffer;
if(!renderer.__allowSmoothing) {
renderer.applySmoothing(buffer.__srcContext,false);
}
renderer.__render(source);
if(!renderer.__allowSmoothing) {
renderer.applySmoothing(buffer.__srcContext,true);
}
buffer.__srcContext.setTransform(1,0,0,1,0,0);
buffer.__srcImageData = null;
buffer.data = null;
this.image.dirty = true;
this.image.version++;
}
,__drawGL: function(source,renderer) {
var context = renderer.__context3D;
var cacheRTT = context.__state.renderToTexture;
var cacheRTTDepthStencil = context.__state.renderToTextureDepthStencil;
var cacheRTTAntiAlias = context.__state.renderToTextureAntiAlias;
var cacheRTTSurfaceSelector = context.__state.renderToTextureSurfaceSelector;
context.setRenderToTexture(this.getTexture(context),true);
renderer.__render(source);
if(cacheRTT != null) {
context.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector);
} else {
context.setRenderToBackBuffer();
}
}
,__fillRect: function(rect,color,allowFramebuffer) {
if(rect == null) {
return;
}
if(this.transparent && (color & -16777216) == 0) {
color = 0;
}
if(allowFramebuffer && this.__texture != null && this.__texture.__glFramebuffer != null && openfl_Lib.get_current().stage.__renderer.__type == "opengl") {
var renderer = openfl_Lib.get_current().stage.__renderer;
var context = renderer.__context3D;
var color1 = color;
var useScissor = !this.rect.equals(rect);
var cacheRTT = context.__state.renderToTexture;
var cacheRTTDepthStencil = context.__state.renderToTextureDepthStencil;
var cacheRTTAntiAlias = context.__state.renderToTextureAntiAlias;
var cacheRTTSurfaceSelector = context.__state.renderToTextureSurfaceSelector;
context.setRenderToTexture(this.__texture);
if(useScissor) {
context.setScissorRectangle(rect);
}
context.clear((color1 >>> 16 & 255) / 255,(color1 >>> 8 & 255) / 255,(color1 & 255) / 255,this.transparent ? (color1 >>> 24 & 255) / 255 : 1,0,0,1);
if(useScissor) {
context.setScissorRectangle(null);
}
if(cacheRTT != null) {
context.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector);
} else {
context.setRenderToBackBuffer();
}
} else if(this.readable) {
this.image.fillRect(rect.__toLimeRectangle(),color,1);
}
}
,__fromBase64: function(base64,type) {
var image = lime_graphics_Image.fromBase64(base64,type);
this.__fromImage(image);
}
,__fromBytes: function(bytes,rawAlpha) {
var image = lime_graphics_Image.fromBytes(openfl_utils_ByteArray.toBytes(bytes));
this.__fromImage(image);
if(rawAlpha != null) {
this.__applyAlpha(rawAlpha);
}
}
,__fromFile: function(path) {
var image = lime_graphics_Image.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(0,0,image.width,image.height);
this.__textureWidth = this.width;
this.__textureHeight = this.height;
this.readable = true;
this.__isValid = true;
}
}
,__getBounds: function(rect,matrix) {
var bounds = openfl_geom_Rectangle.__pool.get();
this.rect.__transform(bounds,matrix);
rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
openfl_geom_Rectangle.__pool.release(bounds);
}
,__loadFromBase64: function(base64,type) {
var _gthis = this;
return lime_graphics_Image.loadFromBase64(base64,type).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
});
}
,__loadFromBytes: function(bytes,rawAlpha) {
var _gthis = this;
return lime_graphics_Image.loadFromBytes(openfl_utils_ByteArray.toBytes(bytes)).then(function(image) {
_gthis.__fromImage(image);
if(rawAlpha != null) {
_gthis.__applyAlpha(rawAlpha);
}
return lime_app_Future.withValue(_gthis);
});
}
,__loadFromFile: function(path) {
var _gthis = this;
return lime_graphics_Image.loadFromFile(path).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
});
}
,__renderCairo: function(renderer) {
}
,__renderCairoMask: function(renderer) {
}
,__renderCanvas: function(renderer) {
if(!this.readable) {
return;
}
if(this.image.type == lime_graphics_ImageType.DATA) {
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this.image);
}
var context = renderer.context;
context.globalAlpha = 1;
renderer.setTransform(this.__renderTransform,context);
context.drawImage(this.image.get_src(),0,0,this.image.width,this.image.height);
}
,__renderCanvasMask: function(renderer) {
}
,__renderDOM: function(renderer) {
}
,__renderGL: function(renderer) {
var context = renderer.__context3D;
var gl = context.gl;
renderer.__setBlendMode(10);
var shader = renderer.__defaultDisplayShader;
renderer.setShader(shader);
renderer.applyBitmapData(this,renderer.__upscaled);
renderer.applyMatrix(renderer.__getMatrix(this.__worldTransform,1));
renderer.applyAlpha(this.__worldAlpha);
renderer.applyColorTransform(this.__worldColorTransform);
renderer.updateShader();
var vertexBuffer = this.getVertexBuffer(context);
if(shader.__position != null) {
context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3);
}
if(shader.__textureCoord != null) {
context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2);
}
var indexBuffer = this.getIndexBuffer(context);
context.drawTriangles(indexBuffer);
renderer.__clearShader();
}
,__renderGLMask: function(renderer) {
var context = renderer.__context3D;
var gl = context.gl;
var shader = renderer.__maskShader;
renderer.setShader(shader);
renderer.applyBitmapData(this,renderer.__upscaled);
renderer.applyMatrix(renderer.__getMatrix(this.__worldTransform,1));
renderer.updateShader();
var vertexBuffer = this.getVertexBuffer(context);
if(shader.__position != null) {
context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3);
}
if(shader.__textureCoord != null) {
context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2);
}
var indexBuffer = this.getIndexBuffer(context);
context.drawTriangles(indexBuffer);
renderer.__clearShader();
}
,__resize: function(width,height) {
this.width = width;
this.height = height;
this.rect.width = width;
this.rect.height = height;
this.__textureWidth = width;
this.__textureHeight = height;
}
,__setUVRect: function(context,x,y,width,height) {
var buffer = this.getVertexBuffer(context);
if(buffer != null && (width != this.__uvRect.width || height != this.__uvRect.height || x != this.__uvRect.x || y != this.__uvRect.y)) {
var gl = context.gl;
if(this.__uvRect == null) {
this.__uvRect = new openfl_geom_Rectangle();
}
this.__uvRect.setTo(x,y,width,height);
var uvX = this.__textureWidth > 0 ? x / this.__textureWidth : 0;
var uvY = this.__textureHeight > 0 ? y / this.__textureHeight : 0;
var uvWidth = this.__textureWidth > 0 ? width / this.__textureWidth : 0;
var uvHeight = this.__textureHeight > 0 ? height / this.__textureHeight : 0;
this.__vertexBufferData[0] = width;
this.__vertexBufferData[1] = height;
this.__vertexBufferData[3] = uvX + uvWidth;
this.__vertexBufferData[4] = uvY + uvHeight;
this.__vertexBufferData[15] = height;
this.__vertexBufferData[17] = uvX;
this.__vertexBufferData[18] = uvY + uvHeight;
this.__vertexBufferData[28] = width;
this.__vertexBufferData[31] = uvX + uvWidth;
this.__vertexBufferData[32] = uvY;
this.__vertexBufferData[45] = uvX;
this.__vertexBufferData[46] = uvY;
this.__vertexBuffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.__vertexBufferData));
}
}
,__sync: function() {
lime__$internal_graphics_ImageCanvasUtil.sync(this.image,false);
}
,__update: function(transformOnly,updateChildren) {
this.__updateTransforms();
}
,__updateTransforms: function(overrideTransform) {
if(overrideTransform == null) {
this.__worldTransform.identity();
} else {
this.__worldTransform.copyFrom(overrideTransform);
}
this.__renderTransform.copyFrom(this.__worldTransform);
}
,__class__: openfl_display_BitmapData
};
var flixel_addons_transition_GraphicTransTileCircle = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_addons_transition_GraphicTransTileCircle.preload != null) {
this.__fromImage(flixel_addons_transition_GraphicTransTileCircle.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_addons_transition_GraphicTransTileCircle.resourceName),flixel_addons_transition_GraphicTransTileCircle.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_addons_transition_GraphicTransTileCircle.preload == null) {
flixel_addons_transition_GraphicTransTileCircle.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.addons.transition.GraphicTransTileCircle"] = flixel_addons_transition_GraphicTransTileCircle;
flixel_addons_transition_GraphicTransTileCircle.__name__ = "flixel.addons.transition.GraphicTransTileCircle";
flixel_addons_transition_GraphicTransTileCircle.preload = null;
flixel_addons_transition_GraphicTransTileCircle.__super__ = openfl_display_BitmapData;
flixel_addons_transition_GraphicTransTileCircle.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_addons_transition_GraphicTransTileCircle
});
var flixel_addons_transition_GraphicTransTileDiamond = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_addons_transition_GraphicTransTileDiamond.preload != null) {
this.__fromImage(flixel_addons_transition_GraphicTransTileDiamond.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_addons_transition_GraphicTransTileDiamond.resourceName),flixel_addons_transition_GraphicTransTileDiamond.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_addons_transition_GraphicTransTileDiamond.preload == null) {
flixel_addons_transition_GraphicTransTileDiamond.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.addons.transition.GraphicTransTileDiamond"] = flixel_addons_transition_GraphicTransTileDiamond;
flixel_addons_transition_GraphicTransTileDiamond.__name__ = "flixel.addons.transition.GraphicTransTileDiamond";
flixel_addons_transition_GraphicTransTileDiamond.preload = null;
flixel_addons_transition_GraphicTransTileDiamond.__super__ = openfl_display_BitmapData;
flixel_addons_transition_GraphicTransTileDiamond.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_addons_transition_GraphicTransTileDiamond
});
var flixel_addons_transition_GraphicTransTileSquare = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_addons_transition_GraphicTransTileSquare.preload != null) {
this.__fromImage(flixel_addons_transition_GraphicTransTileSquare.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_addons_transition_GraphicTransTileSquare.resourceName),flixel_addons_transition_GraphicTransTileSquare.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_addons_transition_GraphicTransTileSquare.preload == null) {
flixel_addons_transition_GraphicTransTileSquare.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.addons.transition.GraphicTransTileSquare"] = flixel_addons_transition_GraphicTransTileSquare;
flixel_addons_transition_GraphicTransTileSquare.__name__ = "flixel.addons.transition.GraphicTransTileSquare";
flixel_addons_transition_GraphicTransTileSquare.preload = null;
flixel_addons_transition_GraphicTransTileSquare.__super__ = openfl_display_BitmapData;
flixel_addons_transition_GraphicTransTileSquare.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_addons_transition_GraphicTransTileSquare
});
var flixel_addons_transition_FlxTransitionSprite = function(X,Y,Delay,Graphic,GraphicWidth,GraphicHeight,FrameRate) {
if(FrameRate == null) {
FrameRate = 40;
}
if(GraphicHeight == null) {
GraphicHeight = 32;
}
if(GraphicWidth == null) {
GraphicWidth = 32;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._newStatus = -1;
this.status = 0;
this._finished = false;
this._starting = true;
flixel_FlxSprite.call(this,X,Y);
if(Graphic == null) {
Graphic = flixel_graphics_FlxGraphic.fromClass(flixel_addons_transition_GraphicTransTileDiamond);
GraphicWidth = 32;
GraphicHeight = 32;
}
this._delay = Delay;
this.loadGraphic(Graphic,true,GraphicWidth,GraphicHeight);
this.graphic.persist = true;
this.graphic.set_destroyOnNoUse(false);
var inArray = [];
var outArray = [];
var _g = 1;
var _g1 = this.numFrames - 1;
while(_g < _g1) {
var i = _g++;
inArray.push(i);
}
outArray = inArray.slice();
outArray.reverse();
this.animation.add("empty",[0],0,false);
this.animation.add("in",inArray,FrameRate,false);
this.animation.add("full",[this.numFrames - 1],0,false);
this.animation.add("out",outArray,FrameRate,false);
this.setStatus(3);
};
$hxClasses["flixel.addons.transition.FlxTransitionSprite"] = flixel_addons_transition_FlxTransitionSprite;
flixel_addons_transition_FlxTransitionSprite.__name__ = "flixel.addons.transition.FlxTransitionSprite";
flixel_addons_transition_FlxTransitionSprite.__super__ = flixel_FlxSprite;
flixel_addons_transition_FlxTransitionSprite.prototype = $extend(flixel_FlxSprite.prototype,{
_delay: null
,_count: null
,_starting: null
,_finished: null
,status: null
,_newStatus: null
,start: function(NewStatus) {
this._starting = true;
this._finished = false;
this._count = 0;
this._newStatus = NewStatus;
}
,startStatus: function(NewStatus) {
this.setStatus(NewStatus);
}
,setStatus: function(Status) {
var anim;
switch(Status) {
case -1:case 2:
anim = "empty";
break;
case 0:
anim = "in";
break;
case 1:
anim = "out";
break;
case 3:
anim = "full";
break;
}
this.animation.play(anim);
this.animation.finishCallback = $bind(this,this.onFinishAnim);
this.status = Status;
}
,onFinishAnim: function(str) {
if(!this._finished) {
this._finished = true;
switch(this.status) {
case 0:
this.setStatus(3);
break;
case 1:
this.setStatus(2);
break;
default:
}
}
}
,update: function(elapsed) {
flixel_FlxSprite.prototype.update.call(this,elapsed);
if(this._starting) {
this._count += elapsed;
if(this._count >= this._delay) {
this.onTime();
}
}
}
,onTime: function() {
this._starting = false;
this._count = 0;
this.setStatus(this._newStatus);
this._newStatus = -1;
}
,__class__: flixel_addons_transition_FlxTransitionSprite
});
var flixel_addons_transition_Transition = function(data) {
flixel_FlxSubState.call(this,0);
this._effect = this.createEffect(data);
this._effect.scrollFactor.set(0,0);
this.add(this._effect);
};
$hxClasses["flixel.addons.transition.Transition"] = flixel_addons_transition_Transition;
flixel_addons_transition_Transition.__name__ = "flixel.addons.transition.Transition";
flixel_addons_transition_Transition.__super__ = flixel_FlxSubState;
flixel_addons_transition_Transition.prototype = $extend(flixel_FlxSubState.prototype,{
_effect: null
,update: function(elapsed) {
flixel_FlxSubState.prototype.update.call(this,elapsed);
this._effect.update(elapsed);
}
,destroy: function() {
flixel_FlxSubState.prototype.destroy.call(this);
this.set_finishCallback(null);
this._effect.destroy();
this._effect = null;
}
,start: function(NewStatus) {
this._effect.start(NewStatus);
}
,setStatus: function(NewStatus) {
this._effect.setStatus(NewStatus);
}
,createEffect: function(Data) {
switch(Data.type) {
case "fade":
return new flixel_addons_transition_TransitionFade(Data);
case "tiles":
return new flixel_addons_transition_TransitionTiles(Data);
default:
return null;
}
}
,get_finishCallback: function() {
if(this._effect != null) {
return this._effect.finishCallback;
}
return null;
}
,set_finishCallback: function(f) {
if(this._effect != null) {
this._effect.finishCallback = f;
return f;
}
return null;
}
,__class__: flixel_addons_transition_Transition
,__properties__: $extend(flixel_FlxSubState.prototype.__properties__,{set_finishCallback:"set_finishCallback",get_finishCallback:"get_finishCallback"})
});
var flixel_addons_transition_TransitionData = function(TransType,Color,Duration,Direction,TileData,Region) {
if(Duration == null) {
Duration = 1.0;
}
if(Color == null) {
Color = -1;
}
if(TransType == null) {
TransType = "fade";
}
this.duration = 1.0;
this.type = TransType;
this.tileData = TileData;
this.duration = Duration;
this.color = Color;
this.direction = Direction;
if(this.direction == null) {
this.direction = new flixel_math_FlxPoint(0,0);
}
var Value = this.direction.x;
var lowerBound = Value < -1 ? -1 : Value;
var tmp = lowerBound > 1;
var Value = this.direction.y;
var lowerBound = Value < -1 ? -1 : Value;
var tmp = lowerBound > 1;
this.tweenOptions = { onComplete : null};
this.region = Region;
if(Region == null) {
this.region = new flixel_math_FlxRect(0,0,flixel_FlxG.width,flixel_FlxG.height);
}
};
$hxClasses["flixel.addons.transition.TransitionData"] = flixel_addons_transition_TransitionData;
flixel_addons_transition_TransitionData.__name__ = "flixel.addons.transition.TransitionData";
flixel_addons_transition_TransitionData.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_addons_transition_TransitionData.prototype = {
type: null
,tileData: null
,color: null
,duration: null
,direction: null
,tweenOptions: null
,region: null
,destroy: function() {
this.tileData = null;
this.direction = null;
this.tweenOptions.onComplete = null;
this.tweenOptions.ease = null;
this.tweenOptions = null;
this.region = null;
this.direction = null;
}
,__class__: flixel_addons_transition_TransitionData
};
var flixel_addons_transition_TransitionEffect = function(data) {
this._finalDelayTime = 0.0;
this._started = false;
this.finished = false;
this._data = data;
flixel_group_FlxTypedSpriteGroup.call(this);
};
$hxClasses["flixel.addons.transition.TransitionEffect"] = flixel_addons_transition_TransitionEffect;
flixel_addons_transition_TransitionEffect.__name__ = "flixel.addons.transition.TransitionEffect";
flixel_addons_transition_TransitionEffect.__super__ = flixel_group_FlxTypedSpriteGroup;
flixel_addons_transition_TransitionEffect.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{
finishCallback: null
,finished: null
,_started: null
,_endStatus: null
,_finalDelayTime: null
,_data: null
,destroy: function() {
flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this);
this.finishCallback = null;
}
,start: function(NewStatus) {
this._started = true;
if(NewStatus == 0) {
this._endStatus = 3;
} else {
this._endStatus = 2;
}
}
,setStatus: function(NewStatus) {
}
,delayThenFinish: function() {
new flixel_util_FlxTimer().start(this._finalDelayTime,$bind(this,this.onFinish));
}
,onFinish: function(f) {
this.finished = true;
if(this.finishCallback != null) {
this.finishCallback();
this.finishCallback = null;
}
}
,__class__: flixel_addons_transition_TransitionEffect
});
var flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.preload != null) {
this.__fromImage(flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.resourceName),flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.preload == null) {
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.addons.transition._TransitionFade.GraphicDiagonalGradient"] = flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient;
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.__name__ = "flixel.addons.transition._TransitionFade.GraphicDiagonalGradient";
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.preload = null;
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.__super__ = openfl_display_BitmapData;
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient
});
var flixel_addons_transition_TransitionFade = function(data) {
this.tweenValEnd2 = 0;
this.tweenValEnd = 0;
this.tweenValStart2 = 0;
this.tweenValStart = 0;
this.tweenStr2 = "";
this.tweenStr = "";
flixel_addons_transition_TransitionEffect.call(this,data);
this.back = this.makeSprite(data.direction.x,data.direction.y);
this.back.scrollFactor.set(0,0);
this.add(this.back);
};
$hxClasses["flixel.addons.transition.TransitionFade"] = flixel_addons_transition_TransitionFade;
flixel_addons_transition_TransitionFade.__name__ = "flixel.addons.transition.TransitionFade";
flixel_addons_transition_TransitionFade.__super__ = flixel_addons_transition_TransitionEffect;
flixel_addons_transition_TransitionFade.prototype = $extend(flixel_addons_transition_TransitionEffect.prototype,{
back: null
,tweenStr: null
,tweenStr2: null
,tweenValStart: null
,tweenValStart2: null
,tweenValEnd: null
,tweenValEnd2: null
,destroy: function() {
flixel_addons_transition_TransitionEffect.prototype.destroy.call(this);
this.back = null;
}
,start: function(NewStatus) {
flixel_addons_transition_TransitionEffect.prototype.start.call(this,NewStatus);
this.setTweenValues(NewStatus,this._data.direction.x,this._data.direction.y);
switch(this.tweenStr) {
case "alpha":
this.back.set_alpha(this.tweenValStart);
break;
case "x":
this.back.set_x(this.tweenValStart);
break;
case "y":
this.back.set_y(this.tweenValStart);
break;
}
switch(this.tweenStr2) {
case "alpha":
this.back.set_alpha(this.tweenValStart2);
break;
case "x":
this.back.set_x(this.tweenValStart2);
break;
case "y":
this.back.set_y(this.tweenValStart2);
break;
}
var Values = { };
Values[this.tweenStr] = this.tweenValEnd;
if(this.tweenStr2 != "") {
Values[this.tweenStr2] = this.tweenValEnd2;
}
this._data.tweenOptions.onComplete = $bind(this,this.finishTween);
flixel_tweens_FlxTween.tween(this.back,Values,this._data.duration,this._data.tweenOptions);
}
,setTweenValues: function(NewStatus,DirX,DirY) {
if(DirX == 0 && DirY == 0) {
this.tweenStr = "alpha";
this.tweenValStart = NewStatus == 0 ? 0.0 : 1.0;
this.tweenValEnd = NewStatus == 0 ? 1.0 : 0.0;
} else if(Math.abs(DirX) > 0 && DirY == 0) {
this.tweenStr = "x";
if(DirX > 0) {
this.tweenValStart = NewStatus == 0 ? -this.back.get_width() : 0;
this.tweenValEnd = NewStatus == 0 ? 0 : -this.back.get_width();
} else {
this.tweenValStart = NewStatus == 0 ? flixel_FlxG.width : -this.back.get_width() / 2;
this.tweenValEnd = NewStatus == 0 ? -this.back.get_width() / 2 : flixel_FlxG.width;
}
} else if(DirX == 0 && Math.abs(DirY) > 0) {
this.tweenStr = "y";
if(DirY > 0) {
this.tweenValStart = NewStatus == 0 ? -this.back.get_height() : 0;
this.tweenValEnd = NewStatus == 0 ? 0 : -this.back.get_height();
} else {
this.tweenValStart = NewStatus == 0 ? flixel_FlxG.height : -this.back.get_height() / 2;
this.tweenValEnd = NewStatus == 0 ? -this.back.get_height() / 2 : flixel_FlxG.height;
}
} else if(Math.abs(DirX) > 0 && Math.abs(DirY) > 0) {
this.tweenStr = "x";
this.tweenStr2 = "y";
if(DirX > 0) {
this.tweenValStart = NewStatus == 0 ? -this.back.get_width() : 0;
this.tweenValEnd = NewStatus == 0 ? 0 : -this.back.get_width();
} else {
this.tweenValStart = NewStatus == 0 ? flixel_FlxG.width : -this.back.get_width() * 0.66666666666666663;
this.tweenValEnd = NewStatus == 0 ? -this.back.get_width() * 0.66666666666666663 : flixel_FlxG.width;
}
if(DirY > 0) {
this.tweenValStart2 = NewStatus == 0 ? -this.back.get_height() : 0;
this.tweenValEnd2 = NewStatus == 0 ? 0 : -this.back.get_height();
} else {
this.tweenValStart2 = NewStatus == 0 ? flixel_FlxG.height : -this.back.get_height() * 0.66666666666666663;
this.tweenValEnd2 = NewStatus == 0 ? -this.back.get_height() * 0.66666666666666663 : flixel_FlxG.height;
}
}
}
,makeSprite: function(DirX,DirY) {
var s = new flixel_FlxSprite(0,0);
var locX = 0;
var locY = 0;
var angle = 0;
var pixels = null;
if(DirX == 0 && DirY == 0) {
s.makeGraphic(flixel_FlxG.width,flixel_FlxG.height,this._data.color);
} else if(DirX == 0 && Math.abs(DirY) > 0) {
locY = DirY > 0 ? flixel_FlxG.height : 0;
angle = DirY > 0 ? 90 : 270;
s.makeGraphic(1,flixel_FlxG.height * 2,this._data.color);
pixels = s.get_pixels();
var gvert = flixel_util_FlxGradient.createGradientBitmapData(1,flixel_FlxG.height,[this._data.color,0],1,angle);
pixels.copyPixels(gvert,gvert.rect,new openfl_geom_Point(0,locY));
s.set_pixels(pixels);
s.scale.set(flixel_FlxG.width,1.0);
s.updateHitbox();
} else if(Math.abs(DirX) > 0 && DirY == 0) {
locX = DirX > 0 ? flixel_FlxG.width : 0;
angle = DirX > 0 ? 0 : 180;
s.makeGraphic(flixel_FlxG.width * 2,1,this._data.color);
pixels = s.get_pixels();
var ghorz = flixel_util_FlxGradient.createGradientBitmapData(flixel_FlxG.width,1,[this._data.color,0],1,angle);
pixels.copyPixels(ghorz,ghorz.rect,new openfl_geom_Point(locX,0));
s.set_pixels(pixels);
s.scale.set(1.0,flixel_FlxG.height);
s.updateHitbox();
} else if(Math.abs(DirX) > 0 && Math.abs(DirY) > 0) {
locY = DirY > 0 ? flixel_FlxG.height : 0;
s.loadGraphic(this.getGradient());
s.set_flipX(DirX < 0);
s.set_flipY(DirY < 0);
}
return s;
}
,getGradient: function() {
var rawBmp = new flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient(0,0);
var gdiag = rawBmp;
var gdiag_scaled = new openfl_display_BitmapData(flixel_FlxG.width * 2,flixel_FlxG.height * 2,true);
var m = new openfl_geom_Matrix();
m.scale(gdiag_scaled.width / gdiag.width,gdiag_scaled.height / gdiag.height);
gdiag_scaled.draw(gdiag,m,null,null,null,true);
var theColor = this._data.color;
var final_pixels = new openfl_display_BitmapData(flixel_FlxG.width * 3,flixel_FlxG.height * 3,true,theColor);
final_pixels.copyChannel(gdiag_scaled,gdiag_scaled.rect,new openfl_geom_Point(final_pixels.width - gdiag_scaled.width,final_pixels.height - gdiag_scaled.height),1,8);
gdiag.dispose();
gdiag_scaled.dispose();
return final_pixels;
}
,finishTween: function(f) {
this.delayThenFinish();
}
,__class__: flixel_addons_transition_TransitionFade
});
var flixel_addons_transition_TransitionTiles = function(data) {
this._isCenter = false;
flixel_addons_transition_TransitionEffect.call(this,data);
this._grpSprites = new flixel_group_FlxTypedSpriteGroup();
var delay = 0;
if(data.tileData == null) {
data.tileData = { asset : null, width : 32, height : 32};
}
var region = data.region;
var tilesX = Math.ceil(region.width / data.tileData.width);
var tilesY = Math.ceil(region.height / data.tileData.height);
var maxTiles = tilesX > tilesY ? tilesX : tilesY;
var dTime = data.duration / maxTiles;
var xDelay = dTime * Math.abs(data.direction.x);
var yDelay = dTime * Math.abs(data.direction.y);
var addX = data.tileData.width;
var addY = data.tileData.height;
var tx = 0;
var ty = 0;
var startX = region.x | 0;
var startY = region.y | 0;
if(data.direction.x < 0) {
addX *= -1;
startX += region.width + addX | 0;
}
if(data.direction.y < 0) {
addY *= -1;
startY += region.height + addY | 0;
}
tx = startX;
ty = startY;
var _g = 0;
var _g1 = tilesY;
while(_g < _g1) {
var iy = _g++;
var _g2 = 0;
var _g3 = tilesX;
while(_g2 < _g3) {
var ix = _g2++;
var frameRate = 40;
if(data.tileData.frameRate != null) {
frameRate = data.tileData.frameRate;
}
var ts = new flixel_addons_transition_FlxTransitionSprite(tx,ty,delay,data.tileData.asset,data.tileData.width,data.tileData.height,frameRate);
ts.set_color(data.color);
ts.scrollFactor.set(0,0);
this._grpSprites.add(ts);
tx += addX;
delay += xDelay;
}
ty += addY;
tx = startX;
delay = (iy + 1) * yDelay;
}
this.add(this._grpSprites);
this._isCenter = data.direction.x == 0 && data.direction.y == 0;
};
$hxClasses["flixel.addons.transition.TransitionTiles"] = flixel_addons_transition_TransitionTiles;
flixel_addons_transition_TransitionTiles.__name__ = "flixel.addons.transition.TransitionTiles";
flixel_addons_transition_TransitionTiles.__super__ = flixel_addons_transition_TransitionEffect;
flixel_addons_transition_TransitionTiles.prototype = $extend(flixel_addons_transition_TransitionEffect.prototype,{
_grpSprites: null
,_isCenter: null
,destroy: function() {
flixel_addons_transition_TransitionEffect.prototype.destroy.call(this);
this._grpSprites = null;
}
,start: function(NewStatus) {
flixel_addons_transition_TransitionEffect.prototype.start.call(this,NewStatus);
this._grpSprites.group.forEach(function(t) {
t.start(NewStatus);
},false);
}
,setStatus: function(NewStatus) {
flixel_addons_transition_TransitionEffect.prototype.setStatus.call(this,NewStatus);
this._grpSprites.group.forEach(function(t) {
t.setStatus(NewStatus);
},false);
}
,update: function(elapsed) {
flixel_addons_transition_TransitionEffect.prototype.update.call(this,elapsed);
if(this._started) {
var allDone = true;
var _g = 0;
var _g1 = this._grpSprites.group.members;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite.status != -1 && sprite.status != this._endStatus) {
allDone = false;
break;
}
}
if(allDone) {
this._started = false;
this.delayThenFinish();
}
}
}
,__class__: flixel_addons_transition_TransitionTiles
});
var flixel_addons_ui_Anchor = function(XOff,YOff,XSide,YSide,XFlush,YFlush) {
this.x = new flixel_addons_ui_AnchorPoint(XOff,XSide,XFlush);
this.y = new flixel_addons_ui_AnchorPoint(YOff,YSide,YFlush);
};
$hxClasses["flixel.addons.ui.Anchor"] = flixel_addons_ui_Anchor;
flixel_addons_ui_Anchor.__name__ = "flixel.addons.ui.Anchor";
flixel_addons_ui_Anchor.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_addons_ui_Anchor.prototype = {
x: null
,y: null
,destroy: function() {
this.x = null;
this.y = null;
}
,anchorThing: function(thing,destination) {
var destX = 0;
var destY = 0;
switch(this.x.side) {
case "center":
destX = destination.x + destination.get_width() / 2;
break;
case "left":
destX = destination.x;
break;
case "right":
destX = destination.x + destination.get_width();
break;
default:
destX = destination.x;
}
switch(this.y.side) {
case "bottom":
destY = destination.y + destination.get_height();
break;
case "center":
destY = destination.y + destination.get_height() / 2;
break;
case "top":
destY = destination.y;
break;
default:
destY = destination.y;
}
switch(this.x.flush) {
case "center":
destX -= thing.get_width() / 2;
break;
case "left":
break;
case "right":
destX -= thing.get_width();
break;
default:
}
switch(this.y.flush) {
case "bottom":
destY -= thing.get_height();
break;
case "center":
destY -= thing.get_height() / 2;
break;
case "top":
break;
default:
}
thing.set_x(destX + this.x.offset);
thing.set_y(destY + this.y.offset);
}
,getFlipped: function(FlipX,FlipY,AnchorObject) {
var xoff = FlipX ? -1 * this.x.offset : this.x.offset;
var yoff = FlipY ? -1 * this.y.offset : this.y.offset;
var xside = FlipX ? this.flipAnchorSide(this.x.side) : this.x.side;
var yside = FlipY ? this.flipAnchorSide(this.y.side) : this.y.side;
var xflush = FlipX ? this.flipAnchorSide(this.x.flush) : this.x.flush;
var yflush = FlipY ? this.flipAnchorSide(this.y.flush) : this.y.flush;
if(AnchorObject == null) {
AnchorObject = new flixel_addons_ui_Anchor(xoff,yoff,xside,yside,xflush,yflush);
} else {
AnchorObject.x.offset = xoff;
AnchorObject.y.offset = yoff;
AnchorObject.x.side = xside;
AnchorObject.y.side = yside;
AnchorObject.x.flush = xflush;
AnchorObject.y.flush = yflush;
}
return AnchorObject;
}
,clone: function() {
return new flixel_addons_ui_Anchor(this.x.offset,this.y.offset,this.x.side,this.y.side,this.x.flush,this.y.flush);
}
,flipAnchorSide: function(str) {
if(str == "left") {
return "right";
}
if(str == "right") {
return "left";
}
if(str == "top") {
return "bottom";
}
if(str == "bottom") {
return "top";
}
return str;
}
,__class__: flixel_addons_ui_Anchor
};
var flixel_addons_ui_AnchorPoint = function(Offset,Side,Flush) {
this.flush = "center";
this.side = "center";
this.offset = 0;
this.offset = Offset;
this.side = Side;
this.flush = Flush;
};
$hxClasses["flixel.addons.ui.AnchorPoint"] = flixel_addons_ui_AnchorPoint;
flixel_addons_ui_AnchorPoint.__name__ = "flixel.addons.ui.AnchorPoint";
flixel_addons_ui_AnchorPoint.prototype = {
offset: null
,side: null
,flush: null
,__class__: flixel_addons_ui_AnchorPoint
};
var flixel_addons_ui_BorderDef = function(Style,Color,Size,Quality) {
if(Quality == null) {
Quality = 1;
}
if(Size == null) {
Size = 1;
}
this.style = Style;
this.color = Color;
this.size = Size;
this.quality = Quality;
};
$hxClasses["flixel.addons.ui.BorderDef"] = flixel_addons_ui_BorderDef;
flixel_addons_ui_BorderDef.__name__ = "flixel.addons.ui.BorderDef";
flixel_addons_ui_BorderDef.fromXML = function(data) {
var border_str = flixel_addons_ui_U.xml_str(data,"border");
var border_style = flixel_text_FlxTextBorderStyle.NONE;
var border_color = flixel_addons_ui_U.xml_color(data,"border_color",true,0);
var border_size = flixel_addons_ui_U.xml_f(data,"border_size",1);
var border_quality = flixel_addons_ui_U.xml_f(data,"border_quality",0);
var borderDef = new flixel_addons_ui_BorderDef(border_style,border_color,border_size,border_quality);
switch(border_str) {
case "":
border_str = flixel_addons_ui_U.xml_str(data,"shadow",true,"");
if(border_str != "" && border_str != "false" && border_str != "none") {
borderDef.style = flixel_text_FlxTextBorderStyle.SHADOW;
var safe = true;
if(safe == null) {
safe = false;
}
var return_val = flixel_util_FlxColor.fromString(border_str);
if(return_val == null) {
if(!safe) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + border_str);
} else {
return_val = 0;
}
}
borderDef.color = return_val;
} else {
border_str = flixel_addons_ui_U.xml_str(data,"outline",true,"");
if(border_str != "" && border_str != "false" && border_str != "none") {
borderDef.style = flixel_text_FlxTextBorderStyle.OUTLINE;
var safe = true;
if(safe == null) {
safe = false;
}
var return_val = flixel_util_FlxColor.fromString(border_str);
if(return_val == null) {
if(!safe) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + border_str);
} else {
return_val = 0;
}
}
borderDef.color = return_val;
} else {
border_str = flixel_addons_ui_U.xml_str(data,"outline_fast");
if(border_str != "" && border_str != "false" && border_str != "none") {
borderDef.style = flixel_text_FlxTextBorderStyle.OUTLINE_FAST;
var safe = true;
if(safe == null) {
safe = false;
}
var return_val = flixel_util_FlxColor.fromString(border_str);
if(return_val == null) {
if(!safe) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + border_str);
} else {
return_val = 0;
}
}
borderDef.color = return_val;
}
}
}
break;
case "false":case "none":
borderDef.style = flixel_text_FlxTextBorderStyle.NONE;
break;
case "outline":
borderDef.style = flixel_text_FlxTextBorderStyle.OUTLINE;
break;
case "outline_fast":
borderDef.style = flixel_text_FlxTextBorderStyle.OUTLINE_FAST;
break;
case "shadow":
borderDef.style = flixel_text_FlxTextBorderStyle.SHADOW;
break;
}
return borderDef;
};
flixel_addons_ui_BorderDef.prototype = {
style: null
,color: null
,size: null
,quality: null
,clone: function() {
return new flixel_addons_ui_BorderDef(this.style,this.color,this.size,this.quality);
}
,apply: function(f) {
var Color = this.color;
var Size = this.size;
var Quality = this.quality;
if(Quality == null) {
Quality = 1;
}
if(Size == null) {
Size = 1;
}
if(Color == null) {
Color = 0;
}
f.set_borderStyle(this.style);
f.set_borderColor(Color);
f.set_borderSize(Size);
f.set_borderQuality(Quality);
return f;
}
,__class__: flixel_addons_ui_BorderDef
};
var flixel_addons_ui_ButtonLabelStyle = function(Font,Align,Color,Border) {
this.align = null;
this.color = null;
this.border = null;
this.font = null;
this.font = Font;
this.border = Border;
this.color = Color;
this.align = Align;
};
$hxClasses["flixel.addons.ui.ButtonLabelStyle"] = flixel_addons_ui_ButtonLabelStyle;
flixel_addons_ui_ButtonLabelStyle.__name__ = "flixel.addons.ui.ButtonLabelStyle";
flixel_addons_ui_ButtonLabelStyle.prototype = {
font: null
,border: null
,color: null
,align: null
,apply: function(f) {
if(this.font != null) {
this.font.apply(null,f);
}
if(this.border != null) {
this.border.apply(f);
}
if(this.color != null) {
f.set_color(this.color);
}
if(this.align != null) {
f.set_alignment(this.align);
}
}
,__class__: flixel_addons_ui_ButtonLabelStyle
};
var flixel_addons_ui_FlxBaseMultiInput = function() {
};
$hxClasses["flixel.addons.ui.FlxBaseMultiInput"] = flixel_addons_ui_FlxBaseMultiInput;
flixel_addons_ui_FlxBaseMultiInput.__name__ = "flixel.addons.ui.FlxBaseMultiInput";
flixel_addons_ui_FlxBaseMultiInput.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_addons_ui_FlxBaseMultiInput.prototype = {
input: null
,combos: null
,forbiddens: null
,destroy: function() {
this.combos = null;
this.forbiddens = null;
}
,checkJustPressed: function() {
return false;
}
,checkJustReleased: function() {
return false;
}
,checkPressed: function() {
return false;
}
,justPressed: function() {
if(this.checkJustPressed()) {
return this.passCombosAndForbiddens();
} else {
return false;
}
}
,justReleased: function() {
if(this.checkJustReleased()) {
if(this.forbiddens != null) {
return this.checkForbiddens(false);
} else {
return true;
}
} else {
return false;
}
}
,pressed: function() {
if(this.checkPressed()) {
return this.passCombosAndForbiddens();
} else {
return false;
}
}
,equals: function(other) {
if(other == null) {
return false;
}
if(Type.typeof(other) != Type.typeof(this)) {
return false;
}
if(this.input != other.input) {
return false;
}
if(this.combos == null != (other.combos == null)) {
return false;
}
if(this.forbiddens == null != (other.forbiddens == null)) {
return false;
}
if(this.combos != null && other.combos != null) {
var _g = 0;
var _g1 = this.combos;
while(_g < _g1.length) {
var i = _g1[_g];
++_g;
if(other.combos.indexOf(i) == -1) {
return false;
}
}
}
if(this.forbiddens != null && other.forbiddens != null) {
var _g = 0;
var _g1 = this.forbiddens;
while(_g < _g1.length) {
var i = _g1[_g];
++_g;
if(other.forbiddens.indexOf(i) == -1) {
return false;
}
}
}
return true;
}
,passCombosAndForbiddens: function(comboValue,forbiddenValue) {
if(forbiddenValue == null) {
forbiddenValue = false;
}
if(comboValue == null) {
comboValue = true;
}
var passCombos = this.combos == null || this.checkCombos(comboValue);
var passForbiddens = this.forbiddens == null || this.checkForbiddens(forbiddenValue);
if(passCombos) {
return passForbiddens;
} else {
return false;
}
}
,checkCombos: function(value) {
return false;
}
,checkForbiddens: function(value) {
return false;
}
,__class__: flixel_addons_ui_FlxBaseMultiInput
};
var flixel_addons_ui_FlxInputText = function(X,Y,Width,Text1,size,TextColor,BackgroundColor,EmbeddedFont) {
if(EmbeddedFont == null) {
EmbeddedFont = true;
}
if(BackgroundColor == null) {
BackgroundColor = -1;
}
if(TextColor == null) {
TextColor = -16777216;
}
if(size == null) {
size = 8;
}
if(Width == null) {
Width = 150;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._scrollBoundIndeces = { left : 0, right : 0};
this.backgroundColor = -1;
this.fieldBorderThickness = 1;
this.fieldBorderColor = -16777216;
this.filterMode = 0;
this.maxLength = 0;
this.forceCase = 0;
this.caretIndex = 0;
this.hasFocus = false;
this.caretWidth = 1;
this.background = false;
flixel_text_FlxText.call(this,X,Y,Width,Text1,size,EmbeddedFont);
this.set_backgroundColor(BackgroundColor);
if(BackgroundColor != 0) {
this.background = true;
}
this.set_color(TextColor);
this.set_caretColor(TextColor);
this.caret = new flixel_FlxSprite();
this.caret.makeGraphic(this.caretWidth,size + 2 | 0);
this._caretTimer = new flixel_util_FlxTimer();
this.set_caretIndex(0);
this.set_hasFocus(false);
if(this.background) {
this.fieldBorderSprite = new flixel_FlxSprite(X,Y);
this.backgroundSprite = new flixel_FlxSprite(X,Y);
}
this.set_lines(1);
openfl_Lib.get_current().stage.addEventListener("keyDown",$bind(this,this.onKeyDown));
if(Text1 == null) {
Text1 = "";
}
this.set_text(Text1);
this.calcFrame();
};
$hxClasses["flixel.addons.ui.FlxInputText"] = flixel_addons_ui_FlxInputText;
flixel_addons_ui_FlxInputText.__name__ = "flixel.addons.ui.FlxInputText";
flixel_addons_ui_FlxInputText.__super__ = flixel_text_FlxText;
flixel_addons_ui_FlxInputText.prototype = $extend(flixel_text_FlxText.prototype,{
customFilterPattern: null
,set_customFilterPattern: function(cfp) {
this.customFilterPattern = cfp;
this.set_filterMode(4);
return this.customFilterPattern;
}
,callback: null
,background: null
,caretColor: null
,set_caretColor: function(i) {
this.caretColor = i;
this.dirty = true;
return this.caretColor;
}
,caretWidth: null
,set_caretWidth: function(i) {
this.caretWidth = i;
this.dirty = true;
return this.caretWidth;
}
,params: null
,hasFocus: null
,caretIndex: null
,focusGained: null
,focusLost: null
,forceCase: null
,maxLength: null
,lines: null
,filterMode: null
,fieldBorderColor: null
,fieldBorderThickness: null
,backgroundColor: null
,backgroundSprite: null
,_caretTimer: null
,caret: null
,fieldBorderSprite: null
,_scrollBoundIndeces: null
,_charBoundaries: null
,lastScroll: null
,destroy: function() {
openfl_Lib.get_current().stage.removeEventListener("keyDown",$bind(this,this.onKeyDown));
this.backgroundSprite = flixel_util_FlxDestroyUtil.destroy(this.backgroundSprite);
this.fieldBorderSprite = flixel_util_FlxDestroyUtil.destroy(this.fieldBorderSprite);
this.callback = null;
flixel_text_FlxText.prototype.destroy.call(this);
}
,draw: function() {
this.drawSprite(this.fieldBorderSprite);
this.drawSprite(this.backgroundSprite);
flixel_text_FlxText.prototype.draw.call(this);
if(this.caretColor != this.caret.color || this.caret.get_height() != (this._defaultFormat.size | 0) + 2) {
this.caret.set_color(this.caretColor);
}
this.drawSprite(this.caret);
}
,drawSprite: function(Sprite) {
if(Sprite != null && Sprite.visible) {
Sprite.scrollFactor = this.scrollFactor;
Sprite.set_cameras(this.get_cameras());
Sprite.draw();
}
}
,update: function(elapsed) {
flixel_text_FlxText.prototype.update.call(this,elapsed);
if(flixel_FlxG.mouse._leftButton.current == 2) {
var hadFocus = this.hasFocus;
if(flixel_FlxG.mouse.overlaps(this)) {
this.set_caretIndex(this.getCaretIndex());
this.set_hasFocus(true);
if(!hadFocus && this.focusGained != null) {
this.focusGained();
}
} else {
this.set_hasFocus(false);
if(hadFocus && this.focusLost != null) {
this.focusLost();
}
}
}
}
,onKeyDown: function(e) {
var key = e.keyCode;
if(this.hasFocus) {
if(key == 16 || key == 17 || key == 220 || key == 27) {
return;
} else if(key == 37) {
if(this.caretIndex > 0) {
var _g = this;
_g.set_caretIndex(_g.caretIndex - 1);
this.set_text(this.text);
}
} else if(key == 39) {
if(this.caretIndex < this.text.length) {
var _g = this;
_g.set_caretIndex(_g.caretIndex + 1);
this.set_text(this.text);
}
} else if(key == 35) {
this.set_caretIndex(this.text.length);
this.set_text(this.text);
} else if(key == 36) {
this.set_caretIndex(0);
this.set_text(this.text);
} else if(key == 8) {
if(this.caretIndex > 0) {
var _g = this;
_g.set_caretIndex(_g.caretIndex - 1);
this.set_text(this.text.substring(0,this.caretIndex) + this.text.substring(this.caretIndex + 1));
this.onChange("backspace");
}
} else if(key == 46) {
if(this.text.length > 0 && this.caretIndex < this.text.length) {
this.set_text(this.text.substring(0,this.caretIndex) + this.text.substring(this.caretIndex + 1));
this.onChange("delete");
}
} else if(key == 13) {
this.onChange("enter");
} else {
if(e.charCode == 0) {
return;
}
var code = e.charCode;
var newText = this.filter(String.fromCodePoint(code));
if(newText.length > 0 && (this.maxLength == 0 || this.text.length + newText.length < this.maxLength)) {
this.set_text(this.insertSubstring(this.text,newText,this.caretIndex));
var _g = this;
_g.set_caretIndex(_g.caretIndex + 1);
this.onChange("input");
}
}
}
}
,onChange: function(action) {
if(this.callback != null) {
this.callback(this.text,action);
}
}
,insertSubstring: function(Original,Insert,Index) {
if(Index != Original.length) {
Original = Original.substring(0,Index) + Insert + Original.substring(Index);
} else {
Original += Insert;
}
return Original;
}
,getCaretIndex: function() {
var X = flixel_FlxG.mouse.x - this.x;
var Y = flixel_FlxG.mouse.y - this.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var hit = point;
return this.getCharIndexAtPoint(hit.x,hit.y);
}
,getCharBoundaries: function(charIndex) {
if(this._charBoundaries != null && charIndex >= 0 && this._charBoundaries.length > 0) {
var r = new openfl_geom_Rectangle();
if(charIndex >= this._charBoundaries.length) {
var _this = this._charBoundaries[this._charBoundaries.length - 1];
var FlashRect = r;
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = _this.x;
FlashRect.y = _this.y;
FlashRect.width = _this.width;
FlashRect.height = _this.height;
} else {
var _this = this._charBoundaries[charIndex];
var FlashRect = r;
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = _this.x;
FlashRect.y = _this.y;
FlashRect.width = _this.width;
FlashRect.height = _this.height;
}
return r;
}
return null;
}
,set_text: function(Text1) {
var return_text = flixel_text_FlxText.prototype.set_text.call(this,Text1);
if(this.textField == null) {
return return_text;
}
var numChars = Text1.length;
this.prepareCharBoundaries(numChars);
this.textField.set_text("");
var textH = 0;
var textW = 0;
var lastW = 0;
var magicX = 2;
var magicY = 2;
var _g = 0;
var _g1 = numChars;
while(_g < _g1) {
var i = _g++;
this.textField.appendText(HxOverrides.substr(Text1,i,1));
textW = this.textField.get_textWidth();
if(i == 0) {
textH = this.textField.get_textHeight();
}
this._charBoundaries[i].x = magicX + lastW;
this._charBoundaries[i].y = magicY;
this._charBoundaries[i].width = textW - lastW;
this._charBoundaries[i].height = textH;
lastW = textW;
}
this.textField.set_text(Text1);
this.onSetTextCheck();
return return_text;
}
,getCharIndexAtPoint: function(X,Y) {
var i = 0;
if(this._charBoundaries != null && this._charBoundaries.length > 0) {
if(this.textField.get_textWidth() <= this.textField.get_width()) {
switch(this.getAlignStr()) {
case "center":
X = X - this.textField.get_width() / 2 + this.textField.get_textWidth() / 2;
break;
case "right":
X = X - this.textField.get_width() + this.textField.get_textWidth();
break;
default:
}
}
}
if(this._charBoundaries != null) {
var _g = 0;
var _g1 = this._charBoundaries;
while(_g < _g1.length) {
var r = _g1[_g];
++_g;
if(X >= r.x && X <= r.x + r.width) {
return i;
}
++i;
}
}
if(this._charBoundaries != null && this._charBoundaries.length > 0) {
if(X > this.textField.get_textWidth()) {
return this._charBoundaries.length;
}
}
return 0;
}
,prepareCharBoundaries: function(numChars) {
if(this._charBoundaries == null) {
this._charBoundaries = [];
}
if(this._charBoundaries.length > numChars) {
var diff = this._charBoundaries.length - numChars;
var _g = 0;
var _g1 = diff;
while(_g < _g1) {
var i = _g++;
this._charBoundaries.pop();
}
}
var _g = 0;
var _g1 = numChars;
while(_g < _g1) {
var i = _g++;
if(this._charBoundaries.length - 1 < i) {
var tmp = this._charBoundaries;
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
tmp.push(rect);
}
}
}
,onSetTextCheck: function() {
}
,calcFrame: function(RunOnCpp) {
if(RunOnCpp == null) {
RunOnCpp = false;
}
flixel_text_FlxText.prototype.calcFrame.call(this,RunOnCpp);
if(this.fieldBorderSprite != null) {
if(this.fieldBorderThickness > 0) {
this.fieldBorderSprite.makeGraphic(this.get_width() + this.fieldBorderThickness * 2 | 0,this.get_height() + this.fieldBorderThickness * 2 | 0,this.fieldBorderColor);
this.fieldBorderSprite.set_x(this.x - this.fieldBorderThickness);
this.fieldBorderSprite.set_y(this.y - this.fieldBorderThickness);
} else if(this.fieldBorderThickness == 0) {
this.fieldBorderSprite.set_visible(false);
}
}
if(this.backgroundSprite != null) {
if(this.background) {
this.backgroundSprite.makeGraphic(this.get_width() | 0,this.get_height() | 0,this.backgroundColor);
this.backgroundSprite.set_x(this.x);
this.backgroundSprite.set_y(this.y);
} else {
this.backgroundSprite.set_visible(false);
}
}
if(this.caret != null) {
var cw = this.caretWidth;
var ch = (this._defaultFormat.size | 0) + 2 | 0;
var borderC = -16777216 | this.borderColor & 16777215;
var caretC = -16777216 | this.caretColor & 16777215;
var caretKey = "caret" + cw + "x" + ch + "c:" + caretC + "b:" + Std.string(this.borderStyle) + "," + this.borderSize + "," + borderC;
switch(this.borderStyle._hx_index) {
case 0:
this.caret.makeGraphic(cw,ch,caretC,false,caretKey);
this.caret.offset.set_x(this.caret.offset.set_y(0));
break;
case 1:
cw += this.borderSize | 0;
ch += this.borderSize | 0;
this.caret.makeGraphic(cw,ch,0,false,caretKey);
var r = new openfl_geom_Rectangle(this.borderSize,this.borderSize,this.caretWidth,(this._defaultFormat.size | 0) + 2 | 0);
this.caret.get_pixels().fillRect(r,borderC);
r.x = r.y = 0;
this.caret.get_pixels().fillRect(r,caretC);
this.caret.offset.set_x(this.caret.offset.set_y(0));
break;
case 2:case 3:
cw += this.borderSize * 2 | 0;
ch += this.borderSize * 2 | 0;
this.caret.makeGraphic(cw,ch,borderC,false,caretKey);
var r = new openfl_geom_Rectangle(this.borderSize,this.borderSize,this.caretWidth,(this._defaultFormat.size | 0) + 2 | 0);
this.caret.get_pixels().fillRect(r,caretC);
this.caret.offset.set_x(this.caret.offset.set_y(this.borderSize));
break;
}
this.caret.set_width(cw);
this.caret.set_height(ch);
this.set_caretIndex(this.caretIndex);
}
}
,toggleCaret: function(timer) {
this.caret.set_visible(!this.caret.visible);
}
,filter: function(text) {
if(this.forceCase == 1) {
text = text.toUpperCase();
} else if(this.forceCase == 2) {
text = text.toLowerCase();
}
if(this.filterMode != 0) {
var pattern;
switch(this.filterMode) {
case 1:
pattern = new EReg("[^a-zA-Z]*","g");
break;
case 2:
pattern = new EReg("[^0-9]*","g");
break;
case 3:
pattern = new EReg("[^a-zA-Z0-9]*","g");
break;
case 4:
pattern = this.customFilterPattern;
break;
default:
throw haxe_Exception.thrown(new openfl_errors_Error("FlxInputText: Unknown filterMode (" + this.filterMode + ")"));
}
text = text.replace(pattern.r,"");
}
return text;
}
,set_params: function(p) {
this.params = p;
if(this.params == null) {
this.params = [];
}
var namedValue = { name : "value", value : this.text};
this.params.push(namedValue);
return p;
}
,set_x: function(X) {
if(this.fieldBorderSprite != null && this.fieldBorderThickness > 0) {
this.fieldBorderSprite.set_x(X - this.fieldBorderThickness);
}
if(this.backgroundSprite != null && this.background) {
this.backgroundSprite.set_x(X);
}
return flixel_text_FlxText.prototype.set_x.call(this,X);
}
,set_y: function(Y) {
if(this.fieldBorderSprite != null && this.fieldBorderThickness > 0) {
this.fieldBorderSprite.set_y(Y - this.fieldBorderThickness);
}
if(this.backgroundSprite != null && this.background) {
this.backgroundSprite.set_y(Y);
}
return flixel_text_FlxText.prototype.set_y.call(this,Y);
}
,set_hasFocus: function(newFocus) {
if(newFocus) {
if(this.hasFocus != newFocus) {
this._caretTimer = new flixel_util_FlxTimer().start(0.5,$bind(this,this.toggleCaret),0);
this.caret.set_visible(true);
this.set_caretIndex(this.text.length);
}
} else {
this.caret.set_visible(false);
if(this._caretTimer != null) {
this._caretTimer.cancel();
}
}
if(newFocus != this.hasFocus) {
this.calcFrame();
}
return this.hasFocus = newFocus;
}
,getAlignStr: function() {
var alignStr = "left";
if(this._defaultFormat != null && this._defaultFormat.align != null) {
alignStr = flixel_text_FlxTextAlign.fromOpenFL(this._defaultFormat.align);
}
return alignStr;
}
,set_caretIndex: function(newCaretIndex) {
var offx = 0;
var alignStr = this.getAlignStr();
switch(alignStr) {
case "center":
if(offx <= 1) {
offx = 0;
}
break;
case "right":
offx = this.textField.get_width() - 2 - this.textField.get_textWidth() - 2;
if(offx < 0) {
offx = 0;
}
break;
default:
offx = 0;
}
this.caretIndex = newCaretIndex;
if(this.caretIndex > this.text.length + 1) {
this.caretIndex = -1;
}
if(this.caretIndex != -1) {
var boundaries = null;
if(this.caretIndex < this.text.length) {
boundaries = this.getCharBoundaries(this.caretIndex);
if(boundaries != null) {
this.caret.set_x(offx + boundaries.get_left() + this.x);
this.caret.set_y(boundaries.get_top() + this.y);
}
} else {
boundaries = this.getCharBoundaries(this.caretIndex - 1);
if(boundaries != null) {
this.caret.set_x(offx + boundaries.get_right() + this.x);
this.caret.set_y(boundaries.get_top() + this.y);
} else if(this.text.length == 0) {
this.caret.set_x(this.x + offx + 2);
this.caret.set_y(this.y + 2);
}
}
}
if(this.lines == 1 && this.caret.x + this.caret.get_width() > this.x + this.get_width()) {
this.caret.set_x(this.x + this.get_width() - 2);
}
return this.caretIndex;
}
,set_forceCase: function(Value) {
this.forceCase = Value;
this.set_text(this.filter(this.text));
return this.forceCase;
}
,set_size: function(Value) {
flixel_text_FlxText.prototype.set_size.call(this,Value);
this.caret.makeGraphic(1,(this._defaultFormat.size | 0) + 2 | 0);
return Value;
}
,set_maxLength: function(Value) {
this.maxLength = Value;
if(this.text.length > this.maxLength) {
this.set_text(this.text.substring(0,this.maxLength));
}
return this.maxLength;
}
,set_lines: function(Value) {
if(Value == 0) {
return 0;
}
if(Value > 1) {
this.textField.set_wordWrap(true);
this.textField.set_multiline(true);
} else {
this.textField.set_wordWrap(false);
this.textField.set_multiline(false);
}
this.lines = Value;
this.calcFrame();
return this.lines;
}
,get_passwordMode: function() {
return this.textField.get_displayAsPassword();
}
,set_passwordMode: function(value) {
this.textField.set_displayAsPassword(value);
this.calcFrame();
return value;
}
,set_filterMode: function(Value) {
this.filterMode = Value;
this.set_text(this.filter(this.text));
return this.filterMode;
}
,set_fieldBorderColor: function(Value) {
this.fieldBorderColor = Value;
this.calcFrame();
return this.fieldBorderColor;
}
,set_fieldBorderThickness: function(Value) {
this.fieldBorderThickness = Value;
this.calcFrame();
return this.fieldBorderThickness;
}
,set_backgroundColor: function(Value) {
this.backgroundColor = Value;
this.calcFrame();
return this.backgroundColor;
}
,__class__: flixel_addons_ui_FlxInputText
,__properties__: $extend(flixel_text_FlxText.prototype.__properties__,{set_backgroundColor:"set_backgroundColor",set_fieldBorderThickness:"set_fieldBorderThickness",set_fieldBorderColor:"set_fieldBorderColor",set_filterMode:"set_filterMode",set_lines:"set_lines",set_maxLength:"set_maxLength",set_forceCase:"set_forceCase",set_caretIndex:"set_caretIndex",set_hasFocus:"set_hasFocus",set_passwordMode:"set_passwordMode",get_passwordMode:"get_passwordMode",set_params:"set_params",set_caretWidth:"set_caretWidth",set_caretColor:"set_caretColor",set_customFilterPattern:"set_customFilterPattern"})
});
var flixel_addons_ui_FlxMultiGamepad = function(Gamepad1,Input,Combos,Forbiddens) {
flixel_addons_ui_FlxBaseMultiInput.call(this);
this.input = Input;
this.gamepad = Gamepad1;
this.combos = Combos;
this.forbiddens = Forbiddens;
};
$hxClasses["flixel.addons.ui.FlxMultiGamepad"] = flixel_addons_ui_FlxMultiGamepad;
flixel_addons_ui_FlxMultiGamepad.__name__ = "flixel.addons.ui.FlxMultiGamepad";
flixel_addons_ui_FlxMultiGamepad.__super__ = flixel_addons_ui_FlxBaseMultiInput;
flixel_addons_ui_FlxMultiGamepad.prototype = $extend(flixel_addons_ui_FlxBaseMultiInput.prototype,{
gamepad: null
,destroy: function() {
flixel_addons_ui_FlxBaseMultiInput.prototype.destroy.call(this);
this.gamepad = null;
}
,checkJustPressed: function() {
if(this.gamepad == null) {
return false;
}
var _this = this.gamepad;
var ID = this.input;
var Status = 2;
switch(ID) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(ID);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,checkJustReleased: function() {
if(this.gamepad == null) {
return false;
}
var _this = this.gamepad;
var ID = this.input;
var Status = -1;
switch(ID) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(ID);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,checkPressed: function() {
if(this.gamepad == null) {
return false;
}
var _this = this.gamepad;
var ID = this.input;
var Status = 1;
switch(ID) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(ID);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,checkCombos: function(value) {
if(this.gamepad == null) {
return false;
}
return this.gamepad.checkButtonArrayState(this.combos,1) == value;
}
,checkForbiddens: function(value) {
if(this.gamepad == null) {
return false;
}
return this.gamepad.checkButtonArrayState(this.forbiddens,1) == value;
}
,__class__: flixel_addons_ui_FlxMultiGamepad
});
var flixel_addons_ui_FlxMultiGamepadAnalogStick = function(Gamepad1,Input,Combos,Forbiddens) {
this.sInput = Input;
flixel_addons_ui_FlxMultiGamepad.call(this,Gamepad1,Input.id,Combos,Forbiddens);
};
$hxClasses["flixel.addons.ui.FlxMultiGamepadAnalogStick"] = flixel_addons_ui_FlxMultiGamepadAnalogStick;
flixel_addons_ui_FlxMultiGamepadAnalogStick.__name__ = "flixel.addons.ui.FlxMultiGamepadAnalogStick";
flixel_addons_ui_FlxMultiGamepadAnalogStick.getStickInput = function(str) {
str = str.toLowerCase();
switch(str) {
case "left_analog_stick_x_minus":
return { id : 19, axis : flixel_addons_ui_XY.X, positive : false};
case "left_analog_stick_x_plus":
return { id : 19, axis : flixel_addons_ui_XY.X, positive : true};
case "left_analog_stick_y_minus":
return { id : 19, axis : flixel_addons_ui_XY.Y, positive : false};
case "left_analog_stick_y_plus":
return { id : 19, axis : flixel_addons_ui_XY.Y, positive : true};
case "right_analog_stick_x_minus":
return { id : 20, axis : flixel_addons_ui_XY.X, positive : false};
case "right_analog_stick_x_plus":
return { id : 20, axis : flixel_addons_ui_XY.X, positive : true};
case "right_analog_stick_y_minus":
return { id : 20, axis : flixel_addons_ui_XY.Y, positive : false};
case "right_analog_stick_y_plus":
return { id : 20, axis : flixel_addons_ui_XY.Y, positive : true};
}
return null;
};
flixel_addons_ui_FlxMultiGamepadAnalogStick.__super__ = flixel_addons_ui_FlxMultiGamepad;
flixel_addons_ui_FlxMultiGamepadAnalogStick.prototype = $extend(flixel_addons_ui_FlxMultiGamepad.prototype,{
sInput: null
,destroy: function() {
flixel_addons_ui_FlxMultiGamepad.prototype.destroy.call(this);
this.sInput = null;
}
,checkJustPressed: function() {
if(this.gamepad == null) {
return false;
}
var dz = this.gamepad.get_deadZone();
switch(this.sInput.id) {
case 19:
if(this.sInput.axis == flixel_addons_ui_XY.X) {
var _this = this.gamepad.analog.justMoved;
var stick = _this.gamepad.mapping.getAnalogStick(19);
var tmp;
if(stick == null) {
tmp = false;
} else {
var button = _this.gamepad.buttons[stick.x];
tmp = button != null && button.hasState(_this.status);
}
if(tmp) {
if(this.sInput.positive) {
var _this = this.gamepad.analog.value.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)) > dz;
} else {
var _this = this.gamepad.analog.value.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)) < -dz;
}
} else {
return false;
}
} else {
var _this = this.gamepad.analog.justMoved;
var stick = _this.gamepad.mapping.getAnalogStick(19);
var tmp;
if(stick == null) {
tmp = false;
} else {
var button = _this.gamepad.buttons[stick.y];
tmp = button != null && button.hasState(_this.status);
}
if(tmp) {
if(this.sInput.positive) {
var _this = this.gamepad.analog.value.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)) > dz;
} else {
var _this = this.gamepad.analog.value.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)) < -dz;
}
} else {
return false;
}
}
break;
case 20:
if(this.sInput.axis == flixel_addons_ui_XY.X) {
var _this = this.gamepad.analog.justMoved;
var stick = _this.gamepad.mapping.getAnalogStick(20);
var tmp;
if(stick == null) {
tmp = false;
} else {
var button = _this.gamepad.buttons[stick.x];
tmp = button != null && button.hasState(_this.status);
}
if(tmp) {
if(this.sInput.positive) {
var _this = this.gamepad.analog.value.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)) > dz;
} else {
var _this = this.gamepad.analog.value.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)) < -dz;
}
} else {
return false;
}
} else {
var _this = this.gamepad.analog.justMoved;
var stick = _this.gamepad.mapping.getAnalogStick(20);
var tmp;
if(stick == null) {
tmp = false;
} else {
var button = _this.gamepad.buttons[stick.y];
tmp = button != null && button.hasState(_this.status);
}
if(tmp) {
if(this.sInput.positive) {
var _this = this.gamepad.analog.value.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)) > dz;
} else {
var _this = this.gamepad.analog.value.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)) < -dz;
}
} else {
return false;
}
}
break;
default:
return false;
}
}
,checkJustReleased: function() {
if(this.gamepad == null) {
return false;
}
switch(this.sInput.id) {
case 19:
if(this.sInput.axis == flixel_addons_ui_XY.X) {
var _this = this.gamepad.analog.justReleased;
var stick = _this.gamepad.mapping.getAnalogStick(19);
if(stick == null) {
return false;
} else {
var button = _this.gamepad.buttons[stick.x];
if(button != null) {
return button.hasState(_this.status);
} else {
return false;
}
}
} else {
var _this = this.gamepad.analog.justReleased;
var stick = _this.gamepad.mapping.getAnalogStick(19);
if(stick == null) {
return false;
} else {
var button = _this.gamepad.buttons[stick.y];
if(button != null) {
return button.hasState(_this.status);
} else {
return false;
}
}
}
break;
case 20:
if(this.sInput.axis == flixel_addons_ui_XY.X) {
var _this = this.gamepad.analog.justReleased;
var stick = _this.gamepad.mapping.getAnalogStick(20);
if(stick == null) {
return false;
} else {
var button = _this.gamepad.buttons[stick.x];
if(button != null) {
return button.hasState(_this.status);
} else {
return false;
}
}
} else {
var _this = this.gamepad.analog.justReleased;
var stick = _this.gamepad.mapping.getAnalogStick(20);
if(stick == null) {
return false;
} else {
var button = _this.gamepad.buttons[stick.y];
if(button != null) {
return button.hasState(_this.status);
} else {
return false;
}
}
}
break;
default:
return false;
}
}
,checkPressed: function() {
if(this.gamepad == null) {
return false;
}
var value = false;
var dz = this.gamepad.get_deadZone();
switch(this.sInput.id) {
case 19:
if(this.sInput.axis == flixel_addons_ui_XY.X) {
if(this.sInput.positive) {
var _this = this.gamepad.analog.value.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)) > dz;
} else {
var _this = this.gamepad.analog.value.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)) < -dz;
}
} else if(this.sInput.positive) {
var _this = this.gamepad.analog.value.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)) > dz;
} else {
var _this = this.gamepad.analog.value.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)) < -dz;
}
break;
case 20:
if(this.sInput.axis == flixel_addons_ui_XY.X) {
if(this.sInput.positive) {
var _this = this.gamepad.analog.value.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)) > dz;
} else {
var _this = this.gamepad.analog.value.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)) < -dz;
}
} else if(this.sInput.positive) {
var _this = this.gamepad.analog.value.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)) > dz;
} else {
var _this = this.gamepad.analog.value.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)) < -dz;
}
break;
default:
value = false;
return value;
}
}
,checkCombos: function(value) {
if(this.gamepad == null) {
return false;
}
return this.gamepad.checkButtonArrayState(this.combos,1) == value;
}
,checkForbiddens: function(value) {
if(this.gamepad == null) {
return false;
}
return this.gamepad.checkButtonArrayState(this.forbiddens,1) == value;
}
,__class__: flixel_addons_ui_FlxMultiGamepadAnalogStick
});
var flixel_addons_ui_XY = $hxEnums["flixel.addons.ui.XY"] = { __ename__ : "flixel.addons.ui.XY", __constructs__ : ["X","Y"]
,X: {_hx_index:0,__enum__:"flixel.addons.ui.XY",toString:$estr}
,Y: {_hx_index:1,__enum__:"flixel.addons.ui.XY",toString:$estr}
};
var flixel_addons_ui_FlxMultiKey = function(Input,Combos,Forbiddens) {
flixel_addons_ui_FlxBaseMultiInput.call(this);
this.input = Input;
this.combos = Combos;
this.forbiddens = Forbiddens;
};
$hxClasses["flixel.addons.ui.FlxMultiKey"] = flixel_addons_ui_FlxMultiKey;
flixel_addons_ui_FlxMultiKey.__name__ = "flixel.addons.ui.FlxMultiKey";
flixel_addons_ui_FlxMultiKey.__super__ = flixel_addons_ui_FlxBaseMultiInput;
flixel_addons_ui_FlxMultiKey.prototype = $extend(flixel_addons_ui_FlxBaseMultiInput.prototype,{
checkJustPressed: function() {
return flixel_FlxG.keys.checkStatus(this.input,2);
}
,checkJustReleased: function() {
return flixel_FlxG.keys.checkStatus(this.input,-1);
}
,checkPressed: function() {
return flixel_FlxG.keys.checkStatus(this.input,1);
}
,checkCombos: function(value) {
return flixel_FlxG.keys.checkKeyArrayState(this.combos,1) == value;
}
,checkForbiddens: function(value) {
return flixel_FlxG.keys.checkKeyArrayState(this.forbiddens,1) == value;
}
,__class__: flixel_addons_ui_FlxMultiKey
});
var flixel_addons_ui_interfaces_IFlxUIWidget = function() { };
$hxClasses["flixel.addons.ui.interfaces.IFlxUIWidget"] = flixel_addons_ui_interfaces_IFlxUIWidget;
flixel_addons_ui_interfaces_IFlxUIWidget.__name__ = "flixel.addons.ui.interfaces.IFlxUIWidget";
flixel_addons_ui_interfaces_IFlxUIWidget.__isInterface__ = true;
flixel_addons_ui_interfaces_IFlxUIWidget.__interfaces__ = [flixel_IFlxSprite];
flixel_addons_ui_interfaces_IFlxUIWidget.prototype = {
get_width: null
,set_width: null
,get_height: null
,set_height: null
,name: null
,broadcastToFlxUI: null
,__class__: flixel_addons_ui_interfaces_IFlxUIWidget
,__properties__: {set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width"}
};
var flixel_addons_ui_FlxUIGroup = function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.autoBounds = true;
this.broadcastToFlxUI = true;
flixel_group_FlxTypedSpriteGroup.call(this,X,Y);
};
$hxClasses["flixel.addons.ui.FlxUIGroup"] = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUIGroup.__name__ = "flixel.addons.ui.FlxUIGroup";
flixel_addons_ui_FlxUIGroup.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIWidget];
flixel_addons_ui_FlxUIGroup.__super__ = flixel_group_FlxTypedSpriteGroup;
flixel_addons_ui_FlxUIGroup.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{
name: null
,broadcastToFlxUI: null
,autoBounds: null
,destroy: function() {
flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this);
}
,add: function(Object1) {
var obj = flixel_group_FlxTypedSpriteGroup.prototype.add.call(this,Object1);
if(this.autoBounds) {
this.calcBounds();
}
return obj;
}
,remove: function(Object1,Splice) {
if(Splice == null) {
Splice = false;
}
var obj = flixel_group_FlxTypedSpriteGroup.prototype.remove.call(this,Object1,Splice);
if(this.autoBounds) {
this.calcBounds();
}
return obj;
}
,setScrollFactor: function(X,Y) {
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var obj = _g1[_g];
++_g;
if(obj != null) {
obj.scrollFactor.set(X,Y);
}
}
}
,hasThis: function(Object1) {
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var obj = _g1[_g];
++_g;
if(obj == Object1) {
return true;
}
}
return false;
}
,calcBounds: function(rect) {
if(this.group.members != null && this.group.members.length > 0) {
var left = Infinity;
var right = -Infinity;
var top = Infinity;
var bottom = -Infinity;
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var fb = _g1[_g];
++_g;
if(fb != null) {
if(js_Boot.__implements(fb,flixel_addons_ui_interfaces_IFlxUIWidget)) {
var flui = fb;
if(flui.x < left) {
left = flui.x;
}
if(flui.x + flui.get_width() > right) {
right = flui.x + flui.get_width();
}
if(flui.y < top) {
top = flui.y;
}
if(flui.y + flui.get_height() > bottom) {
bottom = flui.y + flui.get_height();
}
} else if(((fb) instanceof flixel_FlxSprite)) {
var flxi = fb;
if(flxi.x < left) {
left = flxi.x;
}
if(flxi.x > right) {
right = flxi.x;
}
if(flxi.y < top) {
top = flxi.y;
}
if(flxi.y > bottom) {
bottom = flxi.y;
}
}
}
}
this.set_width(right - left);
this.set_height(bottom - top);
if(rect != null) {
rect.x = left;
rect.y = top;
rect.width = this.get_width();
rect.height = this.get_height();
}
} else {
this.set_width(this.set_height(0));
}
}
,floorAll: function() {
var fs = null;
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var fb = _g1[_g];
++_g;
fs = fb;
fs.set_x(Math.floor(fs.x));
fs.set_y(Math.floor(fs.y));
}
}
,__class__: flixel_addons_ui_FlxUIGroup
});
var flixel_addons_ui_FlxUI = function(data,ptr,superIndex_,tongue_,liveFilePath_,uiVars_) {
if(liveFilePath_ == null) {
liveFilePath_ = "";
}
this._scaledAssets = [];
this._assetsToCleanUp = [];
this._safe_input_delay_elapsed = 0.0;
this._curr_mode = "";
this._pointY = 1;
this._pointX = 1;
this._postLoaded = false;
this.cursorLists = null;
this.getTextFallback = null;
this.failed_by = 0;
this.failed = false;
this.safe_input_delay_time = 0.01;
this.do_safe_input_delay = true;
flixel_addons_ui_FlxUIGroup.call(this);
this._ptr_tongue = tongue_;
this._ptr = ptr;
if(superIndex_ != null) {
this.setSuperIndex(superIndex_);
}
if(uiVars_ != null) {
this._variable_index = new haxe_ds_StringMap();
var key = haxe_ds_StringMap.keysIterator(uiVars_.h);
while(key.hasNext()) {
var key1 = key.next();
this._variable_index.h[key1] = uiVars_.h[key1];
}
}
if(data != null) {
this.load(data);
}
};
$hxClasses["flixel.addons.ui.FlxUI"] = flixel_addons_ui_FlxUI;
flixel_addons_ui_FlxUI.__name__ = "flixel.addons.ui.FlxUI";
flixel_addons_ui_FlxUI.__interfaces__ = [flixel_addons_ui_interfaces_IEventGetter];
flixel_addons_ui_FlxUI.event = function(name,sender,data,params) {
var currState = flixel_addons_ui_FlxUI.getLeafUIState();
if(currState != null) {
currState.getEvent(name,sender,data,params);
}
};
flixel_addons_ui_FlxUI.fontStr = function(str,style) {
if(style == null) {
style = "";
}
var currState = flixel_addons_ui_FlxUI.getLeafUIState();
var tongue = currState._tongue;
var t = tongue != null ? tongue : null;
if(t != null) {
str = t.getFont(str);
}
var style1 = style;
if(style1 == null) {
style1 = "";
}
var style = style1;
if(style == null) {
style = "";
}
style = style.toLowerCase();
var suffix = "";
switch(style) {
case "b":case "bold":
suffix = "b";
break;
case "bi":case "bold-italic":case "boldi":case "bolditalic":case "ib":case "ibold":case "italic-bold":case "italicbold":case "z":
suffix = "z";
break;
case "i":case "italic":
suffix = "i";
break;
case "":case "none":case "normal":case "regular":
suffix = "";
break;
}
if(str.indexOf("assets/fonts/") != 0) {
return "assets/fonts/" + str + suffix;
} else {
return str + suffix;
}
};
flixel_addons_ui_FlxUI.fontSize = function(str,size) {
var currState = flixel_addons_ui_FlxUI.getLeafUIState();
var tongue = currState._tongue;
var t = tongue != null ? tongue : null;
if(t != null) {
size = t.getFontSize(str,size);
}
return size;
};
flixel_addons_ui_FlxUI.font = function(str,style,extension) {
if(extension == null) {
extension = ".ttf";
}
if(style == null) {
style = "";
}
var currState = flixel_addons_ui_FlxUI.getLeafUIState();
var tongue = currState._tongue;
var t = tongue != null ? tongue : null;
if(t != null) {
str = t.getFont(str);
}
return flixel_addons_ui_U.font(str,style,extension);
};
flixel_addons_ui_FlxUI.__getTongue = function() {
var currState = flixel_addons_ui_FlxUI.getLeafUIState();
var tongue = currState._tongue;
if(tongue != null) {
return tongue;
}
return null;
};
flixel_addons_ui_FlxUI.forceFocus = function(b,thing) {
var currState = flixel_addons_ui_FlxUI.getLeafUIState();
if(currState != null) {
currState.forceFocus(b,thing);
}
};
flixel_addons_ui_FlxUI.getLeafUIState = function() {
var state = flixel_FlxG.game._state;
if(state != null) {
while(state.subState != null) state = state.subState;
}
if(js_Boot.__implements(state,flixel_addons_ui_interfaces_IFlxUIState)) {
return state;
}
return null;
};
flixel_addons_ui_FlxUI.request = function(name,sender,data,params) {
var currState = flixel_addons_ui_FlxUI.getLeafUIState();
if(currState != null) {
return currState.getRequest(name,sender,data,params);
}
return null;
};
flixel_addons_ui_FlxUI._delta = function(thing,X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = thing;
_g.set_x(_g.x + X);
var _g = thing;
_g.set_y(_g.y + Y);
};
flixel_addons_ui_FlxUI._center = function(thing,X,Y) {
if(Y == null) {
Y = true;
}
if(X == null) {
X = true;
}
if(X) {
thing.set_x((flixel_FlxG.width - thing.get_width()) / 2);
}
if(Y) {
thing.set_y((flixel_FlxG.height - thing.get_height()) / 2);
}
return thing;
};
flixel_addons_ui_FlxUI.consolidateData = function(data,definition,combineUniqueChildren) {
if(combineUniqueChildren == null) {
combineUniqueChildren = false;
}
if(data == null && definition != null) {
return definition;
}
if(definition == null) {
return data;
} else {
var new_data = Xml.parse(haxe_xml_Printer.print(definition)).firstElement();
var att = data.attributes();
while(att.hasNext()) {
var att1 = att.next();
var val = haxe_xml__$Access_AttribAccess.resolve(data,att1);
new_data.set(att1,val);
}
var v;
if(data.nodeType == Xml.Document) {
v = "Document";
} else {
if(data.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType)));
}
v = data.nodeName;
}
if(new_data.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (new_data.nodeType == null ? "null" : XmlType.toString(new_data.nodeType)));
}
new_data.nodeName = v;
if(haxe_xml__$Access_HasAttribAccess.resolve(data,"name") || haxe_xml__$Access_HasAttribAccess.resolve(data,"id")) {
new_data.set("name",flixel_addons_ui_U.xml_name(data));
} else {
new_data.set("name","");
}
var element = data.elements();
while(element.hasNext()) {
var element1 = element.next();
if(element1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (element1.nodeType == null ? "null" : XmlType.toString(element1.nodeType)));
}
var nodeName = element1.nodeName;
var notCombine = !combineUniqueChildren;
if(combineUniqueChildren) {
var new_els = new_data.elementsNamed(nodeName);
var new_el = new_els.next();
if(haxe_xml__$Access_NodeListAccess.resolve(data,nodeName).length == 1 && new_el != null && new_els.hasNext() == false) {
var att = element1.attributes();
while(att.hasNext()) {
var att1 = att.next();
new_el.set(att1,element1.get(att1));
}
} else {
notCombine = true;
}
}
if(notCombine) {
new_data.insertChild(Xml.parse(haxe_xml_Printer.print(element1)).firstElement(),0);
}
}
if(new_data.nodeType != Xml.Document && new_data.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (new_data.nodeType == null ? "null" : XmlType.toString(new_data.nodeType)));
}
var this1 = new_data;
return this1;
}
};
flixel_addons_ui_FlxUI._loadBitmapRect = function(source,rect_str) {
var b1 = openfl_utils_Assets.getBitmapData(flixel_addons_ui_U.gfx(source));
var coords = rect_str.split(",");
var rect = null;
if(coords != null && coords.length == 4) {
var x_ = Std.parseInt(coords[0]);
var y_ = Std.parseInt(coords[1]);
var w_ = Std.parseInt(coords[2]);
var h_ = Std.parseInt(coords[3]);
rect = new openfl_geom_Rectangle(x_,y_,w_,h_);
}
var r = rect;
var b2 = new openfl_display_BitmapData(r.width | 0,r.height | 0,true,16777215);
b2.copyPixels(b1,r,new openfl_geom_Point(0,0));
return b2;
};
flixel_addons_ui_FlxUI.getParams = function(data) {
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
return params;
};
flixel_addons_ui_FlxUI.sortParams = function(a,b) {
if(a.sort < b.sort) {
return -1;
}
if(a.sort > b.sort) {
return 1;
}
return 0;
};
flixel_addons_ui_FlxUI.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUI.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
do_safe_input_delay: null
,safe_input_delay_time: null
,failed: null
,failed_by: null
,get_isRoot: function() {
if(this._ptr != null) {
return this._ptr == flixel_addons_ui_FlxUI.getLeafUIState();
} else {
return false;
}
}
,liveFilePath: null
,get_tongue: function() {
return this._ptr_tongue;
}
,set_tongue: function(t) {
this._ptr_tongue = t;
this._tongueSet(this.group.members,t);
return this._ptr_tongue;
}
,focus: null
,set_focus: function(widget) {
if(this.focus != null) {
this.onFocusLost(this.focus);
}
this.focus = widget;
if(this.focus != null) {
this.onFocus(this.focus);
}
return widget;
}
,getTextFallback: null
,cursorLists: null
,_ptr_tongue: null
,_data: null
,_tongueSet: function(list,tongue) {
var _g = 0;
while(_g < list.length) {
var fs = list[_g];
++_g;
if(((fs) instanceof flixel_addons_ui_FlxUIGroup)) {
var g = js_Boot.__cast(fs , flixel_addons_ui_FlxUIGroup);
this._tongueSet(g.group.members,tongue);
} else if(((fs) instanceof flixel_addons_ui_FlxUI)) {
var fu = js_Boot.__cast(fs , flixel_addons_ui_FlxUI);
fu.set_tongue(tongue);
}
}
}
,callEvent: function(name,sender,data,params) {
this.getEvent(name,sender,data,params);
}
,getEvent: function(name,sender,data,params) {
if(this._ptr != null) {
this._ptr.getEvent(name,sender,data,params);
if(name == "post_load") {
var key = haxe_ds_StringMap.keysIterator(this._asset_index.h);
while(key.hasNext()) {
var key1 = key.next();
var thing = this._asset_index.h[key1];
if(((thing) instanceof flixel_addons_ui_FlxUI)) {
var fui = thing;
fui.getEvent("post_load",sender,data);
}
}
}
}
}
,getRequest: function(name,sender,data,params) {
if(this._ptr != null) {
return this._ptr.getRequest(name,sender,data,params);
}
return null;
}
,onFocus: function(widget) {
if(((widget) instanceof flixel_addons_ui_FlxUIDropDownMenu)) {
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var asset = _g1[_g];
++_g;
this.setWidgetSuppression(asset,widget);
}
}
}
,setWidgetSuppression: function(asset,butNotThisOne,suppressed) {
if(suppressed == null) {
suppressed = true;
}
if(js_Boot.__implements(asset,flixel_addons_ui_interfaces_IFlxUIClickable)) {
var skip = false;
if(((asset) instanceof flixel_addons_ui_FlxUIDropDownMenu)) {
var ddasset = asset;
if(ddasset == butNotThisOne) {
skip = true;
}
}
if(!skip) {
var ibtn = asset;
ibtn.set_skipButtonUpdate(suppressed);
}
} else if(((asset) instanceof flixel_addons_ui_FlxUIGroup)) {
var g = asset;
var _g = 0;
var _g1 = g.group.members;
while(_g < _g1.length) {
var groupAsset = _g1[_g];
++_g;
this.setWidgetSuppression(groupAsset,butNotThisOne,suppressed);
}
}
}
,onFocusLost: function(widget) {
if(((widget) instanceof flixel_addons_ui_FlxUIDropDownMenu)) {
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var asset = _g1[_g];
++_g;
this.setWidgetSuppression(asset,null,false);
}
}
}
,setSuperIndex: function(flxUI) {
this._superIndexUI = flxUI;
}
,update: function(elapsed) {
if(this.do_safe_input_delay) {
this._safe_input_delay_elapsed += flixel_FlxG.elapsed;
if(this._safe_input_delay_elapsed > this.safe_input_delay_time) {
this.do_safe_input_delay = false;
} else {
return;
}
}
flixel_addons_ui_FlxUIGroup.prototype.update.call(this,elapsed);
}
,toggleShow: function(key) {
var thing = this.getAsset(key,false);
if(thing == null) {
var group = this.getGroup(key,false);
if(group != null) {
group.set_visible(!group.visible);
return group.visible;
}
} else {
thing.set_visible(!thing.visible);
return thing.visible;
}
return false;
}
,showGroup: function(key,Show,Active) {
var group = this.getGroup(key,false);
if(group != null) {
group.set_visible(Show);
if(Active == null) {
group.set_active(Show);
} else {
group.set_active(Active);
}
}
}
,showAsset: function(key,Show,Active) {
var asset = this.getAsset(key,false);
if(asset != null) {
asset.set_visible(Show);
if(Active == null) {
asset.set_active(Show);
} else {
asset.set_active(Active);
}
}
}
,removeAsset: function(key,destroy) {
if(destroy == null) {
destroy = true;
}
var asset = this.getAsset(key,false);
if(asset != null) {
this.replaceInGroup(asset,null,true);
var _this = this._asset_index;
if(Object.prototype.hasOwnProperty.call(_this.h,key)) {
delete(_this.h[key]);
}
}
if(destroy && asset != null) {
asset.destroy();
asset = null;
}
return asset;
}
,addAsset: function(asset,key,group_name,recursive) {
if(recursive == null) {
recursive = false;
}
if(group_name == null) {
group_name = "";
}
if(Object.prototype.hasOwnProperty.call(this._asset_index.h,key)) {
var tmp = key == "screen";
return false;
}
var g = this.getGroup(group_name,recursive);
if(g != null) {
g.add(asset);
} else {
this.add(asset);
}
this._asset_index.h[key] = asset;
return true;
}
,replaceAsset: function(key,replace,center_x,center_y,destroy_old) {
if(destroy_old == null) {
destroy_old = true;
}
if(center_y == null) {
center_y = true;
}
if(center_x == null) {
center_x = true;
}
var original = this.getAsset(key,false);
if(original != null) {
if(!center_x) {
replace.set_x(original.x);
} else {
replace.set_x(original.x + (original.get_width() - replace.get_width()) / 2);
}
if(!center_y) {
replace.set_y(original.y);
} else {
replace.set_y(original.y + (original.get_height() - replace.get_height()) / 2);
}
this.replaceInGroup(original,replace);
var _this = this._asset_index;
if(Object.prototype.hasOwnProperty.call(_this.h,key)) {
delete(_this.h[key]);
}
this._asset_index.h[key] = replace;
if(destroy_old) {
original.destroy();
original = null;
}
}
return original;
}
,destroy: function() {
if(this._group_index != null) {
var key = haxe_ds_StringMap.keysIterator(this._group_index.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = this._group_index;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
this._group_index = null;
}
if(this._asset_index != null) {
var key = haxe_ds_StringMap.keysIterator(this._asset_index.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = this._asset_index;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
this._asset_index = null;
}
if(this._tag_index != null) {
var key = haxe_ds_StringMap.keysIterator(this._tag_index.h);
while(key.hasNext()) {
var key1 = key.next();
flixel_util_FlxArrayUtil.clearArray(this._tag_index.h[key1]);
var _this = this._tag_index;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
this._tag_index = null;
}
if(this._definition_index != null) {
var key = haxe_ds_StringMap.keysIterator(this._definition_index.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = this._definition_index;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
this._definition_index = null;
}
if(this._variable_index != null) {
var key = haxe_ds_StringMap.keysIterator(this._variable_index.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = this._variable_index;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
this._variable_index = null;
}
if(this._mode_index != null) {
var key = haxe_ds_StringMap.keysIterator(this._mode_index.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = this._mode_index;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
this._mode_index = null;
}
this._ptr = null;
this._superIndexUI = null;
this._ptr_tongue = null;
if(this.cursorLists != null) {
var _g = 0;
var _g1 = this.cursorLists;
while(_g < _g1.length) {
var arr = _g1[_g];
++_g;
flixel_util_FlxArrayUtil.clearArray(arr);
}
flixel_util_FlxArrayUtil.clearArray(this.cursorLists);
}
this.cursorLists = null;
flixel_util_FlxArrayUtil.clearArray(this._failure_checks);
this._failure_checks = null;
flixel_util_FlxArrayUtil.clearArray(this._assetsToCleanUp);
this._assetsToCleanUp = null;
flixel_util_FlxArrayUtil.clearArray(this._scaledAssets);
this._scaledAssets = null;
flixel_addons_ui_FlxUIGroup.prototype.destroy.call(this);
}
,load: function(data) {
this._group_index = new haxe_ds_StringMap();
this._asset_index = new haxe_ds_StringMap();
this._tag_index = new haxe_ds_StringMap();
this._definition_index = new haxe_ds_StringMap();
if(this._variable_index == null) {
this._variable_index = new haxe_ds_StringMap();
}
this._mode_index = new haxe_ds_StringMap();
if(data != null) {
if(this._superIndexUI == null) {
var screenRegion = new flixel_addons_ui_FlxUIRegion(0,0,flixel_FlxG.width,flixel_FlxG.height);
screenRegion.name = "screen";
this.addAsset(screenRegion,"screen");
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"screen_override")) {
if(this._loadTest(haxe_xml__$Access_NodeAccess.resolve(data,"screen_override"))) {
var screenNode = haxe_xml__$Access_NodeAccess.resolve(data,"screen_override");
this._loadPosition(screenNode,screenRegion);
screenRegion.set_width(this._loadWidth(screenNode,flixel_FlxG.width));
screenRegion.set_height(this._loadHeight(screenNode,flixel_FlxG.height));
}
}
}
this._data = data;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"inject")) {
while(haxe_xml__$Access_HasNodeAccess.resolve(data,"inject")) {
var inj_data = haxe_xml__$Access_NodeAccess.resolve(data,"inject");
var inj_name = flixel_addons_ui_U.xml_name(inj_data);
var payload = flixel_addons_ui_U.xml(inj_name,"xml",false);
if(payload != null) {
var parent = inj_data.parent;
var i = 0;
var _g = 0;
var _g1 = parent.children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
if(child == inj_data) {
break;
}
++i;
}
if(parent.removeChild(inj_data)) {
var j = 0;
var e = payload.elements();
while(e.hasNext()) {
var e1 = e.next();
parent.insertChild(e1,i + j);
++j;
}
}
}
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"include")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"include");
while(_g < _g1.length) {
var inc_data = _g1[_g];
++_g;
var inc_name = flixel_addons_ui_U.xml_name(inc_data);
var liveFile = null;
var inc_xml = null;
if(liveFile == null) {
inc_xml = flixel_addons_ui_U.xml(inc_name);
} else {
inc_xml = liveFile;
}
if(inc_xml != null) {
var _g2 = 0;
var _g3 = haxe_xml__$Access_NodeListAccess.resolve(inc_xml,"definition");
while(_g2 < _g3.length) {
var def_data = _g3[_g2];
++_g2;
var def_name = "include:" + flixel_addons_ui_U.xml_name(def_data);
this.unparentXML(def_data);
this._definition_index.h[def_name] = def_data;
}
if(haxe_xml__$Access_HasNodeAccess.resolve(inc_xml,"point_size")) {
this._loadPointSize(inc_xml);
}
if(haxe_xml__$Access_HasNodeAccess.resolve(inc_xml,"default")) {
var _g4 = 0;
var _g5 = haxe_xml__$Access_NodeListAccess.resolve(inc_xml,"default");
while(_g4 < _g5.length) {
var defaultNode = _g5[_g4];
++_g4;
if(this._loadTest(defaultNode)) {
var defaultName = flixel_addons_ui_U.xml_name(defaultNode);
this.unparentXML(defaultNode);
this._definition_index.h["default:" + defaultName] = defaultNode;
}
}
}
}
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"point_size")) {
this._loadPointSize(data);
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"definition")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"definition");
while(_g < _g1.length) {
var def_data = _g1[_g];
++_g;
if(this._loadTest(def_data)) {
var def_name = flixel_addons_ui_U.xml_name(def_data);
var error = "";
if(def_name.indexOf("default:") != -1) {
error = "'default:'";
}
if(def_name.indexOf("include:") != -1) {
error = "'include:'";
}
if(error == "") {
this.unparentXML(def_data);
this._definition_index.h[def_name] = def_data;
}
}
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"default")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"default");
while(_g < _g1.length) {
var defaultNode = _g1[_g];
++_g;
if(this._loadTest(defaultNode)) {
var defaultName = flixel_addons_ui_U.xml_name(defaultNode);
this.unparentXML(defaultNode);
this._definition_index.h["default:" + defaultName] = defaultNode;
}
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"variable")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"variable");
while(_g < _g1.length) {
var var_data = _g1[_g];
++_g;
if(this._loadTest(var_data)) {
var var_name = flixel_addons_ui_U.xml_name(var_data);
var var_value = flixel_addons_ui_U.xml_str(var_data,"value");
if(var_name != "") {
this._variable_index.h[var_name] = var_value;
}
}
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"mode")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"mode");
while(_g < _g1.length) {
var mode_data = _g1[_g];
++_g;
if(this._loadTest(mode_data)) {
var mode_data2 = this.applyNodeConditionals(mode_data);
var mode_name = flixel_addons_ui_U.xml_name(mode_data);
this.unparentXML(mode_data2);
this._mode_index.h[mode_name] = mode_data2;
}
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"group")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"group");
while(_g < _g1.length) {
var group_data = _g1[_g];
++_g;
if(this._loadTest(group_data)) {
var name = flixel_addons_ui_U.xml_name(group_data);
var custom = flixel_addons_ui_U.xml_str(group_data,"custom");
var tempGroup = null;
if(custom != "") {
var result = this._ptr.getRequest("ui_get_group:",this,custom);
if(result != null && ((result) instanceof flixel_addons_ui_FlxUIGroup)) {
tempGroup = result;
}
}
if(tempGroup == null) {
tempGroup = new flixel_addons_ui_FlxUIGroup();
}
tempGroup.name = name;
this._group_index.h[name] = tempGroup;
this.add(tempGroup);
}
}
}
if(data.firstElement() != null) {
var node = data.elements();
while(node.hasNext()) {
var node1 = node.next();
this._loadSub(node1);
}
}
this._postLoad(data);
} else {
this._onFinishLoad();
}
}
,unparentXML: function(f) {
return flixel_addons_ui_U.unparentXML(f);
}
,_loadPointSize: function(data) {
var data1 = haxe_xml__$Access_NodeAccess.resolve(data,"point_size");
var default_ = -1.0;
if(default_ == null) {
default_ = 0;
}
var ptx = this._loadWidth(data1,default_,"x");
var data1 = haxe_xml__$Access_NodeAccess.resolve(data,"point_size");
var default_ = -1.0;
if(default_ == null) {
default_ = 0;
}
var pty = this._loadHeight(data1,default_,"y");
if(pty < 1 && ptx < 1) {
pty = this._loadHeight(haxe_xml__$Access_NodeAccess.resolve(data,"point_size"),-1,"value");
ptx = pty;
}
if(pty > 0) {
this._pointX = ptx;
}
if(ptx > 0) {
this._pointY = pty;
}
}
,_loadSub: function(node,iteration) {
if(iteration == null) {
iteration = 0;
}
if(node.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (node.nodeType == null ? "null" : XmlType.toString(node.nodeType)));
}
var type = node.nodeName;
if(node.nodeType != Xml.Document && node.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (node.nodeType == null ? "null" : XmlType.toString(node.nodeType)));
}
var this1 = node;
var obj = this1;
if(type == "load_if") {
if(this._loadTest(obj)) {
if(node.firstElement() != null) {
var subNode = node.elements();
while(subNode.hasNext()) {
var subNode1 = subNode.next();
this._loadSub(subNode1,iteration + 1);
}
}
}
return;
}
var group_name = "";
var tempGroup = null;
var thing_name = flixel_addons_ui_U.xml_name(obj);
if(haxe_xml__$Access_HasAttribAccess.resolve(obj,"group")) {
group_name = haxe_xml__$Access_AttribAccess.resolve(obj,"group");
tempGroup = this.getGroup(group_name);
}
var thing = this._loadThing(type,obj);
if(thing != null) {
this._loadGlobals(obj,thing);
if(thing_name != null && thing_name != "") {
this._asset_index.h[thing_name] = thing;
thing.name = thing_name;
var thing_tags = flixel_addons_ui_U.xml_str(obj,"tags");
if(thing_tags != "") {
var tagArr = thing_tags.split(",");
this._addTags(tagArr,thing_name);
}
}
this._loadTooltip(thing,obj);
if(tempGroup != null) {
tempGroup.add(thing);
} else {
this.add(thing);
}
this._loadPosition(obj,thing);
}
}
,_addTags: function(arr,thingName) {
var _g = 0;
while(_g < arr.length) {
var tag = arr[_g];
++_g;
var list = null;
if(!Object.prototype.hasOwnProperty.call(this._tag_index.h,tag)) {
this._tag_index.h[tag] = [];
}
list = this._tag_index.h[tag];
if(list.indexOf(thingName) == -1) {
list.push(thingName);
}
}
}
,_loadGlobals: function(data,thing) {
if(((thing) instanceof flixel_FlxBasic)) {
var isVis = flixel_addons_ui_U.xml_bool(data,"visible",true);
var isActive = flixel_addons_ui_U.xml_bool(data,"active",true);
var numID = flixel_addons_ui_U.xml_i(data,"num_id");
thing.visible = isVis;
thing.active = isActive;
thing.ID = numID;
if(((thing) instanceof flixel_FlxSprite)) {
var alpha = flixel_addons_ui_U.xml_f(data,"alpha",1.0);
var s = thing;
s.set_alpha(alpha);
}
}
}
,_postLoad: function(data) {
this._postLoaded = true;
if(data.firstElement() != null) {
var node = data.elements();
while(node.hasNext()) {
var node1 = node.next();
if(node1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (node1.nodeType == null ? "null" : XmlType.toString(node1.nodeType)));
}
var tmp = node1.nodeName.toLowerCase();
if(node1.nodeType != Xml.Document && node1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (node1.nodeType == null ? "null" : XmlType.toString(node1.nodeType)));
}
var this1 = node1;
this._postLoadThing(tmp,this1);
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"mode")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"mode");
while(_g < _g1.length) {
var mode_node = _g1[_g];
++_g;
var is_default = flixel_addons_ui_U.xml_bool(mode_node,"is_default");
if(is_default) {
var mode_name = flixel_addons_ui_U.xml_name(mode_node);
this.setMode(mode_name);
break;
}
}
}
if(this._failure_checks != null) {
var _g = 0;
var _g1 = this._failure_checks;
while(_g < _g1.length) {
var data = _g1[_g];
++_g;
if(this._checkFailure(data)) {
this.failed = true;
break;
}
}
flixel_addons_ui_U.clearArraySoft(this._failure_checks);
this._failure_checks = null;
}
this._onFinishLoad();
}
,_sendTo: function(thing,dir) {
var group = this.getAssetGroup(null,thing);
if(group == null) {
if(this.group.members.indexOf(thing) != -1) {
group = this;
} else {
return;
}
}
if(dir != -1 && dir != 1) {
return;
}
HxOverrides.remove(group.group.members,thing);
switch(dir) {
case -1:
group.group.members.splice(0,0,thing);
break;
case 1:
group.group.members.push(thing);
break;
}
}
,sendToFront: function(name,recursive) {
if(recursive == null) {
recursive = true;
}
var thing = this.getAsset(name,recursive);
if(thing != null) {
this._sendTo(thing,1);
}
}
,sendToBack: function(name,recursive) {
if(recursive == null) {
recursive = true;
}
var thing = this.getAsset(name,recursive);
if(thing != null) {
this._sendTo(thing,-1);
}
}
,get_currMode: function() {
return this._curr_mode;
}
,set_currMode: function(m) {
this.setMode(m);
return this._curr_mode;
}
,setMode: function(mode_name,target_name) {
if(target_name == null) {
target_name = "";
}
if(this._curr_mode == mode_name) {
return;
}
var mode = this.getMode(mode_name);
this._curr_mode = mode_name;
var name = "";
var thing;
if(target_name == "") {
if(mode != null) {
var xml;
var node = mode.elements();
while(node.hasNext()) {
var node1 = node.next();
var node2 = this.applyNodeConditionals(node1);
xml = node2;
if(xml.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType)));
}
var nodeName = xml.nodeName;
var activeStatus = flixel_addons_ui_U.xml_str(xml,"active") == "" ? null : true;
if(activeStatus != null) {
activeStatus = flixel_addons_ui_U.xml_bool(xml,"active");
}
if(this._loadTest(node2)) {
switch(nodeName) {
case "align":
this._alignThing(node2);
break;
case "change":
this._changeThing(node2);
break;
case "hide":
this.showThing(flixel_addons_ui_U.xml_name(xml),false,activeStatus);
break;
case "position":
name = flixel_addons_ui_U.xml_name(xml);
thing = this.getAsset(name);
if(thing != null) {
this._loadPosition(node2,thing);
}
break;
case "show":
this.showThing(flixel_addons_ui_U.xml_name(xml),true,activeStatus);
break;
}
}
}
}
} else {
var target = this.getAsset(target_name);
if(target != null && ((target) instanceof flixel_addons_ui_FlxUI)) {
var targetUI = js_Boot.__cast(target , flixel_addons_ui_FlxUI);
targetUI.setMode(mode_name,"");
}
}
}
,showThing: function(name,visibleStatus,activeStatus) {
if(visibleStatus == null) {
visibleStatus = true;
}
if(name.indexOf(",") != -1) {
var names = name.split(",");
var _g = 0;
while(_g < names.length) {
var each_name = names[_g];
++_g;
var thing = this.getAsset(each_name);
if(thing != null) {
thing.set_visible(visibleStatus);
if(activeStatus != null) {
thing.set_active(activeStatus);
}
} else {
var group = this.getGroup(each_name);
if(group != null) {
group.set_visible(visibleStatus);
if(activeStatus != null) {
group.set_active(activeStatus);
}
}
}
}
} else if(name != "*") {
var thing = this.getAsset(name);
if(thing != null) {
thing.set_visible(visibleStatus);
if(activeStatus != null) {
thing.set_active(activeStatus);
}
} else {
var group = this.getGroup(name);
if(group != null) {
group.set_visible(visibleStatus);
if(activeStatus != null) {
group.set_active(activeStatus);
}
}
}
} else {
var asset_name = haxe_ds_StringMap.keysIterator(this._asset_index.h);
while(asset_name.hasNext()) {
var asset_name1 = asset_name.next();
if(asset_name1 != "*") {
this.showThing(asset_name1,visibleStatus,activeStatus);
}
}
}
}
,getGroup: function(key,recursive) {
if(recursive == null) {
recursive = true;
}
var tempGroup = this._group_index.h[key];
if(tempGroup == null && recursive && this._superIndexUI != null) {
return this._superIndexUI.getGroup(key,recursive);
}
return tempGroup;
}
,getFlxText: function(key,recursive) {
if(recursive == null) {
recursive = true;
}
var asset = this.getAsset(key,recursive);
if(asset != null) {
if(((asset) instanceof flixel_text_FlxText)) {
return js_Boot.__cast(asset , flixel_text_FlxText);
}
}
return null;
}
,getAllAssets: function() {
var arr = [];
var key = haxe_ds_StringMap.keysIterator(this._asset_index.h);
while(key.hasNext()) {
var key1 = key.next();
arr.push(this.getAsset(key1));
}
return arr;
}
,getAssetKeys: function() {
var arr = [];
var key = haxe_ds_StringMap.keysIterator(this._asset_index.h);
while(key.hasNext()) {
var key1 = key.next();
arr.push(key1);
}
return arr;
}
,hasAsset: function(key,recursive) {
if(recursive == null) {
recursive = true;
}
if(Object.prototype.hasOwnProperty.call(this._asset_index.h,key)) {
return true;
}
if(recursive && this._superIndexUI != null) {
return this._superIndexUI.hasAsset(key,recursive);
}
return false;
}
,getAsset: function(key,recursive) {
if(recursive == null) {
recursive = true;
}
var asset = this._asset_index.h[key];
if(asset == null && recursive && this._superIndexUI != null) {
return this._superIndexUI.getAsset(key,recursive);
}
return asset;
}
,getAssetsWithTag: function(tag) {
if(Object.prototype.hasOwnProperty.call(this._tag_index.h,tag)) {
var list = this._tag_index.h[tag];
if(list == null || list.length == 0) {
return null;
}
var arr = [];
var _g = 0;
while(_g < list.length) {
var key = list[_g];
++_g;
var widget = this.getAsset(key);
if(widget != null) {
arr.push(widget);
}
}
return arr;
}
return null;
}
,getAssetGroup: function(key,thing) {
if(thing == null && (key == null || key == "")) {
return null;
}
if(thing == null) {
thing = this.getAsset(key);
}
if(thing == null) {
return null;
}
var key = haxe_ds_StringMap.keysIterator(this._group_index.h);
while(key.hasNext()) {
var key1 = key.next();
var g = this._group_index.h[key1];
if(g.group.members.indexOf(thing) != -1) {
return g;
}
}
return null;
}
,getMode: function(key,recursive) {
if(recursive == null) {
recursive = true;
}
var mode = this._mode_index.h[key];
if(mode == null && recursive && this._superIndexUI != null) {
return this._superIndexUI.getMode(key,recursive);
}
return mode;
}
,getLabelStyleFromDefinition: function(key,recursive) {
if(recursive == null) {
recursive = true;
}
var definition = this.getDefinition(key,recursive);
if(definition != null) {
var fontDef = this._loadFontDef(definition);
var align = flixel_addons_ui_U.xml_str(definition,"align");
if(align == "") {
align = null;
}
var color = this._loadColor(definition);
var border = this._loadBorder(definition);
return new flixel_addons_ui_ButtonLabelStyle(fontDef,align,color,border);
}
return null;
}
,getLabelStyleFromData: function(data) {
var fontDef = this._loadFontDef(data);
var align = flixel_addons_ui_U.xml_str(data,"align");
if(align == "") {
align = null;
}
var color = this._loadColor(data);
var border = this._loadBorder(data);
return new flixel_addons_ui_ButtonLabelStyle(fontDef,align,color,border);
}
,checkVariable: function(key,otherValue,type,op,recursive) {
if(recursive == null) {
recursive = true;
}
if(op == null) {
op = "==";
}
var variable = this.getVariable(key,recursive);
if(variable != null) {
return flixel_addons_ui_U.compareStringVars(variable,otherValue,type,op);
} else {
return flixel_addons_ui_U.compareStringVars("",otherValue,type,op);
}
}
,setVariable: function(key,value) {
this._variable_index.h[key] = value;
}
,getVariable: function(key,recursive) {
if(recursive == null) {
recursive = true;
}
var variable = this._variable_index.h[key];
if(variable == null && recursive && this._superIndexUI != null) {
variable = this._superIndexUI.getVariable(key,recursive);
}
return variable;
}
,getDefinition: function(key,recursive) {
if(recursive == null) {
recursive = true;
}
var definition = this._definition_index.h[key];
if(definition == null && recursive && this._superIndexUI != null) {
definition = this._superIndexUI.getDefinition(key,recursive);
}
if(definition == null) {
if(key.indexOf("include:") == -1) {
definition = this.getDefinition("include:" + key,recursive);
}
}
return definition;
}
,screenWidth: function() {
if(this.hasAsset("screen")) {
return this.getAsset("screen").get_width() | 0;
}
return flixel_FlxG.width;
}
,screenHeight: function() {
if(this.hasAsset("height")) {
return this.getAsset("screen").get_height() | 0;
}
return flixel_FlxG.height;
}
,_postLoaded: null
,_pointX: null
,_pointY: null
,_group_index: null
,_asset_index: null
,_tag_index: null
,_definition_index: null
,_variable_index: null
,_mode_index: null
,_curr_mode: null
,_ptr: null
,_superIndexUI: null
,_safe_input_delay_elapsed: null
,_failure_checks: null
,_assetsToCleanUp: null
,_scaledAssets: null
,replaceInGroup: function(original,replace,splice) {
if(splice == null) {
splice = false;
}
if(this._group_index != null) {
var key = haxe_ds_StringMap.keysIterator(this._group_index.h);
while(key.hasNext()) {
var key1 = key.next();
var tempGroup = this._group_index.h[key1];
if(tempGroup.group.members != null) {
var i = 0;
var _g = 0;
var _g1 = tempGroup.group.members;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(member != null) {
if(member == original) {
tempGroup.group.members[i] = replace;
if(replace == null) {
if(splice) {
tempGroup.group.members.splice(i,1);
--i;
}
}
return;
}
++i;
}
}
}
}
}
if(this.group.members != null) {
var i = 0;
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(member != null) {
if(member == original) {
this.group.members[i] = replace;
if(replace == null) {
if(splice) {
this.group.members.splice(i,1);
--i;
}
}
return;
}
}
++i;
}
}
}
,applyNodeConditionals: function(info) {
if(haxe_xml__$Access_HasNodeAccess.resolve(info,"locale") || haxe_xml__$Access_HasNodeAccess.resolve(info,"haxedef")) {
var x = Xml.parse(haxe_xml_Printer.print(info)).firstElement();
if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType)));
}
var this1 = x;
info = this1;
if(haxe_xml__$Access_HasNodeAccess.resolve(info,"locale")) {
info = this.applyNodeChanges(info,"locale");
}
if(haxe_xml__$Access_HasNodeAccess.resolve(info,"haxedef")) {
info = this.applyNodeChanges(info,"haxedef");
}
if(haxe_xml__$Access_HasNodeAccess.resolve(info,"window")) {
info = this.applyNodeChanges(info,"window");
}
}
return info;
}
,applyNodeChanges: function(data,nodeName) {
var nodeValue = "";
if(nodeName == "locale") {
if(this._ptr_tongue == null) {
return data;
}
nodeValue = this._ptr_tongue.locale.toLowerCase();
}
var haxedef = false;
if(nodeName == "haxedef") {
haxedef = true;
}
if(nodeName == "window") {
nodeValue = flixel_FlxG.width + "," + flixel_FlxG.height;
}
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,nodeName);
while(_g < _g1.length) {
var cNode = _g1[_g];
++_g;
var cname = flixel_addons_ui_U.xml_name(cNode);
if(haxedef) {
nodeValue = "";
if(flixel_addons_ui_U.checkHaxedef(cname)) {
nodeValue = cname;
}
}
if(cname == nodeValue) {
if(haxe_xml__$Access_HasNodeAccess.resolve(cNode,"change")) {
var _g2 = 0;
var _g3 = haxe_xml__$Access_NodeListAccess.resolve(cNode,"change");
while(_g2 < _g3.length) {
var change = _g3[_g2];
++_g2;
var att = change.attributes();
while(att.hasNext()) {
var att1 = att.next();
var value = change.get(att1);
data.set(att1,value);
}
}
}
}
}
return data;
}
,loadThing: function(type,data) {
return this._loadThing(type,data);
}
,_loadThingGetInfo: function(data) {
var _this = data;
if(_this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType)));
}
var nodeName = _this.nodeName;
var defaultDef = this.getDefinition("default:" + nodeName);
var info = null;
if(defaultDef != null) {
info = flixel_addons_ui_FlxUI.consolidateData(data,defaultDef,true);
}
if(info == null) {
info = data;
}
var use_def = flixel_addons_ui_U.xml_str(info,"use_def",true);
var definition = null;
if(use_def != "") {
definition = this.getDefinition(use_def);
}
info = flixel_addons_ui_FlxUI.consolidateData(info,definition);
info = this.applyNodeConditionals(info);
if(this._loadTest(info) == false) {
return null;
}
return info;
}
,_loadTooltip: function(thing,data) {
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"tooltip")) {
var tt = this._loadTooltipData(haxe_xml__$Access_NodeAccess.resolve(data,"tooltip"));
var state = flixel_addons_ui_FlxUI.getLeafUIState();
if(((thing) instanceof flixel_addons_ui_FlxUICheckBox)) {
var check = thing;
state.tooltips.add(check.button,tt);
} else {
state.tooltips.add(thing,tt);
}
}
}
,_loadTooltipData: function(tNode) {
var tt = { title : "", body : "", anchor : null, style : { titleFormat : null, bodyFormat : null, titleBorder : null, bodyBorder : null, titleOffset : null, bodyOffset : null, titleWidth : -1, bodyWidth : -1, background : null, borderSize : -1, borderColor : null, arrow : null, autoSizeVertical : null, autoSizeHorizontal : null, leftPadding : -1, rightPadding : -1, topPadding : -1, bottomPadding : -1}};
var defaultDef = this.getDefinition("default:tooltip");
if(defaultDef != null) {
tNode = flixel_addons_ui_FlxUI.consolidateData(tNode,defaultDef,true);
}
if(haxe_xml__$Access_HasAttribAccess.resolve(tNode,"use_def")) {
var defStr = flixel_addons_ui_U.xml_str(tNode,"use_def",true);
var def = this.getDefinition(defStr);
if(def != null) {
tNode = flixel_addons_ui_FlxUI.consolidateData(tNode,def,true);
}
}
if(haxe_xml__$Access_HasAttribAccess.resolve(tNode,"text")) {
this._loadTooltipText(tNode,"text",tt);
}
if(haxe_xml__$Access_HasNodeAccess.resolve(tNode,"title")) {
this._loadTooltipText(haxe_xml__$Access_NodeAccess.resolve(tNode,"title"),"text",tt);
}
if(haxe_xml__$Access_HasNodeAccess.resolve(tNode,"body")) {
this._loadTooltipText(haxe_xml__$Access_NodeAccess.resolve(tNode,"body"),"text",tt);
}
tt.anchor = this._loadAnchor(tNode);
this._loadTooltipStyle(tNode,tt);
return tt;
}
,_loadTooltipStyle: function(node,tt) {
tt.style.background = flixel_addons_ui_U.xml_color(node,"background");
tt.style.borderSize = flixel_addons_ui_U.xml_i(node,"border",-1);
tt.style.borderColor = flixel_addons_ui_U.xml_color(node,"border_color");
var tmp;
if(haxe_xml__$Access_HasAttribAccess.resolve(node,"arrow")) {
var data = node;
var str = "";
if(data.get("arrow") != null) {
str = data.get("arrow");
if(str == "" || str == null) {
str = "";
} else {
str = flixel_addons_ui_U.gfx(str);
try {
if(!openfl_utils_Assets.exists(str,"IMAGE")) {
throw haxe_Exception.thrown("couldn't load bmp \"" + "arrow" + "\"");
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(typeof(haxe_Exception.caught(_g).unwrap()) != "string") {
throw _g;
}
}
}
}
tmp = str;
} else {
tmp = null;
}
tt.style.arrow = tmp;
tt.style.autoSizeHorizontal = flixel_addons_ui_U.xml_bool(node,"auto_size_horizontal",true);
tt.style.autoSizeVertical = flixel_addons_ui_U.xml_bool(node,"auto_size_vertical",true);
var padAll = this._loadHeight(node,-1,"pad_all") | 0;
if(padAll != -1) {
tt.style.leftPadding = tt.style.rightPadding = tt.style.topPadding = tt.style.bottomPadding = padAll;
} else {
var tmp = this._loadWidth(node,0,"pad_left") | 0;
tt.style.leftPadding = tmp;
var tmp = this._loadWidth(node,0,"pad_right") | 0;
tt.style.rightPadding = tmp;
var tmp = this._loadHeight(node,0,"pad_top") | 0;
tt.style.topPadding = tmp;
var tmp = this._loadHeight(node,0,"pad_bottom") | 0;
tt.style.bottomPadding = tmp;
}
}
,_loadTooltipText: function(node,fieldName,tt) {
var nodeName;
if(node.nodeType == Xml.Document) {
nodeName = "Document";
} else {
if(node.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (node.nodeType == null ? "null" : XmlType.toString(node.nodeType)));
}
nodeName = node.nodeName;
}
var text = this._loadString(node,fieldName);
var offset = new flixel_math_FlxPoint(this._loadWidth(node,0,"x"),this._loadHeight(node,0,"y"));
if(haxe_xml__$Access_HasAttribAccess.resolve(node,"use_def")) {
var use_def = flixel_addons_ui_U.xml_str(node,"use_def",true);
var the_def = this.getDefinition(use_def);
if(the_def != null) {
node = flixel_addons_ui_FlxUI.consolidateData(node,the_def);
}
}
var border = this._loadBorder(node);
var format = this._loadFontDef(node);
var color = flixel_addons_ui_U.xml_color(node,"color",true,-16777216);
format.format.color = color;
var W = this._loadWidth(node,-1,"width") | 0;
switch(nodeName) {
case "body":
if(text != "") {
tt.body = text;
}
tt.style.bodyOffset = offset;
tt.style.bodyFormat = format;
tt.style.bodyWidth = W;
tt.style.bodyBorder = border;
break;
case "title":case "tooltip":
if(text != "") {
tt.title = text;
}
tt.style.titleOffset = offset;
tt.style.titleFormat = format;
tt.style.titleWidth = W;
tt.style.titleBorder = border;
break;
default:
}
}
,_loadAnchor: function(data) {
var xOff = this._loadWidth(data,0,"x");
var yOff = this._loadHeight(data,0,"y");
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"anchor")) {
var xSide = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"x",true,"right");
var ySide = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"y",true,"top");
var xFlush = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"x-flush",true,"left");
var yFlush = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"y-flush",true,"top");
return new flixel_addons_ui_Anchor(xOff,yOff,xSide,ySide,xFlush,yFlush);
}
return null;
}
,_loadThing: function(type,data) {
var info = this._loadThingGetInfo(data);
if(info == null) {
return null;
}
switch(type) {
case "align":
this._alignThing(info,true);
return null;
case "bar":
return this._loadBar(info);
case "box":
return this._loadBox(info);
case "button":
return this._loadButton(info);
case "button_toggle":
return this._loadButton(info,true,true);
case "change":
this._changeThing(info);
return null;
case "checkbox":
return this._loadCheckBox(info);
case "failure":
if(this._failure_checks == null) {
this._failure_checks = [];
}
this.unparentXML(info);
this._failure_checks.push(info);
return null;
case "input_text":
return this._loadInputText(info);
case "line":
return this._loadLine(info);
case "default":case "group":case "include":case "inject":case "load_if":case "mode":
return null;
case "chrome":case "nine_slice":case "nine_slice_sprite":case "nineslice":case "nineslicesprite":
return this._load9SliceSprite(info);
case "num_stepper":case "numeric_stepper":case "numstepper":
return this._loadNumericStepper(info);
case "position":
this.name = flixel_addons_ui_U.xml_name(info);
var thing = this.getAsset(this.name);
if(thing != null) {
this._loadPosition(info,thing);
}
return null;
case "dropdown":case "dropdown_menu":case "pulldown":case "pulldown_menu":
return this._loadDropDownMenu(info);
case "radio_group":
return this._loadRadioGroup(info);
case "region":
return this._loadRegion(info);
case "sprite":
return this._loadSprite(info);
case "tab_menu":
return this._loadTabMenu(info);
case "text":
return this._loadText(info);
case "tile_test":
return this._loadTileTest(info);
case "layout":case "ui":
return this._loadLayout(info);
default:
var result = this._ptr.getRequest("ui_get:" + type,this,info,[data]);
return result;
}
}
,_loadX: function(data,default_) {
if(default_ == null) {
default_ = 0;
}
return this._loadWidth(data,default_,"x");
}
,_loadY: function(data,default_) {
if(default_ == null) {
default_ = 0;
}
return this._loadHeight(data,default_,"y");
}
,_loadScale: function(data,default_,str) {
if(str == null) {
str = "scale";
}
if(default_ == null) {
default_ = 1.0;
}
return this._loadHeight(data,default_,str,"none");
}
,_loadScaleX: function(data,default_) {
if(default_ == null) {
default_ = 1.0;
}
return this._loadWidth(data,default_,"scale_x","none");
}
,_loadScaleY: function(data,default_) {
if(default_ == null) {
default_ = 1.0;
}
return this._loadHeight(data,default_,"scale_y","none");
}
,_loadWidth: function(data,default_,str,defaultRound) {
if(defaultRound == null) {
defaultRound = "";
}
if(str == null) {
str = "width";
}
if(default_ == null) {
default_ = 10;
}
var ws = flixel_addons_ui_U.xml_str(data,str,true,default_ == null ? "null" : "" + default_);
var round = this.getRound(data,defaultRound);
return this.doRound(this._getDataSize("w",ws,default_),round);
}
,_loadHeight: function(data,default_,str,defaultRound) {
if(defaultRound == null) {
defaultRound = "";
}
if(str == null) {
str = "height";
}
if(default_ == null) {
default_ = 10;
}
var hs = flixel_addons_ui_U.xml_str(data,str,true,default_ == null ? "null" : "" + default_);
var round = this.getRound(data,defaultRound);
return this.doRound(this._getDataSize("h",hs,default_),round);
}
,_loadCompass: function(data,str) {
if(str == null) {
str = "resize_point";
}
var cs = flixel_addons_ui_U.xml_str(data,str,true,"nw");
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var fp = point;
switch(cs) {
case "c":case "center":case "m":case "mid":
fp.set_x(0.5);
fp.set_y(0.5);
break;
case "ll":case "sw":
fp.set_x(0);
fp.set_y(1);
break;
case "n":case "u":
fp.set_x(0.5);
fp.set_y(0);
break;
case "nw":case "ul":
fp.set_x(0);
fp.set_y(0);
break;
case "e":case "r":
fp.set_x(1);
fp.set_y(0.5);
break;
case "s":
fp.set_x(0.5);
fp.set_y(1);
break;
case "lr":case "se":
fp.set_x(1);
fp.set_y(1);
break;
case "ne":case "ur":
fp.set_x(1);
fp.set_y(0);
break;
case "w":
fp.set_x(0.5);
fp.set_y(0);
break;
}
return fp;
}
,_changeParamsThing: function(data) {
var name = flixel_addons_ui_U.xml_name(data);
var thing = this.getAsset(name);
if(thing == null) {
return;
}
if(!js_Boot.__implements(thing,flixel_addons_ui_interfaces_IHasParams)) {
return;
}
var ihp = thing;
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
ihp.set_params(params);
}
,_changeThing: function(data) {
var name = flixel_addons_ui_U.xml_name(data);
var thing = this.getAsset(name);
if(thing == null) {
return;
}
var new_width = -1;
var new_height = -1;
var context = "";
var code = "";
var attribute = data.attributes();
while(attribute.hasNext()) {
var attribute1 = attribute.next();
switch(attribute1) {
case "height":
new_height = this._loadHeight(data);
break;
case "label":
var label = flixel_addons_ui_U.xml_str(data,"label");
context = flixel_addons_ui_U.xml_str(data,"context",true,"ui");
code = flixel_addons_ui_U.xml_str(data,"code",true,"");
label = this.getText(label,context,true,code);
if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_ILabeled)) {
var b = thing;
b.getLabel().set_text(label);
}
break;
case "text":
if(((thing) instanceof flixel_addons_ui_FlxUIText)) {
var text = flixel_addons_ui_U.xml_str(data,"text");
context = flixel_addons_ui_U.xml_str(data,"context",true,"ui");
var t = thing;
code = flixel_addons_ui_U.xml_str(data,"code",true,"");
t.set_text(this.getText(text,context,true,code));
}
break;
case "width":
new_width = this._loadWidth(data);
break;
}
}
if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IResizable)) {
var ir = thing;
if(new_width != -1 || new_height != -1) {
if(new_width == -1) {
new_width = ir.get_width();
}
if(new_height == -1) {
new_height = ir.get_height();
}
ir.resize(new_width,new_height);
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IHasParams)) {
var ihp = thing;
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
ihp.set_params(params);
}
}
}
,_alignThing: function(data,suppressError) {
if(suppressError == null) {
suppressError = false;
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"objects")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"objects");
while(_g < _g1.length) {
var objectNode = _g1[_g];
++_g;
var objects = flixel_addons_ui_U.xml_str(objectNode,"value",true,"").split(",");
var axis = flixel_addons_ui_U.xml_str(data,"axis",true);
if(axis != "horizontal" && axis != "vertical") {
throw haxe_Exception.thrown(new openfl_errors_Error("FlxUI._alignThing(): axis must be \"horizontal\" or \"vertical\"!"));
}
var spacing = -1;
if(axis == "horizontal") {
spacing = this._getDataSize("w",flixel_addons_ui_U.xml_str(data,"spacing",true),-1);
} else {
spacing = this._getDataSize("h",flixel_addons_ui_U.xml_str(data,"spacing",true),-1);
}
var resize = flixel_addons_ui_U.xml_bool(data,"resize");
var grow = flixel_addons_ui_U.xml_bool(data,"grow",true);
var shrink = flixel_addons_ui_U.xml_bool(data,"shrink",true);
var X = -1;
var Y = -1;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var bounds = point;
var boundsError = "";
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"bounds")) {
if(axis == "horizontal") {
bounds.set_x(this._getDataSize("w",flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"bounds"),"left"),-1));
bounds.set_y(this._getDataSize("w",flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"bounds"),"right"),-1));
} else if(axis == "vertical") {
bounds.set_x(this._getDataSize("h",flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"bounds"),"top"),-1));
bounds.set_y(this._getDataSize("h",flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"bounds"),"bottom"),-1));
}
}
if(bounds.x != -1 && bounds.y != -1) {
if(bounds.y <= bounds.x) {
boundsError = "bounds max must be > bounds min! (max=" + bounds.y + " min=" + bounds.x + ")";
}
} else {
boundsError = "missing bound!";
}
if(boundsError == "") {
this._doAlign(objects,axis,spacing,resize,bounds,grow,shrink);
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"anchor") || haxe_xml__$Access_HasAttribAccess.resolve(data,"x") || haxe_xml__$Access_HasAttribAccess.resolve(data,"y")) {
var _g2 = 0;
while(_g2 < objects.length) {
var object = objects[_g2];
++_g2;
var thing = this.getAsset(object);
this._loadPosition(data,thing);
}
} else {
var tmp = boundsError != "";
}
}
} else {
throw haxe_Exception.thrown(new openfl_errors_Error("FlxUI._alignThing(): <objects> node not found!"));
}
}
,_doAlign: function(objects,axis,spacing,resize,bounds,allowGrow,allowShrink) {
if(allowShrink == null) {
allowShrink = true;
}
if(allowGrow == null) {
allowGrow = true;
}
var total_spacing = 0;
var total_size = 0;
var bound_range = bounds.y - bounds.x;
var spaces = objects.length - 1;
var space_size = 0;
var object_size = 0;
var size_prop = "width";
var pos_prop = "x";
if(axis == "vertical") {
size_prop = "height";
pos_prop = "y";
}
var _g = 0;
while(_g < objects.length) {
var nameStr = objects[_g];
++_g;
var widget = this.getAsset(nameStr);
if(widget != null) {
var theval = 0;
switch(size_prop) {
case "height":
theval = widget.get_height();
break;
case "width":
theval = widget.get_width();
break;
}
total_size += theval;
}
}
if(resize == false) {
total_spacing = bound_range - total_size;
space_size = total_spacing / spaces;
} else {
space_size = spacing;
total_spacing = spacing * spaces;
object_size = (bound_range - total_spacing) / objects.length;
}
object_size = object_size | 0;
space_size = space_size | 0;
var last_pos = bounds.x;
var _g = 0;
while(_g < objects.length) {
var nameStr = objects[_g];
++_g;
var widget = this.getAsset(nameStr);
if(widget != null) {
var pos = last_pos;
if(!resize) {
switch(size_prop) {
case "height":
object_size = widget.get_height();
break;
case "width":
object_size = widget.get_width();
break;
}
} else if(js_Boot.__implements(widget,flixel_addons_ui_interfaces_IResizable)) {
var allow = true;
var widgetr = widget;
if(axis == "vertical") {
if(object_size > widgetr.get_width()) {
allow = allowGrow;
} else if(object_size < widgetr.get_width()) {
allow = allowShrink;
}
if(allow) {
widgetr.resize(widgetr.get_width(),object_size);
}
} else if(axis == "horizontal") {
if(object_size > widgetr.get_height()) {
allow = allowGrow;
} else if(object_size < widgetr.get_height()) {
allow = allowShrink;
}
if(allow) {
widgetr.resize(object_size,widgetr.get_height());
}
}
}
last_pos = pos + object_size + space_size;
switch(pos_prop) {
case "x":
widget.set_x(pos);
break;
case "y":
widget.set_y(pos);
break;
}
}
}
}
,_checkFailure: function(data) {
var target = flixel_addons_ui_U.xml_str(data,"target",true);
var property = flixel_addons_ui_U.xml_str(data,"property",true);
var compare = flixel_addons_ui_U.xml_str(data,"compare",true);
var value = flixel_addons_ui_U.xml_str(data,"value",true);
var thing = this.getAsset(target);
if(thing == null) {
return false;
}
var prop_f = 0;
var val_f = 0;
var p = flixel_addons_ui_U.perc_to_float(value);
switch(property) {
case "h":case "height":
prop_f = thing.get_height();
break;
case "w":case "width":
prop_f = thing.get_width();
break;
}
if(isNaN(p)) {
if(flixel_addons_ui_U.isStrNum(value)) {
val_f = parseFloat(value);
} else {
return false;
}
} else {
switch(property) {
case "h":case "height":
val_f = p * this.screenHeight();
break;
case "w":case "width":
val_f = p * this.screenWidth();
break;
}
}
var return_val = false;
switch(compare) {
case "<":
if(prop_f < val_f) {
this.failed_by = val_f - prop_f;
return_val = true;
}
break;
case "<=":
if(prop_f <= val_f) {
this.failed_by = val_f - prop_f;
return_val = true;
}
break;
case "=":case "==":
if(prop_f == val_f) {
this.failed_by = Math.abs(prop_f - val_f);
return_val = true;
}
break;
case ">":
if(prop_f > val_f) {
this.failed_by = prop_f - val_f;
return_val = true;
}
break;
case ">=":
if(prop_f >= val_f) {
this.failed_by = prop_f - val_f;
return_val = true;
}
break;
}
return return_val;
}
,_resizeThing: function(fo_r,bounds) {
var do_resize = false;
var ww = fo_r.get_width();
var hh = fo_r.get_height();
if(ww < bounds.min_width) {
do_resize = true;
ww = bounds.min_width;
} else if(ww > bounds.max_width) {
do_resize = true;
ww = bounds.max_width;
}
if(hh < bounds.min_height) {
do_resize = true;
hh = bounds.min_height;
} else if(hh > bounds.max_height) {
do_resize = true;
hh = bounds.max_height;
}
if(do_resize) {
fo_r.resize(ww,hh);
}
}
,_postLoadThing: function(type,data) {
if(type == "load_if") {
if(this._loadTest(data)) {
if(data.firstElement() != null) {
var subNode = data.elements();
while(subNode.hasNext()) {
var subNode1 = subNode.next();
if(subNode1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (subNode1.nodeType == null ? "null" : XmlType.toString(subNode1.nodeType)));
}
var nodeType = subNode1.nodeName.toLowerCase();
if(subNode1.nodeType != Xml.Document && subNode1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (subNode1.nodeType == null ? "null" : XmlType.toString(subNode1.nodeType)));
}
var this1 = subNode1;
this._postLoadThing(nodeType,this1);
}
}
}
return;
}
if(this._loadTest(data) == false) {
return;
}
var name = flixel_addons_ui_U.xml_name(data);
var thing = this.getAsset(name);
var isGroup = type == "group";
if(isGroup) {
thing = this.getGroup(name);
}
if(type == "align") {
this._alignThing(data);
}
if(type == "change") {
this._changeThing(data);
}
if(type == "position") {
this._loadPosition(data,thing);
return;
}
if(type == "cursor") {
this._loadCursor(data);
}
if(thing == null && !isGroup) {
return;
}
if(!isGroup) {
var use_def = flixel_addons_ui_U.xml_str(data,"use_def",true);
var definition = null;
if(use_def != "") {
definition = this.getDefinition(use_def);
}
if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IResizable)) {
var ww = this._getDataSize("w",flixel_addons_ui_U.xml_str(data,"width"));
var hh = this._getDataSize("h",flixel_addons_ui_U.xml_str(data,"height"));
if(ww == 0 || ww == thing.get_width()) {
ww = null;
}
if(hh == 0 || hh == thing.get_height()) {
hh = null;
}
var bounds = this.calcMaxMinSize(data);
if(bounds != null) {
if(ww != null) {
if(ww < bounds.min_width) {
ww = bounds.min_width;
}
if(ww > bounds.max_width) {
ww = bounds.max_width;
}
bounds.min_width = bounds.max_width = ww;
}
if(hh != null) {
if(hh < bounds.min_height) {
hh = bounds.min_height;
}
if(hh > bounds.max_height) {
hh = bounds.max_height;
}
bounds.min_height = bounds.max_height = hh;
}
this._resizeThing(js_Boot.__cast(thing , flixel_addons_ui_interfaces_IResizable),bounds);
}
}
var X = -thing.x;
var Y = -thing.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = thing;
_g.set_x(_g.x + X);
var _g = thing;
_g.set_y(_g.y + Y);
this._loadPosition(data,thing);
}
var send_to = flixel_addons_ui_U.xml_str(data,"send_to",true,"");
if(send_to != "") {
switch(send_to) {
case "back":case "bottom":
this._sendTo(thing,-1);
break;
case "front":case "top":
this._sendTo(thing,1);
break;
}
}
if(!isGroup && ((thing) instanceof flixel_addons_ui_FlxUI)) {
var fui_thing = thing;
if(fui_thing._postLoaded == false) {
fui_thing.getEvent("post_load",this,null);
}
}
}
,_loadTileTest: function(data) {
var tiles_w = flixel_addons_ui_U.xml_i(data,"tiles_w",2);
var tiles_h = flixel_addons_ui_U.xml_i(data,"tiles_h",2);
var w = this._loadWidth(data);
var h = this._loadHeight(data);
var bounds = this.calcMaxMinSize(data);
if(w < bounds.min_width) {
w = bounds.min_width;
}
if(h < bounds.min_height) {
h = bounds.min_height;
}
var tileWidth = w / tiles_w | 0;
var tileHeight = h / tiles_h | 0;
if(tileWidth < tileHeight) {
tileHeight = tileWidth;
} else if(tileHeight < tileWidth) {
tileWidth = tileHeight;
}
var totalw = tileWidth * tiles_w;
var totalh = tileHeight * tiles_h;
if(totalw > bounds.max_width) {
tileWidth = bounds.max_width / tiles_w | 0;
}
if(totalh > bounds.max_height) {
tileHeight = bounds.max_height / tiles_h | 0;
}
if(tileWidth < tileHeight) {
tileHeight = tileWidth;
} else if(tileHeight < tileWidth) {
tileWidth = tileHeight;
}
if(tileWidth < 2) {
tileWidth = 2;
}
if(tileHeight < 2) {
tileHeight = 2;
}
var color1 = flixel_util_FlxColor.fromString(flixel_addons_ui_U.xml_str(data,"color1",true,"0x808080"));
var color2 = flixel_util_FlxColor.fromString(flixel_addons_ui_U.xml_str(data,"color2",true,"0xc4c4c4"));
var baseTileSize = flixel_addons_ui_U.xml_i(data,"base_tile_size",-1);
var floorToEven = flixel_addons_ui_U.xml_bool(data,"floor_to_even",false);
var ftt = new flixel_addons_ui_FlxUITileTest(0,0,tileWidth,tileHeight,tiles_w,tiles_h,color1,color2,floorToEven);
ftt.baseTileSize = baseTileSize;
return ftt;
}
,_loadString: function(data,attributeName) {
var string = flixel_addons_ui_U.xml_str(data,attributeName);
var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui");
var code = flixel_addons_ui_U.xml_str(data,"code",true,"");
string = this.getText(string,context,true,code);
return string;
}
,_loadText: function(data) {
var text = flixel_addons_ui_U.xml_str(data,"text");
var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui");
var code = flixel_addons_ui_U.xml_str(data,"code",true,"");
text = this.getText(text,context,true,code);
var W = this._loadWidth(data,100) | 0;
var H = this._loadHeight(data,-1) | 0;
var the_font = this._loadFontFace(data);
var input = flixel_addons_ui_U.xml_bool(data,"input");
if(input) {
throw haxe_Exception.thrown(new openfl_errors_Error("FlxUI._loadText(): <text> with input has been deprecated. Use <input_text> instead."));
}
var align = flixel_addons_ui_U.xml_str(data,"align");
if(align == "") {
align = null;
}
var size = this._loadHeight(data,8,"size","floor") | 0;
var color = this._loadColor(data);
var border = this._loadBorder(data);
var ftu = new flixel_addons_ui_FlxUIText(0,0,W,text,size);
ftu.setFormat(the_font,size,color,align);
border.apply(ftu);
ftu.drawFrame();
var ft = ftu;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
var params1 = params;
var ihp = ft;
ihp.set_params(params1);
}
if(H > 0 && ft.get_height() != H) {
if(js_Boot.__implements(ft,flixel_addons_ui_interfaces_IResizable)) {
var r = ft;
r.resize(r.get_width(),H);
}
}
ftu.set_text(" ");
ftu.set_text(text);
return ft;
}
,_loadInputText: function(data) {
var text = flixel_addons_ui_U.xml_str(data,"text");
var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui");
var code = flixel_addons_ui_U.xml_str(data,"code",true,"");
text = this.getText(text,context,true,code);
var W = this._loadWidth(data,100) | 0;
var H = this._loadHeight(data,-1) | 0;
var the_font = this._loadFontFace(data);
var align = flixel_addons_ui_U.xml_str(data,"align");
if(align == "") {
align = null;
}
var size = this._loadHeight(data,8,"size") | 0;
var color = this._loadColor(data);
var border = this._loadBorder(data);
var str = flixel_addons_ui_U.xml_str(data,"background",true,"0x00000000");
var safe = true;
var default_color = 0;
if(default_color == null) {
default_color = 0;
}
if(safe == null) {
safe = false;
}
var return_val = flixel_util_FlxColor.fromString(str);
if(return_val == null) {
if(!safe) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + str);
} else {
return_val = default_color;
}
}
var backgroundColor = return_val;
var passwordMode = flixel_addons_ui_U.xml_bool(data,"password_mode");
var fti = new flixel_addons_ui_FlxUIInputText(0,0,W,text,size,color,backgroundColor);
fti.set_passwordMode(passwordMode);
var force_case = flixel_addons_ui_U.xml_str(data,"force_case",true,"");
var forceCase;
switch(force_case) {
case "lower":case "lower_case":case "lowercase":
forceCase = 2;
break;
case "l":case "u":
throw haxe_Exception.thrown(new openfl_errors_Error("FlxUI._loadInputText(): 1 letter values have been deprecated (force_case attribute)."));
case "upper":case "upper_case":case "uppercase":
forceCase = 1;
break;
default:
forceCase = 0;
}
var filter = flixel_addons_ui_U.xml_str(data,"filter",true,"");
var filterMode;
while(filter.indexOf("_") != -1) filter = StringTools.replace(filter,"_","");
switch(filter) {
case "a":case "an":case "n":
throw haxe_Exception.thrown(new openfl_errors_Error("FlxUI._loadInputText(): 1 letter values have been deprecated (filter attribute)."));
case "alpha":case "onlyalpha":
filterMode = 1;
break;
case "alphanum":case "alphanumeric":case "onlyalphanumeric":
filterMode = 3;
break;
case "num":case "numeric":case "onlynumeric":
filterMode = 2;
break;
default:
filterMode = 0;
}
fti.setFormat(the_font,size,color,align);
fti.set_forceCase(forceCase);
fti.set_filterMode(filterMode);
border.apply(fti);
fti.drawFrame();
var ft = fti;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
var params1 = params;
var ihp = ft;
ihp.set_params(params1);
}
if(H > 0 && ft.get_height() != H) {
if(js_Boot.__implements(ft,flixel_addons_ui_interfaces_IResizable)) {
var r = ft;
r.resize(r.get_width(),H);
}
}
return ft;
}
,_loadRadioGroup: function(data) {
var frg = null;
var dot_src = flixel_addons_ui_U.xml_str(data,"dot_src",true);
var radio_src = flixel_addons_ui_U.xml_str(data,"radio_src",true);
var labels = [];
var names = [];
var W = this._loadWidth(data,11,"radio_width");
var H = this._loadHeight(data,11,"radio_height");
var scrollH = this._loadHeight(data,0,"height");
var scrollW = this._loadHeight(data,0,"width");
var labelW = this._loadWidth(data,100,"label_width");
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"radio");
while(_g < _g1.length) {
var radioNode = _g1[_g];
++_g;
var name = flixel_addons_ui_U.xml_name(radioNode);
var label = flixel_addons_ui_U.xml_str(radioNode,"label");
var context = flixel_addons_ui_U.xml_str(radioNode,"context",true,"ui");
var code = flixel_addons_ui_U.xml_str(radioNode,"code",true,"");
label = this.getText(label,context,true,code);
names.push(name);
labels.push(label);
}
names.reverse();
labels.reverse();
var y_space = this._loadHeight(data,25,"y_space");
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
var params1 = params;
var radio_asset = null;
if(radio_src != "") {
radio_asset = flixel_addons_ui_U.gfx(radio_src);
} else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"box")) {
if(flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"box"),"slice9") != "") {
radio_asset = this._load9SliceSprite(haxe_xml__$Access_NodeAccess.resolve(data,"box"));
} else {
radio_asset = this._loadSprite(haxe_xml__$Access_NodeAccess.resolve(data,"box"));
}
}
var dot_asset = null;
if(dot_src != "") {
dot_asset = flixel_addons_ui_U.gfx(dot_src);
} else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"dot")) {
if(flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"dot"),"slice9") != "") {
dot_asset = this._load9SliceSprite(haxe_xml__$Access_NodeAccess.resolve(data,"dot"));
} else {
dot_asset = this._loadSprite(haxe_xml__$Access_NodeAccess.resolve(data,"dot"));
}
}
var prevOffset = null;
var nextOffset = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"button")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"button");
while(_g < _g1.length) {
var btnNode = _g1[_g];
++_g;
var name = flixel_addons_ui_U.xml_name(btnNode);
if(name == "previous" || name == "prev") {
var X = flixel_addons_ui_U.xml_f(btnNode,"x");
var Y = flixel_addons_ui_U.xml_f(btnNode,"y");
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
prevOffset = point;
} else if(name == "next") {
var X1 = flixel_addons_ui_U.xml_f(btnNode,"x");
var Y1 = flixel_addons_ui_U.xml_f(btnNode,"y");
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point1 = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point1._inPool = false;
nextOffset = point1;
}
}
}
frg = new flixel_addons_ui_FlxUIRadioGroup(0,0,names,labels,null,y_space,W,H,labelW,null,prevOffset,nextOffset);
frg.set_params(params1);
if(radio_asset != "" && radio_asset != null) {
frg.loadGraphics(radio_asset,dot_asset);
}
var text_x = this._loadWidth(data,0,"text_x") | 0;
var text_y = this._loadHeight(data,0,"text_y") | 0;
var radios = frg.getRadios();
var i = 0;
var styleSet = false;
var radioList = data.elementsNamed("radio");
var radioNode = null;
var _g = 0;
var _g1 = radios.length;
while(_g < _g1) {
var k = _g++;
var fo = radios[radios.length - 1 - k];
radioNode = radioList.hasNext() ? radioList.next() : null;
if(fo != null) {
if(((fo) instanceof flixel_addons_ui_FlxUICheckBox)) {
var fc = js_Boot.__cast(fo , flixel_addons_ui_FlxUICheckBox);
var t = this.formatButtonText(data,fc);
if(t != null && styleSet == false) {
var fd = flixel_addons_ui_FontDef.copyFromFlxText(t);
var bd = new flixel_addons_ui_BorderDef(t.borderStyle,t.borderColor,t.borderSize,t.borderQuality);
frg.set_activeStyle(new flixel_addons_ui_CheckStyle(16777215,fd,flixel_text_FlxTextAlign.fromOpenFL(t._defaultFormat.align),t.color,bd));
styleSet = true;
}
fc.set_textX(text_x);
fc.set_textY(text_y);
++i;
if(radioNode != null) {
if(radioNode.nodeType != Xml.Document && radioNode.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (radioNode.nodeType == null ? "null" : XmlType.toString(radioNode.nodeType)));
}
var this1 = radioNode;
this._loadTooltip(fc,this1);
}
}
}
}
if(scrollW != 0) {
frg.fixedSize = true;
frg.set_width(scrollW);
}
if(scrollH != 0) {
frg.fixedSize = true;
frg.set_height(scrollH);
}
return frg;
}
,_loadCheckBox: function(data) {
var fc = null;
var label = flixel_addons_ui_U.xml_str(data,"label");
var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui");
var code = flixel_addons_ui_U.xml_str(data,"code",true,"");
var checked = flixel_addons_ui_U.xml_bool(data,"checked",false);
label = this.getText(label,context,true,code);
var labelW = this._loadWidth(data,100,"label_width");
var check_src = flixel_addons_ui_U.xml_str(data,"check_src",true);
var box_src = flixel_addons_ui_U.xml_str(data,"box_src",true);
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
var params1 = params;
var box_asset = null;
var check_asset = null;
if(box_src != "") {
box_asset = flixel_addons_ui_U.gfx(box_src);
} else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"box")) {
if(flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"box"),"slice9") != "") {
box_asset = this._load9SliceSprite(haxe_xml__$Access_NodeAccess.resolve(data,"box"));
} else {
box_asset = this._loadSprite(haxe_xml__$Access_NodeAccess.resolve(data,"box"));
}
}
if(check_src != "") {
check_asset = flixel_addons_ui_U.gfx(check_src);
} else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"check")) {
if(flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"check"),"slice9") != "") {
check_asset = this._load9SliceSprite(haxe_xml__$Access_NodeAccess.resolve(data,"check"));
} else {
check_asset = this._loadSprite(haxe_xml__$Access_NodeAccess.resolve(data,"check"));
}
}
fc = new flixel_addons_ui_FlxUICheckBox(0,0,box_asset,check_asset,label,labelW,params1);
this.formatButtonText(data,fc);
var text_x = this._loadWidth(data,0,"text_x") | 0;
var text_y = this._loadHeight(data,0,"text_y") | 0;
fc.set_textX(text_x);
fc.set_textY(text_y);
fc.set_text(label);
fc.set_checked(checked);
return fc;
}
,_loadDropDownMenu: function(data) {
var fud = null;
var label = flixel_addons_ui_U.xml_str(data,"label");
var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui");
var code = flixel_addons_ui_U.xml_str(data,"code",true,"");
label = this.getText(label,context,true,code);
var back_def = flixel_addons_ui_U.xml_str(data,"back_def",true);
var panel_def = flixel_addons_ui_U.xml_str(data,"panel_def",true);
var button_def = flixel_addons_ui_U.xml_str(data,"button_def",true);
var label_def = flixel_addons_ui_U.xml_str(data,"label_def",true);
var back_asset = null;
var panel_asset = null;
var button_asset = null;
var label_asset = null;
if(back_def != "") {
back_asset = this._loadSprite(this.getDefinition(back_def));
}
if(panel_def != "") {
panel_asset = this._load9SliceSprite(this.getDefinition(panel_def));
}
if(button_def != "") {
try {
button_asset = this._loadButton(this.getDefinition(button_def),false,false);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(((haxe_Exception.caught(_g).unwrap()) instanceof openfl_errors_Error)) {
button_asset = null;
} else {
throw _g;
}
}
}
if(label_def != "") {
try {
label_asset = this._loadText(this.getDefinition(label_def));
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(((haxe_Exception.caught(_g).unwrap()) instanceof openfl_errors_Error)) {
label_asset = null;
} else {
throw _g;
}
}
if(label_asset != null && label != "") {
label_asset.set_text(label);
}
}
var asset_list = null;
var data_list = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"data")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"data");
while(_g < _g1.length) {
var dataNode = _g1[_g];
++_g;
if(data_list == null) {
data_list = [];
}
var namel = new flixel_addons_ui_StrNameLabel(flixel_addons_ui_U.xml_str(dataNode,"name",true),flixel_addons_ui_U.xml_str(dataNode,"label"));
data_list.push(namel);
}
} else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"asset")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"asset");
while(_g < _g1.length) {
var assetNode = _g1[_g];
++_g;
if(asset_list == null) {
asset_list = [];
}
var def_name = flixel_addons_ui_U.xml_str(assetNode,"def",true);
var name = flixel_addons_ui_U.xml_name(assetNode);
var asset = null;
try {
asset = this._loadButton(this.getDefinition(def_name),false);
} catch( _g2 ) {
haxe_NativeStackTrace.lastError = _g2;
if(!((haxe_Exception.caught(_g2).unwrap()) instanceof openfl_errors_Error)) {
throw _g2;
}
}
if(asset != null) {
asset.name = name;
if(asset_list == null) {
asset_list = [];
}
asset_list.push(asset);
}
}
}
var header = new flixel_addons_ui_FlxUIDropDownHeader(120,back_asset,label_asset,button_asset);
fud = new flixel_addons_ui_FlxUIDropDownMenu(0,0,data_list,null,header,panel_asset,asset_list);
return fud;
}
,_loadTest: function(data) {
var result = true;
var tmp;
if(data.nodeType == Xml.Document) {
tmp = "Document";
} else {
if(data.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType)));
}
tmp = data.nodeName;
}
if(tmp == "load_if") {
result = this._loadTestSub(data);
if(result == false) {
return false;
}
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"load_if")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"load_if");
while(_g < _g1.length) {
var node = _g1[_g];
++_g;
var _this = node;
if(_this.nodeType != Xml.Document && _this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType)));
}
if(_this.children[0] == null) {
result = this._loadTestSub(node);
if(result == false) {
return false;
}
}
}
}
return result;
}
,_loadTestSub: function(node) {
var matchValue = flixel_addons_ui_U.xml_bool(node,"is",true);
var match = matchValue;
var aspect_ratio = flixel_addons_ui_U.xml_f(node,"aspect_ratio",-1);
if(aspect_ratio != -1) {
match = true;
var screen_ratio = js_Boot.__cast(flixel_FlxG.width , Float) / js_Boot.__cast(flixel_FlxG.height , Float);
var diff = Math.abs(screen_ratio - aspect_ratio);
if(haxe_xml__$Access_HasAttribAccess.resolve(node,"tolerance")) {
var tolerance = flixel_addons_ui_U.xml_f(node,"tolerance",0.1);
if(diff > tolerance) {
match = false;
}
} else if(haxe_xml__$Access_HasAttribAccess.resolve(node,"tolerance_plus") || haxe_xml__$Access_HasAttribAccess.resolve(node,"tolerance_minus")) {
var tolerance_minus = flixel_addons_ui_U.xml_f(node,"tolerance_minus",-1);
var tolerance_plus = flixel_addons_ui_U.xml_f(node,"tolerance_plus",-1);
if(screen_ratio > aspect_ratio && tolerance_plus != -1) {
if(diff > tolerance_plus) {
match = false;
}
}
if(screen_ratio < aspect_ratio && tolerance_minus != -1) {
if(diff > tolerance_minus) {
match = false;
}
}
}
if(match != matchValue) {
return false;
}
}
var resolution = flixel_addons_ui_U.xml_pt(node,"resolution",null);
if(resolution != null) {
match = true;
var toleranceRes = flixel_addons_ui_U.xml_pt(node,"tolerance",null);
if(toleranceRes == null) {
toleranceRes = new flixel_math_FlxPoint(0,0);
}
var diffX = Math.abs(resolution.x - flixel_FlxG.width);
var diffY = Math.abs(resolution.y - flixel_FlxG.height);
if(diffX > toleranceRes.x || diffY > toleranceRes.y) {
match = false;
}
if(match != matchValue) {
return false;
}
}
var haxeDef = flixel_addons_ui_U.xml_str(node,"haxedef",true,"");
var haxeVal = flixel_addons_ui_U.xml_bool(node,"value",true);
if(haxeDef != "") {
match = true;
var defValue = flixel_addons_ui_U.checkHaxedef(haxeDef);
match = defValue == haxeVal;
if(match != matchValue) {
return false;
}
}
var variable = flixel_addons_ui_U.xml_str(node,"variable",false,"");
var variableType = flixel_addons_ui_U.xml_str(node,"type",true,"string");
if(variable != "") {
match = true;
var varData = this.parseVarValue(variable);
if(varData != null) {
match = this.checkVariable(varData.variable,varData.value,variableType,varData.op);
}
if(match != matchValue) {
return false;
}
}
return true;
}
,parseVarValue: function(varString) {
var arr = ["==","=","!=","!==","<",">","<=",">="];
var temp;
var _g = 0;
while(_g < arr.length) {
var op = arr[_g];
++_g;
if(varString.indexOf(op) != -1) {
temp = varString.split(op);
if(temp != null && temp.length == 2) {
return { variable : temp[0], value : temp[1], op : op};
}
}
}
return null;
}
,_loadLayout: function(data) {
var name = flixel_addons_ui_U.xml_str(data,"name",true);
var X = this._loadWidth(data,0,"x");
var Y = this._loadHeight(data,0,"y");
var _ui = this.createUI(data);
_ui.set_x(X);
_ui.set_y(Y);
_ui.name = name;
return _ui;
}
,addToCleanup: function(str) {
if(this._assetsToCleanUp == null) {
return;
}
if(this._assetsToCleanUp.indexOf(str) == -1) {
this._assetsToCleanUp.push(str);
}
}
,addToScaledAssets: function(str) {
if(this._scaledAssets != null && this._scaledAssets.indexOf(str) == -1) {
this._scaledAssets.push(str);
}
}
,cleanup: function() {
var _g = 0;
var _g1 = this._assetsToCleanUp;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
flixel_FlxG.bitmap.removeByKey(key);
}
this._assetsToCleanUp = null;
this._scaledAssets = null;
}
,createUI: function(data) {
return new flixel_addons_ui_FlxUI(data,this,this,this._ptr_tongue,this.liveFilePath);
}
,_loadTabMenu: function(data) {
var back_def_str = flixel_addons_ui_U.xml_str(data,"back_def");
var back_def = this.getDefinition(back_def_str);
if(back_def == null) {
back_def = data;
}
back_def = flixel_addons_ui_FlxUI.consolidateData(back_def,data);
var back_type = flixel_addons_ui_U.xml_str(data,"back_type",true,"chrome");
var backSprite;
switch(back_type) {
case "region":
backSprite = new flixel_addons_ui_FlxUIRegion();
break;
case "sprite":
backSprite = this._loadSprite(back_def);
break;
default:
backSprite = this._load9SliceSprite(back_def,"tab_menu");
}
var tab_def = null;
var stretch_tabs = flixel_addons_ui_U.xml_bool(data,"stretch_tabs",false);
var stackToggled = "front";
var stackUntoggled = "back";
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"stacking")) {
stackToggled = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"stacking"),"toggled",true,"front");
stackUntoggled = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"stacking"),"untoggled",true,"back");
}
var tab_spacing_str = flixel_addons_ui_U.xml_str(data,"spacing",true,"");
var tab_spacing = null;
if(tab_spacing_str != "") {
tab_spacing = this._loadWidth(data,0,"spacing");
}
var tab_x = this._loadWidth(data,0,"tab_x");
var tab_y = this._loadHeight(data,0,"tab_y");
var X = tab_x;
var Y = tab_y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var tab_offset = point;
var tab_def_str = "";
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"tab")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"tab");
while(_g < _g1.length) {
var tabNode = _g1[_g];
++_g;
var temp = flixel_addons_ui_U.xml_str(tabNode,"use_def");
if(temp != "") {
tab_def_str = temp;
}
}
if(tab_def_str != "") {
tab_def = this.getDefinition(tab_def_str);
} else {
tab_def = haxe_xml__$Access_NodeAccess.resolve(data,"tab");
}
}
var list_tabs = [];
var name = "";
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"tab")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"tab");
while(_g < _g1.length) {
var tab_node = _g1[_g];
++_g;
name = flixel_addons_ui_U.xml_name(tab_node);
if(name != "") {
var label = flixel_addons_ui_U.xml_str(tab_node,"label");
var context = flixel_addons_ui_U.xml_str(tab_node,"context",true,"ui");
var code = flixel_addons_ui_U.xml_str(tab_node,"code",true,"");
label = this.getText(label,context,true,code);
label = this.getText(label,context,true,code);
var tab_info = flixel_addons_ui_FlxUI.consolidateData(tab_node,tab_def);
var tab = this._loadButton(tab_info,true,true,"tab_menu");
tab.name = name;
list_tabs.push(tab);
this._loadTooltip(tab,tab_info);
}
}
}
if(list_tabs.length > 0) {
if(tab_def == null || !haxe_xml__$Access_HasNodeAccess.resolve(tab_def,"text")) {
var _g = 0;
while(_g < list_tabs.length) {
var t = list_tabs[_g];
++_g;
if(((t) instanceof flixel_addons_ui_FlxUITypedButton)) {
var tb = t;
tb.label.set_color(16777215);
if(((tb.label) instanceof flixel_addons_ui_FlxUIText)) {
var labelText = tb.label;
labelText.set_borderStyle(flixel_text_FlxTextBorderStyle.OUTLINE);
labelText.set_borderColor(0);
labelText.set_borderSize(1);
labelText.set_borderQuality(1);
}
}
}
}
if(tab_def == null || !haxe_xml__$Access_HasAttribAccess.resolve(tab_def,"width")) {
stretch_tabs = true;
}
}
var tab_stacking = [stackToggled,stackUntoggled];
var fg = new flixel_addons_ui_FlxUITabMenu(backSprite,list_tabs,null,tab_offset,stretch_tabs,tab_spacing,tab_stacking);
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"group")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"group");
while(_g < _g1.length) {
var group_node = _g1[_g];
++_g;
name = flixel_addons_ui_U.xml_name(group_node);
var _ui = new flixel_addons_ui_FlxUI(group_node,fg,this,this._ptr_tongue);
if(list_tabs != null && list_tabs.length > 0) {
var _g2 = _ui;
_g2.set_y(_g2.y + list_tabs[0].get_height());
}
_ui.name = name;
fg.addGroup(_ui);
}
}
return fg;
}
,_loadNumericStepper: function(data,setCallback) {
if(setCallback == null) {
setCallback = true;
}
var stepSize = flixel_addons_ui_U.xml_f(data,"step",1);
var defaultValue = flixel_addons_ui_U.xml_f(data,"value",0);
var min = flixel_addons_ui_U.xml_f(data,"min",0);
var max = flixel_addons_ui_U.xml_f(data,"max",10);
var decimals = flixel_addons_ui_U.xml_i(data,"decimals",0);
var percent = flixel_addons_ui_U.xml_bool(data,"percent");
var stack = flixel_addons_ui_U.xml_str(data,"stack",true,"");
if(stack == "") {
stack = flixel_addons_ui_U.xml_str(data,"stacking",true,"");
}
stack = stack.toLowerCase();
var stacking;
switch(stack) {
case "h":case "horizontal":case "horz":
stacking = 1;
break;
case "v":case "vert":case "vertical":
stacking = 0;
break;
default:
stacking = 1;
}
var theText = null;
var buttPlus = null;
var buttMinus = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"text")) {
theText = this._loadThing("text",haxe_xml__$Access_NodeAccess.resolve(data,"text"));
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"plus")) {
buttPlus = this._loadThing("button",haxe_xml__$Access_NodeAccess.resolve(data,"plus"));
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"minus")) {
buttMinus = this._loadThing("button",haxe_xml__$Access_NodeAccess.resolve(data,"minus"));
}
var ns = new flixel_addons_ui_FlxUINumericStepper(0,0,stepSize,defaultValue,min,max,decimals,stacking,theText,buttPlus,buttMinus,percent);
if(setCallback) {
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
var params1 = params;
ns.set_params(params1);
}
return ns;
}
,getResizeRatio: function(data,defaultAxis) {
if(defaultAxis == null) {
defaultAxis = 1;
}
var str = flixel_addons_ui_U.xml_str(data,"resize_ratio_x",true);
if(str == "") {
str = flixel_addons_ui_U.xml_str(data,"resize_ratio_y",true);
if(str == "") {
var resize_ratio = flixel_addons_ui_U.xml_f(data,"resize_ratio",-1);
return new flixel_math_FlxPoint(resize_ratio,defaultAxis);
} else {
return new flixel_math_FlxPoint(parseFloat(str),1);
}
} else {
return new flixel_math_FlxPoint(parseFloat(str),0);
}
}
,_loadButton: function(data,setCallback,isToggle,load_code) {
if(load_code == null) {
load_code = "";
}
if(isToggle == null) {
isToggle = false;
}
if(setCallback == null) {
setCallback = true;
}
var fb = null;
var color = this._loadColor(data);
var resize_ratio = flixel_addons_ui_U.xml_f(data,"resize_ratio",-1);
var resize_point = this._loadCompass(data,"resize_point");
var resize_label = flixel_addons_ui_U.xml_bool(data,"resize_label",false);
var label = flixel_addons_ui_U.xml_str(data,"label");
var sprite = null;
var toggleSprite = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"sprite")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"sprite");
while(_g < _g1.length) {
var spriteNode = _g1[_g];
++_g;
var forToggle = isToggle && flixel_addons_ui_U.xml_bool(spriteNode,"toggle");
if(forToggle) {
toggleSprite = this._loadThing("sprite",spriteNode);
} else {
sprite = this._loadThing("sprite",spriteNode);
}
}
}
var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui");
var code = flixel_addons_ui_U.xml_str(data,"code",true,"");
label = this.getText(label,context,true,code);
var W = this._loadWidth(data,0,"width") | 0;
var H = this._loadHeight(data,0,"height") | 0;
var params = null;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) {
params = [];
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) {
var type = haxe_xml__$Access_AttribAccess.resolve(param,"type");
type = type.toLowerCase();
var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value");
var value = valueStr;
var sort = flixel_addons_ui_U.xml_i(param,"sort",-1);
switch(type) {
case "bool":case "boolean":
var str = new String(valueStr);
str = str.toLowerCase();
if(str == "true" || str == "1") {
value = true;
} else {
value = false;
}
break;
case "color":case "hex":
var return_val = flixel_util_FlxColor.fromString(valueStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr);
}
value = return_val;
break;
case "float":
value = parseFloat(valueStr);
break;
case "int":
value = Std.parseInt(valueStr);
break;
case "string":
value = new String(valueStr);
break;
}
params.push({ sort : sort, value : value});
}
}
params.sort(flixel_addons_ui_FlxUI.sortParams);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
params[i] = params[i].value;
}
}
var params1 = params;
if(sprite == null) {
var useDefaultGraphic = haxe_xml__$Access_HasNodeAccess.resolve(data,"graphic") == false;
fb = new flixel_addons_ui_FlxUIButton(0,0,label,null,useDefaultGraphic,false,color);
var fuib = fb;
fuib._autoCleanup = false;
} else {
var tempGroup = null;
if(label != "") {
var labelTxt = new flixel_addons_ui_FlxUIText(0,0,80,label,8);
labelTxt.setFormat(null,8,3355443,"center");
tempGroup = new flixel_group_FlxTypedSpriteGroup();
tempGroup.add(sprite);
tempGroup.add(labelTxt);
fb = new flixel_addons_ui_FlxUISpriteButton(0,0,tempGroup);
} else {
fb = new flixel_addons_ui_FlxUISpriteButton(0,0,sprite);
}
}
fb.resize_ratio = resize_ratio;
fb.resize_point = resize_point;
fb.autoResizeLabel = resize_label;
if(setCallback) {
fb.set_params(params1);
}
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"graphic")) {
var blank = flixel_addons_ui_U.xml_bool(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"blank");
if(blank) {
fb.loadGraphicSlice9(["","",""],W,H,null,0,resize_ratio);
} else {
var graphic_names = null;
var slice9_names = null;
var frames = null;
if(isToggle) {
graphic_names = ["","","","","",""];
slice9_names = [null,null,null,null,null,null];
} else {
graphic_names = ["","",""];
slice9_names = [null,null,null];
}
var src_w = flixel_addons_ui_U.xml_i(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"src_w",0);
var src_h = flixel_addons_ui_U.xml_i(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"src_h",0);
var tileStr = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"tile",true,"");
var tile = 0;
switch(tileStr) {
case "h":case "horizontal":
tile = 16;
break;
case "v":case "vertical":
tile = 1;
break;
case "all":case "both":case "hv":case "true":case "vh":
tile = 17;
break;
}
var tile1 = tile;
var frame_str = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"frames",true);
if(frame_str != "") {
frames = [];
var arr = frame_str.split(",");
var _g = 0;
while(_g < arr.length) {
var numstr = arr[_g];
++_g;
frames.push(Std.parseInt(numstr));
}
}
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"graphic");
while(_g < _g1.length) {
var graphicNode = _g1[_g];
++_g;
var graphic_name = flixel_addons_ui_U.xml_name(graphicNode);
var image = flixel_addons_ui_U.xml_str(graphicNode,"image");
var slice9 = flixel_util_FlxStringUtil.toIntArray(flixel_addons_ui_U.xml_str(graphicNode,"slice9"));
var tileStr = flixel_addons_ui_U.xml_str(graphicNode,"tile",true,"");
var tile = 0;
switch(tileStr) {
case "h":case "horizontal":
tile = 16;
break;
case "v":case "vertical":
tile = 1;
break;
case "all":case "both":case "hv":case "true":case "vh":
tile = 17;
break;
}
tile1 = tile;
var toggleState = flixel_addons_ui_U.xml_bool(graphicNode,"toggle");
toggleState = toggleState && isToggle;
var igfx = flixel_addons_ui_U.gfx(image);
switch(graphic_name) {
case "all":
var tilesTall = isToggle ? 6 : 3;
var temp = null;
if(src_h != 0) {
var temp1 = flixel_addons_ui_U.getBmp(igfx);
tilesTall = temp1.height / src_h | 0;
}
if(image != "") {
graphic_names = [this.loadScaledSrc(graphicNode,"image","scale_src",1,tilesTall)];
}
slice9_names = [this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[0],"image")];
temp = flixel_addons_ui_U.getBmp(graphic_names[0]);
src_w = temp.width;
src_h = temp.height / tilesTall | 0;
break;
case "active":case "highlight":case "hilight":case "hover":case "over":
if(image != "") {
if(!toggleState) {
graphic_names[1] = this.loadScaledSrc(graphicNode,"image","scale_src");
} else {
graphic_names[4] = this.loadScaledSrc(graphicNode,"image","scale_src");
}
}
if(!toggleState) {
slice9_names[1] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[1],"image");
} else {
slice9_names[4] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[4],"image");
}
break;
case "down":case "pressed":case "pushed":
if(image != "") {
if(!toggleState) {
graphic_names[2] = this.loadScaledSrc(graphicNode,"image","scale_src");
} else {
graphic_names[5] = this.loadScaledSrc(graphicNode,"image","scale_src");
}
}
if(!toggleState) {
slice9_names[2] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[2],"image");
} else {
slice9_names[5] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[5],"image");
}
break;
case "":case "inactive":case "normal":case "up":
if(image != "") {
if(!toggleState) {
graphic_names[0] = this.loadScaledSrc(graphicNode,"image","scale_src");
} else {
graphic_names[3] = this.loadScaledSrc(graphicNode,"image","scale_src");
}
}
if(!toggleState) {
slice9_names[0] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[0],"image");
} else {
slice9_names[3] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[3],"image");
}
break;
}
if(graphic_names[0] != "") {
if(graphic_names.length >= 3) {
if(graphic_names[1] == "") {
graphic_names[1] = graphic_names[0];
}
if(graphic_names[2] == "") {
graphic_names[2] = graphic_names[1];
}
if(graphic_names.length >= 6) {
if(graphic_names[3] == "") {
graphic_names[3] = graphic_names[0];
}
if(graphic_names[4] == "") {
graphic_names[4] = graphic_names[1];
}
if(graphic_names[5] == "") {
graphic_names[5] = graphic_names[2];
}
}
}
}
}
fb.loadGraphicSlice9(graphic_names,W,H,slice9_names,tile1,resize_ratio,isToggle,src_w,src_h,frames);
}
} else if(load_code == "tab_menu") {
var graphic_names = ["flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab.png","flixel/flixel-ui/img/tab.png","flixel/flixel-ui/img/tab.png"];
var slice9_tab = flixel_util_FlxStringUtil.toIntArray("6,6,11,11");
var slice9_names = [slice9_tab,slice9_tab,slice9_tab,slice9_tab,slice9_tab,slice9_tab];
if(((fb) instanceof flixel_addons_ui_FlxUIButton)) {
var fbui = fb;
fbui.loadGraphicSlice9(graphic_names,W,H,slice9_names,0,resize_ratio,isToggle);
} else if(((fb) instanceof flixel_addons_ui_FlxUISpriteButton)) {
var fbuis = fb;
fbuis.loadGraphicSlice9(graphic_names,W,H,slice9_names,0,resize_ratio,isToggle);
} else {
fb.loadGraphicSlice9(graphic_names,W,H,slice9_names,0,resize_ratio,isToggle);
}
} else {
if(W <= 0) {
W = 80;
}
if(H <= 0) {
H = 20;
}
fb.loadGraphicSlice9(null,W,H,null,0,resize_ratio,isToggle);
}
if(sprite == null) {
if(data != null && haxe_xml__$Access_HasNodeAccess.resolve(data,"text")) {
this.formatButtonText(data,fb);
} else if(load_code == "tab_menu") {
fb.up_color = 16777215;
fb.down_color = 16777215;
fb.over_color = 16777215;
fb.up_toggle_color = 16777215;
fb.down_toggle_color = 16777215;
fb.over_toggle_color = 16777215;
} else {
fb.autoCenterLabel();
}
} else {
fb.autoCenterLabel();
}
if(sprite != null && label != "") {
if(data != null && haxe_xml__$Access_HasNodeAccess.resolve(data,"text")) {
this.formatButtonText(data,fb);
}
}
var text_x = 0;
var text_y = 0;
if(data.get("text_x") != null) {
text_x = this._loadWidth(data,0,"text_x") | 0;
} else if(data.get("label_x") != null) {
text_x = this._loadWidth(data,0,"label_x") | 0;
}
if(data.get("text_y") != null) {
text_y = this._loadHeight(data,0,"text_y") | 0;
} else if(data.get("label_y") != null) {
text_y = this._loadHeight(data,0,"label_y") | 0;
}
if(((fb) instanceof flixel_addons_ui_FlxUISpriteButton)) {
var fbs = fb;
if(((fbs.label) instanceof flixel_group_FlxTypedSpriteGroup)) {
var g = fbs.label;
var _g = 0;
var _g1 = g.group.members;
while(_g < _g1.length) {
var sprite1 = _g1[_g];
++_g;
if(((sprite1) instanceof flixel_addons_ui_FlxUIText)) {
var _g2 = sprite1.offset;
_g2.set_x(_g2.x - text_x);
var _g3 = sprite1.offset;
_g3.set_y(_g3.y - text_y);
break;
}
}
} else {
var _g = fbs.label.offset;
_g.set_x(_g.x - text_x);
var _g = fbs.label.offset;
_g.set_y(_g.y - text_y);
if(toggleSprite != null) {
var _g = toggleSprite.offset;
_g.set_x(_g.x - text_x);
var _g = toggleSprite.offset;
_g.set_y(_g.y - text_y);
}
}
} else {
var fbu = fb;
var _g = fbu.label.offset;
_g.set_x(_g.x - text_x);
var _g = fbu.label.offset;
_g.set_y(_g.y - text_y);
}
if(sprite != null && toggleSprite != null) {
fb.set_toggle_label(toggleSprite);
}
if(((fb) instanceof flixel_addons_ui_FlxUITypedButton)) {
var fuitb = fb;
if(fuitb._assetsToCleanup != null) {
var _g = 0;
var _g1 = fuitb._assetsToCleanup;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
this.addToCleanup(key);
}
}
}
return fb;
}
,_loadRegion: function(data) {
var bounds = this.calcMaxMinSize(data);
var w = this._loadWidth(data) | 0;
var h = this._loadHeight(data) | 0;
if(bounds != null) {
var pt = flixel_addons_ui_U.conformToBounds(new openfl_geom_Point(w,h),bounds);
w = pt.x | 0;
h = pt.y | 0;
}
var vis = flixel_addons_ui_U.xml_bool(data,"visible",true);
var reg = new flixel_addons_ui_FlxUIRegion(0,0,w,h);
reg.set_visible(vis);
return reg;
}
,_load9SliceSprite: function(data,load_code) {
if(load_code == null) {
load_code = "";
}
var src = "";
var f9s = null;
var resize = this.getResizeRatio(data);
var color = this._loadColor(data);
var resize_ratio = resize.x;
var resize_point = this._loadCompass(data,"resize_point");
var resize_ratio_axis = resize.y | 0;
var bounds = this.calcMaxMinSize(data);
var data1 = data;
var str = "";
if(data1.get("src") != null) {
str = data1.get("src");
if(str == "" || str == null) {
str = "";
} else {
str = flixel_addons_ui_U.gfx(str);
try {
if(!openfl_utils_Assets.exists(str,"IMAGE")) {
throw haxe_Exception.thrown("couldn't load bmp \"" + "src" + "\"");
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(typeof(haxe_Exception.caught(_g).unwrap()) != "string") {
throw _g;
}
}
}
}
src = str;
var hasScaledSrc = haxe_xml__$Access_HasNodeAccess.resolve(data,"scale_src");
if(hasScaledSrc) {
var origSrc = src;
src = this.loadScaledSrc(data,"src","scale_src");
if(src != origSrc) {
this.addToCleanup(origSrc);
}
}
if(src == "") {
src = null;
}
if(src == null) {
if(load_code == "tab_menu") {
src = "flixel/flixel-ui/img/chrome_flat.png";
}
}
var rect_w = this._loadWidth(data) | 0;
var rect_h = this._loadHeight(data) | 0;
if(bounds != null) {
if(rect_w < bounds.min_width) {
rect_w = bounds.min_width | 0;
} else if(rect_w > bounds.max_width) {
rect_w = bounds.max_width;
}
if(rect_h < bounds.min_height) {
rect_h = bounds.min_height | 0;
} else if(rect_h > bounds.max_height) {
rect_h = bounds.max_height | 0;
}
}
if(rect_w == 0 || rect_h == 0) {
return null;
}
var rc = new openfl_geom_Rectangle(0,0,rect_w,rect_h);
var slice9 = flixel_util_FlxStringUtil.toIntArray(flixel_addons_ui_U.xml_str(data,"slice9"));
var srcId = "";
var srcGraphic = src;
if(hasScaledSrc) {
slice9 = this.load9SliceSprite_scaleSub(slice9,data,src);
srcId = src;
srcGraphic = flixel_FlxG.bitmap._cache.h[src];
}
var smooth = flixel_addons_ui_U.xml_bool(data,"smooth",false);
var tileStr = flixel_addons_ui_U.xml_str(data,"tile",true,"");
var tile = 0;
switch(tileStr) {
case "h":case "horizontal":
tile = 16;
break;
case "v":case "vertical":
tile = 1;
break;
case "all":case "both":case "hv":case "true":case "vh":
tile = 17;
break;
}
var tile1 = tile;
f9s = new flixel_addons_ui_FlxUI9SliceSprite(0,0,srcGraphic,rc,slice9,tile1,smooth,srcId,resize_ratio,resize_point,resize_ratio_axis,false,color);
return f9s;
}
,load9SliceSprite_scaleSub: function(slice9,data,src,srcString) {
if(srcString == null) {
srcString = "src";
}
var data1 = data;
var str = "";
if(data1.get(srcString) != null) {
str = data1.get(srcString);
if(str == "" || str == null) {
str = "";
} else {
str = flixel_addons_ui_U.gfx(str);
try {
if(!openfl_utils_Assets.exists(str,"IMAGE")) {
throw haxe_Exception.thrown("couldn't load bmp \"" + srcString + "\"");
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(typeof(haxe_Exception.caught(_g).unwrap()) != "string") {
throw _g;
}
}
}
}
var origSrc = str;
if(src == origSrc) {
return slice9;
}
var srcAsset = flixel_FlxG.bitmap._cache.h[src] != null ? flixel_FlxG.bitmap._cache.h[src].bitmap : null;
if(srcAsset == null) {
srcAsset = openfl_utils_Assets.getBitmapData(origSrc);
}
var origAsset = openfl_utils_Assets.getBitmapData(origSrc,false);
var srcScaleFactorX = srcAsset.width / origAsset.width;
var srcScaleFactorY = srcAsset.height / origAsset.height;
if(Math.abs(1.0 - srcScaleFactorX) <= 0.001 && Math.abs(1.0 - srcScaleFactorY) <= 0.001) {
return slice9;
}
if(slice9 != null) {
slice9[0] = slice9[0] * srcScaleFactorX | 0;
slice9[1] = slice9[1] * srcScaleFactorY | 0;
var widthDiff = origAsset.width - slice9[2];
var heightDiff = origAsset.height - slice9[3];
widthDiff = widthDiff * srcScaleFactorX | 0;
heightDiff = heightDiff * srcScaleFactorY | 0;
slice9[2] = srcAsset.width - widthDiff | 0;
slice9[3] = srcAsset.height - heightDiff | 0;
}
return slice9;
}
,_loadTileRule: function(data) {
var tileStr = flixel_addons_ui_U.xml_str(data,"tile",true,"");
var tile = 0;
switch(tileStr) {
case "h":case "horizontal":
tile = 16;
break;
case "v":case "vertical":
tile = 1;
break;
case "all":case "both":case "hv":case "true":case "vh":
tile = 17;
break;
}
return tile;
}
,_loadBox: function(data) {
var fs = null;
var thickness = this._loadWidth(data,1,"thickness") | 0;
var bounds = this.calcMaxMinSize(data);
if(bounds == null) {
bounds = { min_width : -Infinity, min_height : -Infinity, max_width : Infinity, max_height : Infinity};
}
var W = this._loadWidth(data) | 0;
var H = this._loadHeight(data) | 0;
if(bounds != null) {
if(W < bounds.min_width) {
W = bounds.min_width | 0;
} else if(W > bounds.max_width) {
W = bounds.max_width | 0;
}
if(H < bounds.min_height) {
H = bounds.max_height | 0;
} else if(H > bounds.max_height) {
H = bounds.max_height | 0;
}
}
var cstr = flixel_addons_ui_U.xml_str(data,"color",true,"0xff000000");
var C = 0;
if(cstr != "") {
var return_val = flixel_util_FlxColor.fromString(cstr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + cstr);
}
C = return_val;
}
fs = new flixel_addons_ui_FlxUISprite(0,0);
var key = W + "x" + H + ":" + C + ":" + thickness;
if(flixel_FlxG.bitmap._cache.h[key] != null) {
fs.loadGraphic(key);
} else {
fs.makeGraphic(W,H,C,false,key);
var r = new openfl_geom_Rectangle(thickness,thickness,W - thickness * 2,H - thickness * 2);
fs.graphic.bitmap.fillRect(r,0);
}
return fs;
}
,_loadLine: function(data) {
var axis = flixel_addons_ui_U.xml_str(data,"axis",true,"horizontal");
var thickness = this._loadWidth(data,-1,"thickness") | 0;
var bounds = this.calcMaxMinSize(data);
if(bounds == null) {
bounds = { min_width : 1, min_height : 1, max_width : Infinity, max_height : Infinity};
}
switch(axis) {
case "h":case "horizontal":case "horz":
bounds.max_height = thickness;
bounds.min_height = thickness;
break;
case "v":case "vert":case "vertical":
bounds.max_width = thickness;
bounds.min_width = thickness;
break;
}
var W = this._loadWidth(data) | 0;
var H = this._loadHeight(data) | 0;
if(bounds != null) {
if(W < bounds.min_width) {
W = bounds.min_width | 0;
} else if(W > bounds.max_width) {
W = bounds.max_width | 0;
}
if(H < bounds.min_height) {
H = bounds.max_height | 0;
} else if(H > bounds.max_height) {
H = bounds.max_height | 0;
}
}
var cstr = flixel_addons_ui_U.xml_str(data,"color",true,"0xff000000");
var C = 0;
if(cstr != "") {
var return_val = flixel_util_FlxColor.fromString(cstr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + cstr);
}
C = return_val;
}
var lineAxis = axis == "horizontal" ? flixel_addons_ui_LineAxis.HORIZONTAL : flixel_addons_ui_LineAxis.VERTICAL;
var lineLength = lineAxis == flixel_addons_ui_LineAxis.HORIZONTAL ? W : H;
var lineThickness = thickness != -1 ? thickness : lineAxis == flixel_addons_ui_LineAxis.HORIZONTAL ? H : W;
var fl = new flixel_addons_ui_FlxUILine(0,0,lineAxis,lineLength,lineThickness,C);
return fl;
}
,_loadBar: function(data) {
var fb = null;
var style = { filledColors : null, emptyColors : null, chunkSize : null, gradRotation : null, filledColor : null, emptyColor : null, borderColor : null, filledImgSrc : "", emptyImgSrc : ""};
var W = this._loadWidth(data,-1) | 0;
var H = this._loadHeight(data,-1) | 0;
var direction = flixel_addons_ui_U.xml_str(data,"fill_direction",true);
var fillDir = flixel_ui_FlxBarFillDirection.TOP_TO_BOTTOM;
switch(direction) {
case "bottom_to_top":
fillDir = flixel_ui_FlxBarFillDirection.BOTTOM_TO_TOP;
break;
case "horizontal_inside_out":
fillDir = flixel_ui_FlxBarFillDirection.HORIZONTAL_INSIDE_OUT;
break;
case "horizontal_outside_in":
fillDir = flixel_ui_FlxBarFillDirection.HORIZONTAL_OUTSIDE_IN;
break;
case "left_to_right":
fillDir = flixel_ui_FlxBarFillDirection.LEFT_TO_RIGHT;
break;
case "right_to_left":
fillDir = flixel_ui_FlxBarFillDirection.RIGHT_TO_LEFT;
break;
case "top_to_bottom":
fillDir = flixel_ui_FlxBarFillDirection.TOP_TO_BOTTOM;
break;
case "vertical_inside_out":
fillDir = flixel_ui_FlxBarFillDirection.VERTICAL_INSIDE_OUT;
break;
case "vertical_outside_in":
fillDir = flixel_ui_FlxBarFillDirection.VERTICAL_OUTSIDE_IN;
break;
default:
fillDir = flixel_ui_FlxBarFillDirection.LEFT_TO_RIGHT;
}
var parentRefStr = flixel_addons_ui_U.xml_str(data,"parent_ref",true);
var parentRef = parentRefStr != "" ? this.getAsset(parentRefStr) : null;
var variableName = flixel_addons_ui_U.xml_str(data,"variable");
var value = flixel_addons_ui_U.xml_f(data,"value",-1);
var min = flixel_addons_ui_U.xml_f(data,"min",0);
var max = flixel_addons_ui_U.xml_f(data,"max",100);
if(value == -1) {
value = max;
}
style.borderColor = flixel_addons_ui_U.xml_color(data,"border_color");
var showBorder = style.borderColor != null;
style.filledColor = flixel_addons_ui_U.xml_color(data,"filled_color");
if(style.filledColor == null) {
style.filledColor = flixel_addons_ui_U.xml_color(data,"color");
}
style.emptyColor = flixel_addons_ui_U.xml_color(data,"empty_color");
style.filledColors = flixel_addons_ui_U.xml_colorArray(data,"filled_colors");
style.emptyColors = flixel_addons_ui_U.xml_colorArray(data,"empty_colors");
if(style.filledColors == null) {
style.filledColors = flixel_addons_ui_U.xml_colorArray(data,"colors");
}
style.filledImgSrc = this.loadScaledSrc(data,"src_filled");
style.emptyImgSrc = this.loadScaledSrc(data,"src_empty");
if(style.filledImgSrc == "") {
style.filledImgSrc = this.loadScaledSrc(data,"src");
}
style.chunkSize = flixel_addons_ui_U.xml_i(data,"chunk_size",1);
style.gradRotation = flixel_addons_ui_U.xml_i(data,"rotation",90);
if(style.filledImgSrc == "" && style.filledColor == null && style.filledColors == null) {
style.filledColor = -65536;
}
if(W == -1 && H == -1) {
fb = new flixel_addons_ui_FlxUIBar(0,0,fillDir,100,10,parentRef,variableName,min,max,showBorder);
} else {
fb = new flixel_addons_ui_FlxUIBar(0,0,fillDir,W,H,parentRef,variableName,min,max,showBorder);
}
fb.set_style(style);
fb.resize(fb.barWidth,fb.barHeight);
fb.set_value(value);
return fb;
}
,_loadSprite: function(data) {
var src = "";
var fs = null;
src = this.loadScaledSrc(data);
var bounds = this.calcMaxMinSize(data);
var resize = this.getResizeRatio(data,-1);
var resize_ratio = resize.x;
var resize_ratio_axis = resize.y | 0;
var resize_point = this._loadCompass(data,"resize_point");
var W = this._loadWidth(data,-1) | 0;
var H = this._loadHeight(data,-1) | 0;
if(bounds != null) {
if(W < bounds.min_width) {
W = bounds.min_width | 0;
} else if(W > bounds.max_width) {
W = bounds.max_width | 0;
}
if(H < bounds.min_height) {
H = bounds.max_height | 0;
} else if(H > bounds.max_height) {
H = bounds.max_height | 0;
}
}
if(src != "") {
if(W == -1 && H == -1) {
fs = new flixel_addons_ui_FlxUISprite(0,0,src);
} else {
if(resize_ratio != -1 && (W == -1 || H == -1)) {
if(resize_ratio_axis == -1) {
if(W == -1) {
resize_ratio_axis = 0;
}
if(H == -1) {
resize_ratio_axis = 1;
}
}
if(resize_ratio_axis == 1) {
H = W * (1 / resize_ratio);
} else if(resize_ratio_axis == 0) {
W = H * (1 / resize_ratio);
}
}
var smooth = this.loadSmooth(data,true);
fs = new flixel_addons_ui_FlxUISprite(0,0,flixel_addons_ui_U.loadScaledImage(flixel_addons_ui_U.xml_str(data,"src"),W,H,smooth));
}
} else {
var cstr = flixel_addons_ui_U.xml_str(data,"color");
var C = 0;
if(cstr != "") {
var return_val = flixel_util_FlxColor.fromString(cstr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + cstr);
}
C = return_val;
}
fs = new flixel_addons_ui_FlxUISprite(0,0);
fs.makeGraphic(W,H,C);
}
fs.set_resize_point(resize_point);
fs.set_resize_ratio(resize_ratio);
fs.resize_ratio_axis = resize_ratio_axis;
return fs;
}
,loadSmooth: function(scaleNode,defaultValue) {
var defaultStr = defaultValue ? "true" : "false";
var smoothStr = flixel_addons_ui_U.xml_str(scaleNode,"smooth",true,defaultStr);
if(smoothStr == "") {
smoothStr = flixel_addons_ui_U.xml_str(scaleNode,"antialias",true,defaultStr);
}
return flixel_addons_ui_U.boolify(smoothStr);
}
,loadScaledSrc: function(data,attName,scaleName,tilesWide,tilesTall) {
if(tilesTall == null) {
tilesTall = 1;
}
if(tilesWide == null) {
tilesWide = 1;
}
if(scaleName == null) {
scaleName = "scale";
}
if(attName == null) {
attName = "src";
}
var src = flixel_addons_ui_U.xml_str(data,attName);
if(haxe_xml__$Access_HasNodeAccess.resolve(data,scaleName)) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,scaleName);
while(_g < _g1.length) {
var scaleNode = _g1[_g];
++_g;
var ratio = flixel_addons_ui_U.xml_f(scaleNode,"screen_ratio",-1);
var tolerance = flixel_addons_ui_U.xml_f(scaleNode,"tolerance",0.1);
var actualRatio = flixel_FlxG.width / flixel_FlxG.height;
if(ratio < 0 || ratio > 0 && Math.abs(ratio - actualRatio) <= tolerance) {
var suffix = flixel_addons_ui_U.xml_str(scaleNode,"suffix");
var srcSuffix = src + suffix;
var testAsset = null;
var scale_ = -1;
var smooth = this.loadSmooth(scaleNode,true);
var to_height = this._loadHeight(scaleNode,-1,"to_height");
if(to_height != -1) {
var testAsset1 = flixel_addons_ui_U.getBmp(flixel_addons_ui_U.gfx(src));
if(testAsset1 != null) {
scale_ = to_height / testAsset1.height;
}
} else {
scale_ = this._loadScale(scaleNode,-1);
if(scale_ == -1) {
scale_ = this._loadScale(scaleNode,-1,"value");
}
}
var scale_x = scale_ != -1 ? scale_ : this._loadScaleX(scaleNode,-1);
var scale_y = scale_ != -1 ? scale_ : this._loadScaleY(scaleNode,-1);
var sw = 0;
var sh = 0;
if(scale_x > 0 && scale_y > 0) {
if(scale_x <= 0) {
scale_x = 1.0;
}
if(scale_y <= 0) {
scale_y = 1.0;
}
sw = this._loadWidth(scaleNode,-1);
sh = this._loadHeight(scaleNode,-1);
if(sw == -1 || sh == -1) {
testAsset = openfl_utils_Assets.getBitmapData(flixel_addons_ui_U.gfx(src));
sw = testAsset.width;
sh = testAsset.height;
}
sw *= scale_x;
sh *= scale_y;
} else {
sw = this._loadWidth(scaleNode,-1);
sh = this._loadHeight(scaleNode,-1);
}
if(sw != 0 && sh != 0) {
if(tilesTall > 1 || tilesWide > 1) {
testAsset = openfl_utils_Assets.getBitmapData(flixel_addons_ui_U.gfx(src));
var str = flixel_addons_ui_U.scaleAndStoreTileset(flixel_addons_ui_U.gfx(srcSuffix),scale_y,testAsset.width / tilesWide | 0,testAsset.height / tilesTall | 0,sw | 0,sh / tilesTall | 0,smooth);
this.addToScaledAssets(str);
return str;
} else {
var str1 = flixel_addons_ui_U.loadScaledImage(srcSuffix,sw,sh,smooth);
this.addToScaledAssets(str1);
return str1;
}
}
break;
}
}
}
var data1 = data;
var str = "";
if(data1.get(attName) != null) {
str = data1.get(attName);
if(str == "" || str == null) {
str = "";
} else {
str = flixel_addons_ui_U.gfx(str);
try {
if(!openfl_utils_Assets.exists(str,"IMAGE")) {
throw haxe_Exception.thrown("couldn't load bmp \"" + attName + "\"");
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(typeof(haxe_Exception.caught(_g).unwrap()) != "string") {
throw _g;
}
}
}
}
return str;
}
,thisWidth: function() {
return flixel_FlxG.width;
}
,thisHeight: function() {
return flixel_FlxG.height;
}
,_getAnchorPos: function(thing,axis,str) {
switch(str) {
case "":
return 0;
case "bottom":case "down":
return this.screenHeight();
case "center":
if(axis == "x") {
return this.screenWidth() / 2;
} else if(axis == "y") {
return this.screenHeight() / 2;
}
break;
case "left":
return 0;
case "right":
return this.screenWidth();
case "top":case "up":
return 0;
default:
var perc = flixel_addons_ui_U.perc_to_float(str);
if(!isNaN(perc)) {
if(axis == "x") {
return perc * this.screenWidth();
} else if(axis == "y") {
return perc * this.screenHeight();
}
} else {
var r = new EReg("[\\w]+\\.[\\w]+","");
if(r.match(str)) {
var wh = "";
if(axis == "x") {
wh = "w";
}
if(axis == "y") {
wh = "h";
}
var assetValue = this._getStretch(1,wh,str);
return assetValue;
}
}
}
return 0;
}
,getRound: function(node,defaultStr) {
if(defaultStr == null) {
defaultStr = "";
}
var roundStr = flixel_addons_ui_U.xml_str(node,"round",true,defaultStr);
switch(roundStr) {
case "-1":case "down":case "floor":
return flixel_addons_ui_Rounding.Floor;
case "1":case "ceil":case "ceiling":case "up":
return flixel_addons_ui_Rounding.Ceil;
case "0":case "round":case "true":
return flixel_addons_ui_Rounding.Round;
}
return flixel_addons_ui_Rounding.None;
}
,doRound: function(f,round) {
switch(round._hx_index) {
case 0:
return Math.floor(f);
case 1:
return Math.ceil(f);
case 2:
return Math.round(f);
case 3:
return f;
}
}
,calcMaxMinSize: function(data,width,height) {
var min_w = 0;
var min_h = 0;
var max_w = Infinity;
var max_h = Infinity;
var temp_min_w = 0;
var temp_min_h = 0;
var temp_max_w = Infinity;
var temp_max_h = Infinity;
var round = flixel_addons_ui_Rounding.None;
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"exact_size")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"exact_size");
while(_g < _g1.length) {
var exactNode = _g1[_g];
++_g;
var exact_w_str = flixel_addons_ui_U.xml_str(exactNode,"width");
var exact_h_str = flixel_addons_ui_U.xml_str(exactNode,"height");
round = this.getRound(exactNode);
min_w = this.doRound(this._getDataSize("w",exact_w_str,0),round);
min_h = this.doRound(this._getDataSize("h",exact_h_str,0),round);
max_w = this.doRound(min_w,round);
max_h = this.doRound(min_h,round);
}
} else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"min_size")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"min_size");
while(_g < _g1.length) {
var minNode = _g1[_g];
++_g;
var min_w_str = flixel_addons_ui_U.xml_str(minNode,"width");
var min_h_str = flixel_addons_ui_U.xml_str(minNode,"height");
round = this.getRound(minNode);
temp_min_w = this.doRound(this._getDataSize("w",min_w_str,0),round);
temp_min_h = this.doRound(this._getDataSize("h",min_h_str,0),round);
if(temp_min_w > min_w) {
min_w = temp_min_w;
}
if(temp_min_h > min_h) {
min_h = temp_min_h;
}
}
} else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"max_size")) {
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"max_size");
while(_g < _g1.length) {
var maxNode = _g1[_g];
++_g;
var max_w_str = flixel_addons_ui_U.xml_str(maxNode,"width");
var max_h_str = flixel_addons_ui_U.xml_str(maxNode,"height");
round = this.getRound(maxNode);
temp_max_w = this.doRound(this._getDataSize("w",max_w_str,Infinity),round);
temp_max_h = this.doRound(this._getDataSize("h",max_h_str,Infinity),round);
if(temp_max_w < max_w) {
max_w = temp_max_w;
}
if(temp_max_h < max_h) {
max_h = temp_max_h;
}
}
} else {
return null;
}
if(width != null) {
if(width > min_w) {
min_w = width;
}
if(width < max_w) {
max_w = width;
}
}
if(height != null) {
if(height > min_h) {
min_h = height;
}
if(height < max_h) {
max_h = height;
}
}
if(max_w <= 0) {
max_w = Infinity;
}
if(max_h <= 0) {
max_h = Infinity;
}
return { min_width : min_w, min_height : min_h, max_width : max_w, max_height : max_h};
}
,_getDataSize: function(target,str,default_) {
if(default_ == null) {
default_ = 0;
}
if(flixel_addons_ui_U.isStrNum(str)) {
return parseFloat(str);
}
var percf = flixel_addons_ui_U.perc_to_float(str);
if(!isNaN(percf)) {
switch(target) {
case "h":case "height":
return this.screenHeight() * percf;
case "scale":case "scale_x":case "scale_y":
return percf;
case "w":case "width":
return this.screenWidth() * percf;
}
} else {
if(str.indexOf("stretch:") == 0) {
str = StringTools.replace(str,"stretch:","");
var arr = str.split(",");
var stretch_0 = this._getStretch(0,target,arr[0]);
var stretch_1 = this._getStretch(1,target,arr[1]);
if(stretch_0 != -1 && stretch_1 != -1) {
return stretch_1 - stretch_0;
} else {
return default_;
}
} else if(str.indexOf("asset:") == 0) {
str = StringTools.replace(str,"asset:","");
var assetValue = this._getStretch(1,target,str);
return assetValue;
} else {
var r = new EReg("[\\w]+\\.[\\w]+","");
if(r.match(str)) {
var assetValue = this._getStretch(1,target,str);
return assetValue;
}
}
var ptStr = "";
if(str.indexOf("pt") == str.length - 2) {
ptStr = HxOverrides.substr(str,0,str.length - 2);
}
if(ptStr != "" && flixel_addons_ui_U.isStrNum(ptStr)) {
var tempNum = parseFloat(ptStr);
switch(target) {
case "h":case "height":
return this._pointY * tempNum;
case "w":case "width":
return this._pointX * tempNum;
}
}
}
return default_;
}
,_getOperation: function(str) {
var list = ["+","-","*","/","^"];
var op = "";
var besti = Infinity;
var _g = 0;
while(_g < list.length) {
var item = list[_g];
++_g;
var i = str.indexOf(item);
if(i != -1) {
if(i < besti) {
besti = i;
op = item;
}
}
}
var hasPoint = false;
if(op != "") {
if(str.indexOf(op) != -1) {
var opindex = str.indexOf(op);
if(opindex != str.length - 1) {
var firstBit = HxOverrides.substr(str,0,opindex);
var secondBit = HxOverrides.substr(str,opindex + 1,str.length - (opindex + 1));
var f = 0;
var ptIndex = secondBit.indexOf("pt");
if(ptIndex != -1 && ptIndex == secondBit.length - 2) {
var sansPt = StringTools.replace(secondBit,"pt","");
f = parseFloat(sansPt);
hasPoint = true;
} else {
f = parseFloat(secondBit);
}
if(isNaN(f)) {
f = this.getAssetProperty(1,"",secondBit);
}
if(f == 0 && secondBit != "0") {
return null;
} else {
return [firstBit,op,f,hasPoint];
}
}
}
}
return null;
}
,_doOperation: function(value,op,operand) {
switch(op) {
case "*":
return value * operand;
case "+":
return value + operand;
case "-":
return value - operand;
case "/":
return value / operand;
case "^":
return Math.pow(value,operand);
}
return value;
}
,_getStretch: function(index,target,str) {
var arr = null;
var op = "";
var operand = 0;
var hasPoint = false;
arr = this._getOperation(str);
if(arr != null) {
str = arr[0];
op = arr[1];
operand = arr[2];
hasPoint = arr[3];
if(hasPoint) {
switch(target) {
case "h":case "height":
operand *= this._pointY;
break;
case "w":case "width":
operand *= this._pointX;
break;
default:
operand *= this._pointY;
}
}
}
var return_val = this.getAssetProperty(index,target,str);
if(return_val != -1 && op != "") {
return_val = this._doOperation(return_val,op,operand);
}
return return_val;
}
,getAssetProperty: function(index,target,str) {
var prop = "";
if(str.indexOf(".") != -1) {
var arr = null;
arr = str.split(".");
str = arr[0];
prop = arr[1];
}
var other = this.getAsset(str);
var return_val = 0;
if(other == null) {
switch(str) {
case "bottom":case "down":
return_val = this.screenHeight();
break;
case "left":
return_val = 0;
break;
case "right":
return_val = this.screenWidth();
break;
case "top":case "up":
return_val = 0;
break;
default:
if(flixel_addons_ui_U.isStrNum(str)) {
return_val = parseFloat(str);
} else {
return_val = -1;
}
}
} else {
switch(target) {
case "h":case "height":
if(prop == "") {
if(index == 0) {
return_val = other.y + other.get_height();
}
if(index == 1) {
return_val = other.y;
}
} else {
switch(prop) {
case "bottom":case "down":
return_val = other.y + other.get_height();
break;
case "center":
return_val = other.y + other.get_height() / 2;
break;
case "halfheight":
return_val = other.get_height() / 2;
break;
case "halfwidth":
return_val = other.get_width() / 2;
break;
case "height":
return_val = other.get_height();
break;
case "right":
return_val = other.x + other.get_width();
break;
case "top":case "up":case "y":
return_val = other.y;
break;
case "width":
return_val = other.get_width();
break;
case "left":case "x":
return_val = other.x;
break;
}
}
break;
case "w":case "width":
if(prop == "") {
if(index == 0) {
return_val = other.x + other.get_width();
}
if(index == 1) {
return_val = other.x;
}
} else {
switch(prop) {
case "bottom":case "down":
return_val = other.y + other.get_height();
break;
case "center":
return_val = other.x + other.get_width() / 2;
break;
case "halfheight":
return_val = other.get_height() / 2;
break;
case "halfwidth":
return_val = other.get_width() / 2;
break;
case "height":
return_val = other.get_height();
break;
case "right":
return_val = other.x + other.get_width();
break;
case "top":case "up":case "y":
return_val = other.y;
break;
case "width":
return_val = other.get_width();
break;
case "left":case "x":
return_val = other.x;
break;
}
}
break;
default:
switch(prop) {
case "bottom":case "down":
return_val = other.y + other.get_height();
break;
case "centerx":
return_val = other.x + other.get_width() / 2;
break;
case "centery":
return_val = other.y + other.get_height() / 2;
break;
case "halfheight":
return_val = other.get_height() / 2;
break;
case "halfwidth":
return_val = other.get_width() / 2;
break;
case "height":
return_val = other.get_height();
break;
case "right":
return_val = other.x + other.get_width();
break;
case "top":case "up":case "y":
return_val = other.y;
break;
case "width":
return_val = other.get_width();
break;
case "left":case "x":
return_val = other.x;
break;
}
}
}
return return_val;
}
,_loadCursor: function(data) {
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"list")) {
if(this.cursorLists == null) {
this.cursorLists = [];
}
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"list");
while(_g < _g1.length) {
var lNode = _g1[_g];
++_g;
var ids = flixel_addons_ui_U.xml_str(lNode,"ids");
var arr = ids.split(",");
if(arr != null && arr.length > 0) {
var list = [];
var _g2 = 0;
while(_g2 < arr.length) {
var str = arr[_g2];
++_g2;
var widget = this.getAsset(str);
if(widget != null) {
list.push(widget);
}
}
this.cursorLists.push(list);
}
}
}
}
,_loadPosition: function(data,thing) {
var X = this._loadWidth(data,0,"x");
var Y = this._loadHeight(data,0,"y");
var ctrX = flixel_addons_ui_U.xml_bool(data,"center_x");
var ctrY = flixel_addons_ui_U.xml_bool(data,"center_y");
var center_on = flixel_addons_ui_U.xml_str(data,"center_on");
var center_on_x = flixel_addons_ui_U.xml_str(data,"center_on_x");
var center_on_y = flixel_addons_ui_U.xml_str(data,"center_on_y");
var anchor_x_str = "";
var anchor_y_str = "";
var anchor_x = 0;
var anchor_y = 0;
var anchor_x_flush = "";
var anchor_y_flush = "";
if(haxe_xml__$Access_HasNodeAccess.resolve(data,"anchor")) {
anchor_x_str = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"x");
anchor_y_str = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"y");
var rounding = this.getRound(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"));
anchor_x = this._getAnchorPos(thing,"x",anchor_x_str);
anchor_y = this._getAnchorPos(thing,"y",anchor_y_str);
anchor_x = this.doRound(anchor_x,rounding);
anchor_y = this.doRound(anchor_y,rounding);
anchor_x_flush = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"x-flush",true);
anchor_y_flush = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"y-flush",true);
}
if(anchor_x_str != "" || anchor_y_str != "") {
switch(anchor_x_flush) {
case "center":
anchor_x -= thing.get_width() / 2;
break;
case "left":
break;
case "right":
anchor_x -= thing.get_width();
break;
}
switch(anchor_y_flush) {
case "bottom":case "down":
anchor_y -= thing.get_height();
break;
case "center":
anchor_y -= thing.get_height() / 2;
break;
case "top":case "up":
break;
}
if(anchor_x_str != "") {
thing.set_x(anchor_x);
}
if(anchor_y_str != "") {
thing.set_y(anchor_y);
}
}
if(ctrX || ctrY) {
var X1 = ctrX;
var Y1 = ctrY;
if(Y1 == null) {
Y1 = true;
}
if(X1 == null) {
X1 = true;
}
if(X1) {
thing.set_x((flixel_FlxG.width - thing.get_width()) / 2);
}
if(Y1) {
thing.set_y((flixel_FlxG.height - thing.get_height()) / 2);
}
}
if(center_on != "") {
var other = this.getAsset(center_on);
if(other != null) {
var fb1 = js_Boot.__cast(other , flixel_FlxObject);
var fb2 = js_Boot.__cast(thing , flixel_FlxObject);
fb2.set_x(fb1.x + (fb1.get_width() - fb2.get_width()) / 2);
fb2.set_y(fb1.y + (fb1.get_height() - fb2.get_height()) / 2);
}
} else {
if(center_on_x != "") {
var other = this.getAsset(center_on_x);
if(other != null) {
var fb1 = js_Boot.__cast(other , flixel_FlxObject);
var fb2 = js_Boot.__cast(thing , flixel_FlxObject);
var centerX = true;
var centerY = false;
if(centerY == null) {
centerY = true;
}
if(centerX == null) {
centerX = true;
}
if(centerX) {
fb2.set_x(fb1.x + (fb1.get_width() - fb2.get_width()) / 2);
}
if(centerY) {
fb2.set_y(fb1.y + (fb1.get_height() - fb2.get_height()) / 2);
}
}
}
if(center_on_y != "") {
var other = this.getAsset(center_on_y);
if(other != null) {
var fb1 = js_Boot.__cast(other , flixel_FlxObject);
var fb2 = js_Boot.__cast(thing , flixel_FlxObject);
var centerX = false;
var centerY = true;
if(centerY == null) {
centerY = true;
}
if(centerX == null) {
centerX = true;
}
if(centerX) {
fb2.set_x(fb1.x + (fb1.get_width() - fb2.get_width()) / 2);
}
if(centerY) {
fb2.set_y(fb1.y + (fb1.get_height() - fb2.get_height()) / 2);
}
}
}
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var _g = thing;
_g.set_x(_g.x + X1);
var _g = thing;
_g.set_y(_g.y + Y1);
}
,_loadBorder: function(data) {
var borderDef = flixel_addons_ui_BorderDef.fromXML(data);
var round = this.getRound(data,"floor");
var dataSize = this._getDataSize("h",flixel_addons_ui_U.xml_str(data,"border_size"),1);
var border_size = this.doRound(dataSize,round) | 0;
borderDef.size = border_size;
return borderDef;
}
,_loadColor: function(data,colorName,_default) {
if(_default == null) {
_default = -1;
}
if(colorName == null) {
colorName = "color";
}
var colorStr = flixel_addons_ui_U.xml_str(data,colorName);
var tmp;
if(colorStr == "") {
var _this = data;
if(_this.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType)));
}
tmp = _this.nodeName == colorName;
} else {
tmp = false;
}
if(tmp) {
colorStr = flixel_addons_ui_U.xml_str(data,"value");
}
var color = _default;
if(colorStr != "") {
var return_val = flixel_util_FlxColor.fromString(colorStr);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + colorStr);
}
color = return_val;
}
return color;
}
,_loadFontDef: function(data) {
var fd = flixel_addons_ui_FontDef.fromXML(data);
var fontSize = this._loadHeight(data,8,"size") | 0;
fd.format.size = flixel_addons_ui_FlxUI.fontSize(fd.file,fontSize);
fd.set_size(fontSize);
return fd;
}
,_loadFontFace: function(data) {
var fontFace = flixel_addons_ui_U.xml_str(data,"font");
var fontStyle = flixel_addons_ui_U.xml_str(data,"style");
var the_font = null;
if(fontFace != "") {
the_font = flixel_addons_ui_FlxUI.font(fontFace,fontStyle);
}
return the_font;
}
,_onFinishLoad: function() {
if(this._ptr != null) {
this._ptr.getEvent("finish_load",this,null);
}
}
,getText: function(flag,context,safe,code) {
if(code == null) {
code = "";
}
if(safe == null) {
safe = true;
}
if(context == null) {
context = "data";
}
var str = "";
if(this._ptr_tongue != null) {
str = this._ptr_tongue.get(flag,context,safe);
return this.formatFromCode(str,code);
} else if(this.getTextFallback != null) {
str = this.getTextFallback(flag,context,safe);
return this.formatFromCode(str,code);
}
return flag;
}
,formatFromCode: function(str,code) {
switch(code) {
case "fu":
return flixel_addons_ui_U.FU(str);
case "fu_":
return flixel_addons_ui_U.FU_(str);
case "l":
return str.toLowerCase();
case "u":
return str.toUpperCase();
}
return str;
}
,formatButtonText: function(data,button) {
if(data != null && haxe_xml__$Access_HasNodeAccess.resolve(data,"text")) {
var textNode = haxe_xml__$Access_NodeAccess.resolve(data,"text");
var use_def = flixel_addons_ui_U.xml_str(textNode,"use_def",true);
var text_def = null;
if(use_def != "") {
text_def = this.getDefinition(use_def);
}
var info = flixel_addons_ui_FlxUI.consolidateData(textNode,text_def);
var the_font = this._loadFontFace(info);
var size = this._loadHeight(info,8,"size","floor") | 0;
var color = this._loadColor(info);
var labelWidth = flixel_addons_ui_U.xml_f(info,"width");
var border = this._loadBorder(info);
var align = flixel_addons_ui_U.xml_str(info,"align",true);
if(align == "") {
align = null;
}
var the_label = null;
var fb = null;
var fsb = null;
var ifb = null;
if(((button) instanceof flixel_addons_ui_FlxUICheckBox) == false) {
ifb = button;
if(align == "" || align == null) {
align = "center";
}
} else {
var cb = button;
ifb = cb.button;
align = "left";
}
if(ifb != null) {
if(((ifb) instanceof flixel_addons_ui_FlxUIButton)) {
fb = ifb;
the_label = fb.label;
} else if(((ifb) instanceof flixel_addons_ui_FlxUISpriteButton)) {
fsb = ifb;
if(((fsb.label) instanceof flixel_text_FlxText)) {
the_label = fsb.label;
} else if(((fsb.label) instanceof flixel_group_FlxTypedSpriteGroup)) {
var fsg = fsb.label;
var _g = 0;
var _g1 = fsg.group.members;
while(_g < _g1.length) {
var fs = _g1[_g];
++_g;
if(((fs) instanceof flixel_text_FlxText)) {
the_label = fs;
break;
}
}
}
}
ifb.up_color = color;
ifb.down_color = 0;
ifb.over_color = 0;
}
if(the_label != null) {
if(labelWidth != 0) {
the_label.set_width(labelWidth);
the_label.resetHelpers();
}
if(fb != null) {
fb.setLabelFormat(the_font,size,color,align);
} else {
the_label.setFormat(the_font,size,color,align);
}
the_label.set_borderStyle(border.style);
the_label.set_borderColor(border.color);
the_label.set_borderSize(border.size);
the_label.set_borderQuality(border.quality);
if(((the_label) instanceof flixel_addons_ui_FlxUIText)) {
var ftu = the_label;
ftu.drawFrame();
}
if(fb != null) {
fb.autoCenterLabel();
}
if(fsb != null) {
fsb.autoCenterLabel();
}
}
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(info,"color");
while(_g < _g1.length) {
var textColorNode = _g1[_g];
++_g;
var color = this._loadColor(textColorNode);
var vis = flixel_addons_ui_U.xml_bool(textColorNode,"visible",true);
var state_name = flixel_addons_ui_U.xml_name(textColorNode);
var toggle = flixel_addons_ui_U.xml_bool(textColorNode,"toggle");
switch(state_name) {
case "active":case "hilight":case "hover":case "over":
if(!toggle) {
ifb.over_color = color;
ifb.over_visible = vis;
} else {
ifb.over_toggle_color = color;
ifb.over_toggle_visible = vis;
}
break;
case "down":case "pressed":case "pushed":
if(!toggle) {
ifb.down_color = color;
ifb.down_visible = vis;
} else {
ifb.down_toggle_color = color;
ifb.down_toggle_visible = vis;
}
break;
case "":case "inactive":case "normal":case "up":
if(!toggle) {
ifb.up_color = color;
ifb.up_visible = vis;
} else {
ifb.up_toggle_color = color;
ifb.up_toggle_visible = vis;
}
break;
}
}
if(ifb.over_color == 0) {
ifb.over_color = ifb.up_color;
}
if(ifb.down_color == 0) {
ifb.down_color = ifb.over_color;
}
if(ifb.up_toggle_color == 0) {
ifb.up_toggle_color = ifb.up_color;
}
if(ifb.over_toggle_color == 0) {
ifb.over_toggle_color = ifb.over_color;
}
if(ifb.down_toggle_color == 0) {
ifb.down_toggle_color = ifb.down_color;
}
if(the_label != null) {
the_label.set_visible(ifb.up_visible);
the_label.set_color(ifb.up_color);
}
return the_label;
}
return null;
}
,__class__: flixel_addons_ui_FlxUI
,__properties__: $extend(flixel_addons_ui_FlxUIGroup.prototype.__properties__,{set_currMode:"set_currMode",get_currMode:"get_currMode",set_focus:"set_focus",set_tongue:"set_tongue",get_tongue:"get_tongue",get_isRoot:"get_isRoot"})
});
var flixel_addons_ui_Rounding = $hxEnums["flixel.addons.ui.Rounding"] = { __ename__ : "flixel.addons.ui.Rounding", __constructs__ : ["Floor","Ceil","Round","None"]
,Floor: {_hx_index:0,__enum__:"flixel.addons.ui.Rounding",toString:$estr}
,Ceil: {_hx_index:1,__enum__:"flixel.addons.ui.Rounding",toString:$estr}
,Round: {_hx_index:2,__enum__:"flixel.addons.ui.Rounding",toString:$estr}
,None: {_hx_index:3,__enum__:"flixel.addons.ui.Rounding",toString:$estr}
};
var flixel_addons_ui_interfaces_IResizable = function() { };
$hxClasses["flixel.addons.ui.interfaces.IResizable"] = flixel_addons_ui_interfaces_IResizable;
flixel_addons_ui_interfaces_IResizable.__name__ = "flixel.addons.ui.interfaces.IResizable";
flixel_addons_ui_interfaces_IResizable.__isInterface__ = true;
flixel_addons_ui_interfaces_IResizable.prototype = {
get_width: null
,set_width: null
,get_height: null
,set_height: null
,resize: null
,__class__: flixel_addons_ui_interfaces_IResizable
,__properties__: {set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width"}
};
var flixel_addons_ui_FlxUISprite = function(X,Y,SimpleGraphic) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._originalKey = "";
this.resize_ratio_axis = 1;
this.recycled = false;
this.ptr_owner = null;
this.broadcastToFlxUI = true;
flixel_FlxSprite.call(this,X,Y,SimpleGraphic);
};
$hxClasses["flixel.addons.ui.FlxUISprite"] = flixel_addons_ui_FlxUISprite;
flixel_addons_ui_FlxUISprite.__name__ = "flixel.addons.ui.FlxUISprite";
flixel_addons_ui_FlxUISprite.__interfaces__ = [flixel_addons_ui_interfaces_IResizable,flixel_addons_ui_interfaces_IFlxUIWidget];
flixel_addons_ui_FlxUISprite.__super__ = flixel_FlxSprite;
flixel_addons_ui_FlxUISprite.prototype = $extend(flixel_FlxSprite.prototype,{
broadcastToFlxUI: null
,name: null
,ptr_owner: null
,recycled: null
,resize_ratio: null
,resize_ratio_axis: null
,set_resize_ratio: function(r) {
this.resize_ratio = r;
return r;
}
,resize_point: null
,set_resize_point: function(r) {
if(r != null) {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.resize_point = point;
this.resize_point.set_x(r.x);
this.resize_point.set_y(r.y);
}
return this.resize_point;
}
,recycle: function(data) {
this.recycled = true;
}
,resize: function(w,h) {
var old_width = this.get_width();
var old_height = this.get_height();
if(this.resize_ratio > 0) {
var effective_ratio = w / h;
if(Math.abs(effective_ratio - this.resize_ratio) > 0.0001) {
if(this.resize_ratio_axis == 1) {
h = w * (1 / this.resize_ratio);
} else {
w = h * (1 / this.resize_ratio);
}
}
}
if(this._originalKey != "" && this._originalKey != null) {
var newKey = flixel_addons_ui_U.loadScaledImage(this._originalKey,w,h);
if(newKey != "" && newKey != null) {
this.loadFromScaledGraphic(newKey);
}
}
var diff_w = this.get_width() - old_width;
var diff_h = this.get_height() - old_height;
if(this.resize_point != null) {
var delta_x = diff_w * this.resize_point.x;
var delta_y = diff_h * this.resize_point.y;
var _g = this;
_g.set_x(_g.x - delta_x);
var _g = this;
_g.set_y(_g.y - delta_y);
}
}
,loadGraphicAtScale: function(GraphicKey,W,H) {
this.loadGraphic(GraphicKey,false);
this.resize(W,H);
}
,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) {
if(Unique == null) {
Unique = false;
}
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Animated == null) {
Animated = false;
}
var sprite = flixel_FlxSprite.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key);
this._originalKey = this.graphic.assetsKey;
if(this._originalKey == null) {
this._originalKey = this.graphic.key;
}
return sprite;
}
,destroy: function() {
this.ptr_owner = null;
flixel_FlxSprite.prototype.destroy.call(this);
}
,loadFromScaledGraphic: function(Graphic,Animated,Width,Height,Unique,Key) {
if(Unique == null) {
Unique = false;
}
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Animated == null) {
Animated = false;
}
flixel_FlxSprite.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key);
}
,_originalKey: null
,__class__: flixel_addons_ui_FlxUISprite
,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_resize_point:"set_resize_point",set_resize_ratio:"set_resize_ratio"})
});
var openfl_geom_Point = function(x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
this.x = x;
this.y = y;
};
$hxClasses["openfl.geom.Point"] = openfl_geom_Point;
openfl_geom_Point.__name__ = "openfl.geom.Point";
openfl_geom_Point.__limeVector2 = null;
openfl_geom_Point.distance = function(pt1,pt2) {
var dx = pt1.x - pt2.x;
var dy = pt1.y - pt2.y;
return Math.sqrt(dx * dx + dy * dy);
};
openfl_geom_Point.interpolate = function(pt1,pt2,f) {
return new openfl_geom_Point(pt2.x + f * (pt1.x - pt2.x),pt2.y + f * (pt1.y - pt2.y));
};
openfl_geom_Point.polar = function(len,angle) {
return new openfl_geom_Point(len * Math.cos(angle),len * Math.sin(angle));
};
openfl_geom_Point.prototype = {
x: null
,y: null
,add: function(v) {
return new openfl_geom_Point(v.x + this.x,v.y + this.y);
}
,clone: function() {
return new openfl_geom_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 openfl_geom_Point(this.x - v.x,this.y - v.y);
}
,toString: function() {
return "(x=" + this.x + ", y=" + this.y + ")";
}
,__toLimeVector2: function() {
if(openfl_geom_Point.__limeVector2 == null) {
openfl_geom_Point.__limeVector2 = new lime_math_Vector2();
}
var _this = openfl_geom_Point.__limeVector2;
_this.x = this.x;
_this.y = this.y;
return openfl_geom_Point.__limeVector2;
}
,get_length: function() {
return Math.sqrt(this.x * this.x + this.y * this.y);
}
,__class__: openfl_geom_Point
,__properties__: {get_length:"get_length"}
};
var openfl_geom_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;
};
$hxClasses["openfl.geom.Rectangle"] = openfl_geom_Rectangle;
openfl_geom_Rectangle.__name__ = "openfl.geom.Rectangle";
openfl_geom_Rectangle.__limeRectangle = null;
openfl_geom_Rectangle.prototype = {
height: null
,width: null
,x: null
,y: null
,clone: function() {
return new openfl_geom_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 == this) {
return true;
} else 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 openfl_geom_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 openfl_geom_Rectangle();
}
return new openfl_geom_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;
}
,toString: function() {
return "(x=" + this.x + ", y=" + this.y + ", width=" + this.width + ", height=" + this.height + ")";
}
,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 openfl_geom_Rectangle(x0,y0,x1 - x0,y1 - y0);
}
,__contract: function(x,y,width,height) {
if(this.width == 0 && this.height == 0) {
return;
}
var offsetX = 0.0;
var offsetY = 0.0;
var offsetRight = 0.0;
var offsetBottom = 0.0;
if(this.x < x) {
offsetX = x - this.x;
}
if(this.y < y) {
offsetY = y - this.y;
}
if(this.get_right() > x + width) {
offsetRight = x + width - this.get_right();
}
if(this.get_bottom() > y + height) {
offsetBottom = y + height - this.get_bottom();
}
this.x += offsetX;
this.y += offsetY;
this.width += offsetRight - offsetX;
this.height += offsetBottom - offsetY;
}
,__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;
this.width = cacheRight - x;
}
if(this.y > y) {
this.y = y;
this.height = cacheBottom - y;
}
if(cacheRight < x + width) {
this.width = x + width - this.x;
}
if(cacheBottom < y + height) {
this.height = y + height - this.y;
}
}
,__toLimeRectangle: function() {
if(openfl_geom_Rectangle.__limeRectangle == null) {
openfl_geom_Rectangle.__limeRectangle = new lime_math_Rectangle();
}
openfl_geom_Rectangle.__limeRectangle.setTo(this.x,this.y,this.width,this.height);
return openfl_geom_Rectangle.__limeRectangle;
}
,__transform: function(rect,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;
}
rect.setTo(tx0 + m.tx,ty0 + m.ty,tx1 - tx0,ty1 - ty0);
}
,get_bottom: function() {
return this.y + this.height;
}
,set_bottom: function(b) {
this.height = b - this.y;
return b;
}
,get_bottomRight: function() {
return new openfl_geom_Point(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 openfl_geom_Point(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 openfl_geom_Point(this.x,this.y);
}
,set_topLeft: function(p) {
this.x = p.x;
this.y = p.y;
return p.clone();
}
,__class__: openfl_geom_Rectangle
,__properties__: {set_topLeft:"set_topLeft",get_topLeft:"get_topLeft",set_top:"set_top",get_top:"get_top",set_size:"set_size",get_size:"get_size",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left",set_bottomRight:"set_bottomRight",get_bottomRight:"get_bottomRight",set_bottom:"set_bottom",get_bottom:"get_bottom"}
};
var flixel_addons_ui_FlxUI9SliceSprite = function(X,Y,Graphic,Rect,Slice9,Tile,Smooth,Id,Ratio,Resize_point,Resize_axis,DeferResize,Color) {
if(Color == null) {
Color = -1;
}
if(DeferResize == null) {
DeferResize = false;
}
if(Resize_axis == null) {
Resize_axis = 1;
}
if(Ratio == null) {
Ratio = -1;
}
if(Id == null) {
Id = "";
}
if(Smooth == null) {
Smooth = false;
}
if(Tile == null) {
Tile = 0;
}
this._asset_id = "";
this._smooth = false;
this._tile = 0;
this._slice9 = null;
this.paintScale9_id = "";
flixel_addons_ui_FlxUISprite.call(this,X,Y,null);
this.set_color(Color);
this._slice9 = Slice9;
this._tile = Tile;
this._smooth = Smooth;
this._asset_id = "";
if(Graphic == null) {
Graphic = "flixel/flixel-ui/img/chrome.png";
}
if(typeof(Graphic) == "string") {
this._asset_id = Graphic;
this._raw_pixels = null;
} else if(((Graphic) instanceof openfl_display_BitmapData)) {
this._asset_id = Id;
this._raw_pixels = Graphic;
} else if(((Graphic) instanceof flixel_graphics_FlxGraphic)) {
var fg = Graphic;
this._asset_id = fg.key;
this._raw_pixels = fg.bitmap;
}
this.set_resize_ratio(Ratio);
this.resize_ratio_axis = Resize_axis;
if(Resize_point != null) {
this.set_resize_point(Resize_point);
}
if(DeferResize) {
var pt = flixel_addons_ui_U.applyResize(this.resize_ratio,this.resize_ratio_axis,Rect.width,Rect.height);
this.set_width(pt.x);
this.set_height(pt.y);
} else {
this.resize(Rect.width,Rect.height);
}
};
$hxClasses["flixel.addons.ui.FlxUI9SliceSprite"] = flixel_addons_ui_FlxUI9SliceSprite;
flixel_addons_ui_FlxUI9SliceSprite.__name__ = "flixel.addons.ui.FlxUI9SliceSprite";
flixel_addons_ui_FlxUI9SliceSprite.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable];
flixel_addons_ui_FlxUI9SliceSprite.sectionCache = null;
flixel_addons_ui_FlxUI9SliceSprite.cacheCounter = null;
flixel_addons_ui_FlxUI9SliceSprite._staticRects = null;
flixel_addons_ui_FlxUI9SliceSprite.getRectFromString = function(str) {
var coords = str.split(",");
var rect = null;
if(coords != null && coords.length == 4) {
var x_ = Std.parseInt(coords[0]);
var y_ = Std.parseInt(coords[1]);
var w_ = Std.parseInt(coords[2]);
var h_ = Std.parseInt(coords[3]);
rect = new openfl_geom_Rectangle(x_,y_,w_,h_);
}
return rect;
};
flixel_addons_ui_FlxUI9SliceSprite.getRectIntsFromString = function(str) {
var coords = str.split(",");
if(coords != null && coords.length == 4) {
var x1 = Std.parseInt(coords[0]);
var y1 = Std.parseInt(coords[1]);
var x2 = Std.parseInt(coords[2]);
var y2 = Std.parseInt(coords[3]);
return [x1,y1,x2,y2];
}
return null;
};
flixel_addons_ui_FlxUI9SliceSprite.paintScale9 = function(g,assetID,scale9,rc,tile,smooth,raw) {
if(smooth == null) {
smooth = false;
}
if(tile == null) {
tile = 0;
}
if(scale9 != null) {
var w;
var h;
if(raw == null) {
var assetBmp = flixel_addons_ui_U.getBmp(assetID);
if(assetBmp != null) {
w = assetBmp.width;
h = assetBmp.height;
} else {
var assetFlx = flixel_FlxG.bitmap._cache.h[assetID];
w = assetFlx.width;
h = assetFlx.height;
}
} else {
w = raw.width;
h = raw.height;
}
var x1 = scale9[0];
var y1 = scale9[1];
var x2 = scale9[2];
var y2 = scale9[3];
if(flixel_addons_ui_FlxUI9SliceSprite._staticRects == null) {
flixel_addons_ui_FlxUI9SliceSprite._staticRects = new haxe_ds_StringMap();
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["top.left"] = rect;
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["top"] = rect;
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["top.right"] = rect;
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["left"] = rect;
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["middle"] = rect;
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["right"] = rect;
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["bottom.left"] = rect;
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["bottom"] = rect;
var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this1.h["bottom.right"] = rect;
}
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.left"];
var X = 0;
var Y = 0;
var Width = x1;
var Height = y1;
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;
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top"];
var X = x1;
var Y = 0;
var Width = x2 - x1;
var Height = y1;
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;
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.right"];
var X = x2;
var Y = 0;
var Width = w - x2;
var Height = y1;
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;
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["left"];
var X = 0;
var Y = y1;
var Width = x1;
var Height = y2 - y1;
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;
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["middle"];
var X = x1;
var Y = y1;
var Width = x2 - x1;
var Height = y2 - y1;
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;
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["right"];
var X = x2;
var Y = y1;
var Width = w - x2;
var Height = y2 - y1;
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;
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom.left"];
var X = 0;
var Y = y2;
var Width = x1;
var Height = h - y2;
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;
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom"];
var X = x1;
var Y = y2;
var Width = x2 - x1;
var Height = h - y2;
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;
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom.right"];
var X = x2;
var Y = y2;
var Width = w - x2;
var Height = h - y2;
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;
if(flixel_addons_ui_FlxUI9SliceSprite.cacheCounter == null) {
flixel_addons_ui_FlxUI9SliceSprite.cacheCounter = new haxe_ds_StringMap();
}
var uniqueID = flixel_addons_ui_FlxUI9SliceSprite.makePaintScale9Id(assetID,scale9,rc);
var sectionCounter = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[uniqueID];
if(sectionCounter == null) {
sectionCounter = { useCount : 0, subKeys : []};
var _g = 0;
while(_g < 9) {
var i = _g++;
var rect;
switch(i) {
case 0:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.left"];
break;
case 1:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top"];
break;
case 2:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.right"];
break;
case 3:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["left"];
break;
case 4:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["middle"];
break;
case 5:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["right"];
break;
case 6:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom.left"];
break;
case 7:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom"];
break;
case 8:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom.right"];
break;
default:
rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.left"];
}
var cacheId = assetID + "_" + rect.x + "_" + rect.y + "_" + rect.width + "_" + rect.height + "_";
sectionCounter.subKeys.push(cacheId);
}
flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[uniqueID] = sectionCounter;
}
flixel_addons_ui_FlxUI9SliceSprite.paintCompoundBitmap(g,assetID,flixel_addons_ui_FlxUI9SliceSprite._staticRects,rc,tile,smooth,raw);
return uniqueID;
}
return "";
};
flixel_addons_ui_FlxUI9SliceSprite.makePaintScale9Id = function(assetId,slice9,rect) {
var tmp = assetId + "_" + slice9.join(",") + "_";
var value = rect.x;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "x";
_this.value = value;
var value = rect.y;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "y";
_this1.value = value;
var value = rect.width;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "w";
_this2.value = value;
var value = rect.height;
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "h";
_this3.value = value;
return tmp + flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]);
};
flixel_addons_ui_FlxUI9SliceSprite.paintCompoundBitmap = function(g,assetID,sourceRects,targetRect,tile,smooth,raw) {
if(smooth == null) {
smooth = false;
}
if(tile == null) {
tile = 0;
}
targetRect.x = targetRect.x | 0;
targetRect.y = targetRect.y | 0;
targetRect.width = targetRect.width | 0;
targetRect.height = targetRect.height | 0;
var tl = sourceRects.h["top.left"];
if(tl != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = 0;
var Y = 0;
var Width = tl.width;
var Height = tl.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,tl,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,0,smooth,raw);
}
var tr = sourceRects.h["top.right"];
if(tr != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = targetRect.width - tr.width;
var Y = 0;
var Width = tr.width;
var Height = tr.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,tr,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,0,smooth,raw);
}
var t = sourceRects.h["top"];
if(t != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = tl.width;
var Y = 0;
var Width = targetRect.width - tl.width - tr.width;
var Height = t.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,t,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile & 16,smooth,raw);
}
var bl = sourceRects.h["bottom.left"];
if(bl != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = 0;
var Y = targetRect.height - bl.height;
var Width = bl.width;
var Height = bl.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,bl,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,0,smooth,raw);
}
var br = sourceRects.h["bottom.right"];
if(br != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = targetRect.width - br.width;
var Y = targetRect.height - br.height;
var Width = br.width;
var Height = br.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,br,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,0,smooth,raw);
}
var b = sourceRects.h["bottom"];
if(b != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = bl.width;
var Y = targetRect.height - b.height;
var Width = targetRect.width - bl.width - br.width;
var Height = b.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,b,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile & 16,smooth,raw);
}
var l = sourceRects.h["left"];
if(l != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = 0;
var Y = tl.height;
var Width = l.width;
var Height = targetRect.height - tl.height - bl.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,l,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile & 1,smooth,raw);
}
var r = sourceRects.h["right"];
if(r != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = targetRect.width - r.width;
var Y = tr.height;
var Width = r.width;
var Height = targetRect.height - tl.height - bl.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,r,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile & 1,smooth,raw);
}
var m = sourceRects.h["middle"];
if(m != null) {
var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2;
var X = l.width;
var Y = t.height;
var Width = targetRect.width - l.width - r.width;
var Height = targetRect.height - t.height - b.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;
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,m,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile,smooth,raw);
}
};
flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection = function(g,assetId,src,dst,srcData,tile,smooth,raw) {
if(smooth == null) {
smooth = false;
}
if(tile == null) {
tile = 0;
}
if(srcData == null) {
if(raw != null) {
srcData = raw;
} else {
srcData = flixel_addons_ui_U.getBmp(assetId);
}
}
src.x = src.x | 0;
src.y = src.y | 0;
src.width = src.width | 0;
src.height = src.height | 0;
dst.x = dst.x | 0;
dst.y = dst.y | 0;
dst.width = dst.width | 0;
dst.height = dst.height | 0;
var section = null;
var cacheId = null;
if(flixel_addons_ui_FlxUI9SliceSprite.useSectionCache == true && assetId != null) {
if(flixel_addons_ui_FlxUI9SliceSprite.sectionCache == null) {
flixel_addons_ui_FlxUI9SliceSprite.sectionCache = new haxe_ds_StringMap();
}
cacheId = assetId + "_" + src.x + "_" + src.y + "_" + src.width + "_" + src.height + "_";
section = flixel_addons_ui_FlxUI9SliceSprite.sectionCache.h[cacheId];
}
if(section == null) {
var fillcolor = 16777215;
section = new openfl_display_BitmapData(src.width | 0,src.height | 0,true,fillcolor);
flixel_addons_ui_FlxUI9SliceSprite._staticRect2.x = src.x;
flixel_addons_ui_FlxUI9SliceSprite._staticRect2.y = src.y;
flixel_addons_ui_FlxUI9SliceSprite._staticRect2.width = src.width;
flixel_addons_ui_FlxUI9SliceSprite._staticRect2.height = src.height;
section.copyPixels(srcData,flixel_addons_ui_FlxUI9SliceSprite._staticRect2,flixel_addons_ui_FlxUI9SliceSprite._staticPointZero);
if(flixel_addons_ui_FlxUI9SliceSprite.useSectionCache == true && cacheId != null) {
flixel_addons_ui_FlxUI9SliceSprite.sectionCache.h[cacheId] = section;
}
flixel_addons_ui_FlxUI9SliceSprite.bitmapsCreated++;
}
if(dst.width > 0 && dst.height > 0) {
flixel_addons_ui_FlxUI9SliceSprite._staticRect2.x = dst.x;
flixel_addons_ui_FlxUI9SliceSprite._staticRect2.y = dst.y;
flixel_addons_ui_FlxUI9SliceSprite._staticRect2.width = dst.width;
flixel_addons_ui_FlxUI9SliceSprite._staticRect2.height = dst.height;
flixel_addons_ui_FlxUI9SliceSprite.bitmapFillRect(g,flixel_addons_ui_FlxUI9SliceSprite._staticRect2,section,tile,smooth);
}
};
flixel_addons_ui_FlxUI9SliceSprite.bitmapFillRect = function(g,dst,section,tile,smooth_) {
if(smooth_ == null) {
smooth_ = false;
}
if(tile == null) {
tile = 0;
}
var final_pixels = new openfl_display_BitmapData(dst.width | 0,dst.height | 0,true,0);
flixel_addons_ui_FlxUI9SliceSprite._staticMatrix.identity();
flixel_addons_ui_FlxUI9SliceSprite._staticRect.x = 0;
flixel_addons_ui_FlxUI9SliceSprite._staticRect.y = 0;
flixel_addons_ui_FlxUI9SliceSprite._staticRect.width = section.width;
flixel_addons_ui_FlxUI9SliceSprite._staticRect.height = section.height;
if((tile & 16) == 0) {
flixel_addons_ui_FlxUI9SliceSprite._staticMatrix.scale(dst.width / section.width,1.0);
flixel_addons_ui_FlxUI9SliceSprite._staticRect.width = dst.width;
}
if((tile & 1) == 0) {
flixel_addons_ui_FlxUI9SliceSprite._staticMatrix.scale(1.0,dst.height / section.height);
flixel_addons_ui_FlxUI9SliceSprite._staticRect.height = dst.height;
}
if(section.width == dst.width && section.height == dst.height) {
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x = 0;
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y = 0;
final_pixels.copyPixels(section,section.rect,flixel_addons_ui_FlxUI9SliceSprite._staticPoint);
} else if(smooth_) {
final_pixels.draw(section,flixel_addons_ui_FlxUI9SliceSprite._staticMatrix,null,null,null,true);
} else {
final_pixels.draw(section,flixel_addons_ui_FlxUI9SliceSprite._staticMatrix,null,null,null,false);
}
if(tile != 0) {
if((tile & 16) == 16) {
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x = 0;
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y = 0;
while(flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x < dst.width) {
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x += flixel_addons_ui_FlxUI9SliceSprite._staticRect.width;
final_pixels.copyPixels(final_pixels,flixel_addons_ui_FlxUI9SliceSprite._staticRect,flixel_addons_ui_FlxUI9SliceSprite._staticPoint);
}
}
if((tile & 1) == 1) {
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x = 0;
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y = 0;
flixel_addons_ui_FlxUI9SliceSprite._staticRect.width = final_pixels.width;
while(flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y < dst.height) {
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y += flixel_addons_ui_FlxUI9SliceSprite._staticRect.height;
final_pixels.copyPixels(final_pixels,flixel_addons_ui_FlxUI9SliceSprite._staticRect,flixel_addons_ui_FlxUI9SliceSprite._staticPoint);
}
}
}
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x = dst.x;
flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y = dst.y;
g.copyPixels(final_pixels,final_pixels.rect,flixel_addons_ui_FlxUI9SliceSprite._staticPoint);
final_pixels = flixel_util_FlxDestroyUtil.dispose(final_pixels);
};
flixel_addons_ui_FlxUI9SliceSprite.__super__ = flixel_addons_ui_FlxUISprite;
flixel_addons_ui_FlxUI9SliceSprite.prototype = $extend(flixel_addons_ui_FlxUISprite.prototype,{
_bmpCanvas: null
,paintScale9_id: null
,_slice9: null
,_tile: null
,_smooth: null
,_asset_id: null
,_raw_pixels: null
,destroy: function() {
this.noLongerUsingCachedID(this.paintScale9_id);
flixel_addons_ui_FlxUISprite.prototype.destroy.call(this);
}
,resize: function(w,h) {
if((w | 0) < 1) {
w = 1;
}
if((h | 0) < 1) {
h = 1;
}
var old_width = this.get_width();
var old_height = this.get_height();
var pt = flixel_addons_ui_U.applyResize(this.resize_ratio,this.resize_ratio_axis,w,h);
w = pt.x;
h = pt.y;
var iw = pt.x | 0;
var ih = pt.y | 0;
if(this._slice9 == null || this._slice9 == []) {
this._slice9 = [4,4,7,7];
}
var key = this._asset_id + "_" + this._slice9.join(",") + "_" + iw + "x" + ih + "_" + this._tile + "_" + Std.string(this._smooth);
if(flixel_FlxG.bitmap._cache.h[key] != null) {
this.loadGraphic(key,false,iw,ih);
} else {
var bmpCanvas = new openfl_display_BitmapData(w | 0,h | 0);
flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect.x = 0;
flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect.y = 0;
flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect.width = w;
flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect.height = h;
var oldID = this.paintScale9_id;
var newID = flixel_addons_ui_FlxUI9SliceSprite.makePaintScale9Id(this._asset_id,this._slice9,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect);
if(newID != oldID) {
this.paintScale9_id = flixel_addons_ui_FlxUI9SliceSprite.paintScale9(bmpCanvas,this._asset_id,this._slice9,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect,this._tile,this._smooth,this._raw_pixels);
var sectionCounter = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[this.paintScale9_id];
sectionCounter.useCount++;
this.noLongerUsingCachedID(oldID);
}
this.loadGraphic(bmpCanvas,false,bmpCanvas.width,bmpCanvas.height,false,key);
}
var diff_w = this.get_width() - old_width;
var diff_h = this.get_height() - old_height;
if(this.resize_point != null) {
var delta_x = diff_w * this.resize_point.x;
var delta_y = diff_h * this.resize_point.y;
var _g = this;
_g.set_x(_g.x - delta_x);
var _g = this;
_g.set_y(_g.y - delta_y);
}
}
,noLongerUsingCachedID: function(id) {
if(Object.prototype.hasOwnProperty.call(flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h,id)) {
var oldCounter = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[id];
oldCounter.useCount--;
if(oldCounter.useCount <= 0) {
this.purgeSections(id);
}
}
}
,purgeSections: function(id) {
var counter = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[id];
if(counter != null) {
var _g = 0;
var _g1 = counter.subKeys;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
var _this = flixel_addons_ui_FlxUI9SliceSprite.sectionCache;
if(Object.prototype.hasOwnProperty.call(_this.h,key)) {
delete(_this.h[key]);
}
}
counter.subKeys = null;
var _this = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter;
if(Object.prototype.hasOwnProperty.call(_this.h,id)) {
delete(_this.h[id]);
}
}
}
,__class__: flixel_addons_ui_FlxUI9SliceSprite
});
var flixel_addons_ui_FlxUIAssets = function() { };
$hxClasses["flixel.addons.ui.FlxUIAssets"] = flixel_addons_ui_FlxUIAssets;
flixel_addons_ui_FlxUIAssets.__name__ = "flixel.addons.ui.FlxUIAssets";
var flixel_ui_FlxBar = function(x,y,direction,width,height,parentRef,variable,min,max,showBorder) {
if(showBorder == null) {
showBorder = false;
}
if(max == null) {
max = 100;
}
if(min == null) {
min = 0;
}
if(variable == null) {
variable = "";
}
if(height == null) {
height = 10;
}
if(width == null) {
width = 100;
}
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
this._maxPercent = 100;
this.numDivisions = 100;
this.killOnEmpty = false;
this.fixedPosition = true;
flixel_FlxSprite.call(this,x,y);
if(direction == null) {
direction = flixel_ui_FlxBarFillDirection.LEFT_TO_RIGHT;
}
this.barWidth = width;
this.barHeight = height;
this._filledBarPoint = new openfl_geom_Point();
this._filledBarRect = new openfl_geom_Rectangle();
if(flixel_FlxG.renderBlit) {
this._zeroOffset = new openfl_geom_Point();
this._emptyBarRect = new openfl_geom_Rectangle();
this.makeGraphic(width,height,0,true);
} else {
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this._filledFlxRect = rect;
}
if(parentRef != null) {
this.parent = parentRef;
this.parentVariable = variable;
}
this.set_fillDirection(direction);
this.createFilledBar(-16756480,-16714752,showBorder);
this.setRange(min,max);
};
$hxClasses["flixel.ui.FlxBar"] = flixel_ui_FlxBar;
flixel_ui_FlxBar.__name__ = "flixel.ui.FlxBar";
flixel_ui_FlxBar.__super__ = flixel_FlxSprite;
flixel_ui_FlxBar.prototype = $extend(flixel_FlxSprite.prototype,{
fixedPosition: null
,pxPerPercent: null
,positionOffset: null
,killOnEmpty: null
,value: null
,min: null
,max: null
,range: null
,pct: null
,numDivisions: null
,emptyCallback: null
,filledCallback: null
,parent: null
,parentVariable: null
,barWidth: null
,barHeight: null
,frontFrames: null
,fillDirection: null
,_fillHorizontal: null
,_frontFrame: null
,_filledFlxRect: null
,_emptyBar: null
,_emptyBarRect: null
,_filledBar: null
,_zeroOffset: null
,_filledBarRect: null
,_filledBarPoint: null
,_maxPercent: null
,destroy: function() {
this.positionOffset = flixel_util_FlxDestroyUtil.put(this.positionOffset);
if(flixel_FlxG.renderBlit) {
this._frontFrame = null;
this._filledFlxRect = flixel_util_FlxDestroyUtil.put(this._filledFlxRect);
} else {
this._emptyBarRect = null;
this._zeroOffset = null;
this._emptyBar = flixel_util_FlxDestroyUtil.dispose(this._emptyBar);
this._filledBar = flixel_util_FlxDestroyUtil.dispose(this._filledBar);
}
this._filledBarRect = null;
this._filledBarPoint = null;
this.parent = null;
this.positionOffset = null;
this.emptyCallback = null;
this.filledCallback = null;
flixel_FlxSprite.prototype.destroy.call(this);
}
,trackParent: function(offsetX,offsetY) {
this.fixedPosition = false;
var X = offsetX;
var Y = offsetY;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.positionOffset = point;
if(Object.prototype.hasOwnProperty.call(this.parent,"scrollFactor")) {
this.scrollFactor.set_x(this.parent.scrollFactor.x);
this.scrollFactor.set_y(this.parent.scrollFactor.y);
}
}
,setParent: function(parentRef,variable,track,offsetX,offsetY) {
if(offsetY == null) {
offsetY = 0;
}
if(offsetX == null) {
offsetX = 0;
}
if(track == null) {
track = false;
}
this.parent = parentRef;
this.parentVariable = variable;
if(track) {
this.trackParent(offsetX,offsetY);
}
this.updateValueFromParent();
}
,stopTrackingParent: function(posX,posY) {
this.fixedPosition = true;
this.set_x(posX);
this.set_y(posY);
}
,setCallbacks: function(onEmpty,onFilled,killOnEmpty) {
if(killOnEmpty == null) {
killOnEmpty = false;
}
this.emptyCallback = onEmpty != null ? onEmpty : this.emptyCallback;
this.filledCallback = onFilled != null ? onFilled : this.filledCallback;
this.killOnEmpty = killOnEmpty;
}
,setRange: function(min,max) {
if(max <= min) {
throw haxe_Exception.thrown("FlxBar: max cannot be less than or equal to min");
}
this.min = min;
this.max = max;
this.range = max - min;
this.pct = this.range / this._maxPercent;
this.pxPerPercent = this._fillHorizontal ? this.barWidth / this._maxPercent : this.barHeight / this._maxPercent;
var f = this.get_value();
if(!isNaN(f)) {
this.set_value(Math.max(min,Math.min(this.get_value(),max)));
} else {
this.set_value(min);
}
}
,createFilledBar: function(empty,fill,showBorder,border) {
if(border == null) {
border = -1;
}
if(showBorder == null) {
showBorder = false;
}
this.createColoredEmptyBar(empty,showBorder,border);
this.createColoredFilledBar(fill,showBorder,border);
return this;
}
,createColoredEmptyBar: function(empty,showBorder,border) {
if(border == null) {
border = -1;
}
if(showBorder == null) {
showBorder = false;
}
if(flixel_FlxG.renderTile) {
var emptyKey = "empty: " + this.barWidth + "x" + this.barHeight + ":" + ("0x" + StringTools.hex(empty >> 24 & 255,2) + StringTools.hex(empty >> 16 & 255,2) + StringTools.hex(empty >> 8 & 255,2) + StringTools.hex(empty & 255,2));
if(showBorder) {
emptyKey += ",border: " + ("0x" + StringTools.hex(border >> 24 & 255,2) + StringTools.hex(border >> 16 & 255,2) + StringTools.hex(border >> 8 & 255,2) + StringTools.hex(border & 255,2));
}
if(flixel_FlxG.bitmap._cache.h[emptyKey] == null) {
var emptyBar = null;
if(showBorder) {
emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border);
emptyBar.fillRect(new openfl_geom_Rectangle(1,1,this.barWidth - 2,this.barHeight - 2),empty);
} else {
emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,empty);
}
flixel_FlxG.bitmap.add(emptyBar,false,emptyKey);
}
this.set_frames(flixel_FlxG.bitmap._cache.h[emptyKey].get_imageFrame());
} else {
if(showBorder) {
this._emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border);
this._emptyBar.fillRect(new openfl_geom_Rectangle(1,1,this.barWidth - 2,this.barHeight - 2),empty);
} else {
this._emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,empty);
}
this._emptyBarRect.setTo(0,0,this.barWidth,this.barHeight);
this.updateEmptyBar();
}
return this;
}
,createColoredFilledBar: function(fill,showBorder,border) {
if(border == null) {
border = -1;
}
if(showBorder == null) {
showBorder = false;
}
if(flixel_FlxG.renderTile) {
var filledKey = "filled: " + this.barWidth + "x" + this.barHeight + ":" + ("0x" + StringTools.hex(fill >> 24 & 255,2) + StringTools.hex(fill >> 16 & 255,2) + StringTools.hex(fill >> 8 & 255,2) + StringTools.hex(fill & 255,2));
if(showBorder) {
filledKey += ",border: " + ("0x" + StringTools.hex(border >> 24 & 255,2) + StringTools.hex(border >> 16 & 255,2) + StringTools.hex(border >> 8 & 255,2) + StringTools.hex(border & 255,2));
}
if(flixel_FlxG.bitmap._cache.h[filledKey] == null) {
var filledBar = null;
if(showBorder) {
filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border);
filledBar.fillRect(new openfl_geom_Rectangle(1,1,this.barWidth - 2,this.barHeight - 2),fill);
} else {
filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,fill);
}
flixel_FlxG.bitmap.add(filledBar,false,filledKey);
}
this.set_frontFrames(flixel_FlxG.bitmap._cache.h[filledKey].get_imageFrame());
} else {
if(showBorder) {
this._filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border);
this._filledBar.fillRect(new openfl_geom_Rectangle(1,1,this.barWidth - 2,this.barHeight - 2),fill);
} else {
this._filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,fill);
}
this._filledBarRect.setTo(0,0,this.barWidth,this.barHeight);
this.updateFilledBar();
}
return this;
}
,createGradientBar: function(empty,fill,chunkSize,rotation,showBorder,border) {
if(border == null) {
border = -1;
}
if(showBorder == null) {
showBorder = false;
}
if(rotation == null) {
rotation = 180;
}
if(chunkSize == null) {
chunkSize = 1;
}
this.createGradientEmptyBar(empty,chunkSize,rotation,showBorder,border);
this.createGradientFilledBar(fill,chunkSize,rotation,showBorder,border);
return this;
}
,createGradientEmptyBar: function(empty,chunkSize,rotation,showBorder,border) {
if(border == null) {
border = -1;
}
if(showBorder == null) {
showBorder = false;
}
if(rotation == null) {
rotation = 180;
}
if(chunkSize == null) {
chunkSize = 1;
}
if(flixel_FlxG.renderTile) {
var emptyKey = "Gradient:" + this.barWidth + "x" + this.barHeight + ",colors:[";
var _g = 0;
while(_g < empty.length) {
var col = empty[_g];
++_g;
emptyKey += "0x" + StringTools.hex(col >> 24 & 255,2) + StringTools.hex(col >> 16 & 255,2) + StringTools.hex(col >> 8 & 255,2) + StringTools.hex(col & 255,2) + ",";
}
emptyKey += "],chunkSize: " + chunkSize + ",rotation: " + rotation;
if(showBorder) {
emptyKey += ",border: " + ("0x" + StringTools.hex(border >> 24 & 255,2) + StringTools.hex(border >> 16 & 255,2) + StringTools.hex(border >> 8 & 255,2) + StringTools.hex(border & 255,2));
}
if(flixel_FlxG.bitmap._cache.h[emptyKey] == null) {
var emptyBar = null;
if(showBorder) {
emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border);
flixel_util_FlxGradient.overlayGradientOnBitmapData(emptyBar,this.barWidth - 2,this.barHeight - 2,empty,1,1,chunkSize,rotation);
} else {
emptyBar = flixel_util_FlxGradient.createGradientBitmapData(this.barWidth,this.barHeight,empty,chunkSize,rotation);
}
flixel_FlxG.bitmap.add(emptyBar,false,emptyKey);
}
this.set_frames(flixel_FlxG.bitmap._cache.h[emptyKey].get_imageFrame());
} else {
if(showBorder) {
this._emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border);
flixel_util_FlxGradient.overlayGradientOnBitmapData(this._emptyBar,this.barWidth - 2,this.barHeight - 2,empty,1,1,chunkSize,rotation);
} else {
this._emptyBar = flixel_util_FlxGradient.createGradientBitmapData(this.barWidth,this.barHeight,empty,chunkSize,rotation);
}
this._emptyBarRect.setTo(0,0,this.barWidth,this.barHeight);
this.updateEmptyBar();
}
return this;
}
,createGradientFilledBar: function(fill,chunkSize,rotation,showBorder,border) {
if(border == null) {
border = -1;
}
if(showBorder == null) {
showBorder = false;
}
if(rotation == null) {
rotation = 180;
}
if(chunkSize == null) {
chunkSize = 1;
}
if(flixel_FlxG.renderTile) {
var filledKey = "Gradient:" + this.barWidth + "x" + this.barHeight + ",colors:[";
var _g = 0;
while(_g < fill.length) {
var col = fill[_g];
++_g;
filledKey += "0x" + StringTools.hex(col >> 24 & 255,2) + StringTools.hex(col >> 16 & 255,2) + StringTools.hex(col >> 8 & 255,2) + StringTools.hex(col & 255,2) + ",";
}
filledKey += "],chunkSize: " + chunkSize + ",rotation: " + rotation;
if(showBorder) {
filledKey += ",border: " + ("0x" + StringTools.hex(border >> 24 & 255,2) + StringTools.hex(border >> 16 & 255,2) + StringTools.hex(border >> 8 & 255,2) + StringTools.hex(border & 255,2));
}
if(flixel_FlxG.bitmap._cache.h[filledKey] == null) {
var filledBar = null;
if(showBorder) {
filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border);
flixel_util_FlxGradient.overlayGradientOnBitmapData(filledBar,this.barWidth - 2,this.barHeight - 2,fill,1,1,chunkSize,rotation);
} else {
filledBar = flixel_util_FlxGradient.createGradientBitmapData(this.barWidth,this.barHeight,fill,chunkSize,rotation);
}
flixel_FlxG.bitmap.add(filledBar,false,filledKey);
}
this.set_frontFrames(flixel_FlxG.bitmap._cache.h[filledKey].get_imageFrame());
} else {
if(showBorder) {
this._filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border);
flixel_util_FlxGradient.overlayGradientOnBitmapData(this._filledBar,this.barWidth - 2,this.barHeight - 2,fill,1,1,chunkSize,rotation);
} else {
this._filledBar = flixel_util_FlxGradient.createGradientBitmapData(this.barWidth,this.barHeight,fill,chunkSize,rotation);
}
this._filledBarRect.setTo(0,0,this.barWidth,this.barHeight);
this.updateFilledBar();
}
return this;
}
,createImageBar: function(empty,fill,emptyBackground,fillBackground) {
if(fillBackground == null) {
fillBackground = -16711936;
}
if(emptyBackground == null) {
emptyBackground = -16777216;
}
this.createImageEmptyBar(empty,emptyBackground);
this.createImageFilledBar(fill,fillBackground);
return this;
}
,createImageEmptyBar: function(empty,emptyBackground) {
if(emptyBackground == null) {
emptyBackground = -16777216;
}
if(empty != null) {
var emptyGraphic = flixel_FlxG.bitmap.add(empty);
if(flixel_FlxG.renderTile) {
this.set_frames(emptyGraphic.get_imageFrame());
} else {
this._emptyBar = emptyGraphic.bitmap.clone();
this.barWidth = this._emptyBar.width;
this.barHeight = this._emptyBar.height;
this._emptyBarRect.setTo(0,0,this.barWidth,this.barHeight);
if(this.graphic == null || (this.frame.sourceSize.x != this.barWidth || this.frame.sourceSize.y != this.barHeight)) {
this.makeGraphic(this.barWidth,this.barHeight,0,true);
}
this.updateEmptyBar();
}
} else {
this.createColoredEmptyBar(emptyBackground);
}
return this;
}
,createImageFilledBar: function(fill,fillBackground) {
if(fillBackground == null) {
fillBackground = -16711936;
}
if(fill != null) {
var filledGraphic = flixel_FlxG.bitmap.add(fill);
if(flixel_FlxG.renderTile) {
this.set_frontFrames(filledGraphic.get_imageFrame());
} else {
this._filledBar = filledGraphic.bitmap.clone();
this._filledBarRect.setTo(0,0,this.barWidth,this.barHeight);
if(this.graphic == null || (this.frame.sourceSize.x != this.barWidth || this.frame.sourceSize.y != this.barHeight)) {
this.makeGraphic(this.barWidth,this.barHeight,0,true);
}
this.pxPerPercent = this._fillHorizontal ? this.barWidth / this._maxPercent : this.barHeight / this._maxPercent;
this.updateFilledBar();
}
} else {
this.createColoredFilledBar(fillBackground);
}
return this;
}
,set_fillDirection: function(direction) {
this.fillDirection = direction;
switch(direction._hx_index) {
case 2:case 3:case 6:case 7:
this._fillHorizontal = false;
break;
case 0:case 1:case 4:case 5:
this._fillHorizontal = true;
break;
}
return this.fillDirection;
}
,updateValueFromParent: function() {
this.set_value(Reflect.getProperty(this.parent,this.parentVariable));
}
,updateBar: function() {
this.updateEmptyBar();
this.updateFilledBar();
}
,updateEmptyBar: function() {
if(flixel_FlxG.renderBlit) {
this.get_pixels().copyPixels(this._emptyBar,this._emptyBarRect,this._zeroOffset);
this.dirty = true;
}
}
,updateFilledBar: function() {
this._filledBarRect.width = this.barWidth;
this._filledBarRect.height = this.barHeight;
var fraction = (this.get_value() - this.min) / this.range;
var percent = fraction * this._maxPercent;
var maxScale = this._fillHorizontal ? this.barWidth : this.barHeight;
var scaleInterval = maxScale / this.numDivisions;
var interval = Math.round((fraction * maxScale / scaleInterval | 0) * scaleInterval);
if(this._fillHorizontal) {
this._filledBarRect.width = interval | 0;
} else {
this._filledBarRect.height = interval | 0;
}
if(percent > 0) {
switch(this.fillDirection._hx_index) {
case 1:
this._filledBarRect.x = this.barWidth - this._filledBarRect.width;
this._filledBarPoint.x = this.barWidth - this._filledBarRect.width;
break;
case 0:case 2:
break;
case 3:
this._filledBarRect.y = this.barHeight - this._filledBarRect.height;
this._filledBarPoint.y = this.barHeight - this._filledBarRect.height;
break;
case 4:
this._filledBarRect.x = this.barWidth / 2 - this._filledBarRect.width / 2 | 0;
this._filledBarPoint.x = this.barWidth / 2 - this._filledBarRect.width / 2 | 0;
break;
case 5:
this._filledBarRect.width = maxScale - interval | 0;
this._filledBarPoint.x = (this.barWidth - this._filledBarRect.width) / 2 | 0;
break;
case 6:
this._filledBarRect.y = this.barHeight / 2 - this._filledBarRect.height / 2 | 0;
this._filledBarPoint.y = this.barHeight / 2 - this._filledBarRect.height / 2 | 0;
break;
case 7:
this._filledBarRect.height = maxScale - interval | 0;
this._filledBarPoint.y = (this.barHeight - this._filledBarRect.height) / 2 | 0;
break;
}
if(flixel_FlxG.renderBlit) {
this.get_pixels().copyPixels(this._filledBar,this._filledBarRect,this._filledBarPoint,null,null,true);
} else if(this.get_frontFrames() != null) {
var _this = this._filledFlxRect;
var FlashRect = this._filledBarRect;
_this.x = FlashRect.x;
_this.y = FlashRect.y;
_this.width = FlashRect.width;
_this.height = FlashRect.height;
var _this1 = _this;
_this1.x = Math.round(_this1.x);
_this1.y = Math.round(_this1.y);
_this1.width = Math.round(_this1.width);
_this1.height = Math.round(_this1.height);
if((percent | 0) > 0) {
this._frontFrame = this.get_frontFrames().get_frame().clipTo(this._filledFlxRect,this._frontFrame);
}
}
}
if(flixel_FlxG.renderBlit) {
this.dirty = true;
}
}
,update: function(elapsed) {
if(this.parent != null) {
if(Reflect.getProperty(this.parent,this.parentVariable) != this.get_value()) {
this.updateValueFromParent();
}
if(!this.fixedPosition) {
this.set_x(this.parent.x + this.positionOffset.x);
this.set_y(this.parent.y + this.positionOffset.y);
}
}
flixel_FlxSprite.prototype.update.call(this,elapsed);
}
,draw: function() {
flixel_FlxSprite.prototype.draw.call(this);
if(!flixel_FlxG.renderTile) {
return;
}
if(this.alpha == 0) {
return;
}
if(this.get_percent() > 0 && this._frontFrame.type != 2) {
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(!camera.visible || !camera.exists || !this.isOnScreen(camera)) {
continue;
}
this.getScreenPosition(this._point,camera).subtractPoint(this.offset);
this._frontFrame.prepareMatrix(this._matrix,0,this.flipX,this.flipY);
this._matrix.translate(-this.origin.x,-this.origin.y);
this._matrix.scale(this.scale.x,this.scale.y);
if(this.angle != 0) {
var _this = this._matrix;
var cos = this._cosAngle;
var sin = this._sinAngle;
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;
}
var _this1 = this._point;
var X = this.origin.x;
var Y = this.origin.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g2 = _this1;
_g2.set_x(_g2.x + X);
var _g3 = _this1;
_g3.set_y(_g3.y + Y);
if(this.isPixelPerfectRender(camera)) {
var _this2 = this._point;
_this2.set_x(Math.floor(_this2.x));
_this2.set_y(Math.floor(_this2.y));
}
this._matrix.translate(this._point.x,this._point.y);
camera.drawPixels(this._frontFrame,null,this._matrix,this.colorTransform,this.blend,this.antialiasing,this.shader);
}
}
}
,set_pixels: function(Pixels) {
if(flixel_FlxG.renderTile) {
return Pixels;
} else {
return flixel_FlxSprite.prototype.set_pixels.call(this,Pixels);
}
}
,toString: function() {
var value = this.min;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "min";
_this.value = value;
var value = this.max;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "max";
_this1.value = value;
var value = this.range;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "range";
_this2.value = value;
var value = this.pct;
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "%";
_this3.value = value;
var value = this.pxPerPercent;
var _this4 = flixel_util_LabelValuePair._pool.get();
_this4.label = "px/%";
_this4.value = value;
var value = this.get_value();
var _this5 = flixel_util_LabelValuePair._pool.get();
_this5.label = "value";
_this5.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5]);
}
,get_percent: function() {
if(this.get_value() > this.max) {
return this._maxPercent;
}
return Math.floor((this.get_value() - this.min) / this.range * this._maxPercent);
}
,set_percent: function(newPct) {
if(newPct >= 0 && newPct <= this._maxPercent) {
this.set_value(this.pct * newPct);
}
return newPct;
}
,set_value: function(newValue) {
this.value = Math.max(this.min,Math.min(newValue,this.max));
if(this.get_value() == this.min && this.emptyCallback != null) {
this.emptyCallback();
}
if(this.get_value() == this.max && this.filledCallback != null) {
this.filledCallback();
}
if(this.get_value() == this.min && this.killOnEmpty) {
this.kill();
}
this.updateBar();
return newValue;
}
,get_value: function() {
return this.value;
}
,set_numDivisions: function(newValue) {
this.numDivisions = newValue > 0 ? newValue : 100;
this.updateFilledBar();
return newValue;
}
,get_frontFrames: function() {
if(flixel_FlxG.renderTile) {
return this.frontFrames;
}
return null;
}
,set_frontFrames: function(value) {
if(flixel_FlxG.renderTile) {
this.frontFrames = value;
this._frontFrame = value != null ? value.get_frame().copyTo(this._frontFrame) : null;
} else {
this.createImageFilledBar(value.get_frame().paint());
}
return value;
}
,get_backFrames: function() {
if(flixel_FlxG.renderTile) {
return this.frames;
}
return null;
}
,set_backFrames: function(value) {
if(flixel_FlxG.renderTile) {
this.set_frames(value);
} else {
this.createImageEmptyBar(value.get_frame().paint());
}
return value;
}
,__class__: flixel_ui_FlxBar
,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_fillDirection:"set_fillDirection",set_backFrames:"set_backFrames",get_backFrames:"get_backFrames",set_frontFrames:"set_frontFrames",get_frontFrames:"get_frontFrames",set_numDivisions:"set_numDivisions",set_value:"set_value",get_value:"get_value",set_percent:"set_percent",get_percent:"get_percent"})
});
var flixel_addons_ui_interfaces_IHasParams = function() { };
$hxClasses["flixel.addons.ui.interfaces.IHasParams"] = flixel_addons_ui_interfaces_IHasParams;
flixel_addons_ui_interfaces_IHasParams.__name__ = "flixel.addons.ui.interfaces.IHasParams";
flixel_addons_ui_interfaces_IHasParams.__isInterface__ = true;
flixel_addons_ui_interfaces_IHasParams.prototype = {
params: null
,set_params: null
,__class__: flixel_addons_ui_interfaces_IHasParams
,__properties__: {set_params:"set_params"}
};
var flixel_addons_ui_FlxUIBar = function(x,y,direction,width,height,parentRef,variable,min,max,showBorder) {
if(showBorder == null) {
showBorder = false;
}
if(max == null) {
max = 100;
}
if(min == null) {
min = 0;
}
if(variable == null) {
variable = "";
}
if(height == null) {
height = 10;
}
if(width == null) {
width = 100;
}
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
flixel_ui_FlxBar.call(this,x,y,direction,width,height,parentRef,variable,min,max,showBorder);
};
$hxClasses["flixel.addons.ui.FlxUIBar"] = flixel_addons_ui_FlxUIBar;
flixel_addons_ui_FlxUIBar.__name__ = "flixel.addons.ui.FlxUIBar";
flixel_addons_ui_FlxUIBar.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable];
flixel_addons_ui_FlxUIBar.__super__ = flixel_ui_FlxBar;
flixel_addons_ui_FlxUIBar.prototype = $extend(flixel_ui_FlxBar.prototype,{
name: null
,style: null
,params: null
,broadcastToFlxUI: null
,clone: function() {
var w = this.get_width() | 0;
var h = this.get_height() | 0;
var showBorder = this.style != null && this.style.borderColor != null;
if(showBorder) {
w -= 2;
h -= 2;
}
var b = new flixel_addons_ui_FlxUIBar(this.x,this.y,this.fillDirection,w,h,this.parent,this.parentVariable,this.min,this.max,showBorder);
b.set_style(this.style);
b.set_value(this.get_value());
return b;
}
,set_style: function(Style) {
this.style = Style;
this.resize(this.barWidth,this.barHeight);
return this.style;
}
,resize: function(w,h) {
this.set_width(w);
this.set_height(h);
this.barWidth = this.get_width() | 0;
this.barHeight = this.get_height() | 0;
if(flixel_FlxG.renderBlit) {
this.makeGraphic(this.barWidth,this.barHeight,0,true);
}
var showBorder = this.style.borderColor != null;
var ec = this.style.emptyColor == null ? -16777216 : this.style.emptyColor;
var fc = this.style.filledColor == null ? -65536 : this.style.filledColor;
var bc = this.style.borderColor == null ? -16777216 : this.style.borderColor;
if(this.style.filledColor != null) {
this.createFilledBar(ec,fc,showBorder,bc);
}
if(this.style.filledColors != null) {
var ecs = this.style.emptyColors == null ? [-16777216] : this.style.emptyColors;
var fcs = this.style.filledColors == null ? [-65536] : this.style.filledColors;
var chunk = this.style.chunkSize == null ? 1 : this.style.chunkSize;
var gradRot = this.style.emptyImgSrc == null ? 180 : this.style.gradRotation;
this.createGradientBar(ecs,fcs,chunk,gradRot,showBorder,bc);
}
if(this.style.filledImgSrc != "") {
this.createImageBar(this.style.emptyImgSrc,this.style.filledImgSrc,ec,fc);
}
this.setRange(this.min,this.max);
this.set_value(this.get_value());
}
,set_params: function(p) {
this.params = p;
return this.params;
}
,__class__: flixel_addons_ui_FlxUIBar
,__properties__: $extend(flixel_ui_FlxBar.prototype.__properties__,{set_params:"set_params",set_style:"set_style"})
});
var flixel_input_IFlxInput = function() { };
$hxClasses["flixel.input.IFlxInput"] = flixel_input_IFlxInput;
flixel_input_IFlxInput.__name__ = "flixel.input.IFlxInput";
flixel_input_IFlxInput.__isInterface__ = true;
flixel_input_IFlxInput.prototype = {
get_justReleased: null
,get_released: null
,get_pressed: null
,get_justPressed: null
,__class__: flixel_input_IFlxInput
,__properties__: {get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased"}
};
var flixel_ui_FlxTypedButton = function(X,Y,OnClick) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.lastStatus = -1;
this.maxInputMovement = Infinity;
this.mouseButtons = [-1];
this.allowSwiping = true;
this.statusAnimations = ["normal","highlight","pressed"];
this.labelAlphas = [0.8,1.0,0.5];
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
var point2 = flixel_math_FlxPoint._pool.get().set(0,1);
point2._inPool = false;
this.labelOffsets = [point,point1,point2];
flixel_FlxSprite.call(this,X,Y);
this.loadDefaultGraphic();
this.onUp = new flixel_ui__$FlxButton_FlxButtonEvent(OnClick);
this.onDown = new flixel_ui__$FlxButton_FlxButtonEvent();
this.onOver = new flixel_ui__$FlxButton_FlxButtonEvent();
this.onOut = new flixel_ui__$FlxButton_FlxButtonEvent();
this.set_status(0);
this.scrollFactor.set();
openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onUpEventListener));
this.input = new flixel_input_FlxInput(0);
};
$hxClasses["flixel.ui.FlxTypedButton"] = flixel_ui_FlxTypedButton;
flixel_ui_FlxTypedButton.__name__ = "flixel.ui.FlxTypedButton";
flixel_ui_FlxTypedButton.__interfaces__ = [flixel_input_IFlxInput];
flixel_ui_FlxTypedButton.__super__ = flixel_FlxSprite;
flixel_ui_FlxTypedButton.prototype = $extend(flixel_FlxSprite.prototype,{
label: null
,labelOffsets: null
,labelAlphas: null
,statusAnimations: null
,allowSwiping: null
,mouseButtons: null
,maxInputMovement: null
,status: null
,onUp: null
,onDown: null
,onOver: null
,onOut: null
,_spriteLabel: null
,input: null
,currentInput: null
,lastStatus: null
,graphicLoaded: function() {
flixel_FlxSprite.prototype.graphicLoaded.call(this);
this.setupAnimation("normal",0);
this.setupAnimation("highlight",1);
this.setupAnimation("pressed",2);
}
,loadDefaultGraphic: function() {
this.loadGraphic("flixel/images/ui/button.png",true,80,20);
}
,setupAnimation: function(animationName,frameIndex) {
frameIndex = Math.min(frameIndex,this.animation._sprite.numFrames - 1) | 0;
this.animation.add(animationName,[frameIndex]);
}
,destroy: function() {
this.set_label(flixel_util_FlxDestroyUtil.destroy(this.label));
this._spriteLabel = null;
this.onUp = flixel_util_FlxDestroyUtil.destroy(this.onUp);
this.onDown = flixel_util_FlxDestroyUtil.destroy(this.onDown);
this.onOver = flixel_util_FlxDestroyUtil.destroy(this.onOver);
this.onOut = flixel_util_FlxDestroyUtil.destroy(this.onOut);
this.labelOffsets = flixel_util_FlxDestroyUtil.putArray(this.labelOffsets);
this.labelAlphas = null;
this.currentInput = null;
this.input = null;
openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onUpEventListener));
flixel_FlxSprite.prototype.destroy.call(this);
}
,update: function(elapsed) {
flixel_FlxSprite.prototype.update.call(this,elapsed);
if(this.visible) {
this.updateButton();
if(this.lastStatus != this.status) {
this.updateStatusAnimation();
this.lastStatus = this.status;
}
}
this.input.update();
}
,updateStatusAnimation: function() {
this.animation.play(this.statusAnimations[this.status]);
}
,draw: function() {
flixel_FlxSprite.prototype.draw.call(this);
if(this._spriteLabel != null && this._spriteLabel.visible) {
this._spriteLabel.set_cameras(this.get_cameras());
this._spriteLabel.draw();
}
}
,stampOnAtlas: function(atlas) {
var buttonNode = atlas.addNode(this.graphic.bitmap,this.graphic.key);
var result = buttonNode != null;
if(buttonNode != null) {
var buttonFrames = this.frames;
var X = buttonFrames.tileSize.x;
var Y = buttonFrames.tileSize.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var tileSize = point;
var tileFrames = buttonNode.getTileFrames(tileSize);
this.set_frames(tileFrames);
}
if(result && this.label != null) {
var labelNode = atlas.addNode(this.label.graphic.bitmap,this.label.graphic.key);
result = result && labelNode != null;
if(labelNode != null) {
this.label.set_frames(labelNode.getImageFrame());
}
}
return result;
}
,updateButton: function() {
var overlapFound = this.checkMouseOverlap();
if(!overlapFound) {
overlapFound = this.checkTouchOverlap();
}
if(this.currentInput != null && this.currentInput.get_justReleased() && overlapFound) {
this.onUpHandler();
}
if(this.status != 0 && (!overlapFound || this.currentInput != null && this.currentInput.get_justReleased())) {
this.onOutHandler();
}
}
,checkMouseOverlap: function() {
var overlap = false;
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = this.mouseButtons;
while(_g2 < _g3.length) {
var buttonID = _g3[_g2];
++_g2;
var button = flixel_input_mouse_FlxMouseButton.getByID(buttonID);
if(button != null && this.checkInput(flixel_FlxG.mouse,button,button.justPressedPosition,camera)) {
overlap = true;
}
}
}
return overlap;
}
,checkTouchOverlap: function() {
var overlap = false;
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = flixel_FlxG.touches.list;
while(_g2 < _g3.length) {
var touch = _g3[_g2];
++_g2;
if(this.checkInput(touch,touch,touch.justPressedPosition,camera)) {
overlap = true;
}
}
}
return overlap;
}
,checkInput: function(pointer,input,justPressedPosition,camera) {
var tmp;
if(this.maxInputMovement != Infinity) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
tmp = justPressedPosition.distanceTo(pointer.getScreenPosition(null,point1)) > this.maxInputMovement;
} else {
tmp = false;
}
if(tmp && input == this.currentInput) {
this.currentInput = null;
} else if(this.overlapsPoint(pointer.getWorldPosition(camera,this._point),true,camera)) {
this.updateStatus(input);
return true;
}
return false;
}
,updateStatus: function(input) {
if(input.get_justPressed()) {
this.currentInput = input;
this.onDownHandler();
} else if(this.status == 0) {
if(this.allowSwiping && input.get_pressed()) {
this.onDownHandler();
} else {
this.onOverHandler();
}
}
}
,updateLabelPosition: function() {
if(this._spriteLabel != null) {
this._spriteLabel.set_x((this.pixelPerfectPosition ? Math.floor(this.x) : this.x) + this.labelOffsets[this.status].x);
this._spriteLabel.set_y((this.pixelPerfectPosition ? Math.floor(this.y) : this.y) + this.labelOffsets[this.status].y);
}
}
,updateLabelAlpha: function() {
if(this._spriteLabel != null && this.labelAlphas.length > this.status) {
this._spriteLabel.set_alpha(this.alpha * this.labelAlphas[this.status]);
}
}
,onUpEventListener: function(_) {
if(this.visible && this.exists && this.active && this.status == 2) {
this.onUpHandler();
}
}
,onUpHandler: function() {
this.set_status(0);
this.input.release();
this.currentInput = null;
var _this = this.onUp;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onDownHandler: function() {
this.set_status(2);
this.input.press();
var _this = this.onDown;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onOverHandler: function() {
if(!flixel_FlxG.mouse.enabled) {
this.set_status(0);
return;
}
this.set_status(1);
var _this = this.onOver;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onOutHandler: function() {
this.set_status(0);
this.input.release();
var _this = this.onOut;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,set_label: function(Value) {
if(Value != null) {
Value.scrollFactor.put();
Value.scrollFactor = this.scrollFactor;
}
this.label = Value;
this._spriteLabel = this.label;
this.updateLabelPosition();
return Value;
}
,set_status: function(Value) {
this.status = Value;
this.updateLabelAlpha();
return this.status;
}
,set_alpha: function(Value) {
flixel_FlxSprite.prototype.set_alpha.call(this,Value);
this.updateLabelAlpha();
return this.alpha;
}
,set_x: function(Value) {
flixel_FlxSprite.prototype.set_x.call(this,Value);
this.updateLabelPosition();
return this.x;
}
,set_y: function(Value) {
flixel_FlxSprite.prototype.set_y.call(this,Value);
this.updateLabelPosition();
return this.y;
}
,get_justReleased: function() {
return this.input.current == -1;
}
,get_released: function() {
var _this = this.input;
if(_this.current != 0) {
return _this.current == -1;
} else {
return true;
}
}
,get_pressed: function() {
var _this = this.input;
if(_this.current != 1) {
return _this.current == 2;
} else {
return true;
}
}
,get_justPressed: function() {
return this.input.current == 2;
}
,__class__: flixel_ui_FlxTypedButton
,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",set_status:"set_status",set_label:"set_label"})
});
var flixel_addons_ui_interfaces_ICursorPointable = function() { };
$hxClasses["flixel.addons.ui.interfaces.ICursorPointable"] = flixel_addons_ui_interfaces_ICursorPointable;
flixel_addons_ui_interfaces_ICursorPointable.__name__ = "flixel.addons.ui.interfaces.ICursorPointable";
flixel_addons_ui_interfaces_ICursorPointable.__isInterface__ = true;
var flixel_addons_ui_interfaces_IFlxUIClickable = function() { };
$hxClasses["flixel.addons.ui.interfaces.IFlxUIClickable"] = flixel_addons_ui_interfaces_IFlxUIClickable;
flixel_addons_ui_interfaces_IFlxUIClickable.__name__ = "flixel.addons.ui.interfaces.IFlxUIClickable";
flixel_addons_ui_interfaces_IFlxUIClickable.__isInterface__ = true;
flixel_addons_ui_interfaces_IFlxUIClickable.prototype = {
set_skipButtonUpdate: null
,skipButtonUpdate: null
,__class__: flixel_addons_ui_interfaces_IFlxUIClickable
,__properties__: {set_skipButtonUpdate:"set_skipButtonUpdate"}
};
var flixel_addons_ui_interfaces_IFlxUIButton = function() { };
$hxClasses["flixel.addons.ui.interfaces.IFlxUIButton"] = flixel_addons_ui_interfaces_IFlxUIButton;
flixel_addons_ui_interfaces_IFlxUIButton.__name__ = "flixel.addons.ui.interfaces.IFlxUIButton";
flixel_addons_ui_interfaces_IFlxUIButton.__isInterface__ = true;
flixel_addons_ui_interfaces_IFlxUIButton.__interfaces__ = [flixel_util_IFlxDestroyable,flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget];
flixel_addons_ui_interfaces_IFlxUIButton.prototype = {
set_toggled: null
,set_toggle_label: null
,get_justMousedOver: null
,get_mouseIsOver: null
,get_mouseIsOut: null
,get_justMousedOut: null
,set_status: null
,up_color: null
,over_color: null
,down_color: null
,up_toggle_color: null
,over_toggle_color: null
,down_toggle_color: null
,up_visible: null
,over_visible: null
,down_visible: null
,up_toggle_visible: null
,over_toggle_visible: null
,down_toggle_visible: null
,resize_ratio: null
,resize_point: null
,has_toggle: null
,toggled: null
,toggle_label: null
,autoResizeLabel: null
,autoCenterLabel: null
,loadGraphicSlice9: null
,loadGraphicsMultiple: null
,loadGraphicsUpOverDown: null
,forceStateHandler: null
,status: null
,__class__: flixel_addons_ui_interfaces_IFlxUIButton
,__properties__: {set_status:"set_status",get_justMousedOut:"get_justMousedOut",get_mouseIsOut:"get_mouseIsOut",get_mouseIsOver:"get_mouseIsOver",get_justMousedOver:"get_justMousedOver",set_toggle_label:"set_toggle_label",set_toggled:"set_toggled"}
};
var flixel_addons_ui_FlxUITypedButton = function(X,Y,OnClick) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._centerLabelOffset = null;
this._src_h = 0;
this._src_w = 0;
this._no_graphic = false;
this._assetsToCleanup = [];
this._autoCleanup = true;
this.autoResizeLabel = false;
this.skipButtonUpdate = false;
this.round_labels = true;
this.down_toggle_visible = true;
this.over_toggle_visible = true;
this.up_toggle_visible = true;
this.down_visible = true;
this.over_visible = true;
this.up_visible = true;
this.down_toggle_color = null;
this.over_toggle_color = null;
this.up_toggle_color = null;
this.down_color = null;
this.over_color = null;
this.up_color = null;
this.broadcastToFlxUI = true;
this.toggled = false;
this.has_toggle = false;
this.tile = 0;
this.resize_point = null;
this.resize_ratio_axis = 1;
this.resize_ratio = -1;
flixel_ui_FlxTypedButton.call(this,X,Y,OnClick);
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this._centerLabelOffset = point;
this.statusAnimations[3] = "normal_toggled";
this.statusAnimations[4] = "highlight_toggled";
this.statusAnimations[5] = "pressed_toggled";
var _g = [];
_g.push(1);
_g.push(1);
_g.push(1);
this.labelAlphas = _g;
this.inputOver = new flixel_input_FlxInput(0);
};
$hxClasses["flixel.addons.ui.FlxUITypedButton"] = flixel_addons_ui_FlxUITypedButton;
flixel_addons_ui_FlxUITypedButton.__name__ = "flixel.addons.ui.FlxUITypedButton";
flixel_addons_ui_FlxUITypedButton.__interfaces__ = [flixel_addons_ui_interfaces_ICursorPointable,flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable,flixel_addons_ui_interfaces_IFlxUIButton];
flixel_addons_ui_FlxUITypedButton.__super__ = flixel_ui_FlxTypedButton;
flixel_addons_ui_FlxUITypedButton.prototype = $extend(flixel_ui_FlxTypedButton.prototype,{
name: null
,resize_ratio: null
,resize_ratio_axis: null
,resize_point: null
,tile: null
,has_toggle: null
,toggled: null
,set_toggled: function(b) {
this.toggled = b;
this.updateStatusAnimation();
return this.toggled;
}
,broadcastToFlxUI: null
,inputOver: null
,get_justMousedOver: function() {
return this.inputOver.current == 2;
}
,get_justMousedOut: function() {
return this.inputOver.current == -1;
}
,get_mouseIsOver: function() {
var _this = this.inputOver;
if(_this.current != 1) {
return _this.current == 2;
} else {
return true;
}
}
,get_mouseIsOut: function() {
var _this = this.inputOver;
if(_this.current != 0) {
return _this.current == -1;
} else {
return true;
}
}
,up_color: null
,over_color: null
,down_color: null
,up_toggle_color: null
,over_toggle_color: null
,down_toggle_color: null
,up_visible: null
,over_visible: null
,down_visible: null
,up_toggle_visible: null
,over_toggle_visible: null
,down_toggle_visible: null
,toggle_label: null
,set_toggle_label: function(f) {
if(this.label != null) {
this.toggle_label = f;
return this.toggle_label;
}
return null;
}
,set_visible: function(Value) {
if(this.visible && Value == false) {
this.inputOver.release();
}
return flixel_ui_FlxTypedButton.prototype.set_visible.call(this,Value);
}
,round_labels: null
,skipButtonUpdate: null
,set_skipButtonUpdate: function(b) {
this.skipButtonUpdate = b;
return this.skipButtonUpdate;
}
,params: null
,set_params: function(p) {
this.params = p;
return this.params;
}
,destroy: function() {
this.resize_point = flixel_util_FlxDestroyUtil.put(this.resize_point);
flixel_ui_FlxTypedButton.prototype.destroy.call(this);
}
,autoResizeLabel: null
,graphicLoaded: function() {
flixel_ui_FlxTypedButton.prototype.graphicLoaded.call(this);
this.setupAnimation("normal_toggled",3);
this.setupAnimation("highlight_toggled",4);
this.setupAnimation("pressed_toggled",5);
if(this._autoCleanup) {
this.cleanup();
}
}
,copyGraphic: function(other) {
this._src_w = other._src_w;
this._src_h = other._src_h;
this._frame_indeces = flixel_addons_ui_U.copy_shallow_arr_i(other._frame_indeces);
this.tile = other.tile;
this.resize_ratio = other.resize_ratio;
if(other._centerLabelOffset == null) {
this._centerLabelOffset = null;
} else {
this._centerLabelOffset = new flixel_math_FlxPoint(other._centerLabelOffset.x,other._centerLabelOffset.y);
}
this._no_graphic = other._no_graphic;
if(other._slice9_arrays != null) {
this._slice9_arrays = other._slice9_arrays.slice();
}
if(other._slice9_assets != null) {
this._slice9_assets = other._slice9_assets.slice();
}
if(this._slice9_arrays == null || this._slice9_assets == null) {
this.loadGraphic(other.graphic,true,other.get_width(),other.get_height());
} else {
this.resize(other.get_width(),other.get_height());
}
}
,copyStyle: function(other) {
this.up_color = other.up_color;
this.over_color = other.over_color;
this.down_color = other.down_color;
this.up_toggle_color = other.up_toggle_color;
this.over_toggle_color = other.over_toggle_color;
this.down_toggle_color = other.over_toggle_color;
this.up_visible = other.up_visible;
this.over_visible = other.over_visible;
this.down_visible = other.down_visible;
this.up_toggle_visible = other.up_toggle_visible;
this.over_toggle_visible = other.over_toggle_visible;
this.down_toggle_visible = other.down_toggle_visible;
var ctPt = other.getCenterLabelOffset();
this.setCenterLabelOffset(ctPt.x,ctPt.y);
var i = 0;
var _g = 0;
var _g1 = other.labelOffsets;
while(_g < _g1.length) {
var flxPt = _g1[_g];
++_g;
this.labelOffsets[i].set_x(flxPt.x);
this.labelOffsets[i].set_y(flxPt.y);
++i;
}
i = 0;
var _g = 0;
var _g1 = other.labelAlphas;
while(_g < _g1.length) {
var alpha = _g1[_g];
++_g;
this.labelAlphas[i] = alpha;
++i;
}
}
,setAllLabelOffsets: function(X,Y) {
var _g = 0;
var _g1 = this.labelOffsets;
while(_g < _g1.length) {
var labelOffset = _g1[_g];
++_g;
labelOffset.set(X,Y);
}
}
,update: function(elapsed) {
flixel_ui_FlxTypedButton.prototype.update.call(this,elapsed);
var tmp;
if(this.status == 0) {
var _this = this.inputOver;
tmp = _this.current == 1 || _this.current == 2;
} else {
tmp = false;
}
if(tmp && this.input.current == -1 == false) {
this.inputOver.release();
}
this.inputOver.update();
if(this.label != null) {
var theLabel = this.fetchAndShowCorrectLabel();
theLabel.set_x(this.x + this._centerLabelOffset.x + this.labelOffsets[this.status].x);
theLabel.set_y(this.y + this._centerLabelOffset.y + this.labelOffsets[this.status].y);
if(this.round_labels) {
theLabel.set_x(theLabel.x + 0.5 | 0);
theLabel.set_y(theLabel.y + 0.5 | 0);
}
theLabel.scrollFactor = this.scrollFactor;
}
}
,updateStatusAnimation: function() {
if(this.has_toggle && this.toggled) {
this.animation.play(this.statusAnimations[this.status + 3]);
} else {
flixel_ui_FlxTypedButton.prototype.updateStatusAnimation.call(this);
}
}
,draw: function() {
flixel_ui_FlxTypedButton.prototype.draw.call(this);
if(this.has_toggle && this.toggled && this.toggle_label != null && this.toggle_label.visible == true) {
this.toggle_label.set_cameras(this.get_cameras());
this.toggle_label.draw();
}
}
,resize: function(W,H) {
this.doResize(W,H);
}
,doResize: function(W,H,Redraw) {
if(Redraw == null) {
Redraw = true;
}
var old_width = this.get_width();
var old_height = this.get_height();
var label_diffx = 0;
var label_diffy = 0;
if(this.label != null) {
label_diffx = this.get_width() - this._spriteLabel.get_width();
label_diffy = this.get_height() - this._spriteLabel.get_height();
}
if(W <= 0) {
W = 80;
}
if(H <= 0) {
H = 20;
}
if(Redraw) {
if(this._slice9_assets != null) {
this.loadGraphicSlice9(this._slice9_assets,W | 0,H | 0,this._slice9_arrays,this.tile,this.resize_ratio,this.has_toggle,this._src_w,this._src_h,this._frame_indeces);
} else if(this._no_graphic) {
var upB;
if(!this.has_toggle) {
upB = new openfl_display_BitmapData(W | 0,H * 3 | 0,true,0);
} else {
upB = new openfl_display_BitmapData(W | 0,H * 6 | 0,true,0);
}
this.loadGraphicsUpOverDown(upB);
} else {
this.loadGraphicSlice9(null,W | 0,H | 0,null,this.tile);
}
}
if(this.label != null && this.autoResizeLabel) {
if(js_Boot.__implements(this.label,flixel_addons_ui_interfaces_IResizable)) {
var targetW = W - label_diffx;
var targetH = H - label_diffy;
var ir = this.label;
ir.resize(targetW,targetH);
}
}
this.autoCenterLabel();
var diff_w = this.get_width() - old_width;
var diff_h = this.get_height() - old_height;
if(this.resize_point != null) {
var delta_x = diff_w * this.resize_point.x;
var delta_y = diff_h * this.resize_point.y;
var _g = this;
_g.set_x(_g.x - delta_x);
var _g = this;
_g.set_y(_g.y - delta_y);
}
}
,getBmp: function(asset) {
return flixel_addons_ui_U.getBmp(asset);
}
,loadGraphicsMultiple: function(assets,Key) {
if(Key == null) {
Key = "";
}
this._slice9_assets = null;
this._slice9_arrays = null;
this.resize_ratio = -1;
var key = "";
if(assets.length <= 3) {
while(assets.length < 3) assets.push(null);
if(assets[1] == null) {
assets[1] = assets[0];
}
if(assets[2] == null) {
assets[2] = assets[1];
}
key = assets.join(",");
if(Key != "") {
key = Key;
}
if(flixel_FlxG.bitmap._cache.h[key] != null) {
this.loadGraphicsUpOverDown(key,false,key);
} else {
var pixels = this.assembleButtonFrames(this.getBmp(assets[0]),this.getBmp(assets[1]),this.getBmp(assets[2]));
this.loadGraphicsUpOverDown(pixels,false,key);
}
} else if(assets.length <= 6) {
while(assets.length < 6) assets.push(null);
if(assets[4] == null) {
assets[4] = assets[3];
}
if(assets[5] == null) {
assets[5] = assets[4];
}
key = assets.join(",");
if(Key != "") {
key = Key;
}
if(flixel_FlxG.bitmap._cache.h[key] != null) {
this.loadGraphicsUpOverDown(key,true,key);
} else {
var pixels_normal = this.assembleButtonFrames(this.getBmp(assets[0]),this.getBmp(assets[1]),this.getBmp(assets[2]));
var pixels_toggle = this.assembleButtonFrames(this.getBmp(assets[3]),this.getBmp(assets[4]),this.getBmp(assets[5]));
var pixels = this.combineToggleBitmaps(pixels_normal,pixels_toggle);
this.loadGraphicsUpOverDown(pixels,true,key);
pixels_normal.dispose();
pixels_toggle.dispose();
}
}
}
,loadGraphicsUpOverDown: function(asset,for_toggle,key) {
if(for_toggle == null) {
for_toggle = false;
}
this._slice9_assets = null;
this._slice9_arrays = null;
this.resize_ratio = -1;
if(for_toggle) {
this.has_toggle = true;
}
var upB = null;
var overB = null;
var downB = null;
var bd = null;
if(((asset) instanceof openfl_display_BitmapData)) {
bd = asset;
} else if(typeof(asset) == "string") {
bd = this.getBmp(asset);
}
upB = this.grabButtonFrame(bd,0,this.has_toggle,0,0,key);
overB = this.grabButtonFrame(bd,1,this.has_toggle,0,0,key);
downB = this.grabButtonFrame(bd,2,this.has_toggle,0,0,key);
var normalGraphic = key;
if(key == null || key == "" || flixel_FlxG.bitmap._cache.h[key] != null == false) {
normalGraphic = this.assembleButtonFrames(upB,overB,downB);
}
if(this.has_toggle) {
var normalPixels = this.assembleButtonFrames(upB,overB,downB);
upB = this.grabButtonFrame(bd,3,true,0,0,key);
overB = this.grabButtonFrame(bd,4,true,0,0,key);
downB = this.grabButtonFrame(bd,5,true,0,0,key);
var togglePixels = this.assembleButtonFrames(upB,overB,downB);
var combinedPixels = this.combineToggleBitmaps(normalPixels,togglePixels);
normalPixels = flixel_util_FlxDestroyUtil.dispose(normalPixels);
togglePixels = flixel_util_FlxDestroyUtil.dispose(togglePixels);
this.loadGraphic(combinedPixels,true,upB.width,upB.height,false,key);
} else {
this.loadGraphic(normalGraphic,true,upB.width,upB.height,false,key);
}
}
,loadGraphicSlice9: function(assets,W,H,slice9,Tile,Resize_Ratio,isToggle,src_w,src_h,frame_indeces) {
if(src_h == null) {
src_h = 0;
}
if(src_w == null) {
src_w = 0;
}
if(isToggle == null) {
isToggle = false;
}
if(Resize_Ratio == null) {
Resize_Ratio = -1;
}
if(Tile == null) {
Tile = 0;
}
if(H == null) {
H = 20;
}
if(W == null) {
W = 80;
}
if(src_w != 0) {
this._src_w = src_w;
}
if(src_h != 0) {
this._src_h = src_h;
}
this.tile = Tile;
this.has_toggle = isToggle;
this.resize_ratio = Resize_Ratio;
this._slice9_assets = assets;
this._slice9_arrays = slice9;
var key = "";
var arr_bmpData = [];
var arr_flx9 = [];
if(frame_indeces == null) {
if(this.has_toggle) {
frame_indeces = [0,1,2,3,4,5];
} else {
frame_indeces = [0,1,2];
}
} else {
var max_index = 2;
if(this.has_toggle) {
max_index = 5;
}
while(frame_indeces.length < max_index + 1) frame_indeces.push(frame_indeces.length - 1);
var _g = 0;
var _g1 = frame_indeces.length;
while(_g < _g1) {
var i = _g++;
if(frame_indeces[i] > 5) {
frame_indeces[i] = 5;
} else if(frame_indeces[i] < 0) {
frame_indeces[i] = 0;
}
}
}
this._frame_indeces = frame_indeces;
if(W == 0) {
W = 80;
}
if(H == 0) {
H = 20;
}
var pt = flixel_addons_ui_U.applyResize(this.resize_ratio,this.resize_ratio_axis,W,H);
W = pt.x | 0;
H = pt.y | 0;
if(assets == null) {
var temp;
if(!isToggle) {
assets = ["flixel/flixel-ui/img/button.png"];
slice9 = [flixel_util_FlxStringUtil.toIntArray("6,6,11,11")];
temp = this.getBmp(assets[0]);
this._src_w = temp.width | 0;
this._src_h = temp.height / 3 | 0;
} else {
assets = ["flixel/flixel-ui/img/button_toggle.png"];
slice9 = [flixel_util_FlxStringUtil.toIntArray("6,6,11,11")];
temp = this.getBmp(assets[0]);
this._src_w = temp.width | 0;
this._src_h = temp.height / 6 | 0;
}
temp = null;
}
if(!this.has_toggle && assets.length <= 3) {
arr_bmpData = [null,null,null];
arr_flx9 = [null,null,null];
} else {
this.has_toggle = true;
arr_bmpData = [null,null,null,null,null,null];
arr_flx9 = [null,null,null,null,null,null];
}
this._flashRect2.width = W;
this._flashRect2.height = H;
var midKey = key += Std.string(assets) + "_slice9=" + Std.string(slice9) + "_src=" + this._src_w + "x" + this._src_h;
key += "_final=" + W + "x" + H + "_fi=" + Std.string(this._frame_indeces);
if(assets.length == 1) {
var all = this.getBmp(assets[0]);
var keySuffix = "_all";
if(this._src_w == 0 || this._src_h == 0) {
throw haxe_Exception.thrown(new openfl_errors_Error("Ambiguous situation! If you only provide one asset, you MUST provide src_w and src_h. Otherwise I can't tell if it's a stacked set of frames or a single frame."));
}
var multiFrame = all.height > this._src_h;
keySuffix += multiFrame ? "_multiframe" : "";
key += keySuffix;
midKey += keySuffix;
if(flixel_FlxG.bitmap._cache.h[key] != null) {
this.loadGraphic(key,true,W,H);
return;
}
if(multiFrame) {
var _g = 0;
var _g1 = arr_bmpData.length;
while(_g < _g1) {
var i = _g++;
arr_bmpData[i] = this.grabButtonFrame(all,i,this.has_toggle,this._src_w,this._src_h,midKey);
}
if(slice9 != null && slice9[0] != []) {
var _g = 0;
var _g1 = arr_bmpData.length;
while(_g < _g1) {
var i = _g++;
arr_flx9[i] = new flixel_addons_ui_FlxUI9SliceSprite(0,0,arr_bmpData[i],this._flashRect2,slice9[0],this.tile,false,assets[0] + ":" + i,this.resize_ratio);
arr_flx9[i].set_resize_point(this.resize_point);
}
var _g = 0;
var _g1 = arr_bmpData.length;
while(_g < _g1) {
var i = _g++;
arr_bmpData[i] = arr_flx9[i].get_pixels();
}
W = arr_bmpData[0].width;
H = arr_bmpData[0].height;
}
} else {
arr_bmpData[0] = all;
}
} else {
if(flixel_FlxG.bitmap._cache.h[key] != null) {
this.loadGraphic(key,true,W,H);
return;
}
if(!this.has_toggle) {
while(assets.length < 3) assets.push("");
} else {
while(assets.length < 6) assets.push("");
}
if(assets[0] != "") {
if(slice9 != null && slice9.length > 0 && slice9[0] != null && slice9[0].length > 0) {
while(slice9.length < assets.length) slice9.push(null);
if(slice9[0] != null) {
arr_flx9[0] = new flixel_addons_ui_FlxUI9SliceSprite(0,0,assets[0],this._flashRect2,slice9[0],this.tile,false,"",this.resize_ratio);
} else {
arr_flx9[0] = new flixel_addons_ui_FlxUISprite(0,0,assets[0]);
}
arr_bmpData[0] = arr_flx9[0].get_pixels();
var _g = 1;
var _g1 = assets.length;
while(_g < _g1) {
var i = _g++;
if(assets[i] != "") {
if(slice9[i] != null) {
arr_flx9[i] = new flixel_addons_ui_FlxUI9SliceSprite(0,0,assets[i],this._flashRect2,slice9[i],this.tile,false,"",this.resize_ratio);
} else {
arr_flx9[i] = new flixel_addons_ui_FlxUISprite(0,0,assets[i]);
}
arr_bmpData[i] = arr_flx9[i].get_pixels();
}
}
W = arr_bmpData[0].width;
H = arr_bmpData[0].height;
} else {
var _g = 0;
var _g1 = assets.length;
while(_g < _g1) {
var i = _g++;
arr_bmpData[i] = this.getBmp(assets[i]);
}
W = arr_bmpData[0].width;
H = arr_bmpData[0].height;
}
} else {
if(W == 0) {
W = 80;
}
if(H == 0) {
H = 20;
}
arr_bmpData[0] = new openfl_display_BitmapData(W,H * 3,true,0);
this._no_graphic = true;
}
}
var normalPixels = null;
if(!this.has_toggle) {
normalPixels = this.assembleButtonFrames(arr_bmpData[frame_indeces[0]],arr_bmpData[frame_indeces[1]],arr_bmpData[frame_indeces[2]]);
flixel_FlxG.bitmap.add(normalPixels,true,key);
this.loadGraphic(key,true,W,H);
} else {
var normalPixels = this.assembleButtonFrames(arr_bmpData[frame_indeces[0]],arr_bmpData[frame_indeces[1]],arr_bmpData[frame_indeces[2]]);
var togglePixels = this.assembleButtonFrames(arr_bmpData[frame_indeces[3]],arr_bmpData[frame_indeces[4]],arr_bmpData[frame_indeces[5]]);
var combinedPixels = this.combineToggleBitmaps(normalPixels,togglePixels);
normalPixels = flixel_util_FlxDestroyUtil.dispose(normalPixels);
togglePixels = flixel_util_FlxDestroyUtil.dispose(togglePixels);
flixel_FlxG.bitmap.add(combinedPixels,true,key);
this.loadGraphic(key,true,W,H);
}
var _g = 0;
var _g1 = arr_flx9.length;
while(_g < _g1) {
var i = _g++;
if(arr_flx9[i] != null) {
arr_flx9[i].destroy();
arr_flx9[i] = null;
}
}
while(arr_flx9.length > 0) arr_flx9.pop();
arr_flx9 = null;
while(arr_bmpData.length > 0) arr_bmpData.pop();
arr_bmpData = null;
}
,autoCenterLabel: function() {
if(this.label != null) {
var offX = 0;
var offY = 0;
offX = this.get_width() - this._spriteLabel.get_width();
if(((this.label) instanceof flixel_addons_ui_FlxUIText)) {
var tlabel = this.label;
offX = (this.get_width() - tlabel.get_fieldWidth()) / 2;
offY = (this.get_height() - tlabel.get_height()) / 2;
} else {
offX = (this.get_width() - this._spriteLabel.get_width()) / 2;
offY = (this.get_height() - this._spriteLabel.get_height()) / 2;
}
this._centerLabelOffset.set_x(offX);
this._centerLabelOffset.set_y(offY);
}
}
,setCenterLabelOffset: function(X,Y) {
this._centerLabelOffset.set_x(X);
this._centerLabelOffset.set_y(Y);
}
,getCenterLabelOffset: function() {
var X = this._centerLabelOffset.x;
var Y = this._centerLabelOffset.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
return point;
}
,forceStateHandler: function(event) {
switch(event) {
case "click_button":
this.onUpHandler();
break;
case "down_button":
this.onDownHandler();
break;
case "out_button":
this.onOutHandler();
break;
case "over_button":
this.onOverHandler();
break;
}
}
,grabButtonFrame: function(all_frames,button_state,for_toggle,src_w,src_h,key) {
if(src_h == null) {
src_h = 0;
}
if(src_w == null) {
src_w = 0;
}
if(for_toggle == null) {
for_toggle = false;
}
var h = src_h;
if(h == 0) {
if(!for_toggle) {
h = all_frames.height / 3 | 0;
} else {
h = all_frames.height / 6 | 0;
}
}
var w = src_w;
if(w == 0) {
w = all_frames.width;
}
this._flashRect.x = 0;
this._flashRect.y = button_state * h;
this._flashRect.width = w;
this._flashRect.height = h;
if(this._flashRect.y >= all_frames.height) {
var framesHigh = all_frames.height / h | 0;
if(framesHigh == 4) {
if(button_state == 4) {
this._flashRect.y = 3 * h;
} else if(button_state == 5) {
this._flashRect.y = 2 * h;
}
}
}
var frameKey = key + "{x:" + this._flashRect.x + "y:" + this._flashRect.y + "w:" + this._flashRect.width + "h:" + this._flashRect.height + "}";
if(frameKey != null) {
if(flixel_FlxG.bitmap._cache.h[frameKey] != null) {
return flixel_FlxG.bitmap._cache.h[frameKey].bitmap;
}
}
var pixels = new openfl_display_BitmapData(w,h);
pixels.copyPixels(all_frames,this._flashRect,this._flashPointZero);
if(key != null) {
flixel_FlxG.bitmap.add(pixels,true,frameKey);
this.addToCleanup(frameKey);
}
return pixels;
}
,combineToggleBitmaps: function(normal,toggle) {
var combined = new openfl_display_BitmapData(normal.width,normal.height + toggle.height);
combined.copyPixels(normal,normal.rect,this._flashPointZero);
this._flashPoint.x = 0;
this._flashPoint.y = normal.height;
combined.copyPixels(toggle,toggle.rect,this._flashPoint);
return combined;
}
,assembleButtonFrames: function(upB,overB,downB) {
var pixels;
if(overB != null) {
if(downB != null) {
pixels = new openfl_display_BitmapData(upB.width,upB.height * 3);
} else {
pixels = new openfl_display_BitmapData(upB.width,upB.height * 2);
}
} else {
pixels = new openfl_display_BitmapData(upB.width,upB.height);
}
pixels.copyPixels(upB,upB.rect,this._flashPointZero);
if(overB != null) {
this._flashPoint.x = 0;
this._flashPoint.y = upB.height;
pixels.copyPixels(overB,overB.rect,this._flashPoint);
if(downB != null) {
this._flashPoint.y = upB.height * 2;
pixels.copyPixels(downB,downB.rect,this._flashPoint);
}
}
return pixels;
}
,updateButton: function() {
if(!this.skipButtonUpdate) {
flixel_ui_FlxTypedButton.prototype.updateButton.call(this);
}
}
,addToCleanup: function(str) {
if(this._assetsToCleanup == null) {
this._assetsToCleanup = [];
}
if(this._assetsToCleanup.indexOf(str) == -1) {
this._assetsToCleanup.push(str);
}
}
,cleanup: function() {
if(this._assetsToCleanup == null) {
return;
}
var _g = 0;
var _g1 = this._assetsToCleanup;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
flixel_FlxG.bitmap.removeByKey(key);
}
this._assetsToCleanup = null;
}
,fetchAndShowCorrectLabel: function() {
if(this.has_toggle) {
if(this.toggled && this.toggle_label != null) {
this._spriteLabel.set_visible(false);
this.toggle_label.set_visible(true);
return this.toggle_label;
} else {
if(this.toggle_label != null) {
this.toggle_label.set_visible(false);
}
this._spriteLabel.set_visible(true);
return this.label;
}
}
return this.label;
}
,onUpHandler: function() {
if(this.has_toggle) {
this.set_toggled(!this.toggled);
}
flixel_ui_FlxTypedButton.prototype.onUpHandler.call(this);
if(this.label != null) {
var theLabel = this.fetchAndShowCorrectLabel();
theLabel.set_visible(this.toggled ? this.up_toggle_visible : this.up_visible);
var thecol = this.toggled ? this.up_toggle_color : this.up_color;
if(thecol != null) {
theLabel.set_color(thecol);
}
}
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event("click_button",this,null,this.params);
}
}
,onDownHandler: function() {
flixel_ui_FlxTypedButton.prototype.onDownHandler.call(this);
if(this.label != null) {
var theLabel = this.fetchAndShowCorrectLabel();
theLabel.set_visible(this.toggled ? this.down_toggle_visible : this.down_visible);
var thecol = this.toggled ? this.down_toggle_color : this.down_color;
if(thecol != null) {
theLabel.set_color(thecol);
}
}
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event("down_button",this,null,this.params);
}
}
,onOverHandler: function() {
flixel_ui_FlxTypedButton.prototype.onOverHandler.call(this);
this.inputOver.press();
if(this.label != null) {
var theLabel = this.fetchAndShowCorrectLabel();
theLabel.set_visible(this.toggled ? this.over_toggle_visible : this.over_visible);
var thecol = this.toggled ? this.over_toggle_color : this.over_color;
if(thecol != null) {
theLabel.set_color(thecol);
}
}
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event("over_button",this,null,this.params);
}
}
,onOutHandler: function() {
flixel_ui_FlxTypedButton.prototype.onOutHandler.call(this);
this.inputOver.release();
if(this.label != null) {
var theLabel = this.fetchAndShowCorrectLabel();
theLabel.set_visible(this.toggled ? this.up_toggle_visible : this.up_visible);
var thecol = this.toggled ? this.up_toggle_color : this.up_color;
if(thecol != null) {
theLabel.set_color(thecol);
}
}
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event("out_button",this,null,this.params);
}
}
,set_x: function(NewX) {
flixel_ui_FlxTypedButton.prototype.set_x.call(this,NewX);
if(this._spriteLabel != null) {
this._spriteLabel.set_x(this.x + this._centerLabelOffset.x + this.labelOffsets[this.status].x);
if(this.round_labels) {
this._spriteLabel.set_x(this._spriteLabel.x + 0.5 | 0);
}
if(this.has_toggle && this.toggle_label != null) {
this.toggle_label.set_x(this._spriteLabel.x);
}
}
return NewX;
}
,set_y: function(NewY) {
flixel_ui_FlxTypedButton.prototype.set_y.call(this,NewY);
if(this.label != null) {
this._spriteLabel.set_y(this.y + this._centerLabelOffset.y + this.labelOffsets[this.status].y);
if(this.round_labels) {
this._spriteLabel.set_y(this._spriteLabel.y + 0.5 | 0);
}
if(this.has_toggle && this.toggle_label != null) {
this.toggle_label.set_y(this._spriteLabel.y);
}
}
return NewY;
}
,_autoCleanup: null
,_assetsToCleanup: null
,_no_graphic: null
,_src_w: null
,_src_h: null
,_frame_indeces: null
,_slice9_arrays: null
,_slice9_assets: null
,_centerLabelOffset: null
,__class__: flixel_addons_ui_FlxUITypedButton
,__properties__: $extend(flixel_ui_FlxTypedButton.prototype.__properties__,{set_params:"set_params",set_skipButtonUpdate:"set_skipButtonUpdate",set_toggle_label:"set_toggle_label",get_justMousedOut:"get_justMousedOut",get_mouseIsOut:"get_mouseIsOut",get_mouseIsOver:"get_mouseIsOver",get_justMousedOver:"get_justMousedOver",set_toggled:"set_toggled"})
});
var flixel_addons_ui_interfaces_ILabeled = function() { };
$hxClasses["flixel.addons.ui.interfaces.ILabeled"] = flixel_addons_ui_interfaces_ILabeled;
flixel_addons_ui_interfaces_ILabeled.__name__ = "flixel.addons.ui.interfaces.ILabeled";
flixel_addons_ui_interfaces_ILabeled.__isInterface__ = true;
flixel_addons_ui_interfaces_ILabeled.prototype = {
getLabel: null
,setLabel: null
,__class__: flixel_addons_ui_interfaces_ILabeled
};
var flixel_addons_ui_FlxUIButton = function(X,Y,Label,OnClick,LoadDefaultGraphics,LoadBlank,Color) {
if(Color == null) {
Color = -1;
}
if(LoadBlank == null) {
LoadBlank = false;
}
if(LoadDefaultGraphics == null) {
LoadDefaultGraphics = true;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.down_toggle_style = null;
this.over_toggle_style = null;
this.up_toggle_style = null;
this.down_style = null;
this.over_style = null;
this.up_style = null;
flixel_addons_ui_FlxUITypedButton.call(this,X,Y,OnClick);
this.set_color(Color);
if(Label != null) {
this.set_label(new flixel_addons_ui_FlxUIText(0,0,80,Label,8));
this.label.setFormat(null,8,3355443,"center");
}
if(LoadBlank) {
this._no_graphic = true;
}
if(LoadDefaultGraphics) {
this.resize(this.get_width(),this.get_height());
} else if(this._no_graphic == false) {
this.doResize(this.get_width(),this.get_height(),false);
} else {
this.doResize(this.get_width(),this.get_height(),true);
}
};
$hxClasses["flixel.addons.ui.FlxUIButton"] = flixel_addons_ui_FlxUIButton;
flixel_addons_ui_FlxUIButton.__name__ = "flixel.addons.ui.FlxUIButton";
flixel_addons_ui_FlxUIButton.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIButton,flixel_addons_ui_interfaces_ILabeled];
flixel_addons_ui_FlxUIButton.__super__ = flixel_addons_ui_FlxUITypedButton;
flixel_addons_ui_FlxUIButton.prototype = $extend(flixel_addons_ui_FlxUITypedButton.prototype,{
_noIconGraphicsBkup: null
,up_style: null
,over_style: null
,down_style: null
,up_toggle_style: null
,over_toggle_style: null
,down_toggle_style: null
,setLabelFormat: function(Font,Size,Color,Alignment,BorderStyle,BorderColor,Embedded) {
if(Embedded == null) {
Embedded = true;
}
if(BorderColor == null) {
BorderColor = 0;
}
if(Color == null) {
Color = -1;
}
if(Size == null) {
Size = 8;
}
if(this.label != null) {
this.label.setFormat(Font,Size,Color,Alignment,BorderStyle,BorderColor,Embedded);
return this.label;
}
return null;
}
,autoCenterLabel: function() {
flixel_addons_ui_FlxUITypedButton.prototype.autoCenterLabel.call(this);
}
,clone: function() {
var newButton = new flixel_addons_ui_FlxUIButton(0,0,this.label == null ? null : this.label.text,this.onUp.callback,false);
newButton.copyGraphic(this);
newButton.copyStyle(this);
return newButton;
}
,copyStyle: function(other) {
flixel_addons_ui_FlxUITypedButton.prototype.copyStyle.call(this,other);
if(((other) instanceof flixel_addons_ui_FlxUIButton)) {
var fuib = other;
this.up_style = fuib.up_style;
this.over_style = fuib.over_style;
this.down_style = fuib.down_style;
this.up_toggle_style = fuib.up_toggle_style;
this.over_toggle_style = fuib.over_toggle_style;
this.down_toggle_style = fuib.down_toggle_style;
var t = fuib.label;
var tf = t.textField.get_defaultTextFormat();
if(t._font.indexOf(flixel_system_FlxAssets.FONT_DEFAULT) == -1) {
var fd = flixel_addons_ui_FontDef.copyFromFlxText(t);
fd.apply(null,this.label);
} else {
var flxAlign = flixel_text_FlxTextAlign.fromOpenFL(tf.align);
this.label.setFormat(null,tf.size | 0,tf.color,flxAlign,t.borderStyle,t.borderColor,t.textField.set_embedFonts(true));
}
}
}
,setLabel: function(t) {
this.set_label(t);
return this.label;
}
,getLabel: function() {
return this.label;
}
,resize: function(W,H) {
flixel_addons_ui_FlxUITypedButton.prototype.resize.call(this,W,H);
}
,addIcon: function(icon,X,Y,center) {
if(center == null) {
center = true;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._noIconGraphicsBkup = this.graphic.bitmap.clone();
var newBmp = this._noIconGraphicsBkup.clone();
var key = this.graphic.key + ",icon:" + icon.graphic.key;
var newGraphic = flixel_FlxG.bitmap.add(newBmp,false,key);
this.loadGraphic(newGraphic,true,this.get_width() | 0,this.get_height() | 0);
var sx = X;
var sy = Y;
if(center) {
sx = (this.get_width() - icon.get_width()) / 2 | 0;
sy = (this.get_height() - icon.get_height()) / 2 | 0;
}
var _g = 0;
var _g1 = this.numFrames;
while(_g < _g1) {
var i = _g++;
this.stamp(icon,sx + (this.labelOffsets[i > 2 ? 2 : i].x | 0),sy + (i * this.get_height() | 0) + (this.labelOffsets[i > 2 ? 2 : i].y | 0));
}
}
,removeIcon: function() {
if(this._noIconGraphicsBkup != null) {
this.graphic.bitmap.fillRect(this.graphic.bitmap.rect,0);
this.graphic.bitmap.copyPixels(this._noIconGraphicsBkup,new openfl_geom_Rectangle(0,0,this._noIconGraphicsBkup.width,this._noIconGraphicsBkup.height),new openfl_geom_Point());
this.dirty = true;
}
}
,changeIcon: function(newIcon) {
this.removeIcon();
this.addIcon(newIcon);
}
,destroy: function() {
this._noIconGraphicsBkup = flixel_util_FlxDestroyUtil.dispose(this._noIconGraphicsBkup);
flixel_addons_ui_FlxUITypedButton.prototype.destroy.call(this);
}
,loadDefaultGraphic: function() {
}
,resetHelpers: function() {
flixel_addons_ui_FlxUITypedButton.prototype.resetHelpers.call(this);
if(this.label != null) {
var tmp = this.label;
var tmp1 = this.get_width() | 0;
tmp.set_width(this.label.frameWidth = tmp1);
this.label.set_fieldWidth(this.label.get_width());
this.label.set_size(this.label._defaultFormat.size | 0);
}
}
,onDownHandler: function() {
flixel_addons_ui_FlxUITypedButton.prototype.onDownHandler.call(this);
if(this.label != null) {
if(this.toggled && this.down_toggle_style != null) {
this.label.set_color(this.down_toggle_style.color);
if(this.down_toggle_style.border != null) {
this.label.set_borderStyle(this.down_toggle_style.border.style);
this.label.set_borderColor(this.down_toggle_style.border.color);
this.label.set_borderSize(this.down_toggle_style.border.size);
this.label.set_borderQuality(this.down_toggle_style.border.quality);
}
} else if(!this.toggled && this.down_style != null) {
this.label.set_color(this.down_style.color);
if(this.down_style.border != null) {
this.label.set_borderStyle(this.down_style.border.style);
this.label.set_borderColor(this.down_style.border.color);
this.label.set_borderSize(this.down_style.border.size);
this.label.set_borderQuality(this.down_style.border.quality);
}
}
}
}
,onOverHandler: function() {
flixel_addons_ui_FlxUITypedButton.prototype.onOverHandler.call(this);
if(this.label != null) {
if(this.toggled && this.over_toggle_style != null) {
this.label.set_color(this.over_toggle_style.color);
if(this.over_toggle_style.border != null) {
this.label.set_borderStyle(this.over_toggle_style.border.style);
this.label.set_borderColor(this.over_toggle_style.border.color);
this.label.set_borderSize(this.over_toggle_style.border.size);
this.label.set_borderQuality(this.over_toggle_style.border.quality);
}
} else if(!this.toggled && this.over_style != null) {
this.label.set_color(this.over_style.color);
if(this.over_style.border != null) {
this.label.set_borderStyle(this.over_style.border.style);
this.label.set_borderColor(this.over_style.border.color);
this.label.set_borderSize(this.over_style.border.size);
this.label.set_borderQuality(this.over_style.border.quality);
}
}
}
}
,onOutHandler: function() {
flixel_addons_ui_FlxUITypedButton.prototype.onOutHandler.call(this);
if(this.label != null) {
if(this.toggled && this.up_toggle_style != null) {
this.label.set_color(this.up_toggle_style.color);
if(this.up_toggle_style.border != null) {
this.label.set_borderStyle(this.up_toggle_style.border.style);
this.label.set_borderColor(this.up_toggle_style.border.color);
this.label.set_borderSize(this.up_toggle_style.border.size);
this.label.set_borderQuality(this.up_toggle_style.border.quality);
}
} else if(!this.toggled && this.up_style != null) {
this.label.set_color(this.up_style.color);
if(this.up_style.border != null) {
this.label.set_borderStyle(this.up_style.border.style);
this.label.set_borderColor(this.up_style.border.color);
this.label.set_borderSize(this.up_style.border.size);
this.label.set_borderQuality(this.up_style.border.quality);
}
}
}
}
,onUpHandler: function() {
flixel_addons_ui_FlxUITypedButton.prototype.onUpHandler.call(this);
if(this.label != null) {
if(this.toggled && this.up_toggle_style != null) {
this.label.set_color(this.up_toggle_style.color);
if(this.up_toggle_style.border != null) {
this.label.set_borderStyle(this.up_toggle_style.border.style);
this.label.set_borderColor(this.up_toggle_style.border.color);
this.label.set_borderSize(this.up_toggle_style.border.size);
this.label.set_borderQuality(this.up_toggle_style.border.quality);
}
} else if(!this.toggled && this.up_style != null) {
this.label.set_color(this.up_style.color);
if(this.up_style.border != null) {
this.label.set_borderStyle(this.up_style.border.style);
this.label.set_borderColor(this.up_style.border.color);
this.label.set_borderSize(this.up_style.border.size);
this.label.set_borderQuality(this.up_style.border.quality);
}
}
}
}
,__class__: flixel_addons_ui_FlxUIButton
});
var flixel_addons_ui_FlxUICheckBox = function(X,Y,Box,Check,Label,LabelW,Params,Callback) {
if(LabelW == null) {
LabelW = 100;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.skipButtonUpdate = false;
this.box_space = 2;
this.textY = 0;
this.textX = 0;
this.checkbox_dirty = false;
this.textIsClickable = true;
this.checked = false;
this.max_width = -1;
flixel_addons_ui_FlxUIGroup.call(this);
this.callback = Callback;
this.set_params(Params);
if(Box == null) {
Box = "flixel/flixel-ui/img/check_box.png";
}
if(((Box) instanceof flixel_FlxSprite)) {
this.box = Box;
} else {
this.box = new flixel_FlxSprite();
this.box.loadGraphic(Box,true);
}
this.button = new flixel_addons_ui_FlxUIButton(0,0,Label,$bind(this,this._clickCheck));
this.button.label.setFormat(null,8,16777215,"left",flixel_text_FlxTextBorderStyle.OUTLINE);
this.button.label.set_fieldWidth(LabelW);
this.button.up_color = 16777215;
this.button.down_color = 16777215;
this.button.over_color = 16777215;
this.button.up_toggle_color = 16777215;
this.button.down_toggle_color = 16777215;
this.button.over_toggle_color = 16777215;
this.button.loadGraphicSlice9(["","",""],this.box.get_width() + this.box_space + LabelW | 0,this.box.get_height() | 0);
this.max_width = this.box.get_width() + this.box_space + LabelW | 0;
this.button.onUp.callback = $bind(this,this._clickCheck);
if(Check == null) {
Check = "flixel/flixel-ui/img/check_mark.png";
}
if(((Check) instanceof flixel_FlxSprite)) {
this.mark = Check;
} else {
this.mark = new flixel_FlxSprite();
this.mark.loadGraphic(Check);
}
this.add(this.box);
this.add(this.mark);
this.add(this.button);
this.anchorLabelX();
this.anchorLabelY();
this.set_checked(false);
this.button.setAllLabelOffsets(0,0);
this.set_x(X);
this.set_y(Y);
this.set_textX(0);
this.set_textY(0);
};
$hxClasses["flixel.addons.ui.FlxUICheckBox"] = flixel_addons_ui_FlxUICheckBox;
flixel_addons_ui_FlxUICheckBox.__name__ = "flixel.addons.ui.FlxUICheckBox";
flixel_addons_ui_FlxUICheckBox.__interfaces__ = [flixel_addons_ui_interfaces_ICursorPointable,flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_ILabeled];
flixel_addons_ui_FlxUICheckBox.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUICheckBox.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
box: null
,mark: null
,button: null
,max_width: null
,checked: null
,params: null
,textIsClickable: null
,checkbox_dirty: null
,textX: null
,textY: null
,box_space: null
,skipButtonUpdate: null
,callback: null
,set_skipButtonUpdate: function(b) {
this.skipButtonUpdate = b;
this.button.set_skipButtonUpdate(this.skipButtonUpdate);
return this.skipButtonUpdate;
}
,set_params: function(p) {
this.params = p;
if(this.params == null) {
this.params = [];
}
var nb = { name : "checked", value : false};
this.params.push(nb);
return this.params;
}
,set_color: function(Value) {
if(this.button != null) {
this.button.label.set_color(Value);
}
return flixel_addons_ui_FlxUIGroup.prototype.set_color.call(this,Value);
}
,setLabel: function(t) {
if(this.button == null) {
return null;
}
this.button.set_label(t);
return this.button.label;
}
,getLabel: function() {
if(this.button == null) {
return null;
}
return this.button.label;
}
,set_visible: function(Value) {
this.visible = Value;
return this.visible;
}
,anchorTime: function(f) {
this.anchorLabelY();
}
,set_textX: function(n) {
this.textX = n;
this.anchorLabelX();
return this.textX;
}
,set_textY: function(n) {
this.textY = n;
this.anchorLabelY();
return this.textY;
}
,anchorLabelX: function() {
if(this.button != null) {
this.button.label.offset.set_x(-(this.box.get_width() + this.box_space + this.textX));
}
}
,anchorLabelY: function() {
if(this.button != null) {
this.button.set_y(this.box.y + (this.box.get_height() - this.button.get_height()) / 2 + this.textY);
}
}
,destroy: function() {
flixel_addons_ui_FlxUIGroup.prototype.destroy.call(this);
if(this.mark != null) {
this.mark.destroy();
this.mark = null;
}
if(this.box != null) {
this.box.destroy();
this.box = null;
}
if(this.button != null) {
this.button.destroy();
this.button = null;
}
}
,get_text: function() {
return this.button.label.text;
}
,set_text: function(value) {
this.button.label.set_text(value);
this.checkbox_dirty = true;
return value;
}
,update: function(elapsed) {
flixel_addons_ui_FlxUIGroup.prototype.update.call(this,elapsed);
if(this.checkbox_dirty) {
if(this.button.label != null) {
if(((this.button.label) instanceof flixel_addons_ui_FlxUIText)) {
var ftu = this.button.label;
ftu.drawFrame();
}
this.anchorLabelX();
this.anchorLabelY();
this.button.set_width(this.box.frameWidth + this.box_space + this.button.label.textField.get_textWidth());
this.checkbox_dirty = false;
}
}
}
,set_checked: function(b) {
this.mark.set_visible(b);
return this.checked = b;
}
,_clickCheck: function() {
if(!this.visible) {
return;
}
this.set_checked(!this.checked);
if(this.callback != null) {
this.callback();
}
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event("click_check_box",this,this.checked,this.params);
}
}
,__class__: flixel_addons_ui_FlxUICheckBox
,__properties__: $extend(flixel_addons_ui_FlxUIGroup.prototype.__properties__,{set_text:"set_text",get_text:"get_text",set_skipButtonUpdate:"set_skipButtonUpdate",set_textY:"set_textY",set_textX:"set_textX",set_params:"set_params",set_checked:"set_checked"})
});
var flixel_addons_ui_FlxUICursor = function(Callback,InputMethod,DefaultKeys,Asset) {
if(DefaultKeys == null) {
DefaultKeys = 1;
}
if(InputMethod == null) {
InputMethod = 1;
}
this._clickTime = 0;
this._clickPressed = false;
this.lastMouseY = 0;
this.lastMouseX = 0;
this.inputMethod = 0;
this.dispatchEvents = true;
this.gamepadAutoConnect = flixel_addons_ui_GamepadAutoConnectPreference.FirstActive;
this.listIndex = 0;
this.location = -1;
this.wrap = true;
if(Asset == null) {
if(flixel_FlxG.height < 400) {
Asset = "flixel/flixel-ui/img/finger_small.png";
} else {
Asset = "flixel/flixel-ui/img/finger_big.png";
}
}
flixel_addons_ui_FlxUISprite.call(this,0,0,Asset);
this.inputMethod = InputMethod;
this._lists = [{ x : 0, y : 0, width : 0, height : 0, widgets : []}];
this._widgets = this._lists[0].widgets;
this.anchor = new flixel_addons_ui_Anchor(-2,0,"left","center","right","center");
this.setDefaultKeys(DefaultKeys);
this.callback = Callback;
this.scrollFactor.set(0,0);
if(flixel_FlxG.mouse != null && ((flixel_FlxG.mouse) instanceof flixel_addons_ui_FlxUIMouse) == false) {
this._newMouse = new flixel_addons_ui_FlxUIMouse(flixel_FlxG.mouse.cursorContainer);
flixel_FlxG.set_mouse(this._newMouse);
} else {
this._newMouse = flixel_FlxG.mouse;
}
};
$hxClasses["flixel.addons.ui.FlxUICursor"] = flixel_addons_ui_FlxUICursor;
flixel_addons_ui_FlxUICursor.__name__ = "flixel.addons.ui.FlxUICursor";
flixel_addons_ui_FlxUICursor.__super__ = flixel_addons_ui_FlxUISprite;
flixel_addons_ui_FlxUICursor.prototype = $extend(flixel_addons_ui_FlxUISprite.prototype,{
callback: null
,wrap: null
,location: null
,listIndex: null
,ignoreNextInput: null
,findVisibleLocation: function(loc,forwardIfInvisible,wrap) {
if(wrap == null) {
wrap = true;
}
if(forwardIfInvisible == null) {
forwardIfInvisible = true;
}
this.set_location(loc);
if(this.location == -1) {
return;
}
var wrapped = false;
while(this._widgets[this.location] == null || this._widgets[this.location].visible == false) if(forwardIfInvisible) {
if(this.location == this._widgets.length - 1) {
if(wrap) {
if(!wrapped) {
wrapped = true;
this.set_location(0);
} else {
this.set_location(-1);
return;
}
} else {
this.set_location(-1);
return;
}
} else {
var _g = this;
_g.set_location(_g.location + 1);
}
} else if(this.location == 0) {
if(wrap) {
if(!wrapped) {
wrapped = true;
this.set_location(this._widgets.length - 1);
} else {
this.set_location(-1);
return;
}
} else {
this.set_location(-1);
return;
}
} else {
var _g1 = this;
_g1.set_location(_g1.location - 1);
}
}
,getCurrentWidget: function() {
if(this._widgets != null && this.location >= 0 && this.location < this._widgets.length) {
return this._widgets[this.location];
}
return null;
}
,set_listIndex: function(i) {
if(i >= this._lists.length) {
i = this._lists.length - 1;
} else if(i < 0) {
i = 0;
}
this.listIndex = i;
this.set_location(0);
this._updateCursor();
return this.listIndex;
}
,set_visible: function(b) {
b = flixel_addons_ui_FlxUISprite.prototype.set_visible.call(this,b);
return b;
}
,set_location: function(i) {
if(i >= this._widgets.length) {
i = this._widgets.length - 1;
}
this.location = i;
this._updateCursor();
return this.location;
}
,gamepadAutoConnect: null
,set_gamepad: function(g) {
this._gamepad = g;
this.setDefaultKeys(this._defaultCode);
var arr = [this.keysUp,this.keysDown,this.keysLeft,this.keysRight,this.keysClick];
var _g = 0;
while(_g < arr.length) {
var list = arr[_g];
++_g;
if(list != null) {
var _g1 = 0;
while(_g1 < list.length) {
var keys = list[_g1];
++_g1;
if(((keys) instanceof flixel_addons_ui_FlxMultiGamepad)) {
var fmg = keys;
fmg.gamepad = this._gamepad;
}
}
}
}
return g;
}
,get_gamepad: function() {
return this._gamepad;
}
,_gamepad: null
,keysUp: null
,keysDown: null
,keysLeft: null
,keysRight: null
,keysClick: null
,anchor: null
,dispatchEvents: null
,inputMethod: null
,destroy: function() {
flixel_addons_ui_FlxUISprite.prototype.destroy.call(this);
if(flixel_FlxG.mouse == this._newMouse) {
this._newMouse = null;
}
this.keysUp = flixel_util_FlxDestroyUtil.destroyArray(this.keysUp);
this.keysDown = flixel_util_FlxDestroyUtil.destroyArray(this.keysDown);
this.keysLeft = flixel_util_FlxDestroyUtil.destroyArray(this.keysLeft);
this.keysRight = flixel_util_FlxDestroyUtil.destroyArray(this.keysRight);
this.keysClick = flixel_util_FlxDestroyUtil.destroyArray(this.keysClick);
this.anchor = flixel_util_FlxDestroyUtil.destroy(this.anchor);
var _g = 0;
var _g1 = this._lists;
while(_g < _g1.length) {
var l = _g1[_g];
++_g;
flixel_addons_ui_U.clearArraySoft(l.widgets);
}
flixel_addons_ui_U.clearArraySoft(this._lists);
this._widgets = null;
}
,update: function(elapsed) {
if(this.get_gamepad() == null) {
var g = this.getGamepad(false);
if(g != null) {
this.set_gamepad(g);
}
}
if(this.lastMouseX != flixel_FlxG.mouse.x || this.lastMouseY != flixel_FlxG.mouse.y) {
var oldVis = this.visible;
this.jumpToXY(flixel_FlxG.mouse.x,flixel_FlxG.mouse.y);
this.set_visible(oldVis);
this.lastMouseX = flixel_FlxG.mouse.x;
this.lastMouseY = flixel_FlxG.mouse.y;
}
this._checkKeys();
this._clickTime += elapsed;
flixel_addons_ui_FlxUISprite.prototype.update.call(this,elapsed);
}
,addWidgetsFromUI: function(ui) {
if(ui.cursorLists != null) {
var _g = 0;
var _g1 = ui.cursorLists;
while(_g < _g1.length) {
var list = _g1[_g];
++_g;
this.addWidgetList(list);
}
this._widgets = this._lists[0].widgets;
this.set_location(0);
this.set_listIndex(0);
} else {
var _g = 0;
var _g1 = ui.group.members;
while(_g < _g1.length) {
var widget = _g1[_g];
++_g;
if(js_Boot.__implements(widget,flixel_addons_ui_interfaces_ICursorPointable) || ((widget) instanceof flixel_addons_ui_FlxUIGroup)) {
this.addWidget(widget);
}
}
}
}
,jumpTo: function(widget) {
var listi = 0;
var i = 0;
if(this._lists != null) {
var _g = 0;
var _g1 = this._lists;
while(_g < _g1.length) {
var list = _g1[_g];
++_g;
i = list.widgets.indexOf(widget);
if(i != -1) {
this.set_listIndex(listi);
this.set_location(i);
return true;
}
++listi;
}
} else {
i = this._widgets.indexOf(widget);
this.set_location(i);
return true;
}
return false;
}
,jumpToXY: function(X,Y) {
var listi = 0;
var bestd2 = Infinity;
var bestli = -1;
var besti = -1;
if(this._lists != null) {
var _g = 0;
var _g1 = this._lists;
while(_g < _g1.length) {
var list = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = list.widgets.length;
while(_g2 < _g3) {
var i = _g2++;
var w = list.widgets[i];
if(w.visible == true && X >= w.x && Y >= w.y && X <= w.x + w.get_width() && Y <= w.y + w.get_height()) {
var dx = w.x + w.get_width() / 2 - X;
var dy = w.y + w.get_height() / 2 - Y;
var d2 = dx * dx + dy * dy;
if(d2 < bestd2) {
bestd2 = d2;
bestli = listi;
besti = i;
}
}
}
++listi;
}
if(bestli != -1 && besti != -1) {
this.set_listIndex(bestli);
this.set_location(besti);
return true;
}
} else {
var _g = 0;
var _g1 = this._widgets.length;
while(_g < _g1) {
var i = _g++;
var w = this._widgets[i];
if(w.visible == true && X >= w.x && Y >= w.y && X <= w.x + w.get_width() && Y <= w.y + w.get_height()) {
var dx = w.x + w.get_width() / 2 - X;
var dy = w.y + w.get_height() / 2 - Y;
var d2 = dx * dx + dy * dy;
if(d2 < bestd2) {
bestd2 = d2;
besti = i;
}
}
}
if(besti != -1) {
this.set_location(besti);
return true;
}
}
return false;
}
,addWidgetList: function(list) {
var _g = 0;
var _g1 = this._lists;
while(_g < _g1.length) {
var l = _g1[_g];
++_g;
if(flixel_util_FlxArrayUtil.equals(l.widgets,list)) {
return;
}
}
var x1 = Infinity;
var y1 = Infinity;
var x2 = -Infinity;
var y2 = -Infinity;
var _g = 0;
while(_g < list.length) {
var w = list[_g];
++_g;
if(w.x < x1) {
x1 = w.x;
}
if(w.y < y1) {
y1 = w.y;
}
if(w.x + w.get_width() > x2) {
x2 = w.x;
}
if(w.y + w.get_height() > y2) {
y2 = w.y;
}
}
var theList = null;
if(this._lists.length == 1 && this._lists[0].widgets != null && this._lists[0].widgets.length == 0) {
this._lists[0].widgets = [];
this._lists[0].x = x1 | 0;
this._lists[0].y = y1 | 0;
this._lists[0].width = x2 - x1 | 0;
this._lists[0].height = y2 - y1 | 0;
theList = this._lists[0];
} else {
this._lists.push({ x : x1 | 0, y : y1 | 0, width : x2 - x1 | 0, height : y2 - y1 | 0, widgets : []});
theList = this._lists[this._lists.length - 1];
}
var oldWidgets = this._widgets;
this._widgets = theList.widgets;
var _g = 0;
while(_g < list.length) {
var ifw = list[_g];
++_g;
this.addWidget(ifw);
}
this._widgets = oldWidgets;
this._lists.sort($bind(this,this._sortXYWidgetList));
var _g = 0;
var _g1 = this._lists;
while(_g < _g1.length) {
var widgetList = _g1[_g];
++_g;
widgetList.widgets.sort($bind(this,this._sortXYVisible));
}
}
,addWidget: function(widget) {
if(js_Boot.__implements(widget,flixel_addons_ui_interfaces_ICursorPointable)) {
this._widgets.push(widget);
} else if(((widget) instanceof flixel_addons_ui_FlxUIGroup)) {
var g = widget;
var _g = 0;
var _g1 = g.group.members;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(js_Boot.__implements(member,flixel_addons_ui_interfaces_IFlxUIWidget)) {
this.addWidget(member);
}
}
}
this._widgets.sort($bind(this,this._sortXYVisible));
}
,sortWidgets: function(method,list) {
if(list == null) {
list = this._widgets;
}
switch(method._hx_index) {
case 0:
list.sort($bind(this,this._sortXYVisible));
break;
case 1:
list.sort($bind(this,this._sortIDVisible));
break;
}
}
,clearWidgets: function() {
flixel_util_FlxArrayUtil.clearArray(this._widgets);
}
,removeWidget: function(widget,list) {
if(list == null) {
list = this._widgets;
}
var value = false;
if(list != null) {
if(list.indexOf(widget) != -1) {
value = HxOverrides.remove(list,widget);
list.sort($bind(this,this._sortXYVisible));
}
}
return value;
}
,setDefaultKeys: function(code) {
this._defaultCode = code;
this._clearKeys();
this._newKeys();
if((code & 1) == 1) {
this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiKey(9,null,[16]));
this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiKey(9,[16]));
this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiKey(13));
}
if((code & 256) == 256) {
this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiKey(39));
this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiKey(37));
this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiKey(40));
this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiKey(38));
this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiKey(13));
}
if((code & 16) == 16) {
this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiKey(68));
this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiKey(65));
this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiKey(83));
this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiKey(87));
this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiKey(13));
}
if((code & 4096) == 4096) {
this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiKey(102));
this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiKey(100));
this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiKey(98));
this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiKey(104));
this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiKey(13));
}
if(this.get_gamepad() == null) {
this._gamepad = this.getGamepad();
}
if((code & 65536) == 65536) {
this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),13));
this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),14));
this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),12));
this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),11));
this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),0));
}
if((code & 268435456) == 268435456) {
this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),4));
this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),5));
this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),0));
}
if((code & 1048576) == 1048576) {
this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 19, axis : flixel_addons_ui_XY.X, positive : false}));
this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 19, axis : flixel_addons_ui_XY.X, positive : true}));
this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 19, axis : flixel_addons_ui_XY.Y, positive : false}));
this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 19, axis : flixel_addons_ui_XY.Y, positive : true}));
this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),0));
}
if((code & 16777216) == 16777216) {
this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 20, axis : flixel_addons_ui_XY.X, positive : false}));
this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 20, axis : flixel_addons_ui_XY.X, positive : true}));
this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 20, axis : flixel_addons_ui_XY.Y, positive : false}));
this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 20, axis : flixel_addons_ui_XY.Y, positive : true}));
this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),0));
}
}
,_lists: null
,_widgets: null
,_newMouse: null
,lastMouseX: null
,lastMouseY: null
,_clickPressed: null
,_defaultCode: null
,_rightAnchor: null
,_topAnchor: null
,_leftAnchor: null
,_bottomAnchor: null
,_clickTime: null
,getGamepad: function(exhaustive) {
if(exhaustive == null) {
exhaustive = true;
}
var gamepad;
var _g = this.gamepadAutoConnect;
switch(_g._hx_index) {
case 0:
gamepad = null;
break;
case 1:
gamepad = flixel_FlxG.gamepads.getFirstActiveGamepad();
break;
case 2:
gamepad = flixel_FlxG.gamepads.lastActive;
break;
case 3:
var i = _g.i;
gamepad = flixel_FlxG.gamepads._activeGamepads[i];
break;
}
if(gamepad == null && exhaustive) {
var _g = 0;
var _g1 = flixel_FlxG.gamepads.get_numActiveGamepads();
while(_g < _g1) {
var i = _g++;
gamepad = flixel_FlxG.gamepads._activeGamepads[i];
if(gamepad != null) {
return gamepad;
}
}
}
return gamepad;
}
,_sortIDVisible: function(a,b) {
if(a.visible && !b.visible) {
return -1;
}
if(b.visible && !a.visible) {
return 1;
}
if(a.ID < b.ID) {
return -1;
}
if(a.ID > b.ID) {
return 1;
}
return 0;
}
,_sortXYWidgetList: function(a,b) {
if(a.y < b.y) {
return -1;
}
if(a.y > b.y) {
return 1;
}
if(a.x < b.x) {
return -1;
}
if(a.x > b.x) {
return 1;
}
return 0;
}
,_sortXYVisible: function(a,b) {
if(a.visible && !b.visible) {
return -1;
}
if(b.visible && !a.visible) {
return 1;
}
if(a.y < b.y) {
return -1;
}
if(a.y > b.y) {
return 1;
}
if(a.x < b.x) {
return -1;
}
if(a.x > b.x) {
return 1;
}
return 0;
}
,_addToKeys: function(keys,m) {
var exists = false;
var _g = 0;
while(_g < keys.length) {
var mk = keys[_g];
++_g;
if(m.equals(mk)) {
exists = true;
break;
}
}
if(!exists) {
keys.push(m);
}
}
,_clearKeys: function() {
flixel_addons_ui_U.clearArray(this.keysUp);
this.keysUp = null;
flixel_addons_ui_U.clearArray(this.keysDown);
this.keysDown = null;
flixel_addons_ui_U.clearArray(this.keysLeft);
this.keysLeft = null;
flixel_addons_ui_U.clearArray(this.keysRight);
this.keysRight = null;
flixel_addons_ui_U.clearArray(this.keysClick);
this.keysClick = null;
}
,_newKeys: function() {
this.keysUp = [];
this.keysDown = [];
this.keysLeft = [];
this.keysRight = [];
this.keysClick = [];
}
,_checkKeys: function() {
var wasInvisible = this.visible == false;
var lastLocation = this.location;
var _g = 0;
var _g1 = this.keysUp;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key.justPressed()) {
this._doInput(0,-1);
break;
}
}
var _g = 0;
var _g1 = this.keysDown;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key.justPressed()) {
this._doInput(0,1);
break;
}
}
var _g = 0;
var _g1 = this.keysLeft;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key.justPressed()) {
this._doInput(-1,0);
break;
}
}
var _g = 0;
var _g1 = this.keysRight;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key.justPressed()) {
this._doInput(1,0);
break;
}
}
if(wasInvisible && this.visible && lastLocation != -1) {
this.set_location(lastLocation);
}
if(this._clickKeysJustPressed()) {
if(!this.ignoreNextInput) {
this._clickPressed = true;
this._clickTime = 0;
this._doPress();
} else {
this.ignoreNextInput = false;
}
}
if(this._clickKeysPressed()) {
this._clickPressed = true;
this._doMouseMove();
} else if(this._clickTime > 0) {
if(this._clickPressed) {
this._doRelease();
this._clickPressed = false;
}
}
}
,_clickKeysJustPressed: function() {
var _g = 0;
var _g1 = this.keysClick;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key.justPressed()) {
return true;
}
}
return false;
}
,_clickKeysPressed: function() {
var _g = 0;
var _g1 = this.keysClick;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key.pressed()) {
return true;
}
}
return false;
}
,_getWidgetPoint: function(Camera) {
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
var currWidget = this._widgets[this.location];
if(currWidget == null) {
return null;
}
var fo;
var widgetPoint = null;
if(((currWidget) instanceof flixel_FlxObject)) {
fo = currWidget;
widgetPoint = fo.getScreenPosition();
}
var _g = widgetPoint;
_g.set_x(_g.x * Camera.totalScaleX);
var _g = widgetPoint;
_g.set_y(_g.y * Camera.totalScaleY);
if(widgetPoint == null) {
var X = currWidget.x;
var Y = currWidget.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
widgetPoint = point;
}
var _g = widgetPoint;
_g.set_x(_g.x + currWidget.get_width() / 2);
var _g = widgetPoint;
_g.set_y(_g.y + currWidget.get_height() / 2);
return widgetPoint;
}
,_doMouseMove: function(pt) {
var dispose = false;
if(pt == null) {
pt = this._getWidgetPoint();
if(pt == null) {
return;
}
dispose = true;
}
if(this.dispatchEvents) {
var _this = flixel_FlxG.mouse;
_this._globalScreenX = pt.x / flixel_FlxG.scaleMode.scale.x | 0;
_this._globalScreenY = pt.y / flixel_FlxG.scaleMode.scale.y | 0;
_this.updatePositions();
if(this._newMouse != null) {
this._newMouse.updateGlobalScreenPosition = false;
}
var tmp = openfl_Lib.get_current().stage;
var pt1 = pt.x;
var pt2 = pt.y;
var tmp1 = openfl_Lib.get_current().stage;
var _this = flixel_FlxG.keys.pressed;
var tmp2 = _this.keyManager.checkStatus(17,_this.status);
var _this = flixel_FlxG.keys.pressed;
var tmp3 = _this.keyManager.checkStatus(18,_this.status);
var _this = flixel_FlxG.keys.pressed;
tmp.dispatchEvent(new openfl_events_MouseEvent("mouseMove",true,false,pt1,pt2,tmp1,tmp2,tmp3,_this.keyManager.checkStatus(16,_this.status)));
}
if(dispose) {
pt.put();
}
}
,_doPress: function(pt) {
var currWidget = this._widgets[this.location];
if(currWidget == null) {
return;
}
var dispose = false;
if(pt == null) {
pt = this._getWidgetPoint();
if(pt == null) {
return;
}
dispose = true;
}
if(this.dispatchEvents) {
var rawMouseX = pt.x * flixel_FlxG.camera.zoom;
var rawMouseY = pt.y * flixel_FlxG.camera.zoom;
var tmp = openfl_Lib.get_current().stage;
var tmp1 = openfl_Lib.get_current().stage;
var _this = flixel_FlxG.keys.pressed;
var tmp2 = _this.keyManager.checkStatus(17,_this.status);
var _this = flixel_FlxG.keys.pressed;
var tmp3 = _this.keyManager.checkStatus(18,_this.status);
var _this = flixel_FlxG.keys.pressed;
tmp.dispatchEvent(new openfl_events_MouseEvent("mouseDown",true,false,rawMouseX,rawMouseY,tmp1,tmp2,tmp3,_this.keyManager.checkStatus(16,_this.status)));
}
if(this.callback != null) {
this.callback("cursor_down",currWidget);
}
if(dispose) {
pt.put();
}
}
,_doRelease: function(pt) {
var currWidget = this._widgets[this.location];
if(currWidget == null) {
return;
}
var dispose = false;
if(pt == null) {
pt = this._getWidgetPoint();
if(pt == null) {
return;
}
dispose = true;
}
var rawMouseX = pt.x * flixel_FlxG.camera.zoom;
var rawMouseY = pt.y * flixel_FlxG.camera.zoom;
if(this.dispatchEvents) {
var tmp = openfl_Lib.get_current().stage;
var tmp1 = openfl_Lib.get_current().stage;
var _this = flixel_FlxG.keys.pressed;
var tmp2 = _this.keyManager.checkStatus(17,_this.status);
var _this = flixel_FlxG.keys.pressed;
var tmp3 = _this.keyManager.checkStatus(18,_this.status);
var _this = flixel_FlxG.keys.pressed;
tmp.dispatchEvent(new openfl_events_MouseEvent("mouseUp",true,false,rawMouseX,rawMouseY,tmp1,tmp2,tmp3,_this.keyManager.checkStatus(16,_this.status)));
if(this._clickPressed) {
var tmp = openfl_Lib.get_current().stage;
var tmp1 = openfl_Lib.get_current().stage;
var _this = flixel_FlxG.keys.pressed;
var tmp2 = _this.keyManager.checkStatus(17,_this.status);
var _this = flixel_FlxG.keys.pressed;
var tmp3 = _this.keyManager.checkStatus(18,_this.status);
var _this = flixel_FlxG.keys.pressed;
tmp.dispatchEvent(new openfl_events_MouseEvent("click",true,false,rawMouseX,rawMouseY,tmp1,tmp2,tmp3,_this.keyManager.checkStatus(16,_this.status)));
}
}
if(this.callback != null) {
this.callback("cursor_click",currWidget);
}
if(dispose) {
pt.put();
}
if(this._newMouse != null) {
this._newMouse.updateGlobalScreenPosition = true;
var _this = this._newMouse;
var newX = flixel_FlxG.game.get_mouseX() | 0;
var newY = flixel_FlxG.game.get_mouseY() | 0;
_this._globalScreenX = newX / flixel_FlxG.scaleMode.scale.x | 0;
_this._globalScreenY = newY / flixel_FlxG.scaleMode.scale.y | 0;
_this.updatePositions();
}
}
,_findNextY: function(Y,indexValue,listWidget,listLists) {
var currX = 0;
var currY = 0;
var length = 0;
if(listWidget != null) {
currX = listWidget[indexValue].x | 0;
currY = listWidget[indexValue].y | 0;
length = listWidget.length;
} else if(listLists != null) {
currX = listLists[indexValue].x;
currY = listLists[indexValue].y;
length = listLists.length;
}
var nextX = 0;
var nextY = 0;
var dx = Infinity;
var dy = Infinity;
var bestdx = dx;
var bestdy = dy;
var besti = -1;
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
if(i != indexValue) {
if(listWidget != null) {
nextX = listWidget[i].x | 0;
nextY = listWidget[i].y | 0;
} else if(listLists != null) {
nextX = listLists[i].x;
nextY = listLists[i].y;
}
dy = nextY - currY;
if((dy < 0 ? -1 : 1) == (Y < 0 ? -1 : 1) && dy != 0) {
dy = Math.abs(dy);
if(dy < bestdy) {
bestdy = dy;
bestdx = Math.abs(currX - nextX);
besti = i;
} else if(dy == bestdy) {
dx = Math.abs(currX - nextX);
if(dx < bestdx) {
bestdx = dx;
besti = i;
}
}
}
}
}
return besti;
}
,_wrapX: function(X,indexValue,listLength) {
if(indexValue + X < 0) {
indexValue = indexValue + X + listLength;
} else if(indexValue + X >= listLength) {
indexValue = indexValue + X - listLength;
}
return indexValue;
}
,_wrapY: function(Y,indexValue,listWidget,listLists) {
var dx = Infinity;
var dy = Infinity;
var bestdx = dx;
var bestdy = dy;
var besti = -1;
bestdx = Infinity;
bestdy = 0;
var length = 0;
var currX = 0;
var currY = 0;
if(listWidget != null) {
length = listWidget.length;
currX = listWidget[indexValue].x | 0;
currY = listWidget[indexValue].y | 0;
}
if(listLists != null) {
length = listLists.length;
currX = listLists[indexValue].x;
currY = listLists[indexValue].y;
}
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
if(i != this.location) {
var xx = 0;
var yy = 0;
if(listWidget != null) {
xx = listWidget[i].x | 0;
yy = listWidget[i].y | 0;
} else if(listLists != null) {
xx = listLists[i].x | 0;
yy = listLists[i].y | 0;
}
dy = yy - currY;
if((dy < 0 ? -1 : 1) == (Y < 0 ? -1 : 1) == false && dy != 0) {
dy = Math.abs(dy);
if(dy > bestdy) {
bestdy = dy;
bestdx = Math.abs(currX - xx);
besti = i;
} else if(dy == bestdy) {
dx = Math.abs(currX - xx);
if(dx < bestdx) {
bestdx = dx;
besti = i;
}
}
}
}
}
if(besti != -1) {
indexValue = besti;
}
return indexValue;
}
,_doInput: function(X,Y,recursion) {
if(recursion == null) {
recursion = 0;
}
if(this.ignoreNextInput) {
this.ignoreNextInput = false;
return;
}
var currWidget = null;
if(Y == 0) {
if(this.location + X >= 0 && this.location + X < this._widgets.length) {
this.set_location(this.location + X);
} else if(this.wrap) {
if(this._lists.length == 1) {
this.set_location(this._wrapX(X,this.location,this._widgets.length));
} else {
if(this.listIndex + X >= 0 && this.listIndex + X < this._lists.length) {
this.set_listIndex(this.listIndex + X);
} else {
this.set_listIndex(this._wrapX(X,this.listIndex,this._lists.length));
}
if(X == -1) {
this.set_location(this._widgets.length - 1);
}
}
}
currWidget = this._widgets[this.location];
} else {
var nextY = this._findNextY(Y,this.location,this._widgets,null);
if(nextY != -1) {
this.set_location(nextY);
currWidget = this._widgets[this.location];
} else if(this.wrap) {
if(this._lists.length == 1) {
this.set_location(this._wrapY(Y,this.location,this._widgets,null));
currWidget = this._widgets[this.location];
} else {
var nextListY = this._findNextY(Y,this.listIndex,null,this._lists);
if(nextListY != -1) {
this.set_listIndex(nextListY);
currWidget = this._widgets[this.location];
} else {
this.set_listIndex(this._wrapY(Y,this.listIndex,null,this._lists));
}
if(Y == -1) {
this.set_location(this._widgets.length - 1);
}
}
currWidget = this._widgets[this.location];
}
}
if(currWidget != null && this._widgets != null) {
if(currWidget.visible == false && recursion < this._widgets.length) {
this._doInput(X,Y,recursion + 1);
return;
}
}
if(this.callback != null) {
this.callback("cursor_jump",currWidget);
}
}
,_updateCursor: function() {
this._widgets = this._lists[this.listIndex].widgets;
if(this.location < 0 || this._lists == null || this._widgets == null) {
this.set_visible(false);
return;
}
this.set_visible(this.set_active(true));
var currWidget = this._widgets[this.location];
var flippedX = false;
var flippedY = false;
if(currWidget != null) {
var target = currWidget;
if(((target) instanceof flixel_FlxSprite)) {
var fs = target;
if(fs != null && fs.scrollFactor != null) {
this.scrollFactor.set(fs.scrollFactor.x,fs.scrollFactor.y);
}
}
if(((currWidget) instanceof flixel_addons_ui_FlxUICheckBox)) {
var check = target;
target = check.box;
}
this.anchor.anchorThing(this,target);
if(this.x < 0) {
this._flipAnchor("left",target);
flippedX = true;
} else if(this.x > flixel_FlxG.width + this.get_width()) {
this._flipAnchor("right",target);
flippedX = true;
}
if(this.y < 0) {
this._flipAnchor("top",target);
flippedY = true;
} else if(this.y > flixel_FlxG.height + this.get_height()) {
this._flipAnchor("bottom",target);
flippedY = true;
}
this.set_flipX(flippedX);
this.set_flipY(flippedY);
}
}
,_flipAnchor: function(AnchorDir,destination) {
var theAnchor = null;
switch(AnchorDir) {
case "bottom":
if(this.anchor.y.side == "bottom") {
this._bottomAnchor = this.anchor.getFlipped(true,false,this._bottomAnchor);
theAnchor = this._bottomAnchor;
}
break;
case "left":
if(this.anchor.x.side == "left") {
this._leftAnchor = this.anchor.getFlipped(true,false,this._leftAnchor);
theAnchor = this._leftAnchor;
}
break;
case "right":
if(this.anchor.x.side == "right") {
this._topAnchor = this.anchor.getFlipped(true,false,this._rightAnchor);
theAnchor = this._rightAnchor;
}
break;
case "top":
if(this.anchor.y.side == "top") {
this._topAnchor = this.anchor.getFlipped(true,false,this._topAnchor);
theAnchor = this._topAnchor;
}
break;
}
if(theAnchor != null) {
theAnchor.anchorThing(this,destination);
}
}
,__class__: flixel_addons_ui_FlxUICursor
,__properties__: $extend(flixel_addons_ui_FlxUISprite.prototype.__properties__,{set_gamepad:"set_gamepad",get_gamepad:"get_gamepad",set_listIndex:"set_listIndex",set_location:"set_location"})
});
var flixel_addons_ui_GamepadAutoConnectPreference = $hxEnums["flixel.addons.ui.GamepadAutoConnectPreference"] = { __ename__ : "flixel.addons.ui.GamepadAutoConnectPreference", __constructs__ : ["Never","FirstActive","LastActive","GamepadID"]
,Never: {_hx_index:0,__enum__:"flixel.addons.ui.GamepadAutoConnectPreference",toString:$estr}
,FirstActive: {_hx_index:1,__enum__:"flixel.addons.ui.GamepadAutoConnectPreference",toString:$estr}
,LastActive: {_hx_index:2,__enum__:"flixel.addons.ui.GamepadAutoConnectPreference",toString:$estr}
,GamepadID: ($_=function(i) { return {_hx_index:3,i:i,__enum__:"flixel.addons.ui.GamepadAutoConnectPreference",toString:$estr}; },$_.__params__ = ["i"],$_)
};
var flixel_addons_ui_SortMethod = $hxEnums["flixel.addons.ui.SortMethod"] = { __ename__ : "flixel.addons.ui.SortMethod", __constructs__ : ["XY","ID"]
,XY: {_hx_index:0,__enum__:"flixel.addons.ui.SortMethod",toString:$estr}
,ID: {_hx_index:1,__enum__:"flixel.addons.ui.SortMethod",toString:$estr}
};
var flixel_addons_ui_FlxUIDropDownMenu = function(X,Y,DataList,Callback,Header,DropPanel,ButtonList,UIControlCallback) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.dropDirection = flixel_addons_ui_FlxUIDropDownMenuDropDirection.Automatic;
this.list = [];
flixel_addons_ui_FlxUIGroup.call(this,X,Y);
this.callback = Callback;
this.header = Header;
this.dropPanel = DropPanel;
if(this.header == null) {
this.header = new flixel_addons_ui_FlxUIDropDownHeader();
}
if(this.dropPanel == null) {
var rect = new openfl_geom_Rectangle(0,0,this.header.background.get_width(),this.header.background.get_height());
this.dropPanel = new flixel_addons_ui_FlxUI9SliceSprite(0,0,"flixel/flixel-ui/img/box.png",rect,[1,1,14,14]);
}
if(DataList != null) {
var _g = 0;
var _g1 = DataList.length;
while(_g < _g1) {
var i = _g++;
var data = DataList[i];
this.list.push(this.makeListButton(i,data.label,data.name));
}
this.selectSomething(DataList[0].name,DataList[0].label);
} else if(ButtonList != null) {
var _g = 0;
while(_g < ButtonList.length) {
var btn = ButtonList[_g];
++_g;
this.list.push(btn);
btn.resize(this.header.background.get_width(),this.header.background.get_height());
btn.set_x(1);
}
}
this.updateButtonPositions();
this.dropPanel.resize(this.header.background.get_width(),this.getPanelHeight());
this.dropPanel.set_visible(false);
this.add(this.dropPanel);
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var btn = _g1[_g];
++_g;
this.add(btn);
btn.set_visible(false);
}
this.header.button.onUp.callback = $bind(this,this.onDropdown);
this.add(this.header);
};
$hxClasses["flixel.addons.ui.FlxUIDropDownMenu"] = flixel_addons_ui_FlxUIDropDownMenu;
flixel_addons_ui_FlxUIDropDownMenu.__name__ = "flixel.addons.ui.FlxUIDropDownMenu";
flixel_addons_ui_FlxUIDropDownMenu.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IFlxUIWidget];
flixel_addons_ui_FlxUIDropDownMenu.makeStrIdLabelArray = function(StringArray,UseIndexID) {
if(UseIndexID == null) {
UseIndexID = false;
}
var strIdArray = [];
var _g = 0;
var _g1 = StringArray.length;
while(_g < _g1) {
var i = _g++;
var ID = StringArray[i];
if(UseIndexID) {
ID = i == null ? "null" : "" + i;
}
strIdArray[i] = new flixel_addons_ui_StrNameLabel(ID,StringArray[i]);
}
return strIdArray;
};
flixel_addons_ui_FlxUIDropDownMenu.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUIDropDownMenu.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
skipButtonUpdate: null
,set_skipButtonUpdate: function(b) {
this.skipButtonUpdate = b;
this.header.button.set_skipButtonUpdate(b);
return b;
}
,_selectedId: null
,_selectedLabel: null
,get_selectedId: function() {
return this._selectedId;
}
,set_selectedId: function(str) {
if(this._selectedId == str) {
return str;
}
var i = 0;
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var btn = _g1[_g];
++_g;
if(btn != null && btn.name == str) {
var item = this.list[i];
this._selectedId = str;
if(item.label != null) {
this._selectedLabel = item.label.text;
this.header.text.set_text(item.label.text);
} else {
this._selectedLabel = "";
this.header.text.set_text("");
}
return str;
}
++i;
}
return str;
}
,get_selectedLabel: function() {
return this._selectedLabel;
}
,set_selectedLabel: function(str) {
if(this._selectedLabel == str) {
return str;
}
var i = 0;
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var btn = _g1[_g];
++_g;
if(btn.label.text == str) {
var item = this.list[i];
this._selectedId = item.name;
this._selectedLabel = str;
this.header.text.set_text(str);
return str;
}
++i;
}
return str;
}
,header: null
,list: null
,dropPanel: null
,params: null
,set_params: function(p) {
return this.params = p;
}
,dropDirection: null
,set_dropDirection: function(dropDirection) {
this.dropDirection = dropDirection;
this.updateButtonPositions();
return dropDirection;
}
,callback: null
,updateButtonPositions: function() {
var buttonHeight = this.header.background.get_height();
this.dropPanel.set_y(this.header.background.y);
if(this.dropsUp()) {
var _g = this.dropPanel;
_g.set_y(_g.y - this.getPanelHeight());
} else {
var _g = this.dropPanel;
_g.set_y(_g.y + buttonHeight);
}
var offset = this.dropPanel.y;
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
button.set_y(offset);
offset += buttonHeight;
}
}
,set_visible: function(Value) {
var vDropPanel = this.dropPanel.visible;
var vButtons = [];
var _g = 0;
var _g1 = this.list.length;
while(_g < _g1) {
var i = _g++;
if(this.list[i] != null) {
vButtons.push(this.list[i].visible);
} else {
vButtons.push(false);
}
}
flixel_addons_ui_FlxUIGroup.prototype.set_visible.call(this,Value);
this.dropPanel.set_visible(vDropPanel);
var _g = 0;
var _g1 = this.list.length;
while(_g < _g1) {
var i = _g++;
if(this.list[i] != null) {
this.list[i].set_visible(vButtons[i]);
}
}
return Value;
}
,dropsUp: function() {
if(this.dropDirection != flixel_addons_ui_FlxUIDropDownMenuDropDirection.Up) {
if(this.dropDirection == flixel_addons_ui_FlxUIDropDownMenuDropDirection.Automatic) {
return this.exceedsHeight();
} else {
return false;
}
} else {
return true;
}
}
,exceedsHeight: function() {
return this.y + this.getPanelHeight() + this.header.background.get_height() > flixel_FlxG.height;
}
,getPanelHeight: function() {
return this.list.length * this.header.background.get_height();
}
,setData: function(DataList) {
var i = 0;
if(DataList != null) {
var _g = 0;
while(_g < DataList.length) {
var data = DataList[_g];
++_g;
var recycled = false;
if(this.list != null) {
if(i <= this.list.length - 1) {
var btn = this.list[i];
if(btn != null) {
btn.label.set_text(data.label);
this.list[i].name = data.name;
recycled = true;
}
}
} else {
this.list = [];
}
if(!recycled) {
var t = this.makeListButton(i,data.label,data.name);
this.list.push(t);
this.add(t);
t.set_visible(false);
}
++i;
}
if(this.list.length > DataList.length) {
var _g = DataList.length;
var _g1 = this.list.length;
while(_g < _g1) {
var j = _g++;
var b = this.list.pop();
b.set_visible(false);
b.set_active(false);
this.remove(b,true);
b.destroy();
b = null;
}
}
this.selectSomething(DataList[0].name,DataList[0].label);
}
this.dropPanel.resize(this.header.background.get_width(),this.getPanelHeight());
this.updateButtonPositions();
}
,selectSomething: function(name,label) {
this.header.text.set_text(label);
this.set_selectedId(name);
this.set_selectedLabel(label);
}
,makeListButton: function(i,Label,Name) {
var t = new flixel_addons_ui_FlxUIButton(0,0,Label);
t.broadcastToFlxUI = false;
var _g = $bind(this,this.onClickItem);
var i1 = i;
var tmp = function() {
_g(i1);
};
t.onUp.callback = tmp;
t.name = Name;
t.loadGraphicSlice9(["flixel/flixel-ui/img/invis.png","flixel/flixel-ui/img/hilight.png","flixel/flixel-ui/img/hilight.png"],this.header.background.get_width() | 0,this.header.background.get_height() | 0,[[1,1,3,3],[1,1,3,3],[1,1,3,3]],0);
var _g1 = t.labelOffsets[2];
_g1.set_y(_g1.y - 1);
t.up_color = -16777216;
t.over_color = -1;
t.down_color = -1;
t.resize(this.header.background.get_width() - 2,this.header.background.get_height() - 1);
t.label.set_alignment("left");
t.autoCenterLabel();
t.set_x(1);
var _g1 = 0;
var _g2 = t.labelOffsets;
while(_g1 < _g2.length) {
var offset = _g2[_g1];
++_g1;
var _g3 = offset;
_g3.set_x(_g3.x + 2);
}
return t;
}
,changeLabelByIndex: function(i,NewLabel) {
var btn = this.getBtnByIndex(i);
if(btn != null && btn.label != null) {
btn.label.set_text(NewLabel);
}
}
,changeLabelById: function(name,NewLabel) {
var btn = this.getBtnById(name);
if(btn != null && btn.label != null) {
btn.label.set_text(NewLabel);
}
}
,getBtnByIndex: function(i) {
if(i >= 0 && i < this.list.length) {
return this.list[i];
}
return null;
}
,getBtnById: function(name) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var btn = _g1[_g];
++_g;
if(btn.name == name) {
return btn;
}
}
return null;
}
,update: function(elapsed) {
flixel_addons_ui_FlxUIGroup.prototype.update.call(this,elapsed);
if(this.dropPanel.visible && flixel_FlxG.mouse._leftButton.current == 2) {
if(!flixel_FlxG.mouse.overlaps(this)) {
this.showList(false);
}
}
}
,destroy: function() {
flixel_addons_ui_FlxUIGroup.prototype.destroy.call(this);
this.dropPanel = flixel_util_FlxDestroyUtil.destroy(this.dropPanel);
this.list = flixel_util_FlxDestroyUtil.destroyArray(this.list);
this.callback = null;
}
,showList: function(b) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
button.set_visible(b);
button.set_active(b);
}
this.dropPanel.set_visible(b);
flixel_addons_ui_FlxUI.forceFocus(b,this);
}
,onDropdown: function() {
if(this.dropPanel.visible) {
this.showList(false);
} else {
this.showList(true);
}
}
,onClickItem: function(i) {
var item = this.list[i];
this.selectSomething(item.name,item.label.text);
this.showList(false);
if(this.callback != null) {
this.callback(item.name);
}
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event("click_dropdown",this,item.name,this.params);
}
}
,__class__: flixel_addons_ui_FlxUIDropDownMenu
,__properties__: $extend(flixel_addons_ui_FlxUIGroup.prototype.__properties__,{set_dropDirection:"set_dropDirection",set_params:"set_params",set_selectedLabel:"set_selectedLabel",get_selectedLabel:"get_selectedLabel",set_selectedId:"set_selectedId",get_selectedId:"get_selectedId",set_skipButtonUpdate:"set_skipButtonUpdate"})
});
var flixel_addons_ui_FlxUIDropDownHeader = function(Width,Background,Text1,Button) {
if(Width == null) {
Width = 120;
}
flixel_addons_ui_FlxUIGroup.call(this);
this.background = Background;
this.text = Text1;
this.button = Button;
if(this.background == null) {
this.background = new flixel_addons_ui_FlxUI9SliceSprite(0,0,"flixel/flixel-ui/img/box.png",new openfl_geom_Rectangle(0,0,Width,20),[1,1,14,14]);
}
if(this.button == null) {
this.button = new flixel_addons_ui_FlxUISpriteButton(0,0,new flixel_FlxSprite(0,0,"flixel/flixel-ui/img/dropdown_mark.png"));
this.button.loadGraphicSlice9(["flixel/flixel-ui/img/button_thin.png"],80,20,[flixel_util_FlxStringUtil.toIntArray("6,6,11,11")],0,-1,false,18,18);
}
this.button.resize(this.background.get_height(),this.background.get_height());
this.button.set_x(this.background.x + this.background.get_width() - this.button.get_width());
this.button.set_width(Width);
var _g = this.button.offset;
_g.set_x(_g.x - (Width - this.button.frameWidth));
this.button.set_x(this.offset.x);
var _g = this.button.label.offset;
_g.set_x(_g.x + this.button.offset.x);
if(this.text == null) {
this.text = new flixel_addons_ui_FlxUIText(0,0,this.background.get_width() | 0);
}
this.text.setPosition(2,4);
this.text.set_color(-16777216);
this.add(this.background);
this.add(this.button);
this.add(this.text);
};
$hxClasses["flixel.addons.ui.FlxUIDropDownHeader"] = flixel_addons_ui_FlxUIDropDownHeader;
flixel_addons_ui_FlxUIDropDownHeader.__name__ = "flixel.addons.ui.FlxUIDropDownHeader";
flixel_addons_ui_FlxUIDropDownHeader.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUIDropDownHeader.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
background: null
,text: null
,button: null
,destroy: function() {
flixel_addons_ui_FlxUIGroup.prototype.destroy.call(this);
this.background = flixel_util_FlxDestroyUtil.destroy(this.background);
this.text = flixel_util_FlxDestroyUtil.destroy(this.text);
this.button = flixel_util_FlxDestroyUtil.destroy(this.button);
}
,__class__: flixel_addons_ui_FlxUIDropDownHeader
});
var flixel_addons_ui_FlxUIDropDownMenuDropDirection = $hxEnums["flixel.addons.ui.FlxUIDropDownMenuDropDirection"] = { __ename__ : "flixel.addons.ui.FlxUIDropDownMenuDropDirection", __constructs__ : ["Automatic","Down","Up"]
,Automatic: {_hx_index:0,__enum__:"flixel.addons.ui.FlxUIDropDownMenuDropDirection",toString:$estr}
,Down: {_hx_index:1,__enum__:"flixel.addons.ui.FlxUIDropDownMenuDropDirection",toString:$estr}
,Up: {_hx_index:2,__enum__:"flixel.addons.ui.FlxUIDropDownMenuDropDirection",toString:$estr}
};
var flixel_addons_ui_FlxUIInputText = function(X,Y,Width,Text1,size,TextColor,BackgroundColor,EmbeddedFont) {
this.broadcastToFlxUI = true;
flixel_addons_ui_FlxInputText.call(this,X,Y,Width,Text1,size,TextColor,BackgroundColor,EmbeddedFont);
};
$hxClasses["flixel.addons.ui.FlxUIInputText"] = flixel_addons_ui_FlxUIInputText;
flixel_addons_ui_FlxUIInputText.__name__ = "flixel.addons.ui.FlxUIInputText";
flixel_addons_ui_FlxUIInputText.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable];
flixel_addons_ui_FlxUIInputText.__super__ = flixel_addons_ui_FlxInputText;
flixel_addons_ui_FlxUIInputText.prototype = $extend(flixel_addons_ui_FlxInputText.prototype,{
name: null
,broadcastToFlxUI: null
,resize: function(w,h) {
this.set_width(w);
this.set_height(h);
this.calcFrame();
}
,onChange: function(action) {
flixel_addons_ui_FlxInputText.prototype.onChange.call(this,action);
if(this.broadcastToFlxUI) {
switch(action) {
case "backspace":case "delete":
flixel_addons_ui_FlxUI.event("delete_input_text",this,this.text,this.params);
flixel_addons_ui_FlxUI.event("change_input_text",this,this.text,this.params);
break;
case "enter":
flixel_addons_ui_FlxUI.event("enter_input_text",this,this.text,this.params);
break;
case "input":
flixel_addons_ui_FlxUI.event("input_input_text",this,this.text,this.params);
flixel_addons_ui_FlxUI.event("change_input_text",this,this.text,this.params);
break;
}
}
}
,__class__: flixel_addons_ui_FlxUIInputText
});
var flixel_addons_ui_FlxUILine = function(X,Y,Axis,Length,Thickness,Color) {
this.thickness = 1;
this.length = 10;
this.axis = flixel_addons_ui_LineAxis.HORIZONTAL;
flixel_addons_ui_FlxUISprite.call(this,X,Y);
this.makeGraphic(2,2,-1);
this.set_color(Color);
this.set_axis(Axis);
this.set_length(Length);
this.set_thickness(Thickness);
};
$hxClasses["flixel.addons.ui.FlxUILine"] = flixel_addons_ui_FlxUILine;
flixel_addons_ui_FlxUILine.__name__ = "flixel.addons.ui.FlxUILine";
flixel_addons_ui_FlxUILine.__interfaces__ = [flixel_addons_ui_interfaces_IResizable];
flixel_addons_ui_FlxUILine.__super__ = flixel_addons_ui_FlxUISprite;
flixel_addons_ui_FlxUILine.prototype = $extend(flixel_addons_ui_FlxUISprite.prototype,{
axis: null
,length: null
,thickness: null
,set_axis: function(a) {
this.axis = a;
this.refresh();
return a;
}
,set_length: function(l) {
this.length = l;
this.refresh();
return l;
}
,set_thickness: function(t) {
this.thickness = t;
this.refresh();
return t;
}
,refresh: function() {
if(this.axis == flixel_addons_ui_LineAxis.HORIZONTAL) {
this.scale.set(0.5 * this.length,0.5 * this.thickness);
} else {
this.scale.set(0.5 * this.thickness,0.5 * this.length);
}
this.updateHitbox();
}
,resize: function(width,height) {
if(this.axis == flixel_addons_ui_LineAxis.HORIZONTAL) {
this.set_length(width);
this.set_thickness(height);
} else {
this.set_length(height);
this.set_thickness(width);
}
}
,__class__: flixel_addons_ui_FlxUILine
,__properties__: $extend(flixel_addons_ui_FlxUISprite.prototype.__properties__,{set_thickness:"set_thickness",set_length:"set_length",set_axis:"set_axis"})
});
var flixel_addons_ui_LineAxis = $hxEnums["flixel.addons.ui.LineAxis"] = { __ename__ : "flixel.addons.ui.LineAxis", __constructs__ : ["HORIZONTAL","VERTICAL"]
,HORIZONTAL: {_hx_index:0,__enum__:"flixel.addons.ui.LineAxis",toString:$estr}
,VERTICAL: {_hx_index:1,__enum__:"flixel.addons.ui.LineAxis",toString:$estr}
};
var flixel_addons_ui_FlxUIList = function(X,Y,Widgets,W,H,MoreString,Stacking,Spacing,PrevButtonOffset,NextButtonOffset,PrevButton,NextButton) {
if(Spacing == null) {
Spacing = 0;
}
if(Stacking == null) {
Stacking = 1;
}
if(MoreString == null) {
MoreString = "<X> more...";
}
if(H == null) {
H = 0;
}
if(W == null) {
W = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this._skipRefresh = false;
this.scrollIndex = 0;
this._skipRefresh = true;
flixel_addons_ui_FlxUIGroup.call(this,X,Y);
this.set_stacking(Stacking);
this.set_spacing(Spacing);
if(Widgets != null) {
var _g = 0;
while(_g < Widgets.length) {
var widget = Widgets[_g];
++_g;
this.add(widget);
}
}
this.prevButton = PrevButton;
this.nextButton = NextButton;
this.prevButtonOffset = PrevButtonOffset;
this.nextButtonOffset = NextButtonOffset;
this.set_moreString(MoreString);
if(this.prevButton == null) {
var _g = $bind(this,this.onClick);
var i = -1;
var pButton = new flixel_addons_ui_FlxUIButton(0,0," ",function() {
_g(i);
});
if(this.stacking == 0) {
pButton.loadGraphicsUpOverDown("flixel/flixel-ui/img/button_arrow_left.png");
pButton.label.set_width(pButton.label.set_fieldWidth(100));
pButton.label.set_text(this.getMoreString(0));
pButton.setAllLabelOffsets(pButton.get_width() - pButton.label.get_width(),pButton.get_height() + 2);
pButton.label.set_alignment("right");
} else {
pButton.loadGraphicsUpOverDown("flixel/flixel-ui/img/button_arrow_up.png");
pButton.label.set_width(pButton.label.set_fieldWidth(100));
pButton.label.set_text(this.getMoreString(0));
pButton.setAllLabelOffsets(0,0);
pButton.setCenterLabelOffset(pButton.get_width() + 2,pButton.get_height() - pButton.label.get_height());
pButton.label.set_alignment("left");
}
this.prevButton = pButton;
} else {
if(((this.prevButton) instanceof flixel_addons_ui_FlxUIButton)) {
var fuib = this.prevButton;
var _g1 = $bind(this,this.onClick);
var i1 = -1;
var tmp = function() {
_g1(i1);
};
fuib.onUp.callback = tmp;
}
if(((this.prevButton) instanceof flixel_addons_ui_FlxUISpriteButton)) {
var fusb = this.prevButton;
var _g2 = $bind(this,this.onClick);
var i2 = -1;
var tmp = function() {
_g2(i2);
};
fusb.onUp.callback = tmp;
}
}
if(this.nextButton == null) {
var _g3 = $bind(this,this.onClick);
var i3 = 1;
var nButton = new flixel_addons_ui_FlxUIButton(0,0," ",function() {
_g3(i3);
});
if(this.stacking == 0) {
nButton.loadGraphicsUpOverDown("flixel/flixel-ui/img/button_arrow_right.png");
nButton.label.set_width(nButton.label.set_fieldWidth(100));
nButton.label.set_text(this.getMoreString(0));
nButton.setAllLabelOffsets(0,nButton.get_height() + 2);
nButton.label.set_alignment("left");
} else {
nButton.loadGraphicsUpOverDown("flixel/flixel-ui/img/button_arrow_down.png");
nButton.label.set_width(nButton.label.set_fieldWidth(100));
nButton.label.set_text(this.getMoreString(0));
nButton.setAllLabelOffsets(0,0);
nButton.setCenterLabelOffset(nButton.get_width() + 2,0);
nButton.label.set_alignment("left");
}
this.nextButton = nButton;
} else {
if(((this.nextButton) instanceof flixel_addons_ui_FlxUIButton)) {
var fuib = this.nextButton;
var _g4 = $bind(this,this.onClick);
var i4 = 1;
var tmp = function() {
_g4(i4);
};
fuib.onUp.callback = tmp;
}
if(((this.nextButton) instanceof flixel_addons_ui_FlxUISpriteButton)) {
var fusb = this.nextButton;
var _g5 = $bind(this,this.onClick);
var i5 = 1;
var tmp = function() {
_g5(i5);
};
fusb.onUp.callback = tmp;
}
}
if(this.prevButtonOffset == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.prevButtonOffset = point;
}
if(this.nextButtonOffset == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
this.nextButtonOffset = point;
}
this._skipRefresh = false;
this.setSize(W,H);
};
$hxClasses["flixel.addons.ui.FlxUIList"] = flixel_addons_ui_FlxUIList;
flixel_addons_ui_FlxUIList.__name__ = "flixel.addons.ui.FlxUIList";
flixel_addons_ui_FlxUIList.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUIList.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
scrollIndex: null
,set_scrollIndex: function(i) {
this.scrollIndex = i;
this.refreshList();
return i;
}
,stacking: null
,set_stacking: function(Stacking) {
this.stacking = Stacking;
this.refreshList();
return Stacking;
}
,spacing: null
,set_spacing: function(Spacing) {
this.spacing = Spacing;
this.refreshList();
return Spacing;
}
,prevButtonOffset: null
,nextButtonOffset: null
,prevButton: null
,nextButton: null
,moreString: null
,set_moreString: function(str) {
this.moreString = str;
this.refreshList();
return this.moreString;
}
,amountPrevious: null
,amountNext: null
,destroy: function() {
this.prevButton = null;
this.nextButton = null;
this.prevButtonOffset.put();
this.nextButtonOffset.put();
this.prevButtonOffset = null;
this.nextButtonOffset = null;
flixel_addons_ui_FlxUIGroup.prototype.destroy.call(this);
}
,setSize: function(W,H) {
var flip = false;
if(this._skipRefresh == false) {
this._skipRefresh = true;
flip = true;
}
this.set_width(W);
this.set_height(H);
if(flip) {
this._skipRefresh = false;
}
this.refreshList();
}
,add: function(Object1) {
flixel_addons_ui_FlxUIGroup.prototype.add.call(this,Object1);
this.refreshList();
return Object1;
}
,safeAdd: function(Object1) {
return flixel_addons_ui_FlxUIGroup.prototype.add.call(this,Object1);
}
,_skipRefresh: null
,getMoreString: function(i) {
var newString = this.moreString;
while(newString.indexOf("<X>") != -1) newString = StringTools.replace(newString,"<X>",i == null ? "null" : "" + i);
return newString;
}
,set_visible: function(Value) {
flixel_addons_ui_FlxUIGroup.prototype.set_visible.call(this,Value);
this.refreshList();
return Value;
}
,onClick: function(i) {
var _g = this;
_g.set_scrollIndex(_g.scrollIndex + i);
this.refreshList();
}
,refreshList: function() {
if(this._skipRefresh) {
return;
}
this.autoBounds = false;
if(this.group.members.indexOf(this.prevButton) != -1) {
this.remove(this.prevButton,true);
}
if(this.group.members.indexOf(this.nextButton) != -1) {
this.remove(this.nextButton,true);
}
var XX = 0;
var YY = 0;
var i = 0;
var inBounds = true;
if(this.stacking == 0) {
this.prevButton.set_x(this.prevButtonOffset.x - this.prevButton.get_width() - 2);
this.prevButton.set_y(this.prevButtonOffset.y);
this.nextButton.set_x(this.nextButtonOffset.x + this.get_width() + 2);
this.nextButton.set_y(this.nextButtonOffset.y);
} else {
this.prevButton.set_x(this.prevButtonOffset.x);
this.prevButton.set_y(this.prevButtonOffset.y - this.prevButton.get_height() - 2);
this.nextButton.set_x(this.nextButtonOffset.x);
this.nextButton.set_y(this.nextButtonOffset.y + this.get_height() + 2);
}
this.prevButton.set_x(this.prevButton.x | 0);
this.prevButton.set_y(this.prevButton.y | 0);
this.nextButton.set_x(this.nextButton.x | 0);
this.nextButton.set_y(this.nextButton.y | 0);
var highestIndex = 0;
var _g = 0;
var _g1 = this.group.members;
while(_g < _g1.length) {
var widget = _g1[_g];
++_g;
inBounds = false;
if(i >= this.scrollIndex) {
if(this.stacking == 1) {
inBounds = YY + widget.get_height() <= this.get_height() || this.get_height() <= 0;
} else {
inBounds = XX + widget.get_width() <= this.get_width() || this.get_width() <= 0;
}
}
if(inBounds) {
highestIndex = i;
widget.set_visible(widget.set_active(true));
widget.set_x(this.x + XX);
widget.set_y(this.y + YY);
if(this.stacking == 1) {
YY += widget.get_height() + this.spacing;
} else {
XX += widget.get_width() + this.spacing;
}
} else {
widget.set_x(widget.set_y(0));
widget.set_visible(widget.set_active(false));
}
++i;
}
this.amountPrevious = this.scrollIndex;
this.amountNext = this.group.members.length - (highestIndex + 1);
var fuibutton;
if(this.amountPrevious > 0) {
this.safeAdd(this.prevButton);
if(((this.prevButton) instanceof flixel_addons_ui_FlxUIButton)) {
fuibutton = this.prevButton;
fuibutton.label.set_text(this.getMoreString(this.amountPrevious));
}
}
if(this.amountNext > 0) {
this.safeAdd(this.nextButton);
if(((this.nextButton) instanceof flixel_addons_ui_FlxUIButton)) {
fuibutton = this.nextButton;
fuibutton.label.set_text(this.getMoreString(this.amountNext));
}
}
}
,get_width: function() {
return this.width;
}
,get_height: function() {
return this.height;
}
,set_width: function(W) {
this.width = W;
this.refreshList();
return W;
}
,set_height: function(H) {
this.height = H;
this.refreshList();
return H;
}
,__class__: flixel_addons_ui_FlxUIList
,__properties__: $extend(flixel_addons_ui_FlxUIGroup.prototype.__properties__,{set_moreString:"set_moreString",set_spacing:"set_spacing",set_stacking:"set_stacking",set_scrollIndex:"set_scrollIndex"})
});
var flixel_input_FlxPointer = function() {
this._globalScreenY = 0;
this._globalScreenX = 0;
this.screenY = 0;
this.screenX = 0;
this.y = 0;
this.x = 0;
};
$hxClasses["flixel.input.FlxPointer"] = flixel_input_FlxPointer;
flixel_input_FlxPointer.__name__ = "flixel.input.FlxPointer";
flixel_input_FlxPointer.prototype = {
x: null
,y: null
,screenX: null
,screenY: null
,_globalScreenX: null
,_globalScreenY: null
,getWorldPosition: function(Camera,point) {
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
this.getScreenPosition(Camera,flixel_input_FlxPointer._cachedPoint);
point.set_x(flixel_input_FlxPointer._cachedPoint.x + Camera.scroll.x);
point.set_y(flixel_input_FlxPointer._cachedPoint.y + Camera.scroll.y);
return point;
}
,getScreenPosition: function(Camera,point) {
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
point.set_x((this._globalScreenX - Camera.x + 0.5 * Camera.width * (Camera.zoom - Camera.initialZoom)) / Camera.zoom);
point.set_y((this._globalScreenY - Camera.y + 0.5 * Camera.height * (Camera.zoom - Camera.initialZoom)) / Camera.zoom);
return point;
}
,getPositionInCameraView: function(Camera,point) {
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
point.set_x((this._globalScreenX - Camera.x) / Camera.zoom + Camera.viewOffsetX);
point.set_y((this._globalScreenY - Camera.y) / Camera.zoom + Camera.viewOffsetY);
return point;
}
,getPosition: function(point) {
if(point == null) {
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
point = point1;
}
return point.set(this.x,this.y);
}
,overlaps: function(ObjectOrGroup,Camera) {
var _gthis = this;
var result = false;
var group = flixel_group_FlxTypedGroup.resolveGroup(ObjectOrGroup);
if(group != null) {
group.forEachExists(function(basic) {
if(_gthis.overlaps(basic,Camera)) {
result = true;
return;
}
});
} else {
this.getPosition(flixel_input_FlxPointer._cachedPoint);
var object = ObjectOrGroup;
result = object.overlapsPoint(flixel_input_FlxPointer._cachedPoint,true,Camera);
}
return result;
}
,setGlobalScreenPositionUnsafe: function(newX,newY) {
this._globalScreenX = newX / flixel_FlxG.scaleMode.scale.x | 0;
this._globalScreenY = newY / flixel_FlxG.scaleMode.scale.y | 0;
this.updatePositions();
}
,toString: function() {
var value = this.x;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "x";
_this.value = value;
var value = this.y;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "y";
_this1.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1]);
}
,updatePositions: function() {
this.getScreenPosition(flixel_FlxG.camera,flixel_input_FlxPointer._cachedPoint);
this.screenX = flixel_input_FlxPointer._cachedPoint.x | 0;
this.screenY = flixel_input_FlxPointer._cachedPoint.y | 0;
this.getWorldPosition(flixel_FlxG.camera,flixel_input_FlxPointer._cachedPoint);
this.x = flixel_input_FlxPointer._cachedPoint.x | 0;
this.y = flixel_input_FlxPointer._cachedPoint.y | 0;
}
,__class__: flixel_input_FlxPointer
};
var flixel_input_IFlxInputManager = function() { };
$hxClasses["flixel.input.IFlxInputManager"] = flixel_input_IFlxInputManager;
flixel_input_IFlxInputManager.__name__ = "flixel.input.IFlxInputManager";
flixel_input_IFlxInputManager.__isInterface__ = true;
flixel_input_IFlxInputManager.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_input_IFlxInputManager.prototype = {
reset: null
,update: null
,onFocus: null
,onFocusLost: null
,__class__: flixel_input_IFlxInputManager
};
var flixel_input_mouse_FlxMouse = function(cursorContainer) {
this._prevY = 0;
this._prevX = 0;
this._lastWheel = 0;
this._lastY = 0;
this._lastX = 0;
this._visibleWhenFocusLost = true;
this._wheelUsed = false;
this._cursor = null;
this.useSystemCursor = false;
this.visible = true;
this.wheel = 0;
this.enabled = true;
flixel_input_FlxPointer.call(this);
this.cursorContainer = cursorContainer;
this.cursorContainer.mouseChildren = false;
this.cursorContainer.mouseEnabled = false;
this._leftButton = new flixel_input_mouse_FlxMouseButton(-1);
this._stage = openfl_Lib.get_current().stage;
this._stage.addEventListener("mouseDown",($_=this._leftButton,$bind($_,$_.onDown)));
this._stage.addEventListener("mouseUp",($_=this._leftButton,$bind($_,$_.onUp)));
this._middleButton = new flixel_input_mouse_FlxMouseButton(-2);
this._rightButton = new flixel_input_mouse_FlxMouseButton(-3);
this._stage.addEventListener("middleMouseDown",($_=this._middleButton,$bind($_,$_.onDown)));
this._stage.addEventListener("middleMouseUp",($_=this._middleButton,$bind($_,$_.onUp)));
this._stage.addEventListener("rightMouseDown",($_=this._rightButton,$bind($_,$_.onDown)));
this._stage.addEventListener("rightMouseUp",($_=this._rightButton,$bind($_,$_.onUp)));
this._stage.addEventListener("mouseLeave",$bind(this,this.onMouseLeave));
this._stage.addEventListener("mouseWheel",$bind(this,this.onMouseWheel));
flixel_FlxG.signals.postGameStart.add($bind(this,this.onGameStart));
openfl_ui_Mouse.hide();
};
$hxClasses["flixel.input.mouse.FlxMouse"] = flixel_input_mouse_FlxMouse;
flixel_input_mouse_FlxMouse.__name__ = "flixel.input.mouse.FlxMouse";
flixel_input_mouse_FlxMouse.__interfaces__ = [flixel_input_IFlxInputManager];
flixel_input_mouse_FlxMouse.__super__ = flixel_input_FlxPointer;
flixel_input_mouse_FlxMouse.prototype = $extend(flixel_input_FlxPointer.prototype,{
enabled: null
,wheel: null
,cursorContainer: null
,visible: null
,useSystemCursor: null
,_leftButton: null
,_middleButton: null
,_rightButton: null
,_cursor: null
,_cursorBitmapData: null
,_wheelUsed: null
,_visibleWhenFocusLost: null
,_lastX: null
,_lastY: null
,_lastWheel: null
,_lastLeftButtonState: null
,_prevX: null
,_prevY: null
,_stage: null
,load: function(Graphic,Scale,XOffset,YOffset) {
if(YOffset == null) {
YOffset = 0;
}
if(XOffset == null) {
XOffset = 0;
}
if(Scale == null) {
Scale = 1;
}
if(this._cursor != null) {
flixel_util_FlxDestroyUtil.removeChild(this.cursorContainer,this._cursor);
}
if(Graphic == null) {
Graphic = new flixel_input_mouse__$FlxMouse_GraphicCursor(0,0);
}
if(js_Boot.__instanceof(Graphic,Class)) {
this._cursor = Type.createInstance(Graphic,[]);
} else if(((Graphic) instanceof openfl_display_BitmapData)) {
this._cursor = new openfl_display_Bitmap(Graphic);
} else if(typeof(Graphic) == "string") {
var id = Graphic;
this._cursor = new openfl_display_Bitmap(openfl_utils_Assets.exists(id) ? openfl_utils_Assets.getBitmapData(id,false) : null);
} else {
this._cursor = new openfl_display_Bitmap(new flixel_input_mouse__$FlxMouse_GraphicCursor(0,0));
}
this._cursor.set_x(XOffset);
this._cursor.set_y(YOffset);
this._cursor.set_scaleX(Scale);
this._cursor.set_scaleY(Scale);
this.cursorContainer.addChild(this._cursor);
}
,unload: function() {
if(this._cursor != null) {
if(this.cursorContainer.get_visible()) {
this.load();
} else {
this._cursor = flixel_util_FlxDestroyUtil.removeChild(this.cursorContainer,this._cursor);
}
}
}
,destroy: function() {
if(this._stage != null) {
this._stage.removeEventListener("mouseDown",($_=this._leftButton,$bind($_,$_.onDown)));
this._stage.removeEventListener("mouseUp",($_=this._leftButton,$bind($_,$_.onUp)));
this._stage.removeEventListener("middleMouseDown",($_=this._middleButton,$bind($_,$_.onDown)));
this._stage.removeEventListener("middleMouseUp",($_=this._middleButton,$bind($_,$_.onUp)));
this._stage.removeEventListener("rightMouseDown",($_=this._rightButton,$bind($_,$_.onDown)));
this._stage.removeEventListener("rightMouseUp",($_=this._rightButton,$bind($_,$_.onUp)));
this._stage.removeEventListener("mouseLeave",$bind(this,this.onMouseLeave));
this._stage.removeEventListener("mouseWheel",$bind(this,this.onMouseWheel));
}
this.cursorContainer = null;
this._cursor = null;
this._leftButton = flixel_util_FlxDestroyUtil.destroy(this._leftButton);
this._middleButton = flixel_util_FlxDestroyUtil.destroy(this._middleButton);
this._rightButton = flixel_util_FlxDestroyUtil.destroy(this._rightButton);
this._cursorBitmapData = flixel_util_FlxDestroyUtil.dispose(this._cursorBitmapData);
flixel_FlxG.signals.postGameStart.remove($bind(this,this.onGameStart));
}
,reset: function() {
this._leftButton.reset();
this._middleButton.reset();
this._rightButton.reset();
}
,update: function() {
this._prevX = this.x;
this._prevY = this.y;
var newX = flixel_FlxG.game.get_mouseX();
var newY = flixel_FlxG.game.get_mouseY();
this._globalScreenX = newX / flixel_FlxG.scaleMode.scale.x | 0;
this._globalScreenY = newY / flixel_FlxG.scaleMode.scale.y | 0;
this.updatePositions();
if(this.visible) {
this.cursorContainer.set_x(flixel_FlxG.game.get_mouseX());
this.cursorContainer.set_y(flixel_FlxG.game.get_mouseY());
}
this._leftButton.update();
this._middleButton.update();
this._rightButton.update();
if(!this._wheelUsed) {
this.wheel = 0;
}
this._wheelUsed = false;
}
,onFocus: function() {
this.reset();
this.set_useSystemCursor(this.useSystemCursor);
this.set_visible(this._visibleWhenFocusLost);
}
,onFocusLost: function() {
this._visibleWhenFocusLost = this.visible;
if(this.visible) {
this.set_visible(false);
}
openfl_ui_Mouse.show();
}
,onGameStart: function() {
this.set_visible(this.visible);
}
,onMouseWheel: function(flashEvent) {
if(this.enabled) {
this._wheelUsed = true;
this.wheel = flashEvent.delta;
}
}
,onMouseLeave: function(_) {
this._rightButton.onUp();
this._middleButton.onUp();
}
,get_justMoved: function() {
if(this._prevX == this.x) {
return this._prevY != this.y;
} else {
return true;
}
}
,get_pressed: function() {
var _this = this._leftButton;
if(_this.current != 1) {
return _this.current == 2;
} else {
return true;
}
}
,get_justPressed: function() {
return this._leftButton.current == 2;
}
,get_justReleased: function() {
return this._leftButton.current == -1;
}
,get_justPressedTimeInTicks: function() {
return this._leftButton.justPressedTimeInTicks;
}
,get_pressedRight: function() {
var _this = this._rightButton;
if(_this.current != 1) {
return _this.current == 2;
} else {
return true;
}
}
,get_justPressedRight: function() {
return this._rightButton.current == 2;
}
,get_justReleasedRight: function() {
return this._rightButton.current == -1;
}
,get_justPressedTimeInTicksRight: function() {
return this._rightButton.justPressedTimeInTicks;
}
,get_pressedMiddle: function() {
var _this = this._middleButton;
if(_this.current != 1) {
return _this.current == 2;
} else {
return true;
}
}
,get_justPressedMiddle: function() {
return this._middleButton.current == 2;
}
,get_justReleasedMiddle: function() {
return this._middleButton.current == -1;
}
,get_justPressedTimeInTicksMiddle: function() {
return this._middleButton.justPressedTimeInTicks;
}
,showSystemCursor: function() {
this.cursorContainer.set_visible(false);
openfl_ui_Mouse.show();
}
,hideSystemCursor: function() {
openfl_ui_Mouse.hide();
if(this.visible) {
this.cursorContainer.set_visible(true);
}
}
,set_useSystemCursor: function(value) {
if(value) {
this.showSystemCursor();
} else {
this.hideSystemCursor();
}
return this.useSystemCursor = value;
}
,showCursor: function() {
if(this.useSystemCursor) {
openfl_ui_Mouse.show();
} else {
if(this._cursor == null) {
this.load();
}
this.cursorContainer.set_visible(true);
openfl_ui_Mouse.hide();
}
}
,hideCursor: function() {
this.cursorContainer.set_visible(false);
openfl_ui_Mouse.hide();
}
,set_visible: function(value) {
if(value) {
this.showCursor();
} else {
this.hideCursor();
}
return this.visible = value;
}
,record: function() {
if(this._lastX == this._globalScreenX && this._lastY == this._globalScreenY && this._lastLeftButtonState == this._leftButton.current && this._lastWheel == this.wheel) {
return null;
}
this._lastX = this._globalScreenX;
this._lastY = this._globalScreenY;
this._lastLeftButtonState = this._leftButton.current;
this._lastWheel = this.wheel;
return new flixel_system_replay_MouseRecord(this._lastX,this._lastY,this._leftButton.current,this._lastWheel);
}
,playback: function(record) {
if((this._lastLeftButtonState == 1 || this._lastLeftButtonState == 2) && (record.button == 0 || record.button == -1)) {
this._stage.dispatchEvent(new openfl_events_MouseEvent("mouseUp",true,false,record.x,record.y));
}
this._lastLeftButtonState = this._leftButton.current = record.button;
this.wheel = record.wheel;
this._globalScreenX = record.x;
this._globalScreenY = record.y;
this.updatePositions();
}
,__class__: flixel_input_mouse_FlxMouse
,__properties__: {get_justPressedTimeInTicksMiddle:"get_justPressedTimeInTicksMiddle",get_justReleasedMiddle:"get_justReleasedMiddle",get_justPressedMiddle:"get_justPressedMiddle",get_pressedMiddle:"get_pressedMiddle",get_justPressedTimeInTicksRight:"get_justPressedTimeInTicksRight",get_justReleasedRight:"get_justReleasedRight",get_justPressedRight:"get_justPressedRight",get_pressedRight:"get_pressedRight",get_justPressedTimeInTicks:"get_justPressedTimeInTicks",get_justReleased:"get_justReleased",get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_justMoved:"get_justMoved",set_useSystemCursor:"set_useSystemCursor",set_visible:"set_visible"}
});
var flixel_addons_ui_FlxUIMouse = function(CursorContainer) {
this.updateGlobalScreenPosition = true;
flixel_input_mouse_FlxMouse.call(this,CursorContainer);
};
$hxClasses["flixel.addons.ui.FlxUIMouse"] = flixel_addons_ui_FlxUIMouse;
flixel_addons_ui_FlxUIMouse.__name__ = "flixel.addons.ui.FlxUIMouse";
flixel_addons_ui_FlxUIMouse.__super__ = flixel_input_mouse_FlxMouse;
flixel_addons_ui_FlxUIMouse.prototype = $extend(flixel_input_mouse_FlxMouse.prototype,{
updateGlobalScreenPosition: null
,update: function() {
var oldScreenX = this._globalScreenX;
var oldScreenY = this._globalScreenY;
flixel_input_mouse_FlxMouse.prototype.update.call(this);
if(!this.updateGlobalScreenPosition) {
this._globalScreenX = oldScreenX;
this._globalScreenY = oldScreenY;
}
}
,__class__: flixel_addons_ui_FlxUIMouse
});
var flixel_addons_ui_FlxUINumericStepper = function(X,Y,StepSize,DefaultValue,Min,Max,Decimals,Stack,TextField,ButtonPlus,ButtonMinus,IsPercent) {
if(IsPercent == null) {
IsPercent = false;
}
if(Stack == null) {
Stack = 1;
}
if(Decimals == null) {
Decimals = 0;
}
if(Max == null) {
Max = 999;
}
if(Min == null) {
Min = -999;
}
if(DefaultValue == null) {
DefaultValue = 0;
}
if(StepSize == null) {
StepSize = 1;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.isPercent = false;
this.stack = 1;
this.value = 0;
this.max = 10;
this.min = 0;
this.decimals = 0;
this.stepSize = 0;
flixel_addons_ui_FlxUIGroup.call(this,X,Y);
if(TextField == null) {
TextField = new flixel_addons_ui_FlxUIInputText(0,0,25);
}
TextField.set_x(0);
TextField.set_y(0);
this.text_field = TextField;
this.text_field.set_text(DefaultValue == null ? "null" : "" + DefaultValue);
if(((this.text_field) instanceof flixel_addons_ui_FlxUIInputText)) {
var fuit = this.text_field;
fuit.set_lines(1);
fuit.callback = $bind(this,this._onInputTextEvent);
fuit.broadcastToFlxUI = false;
}
this.stepSize = StepSize;
this.set_decimals(Decimals);
this.set_min(Min);
this.set_max(Max);
this.set_value(DefaultValue);
this.set_isPercent(IsPercent);
var btnSize = 1 + TextField.get_height();
if(ButtonPlus == null) {
ButtonPlus = new flixel_addons_ui_FlxUITypedButton(0,0);
ButtonPlus.loadGraphicSlice9(["flixel/flixel-ui/img/button_thin.png"],btnSize,btnSize,[flixel_util_FlxStringUtil.toIntArray("2,2,15,15")],0,-1,false,18,18);
ButtonPlus.set_label(new flixel_FlxSprite(0,0,"flixel/flixel-ui/img/plus_mark.png"));
}
if(ButtonMinus == null) {
ButtonMinus = new flixel_addons_ui_FlxUITypedButton(0,0);
ButtonMinus.loadGraphicSlice9(["flixel/flixel-ui/img/button_thin.png"],btnSize,btnSize,[flixel_util_FlxStringUtil.toIntArray("2,2,15,15")],0,-1,false,18,18);
ButtonMinus.set_label(new flixel_FlxSprite(0,0,"flixel/flixel-ui/img/minus_mark.png"));
}
this.button_plus = ButtonPlus;
this.button_minus = ButtonMinus;
this.add(this.text_field);
this.add(this.button_plus);
this.add(this.button_minus);
this.button_plus.onUp.callback = $bind(this,this._onPlus);
this.button_plus.broadcastToFlxUI = false;
this.button_minus.onUp.callback = $bind(this,this._onMinus);
this.button_minus.broadcastToFlxUI = false;
this.set_stack(Stack);
};
$hxClasses["flixel.addons.ui.FlxUINumericStepper"] = flixel_addons_ui_FlxUINumericStepper;
flixel_addons_ui_FlxUINumericStepper.__name__ = "flixel.addons.ui.FlxUINumericStepper";
flixel_addons_ui_FlxUINumericStepper.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IFlxUIWidget];
flixel_addons_ui_FlxUINumericStepper.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUINumericStepper.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
button_plus: null
,button_minus: null
,text_field: null
,stepSize: null
,decimals: null
,min: null
,max: null
,value: null
,stack: null
,isPercent: null
,params: null
,set_params: function(p) {
this.params = p;
return this.params;
}
,skipButtonUpdate: null
,set_skipButtonUpdate: function(b) {
this.skipButtonUpdate = b;
this.button_plus.set_skipButtonUpdate(b);
this.button_minus.set_skipButtonUpdate(b);
return b;
}
,set_color: function(Value) {
this.color = Value;
this.button_plus.set_color(Value);
this.button_minus.set_color(Value);
if(((this.text_field) instanceof flixel_addons_ui_FlxInputText)) {
var fit = this.text_field;
fit.set_backgroundColor(Value);
} else {
this.text_field.set_color(Value);
}
return Value;
}
,set_min: function(f) {
this.min = f;
if(this.value < this.min) {
this.set_value(this.min);
}
return this.min;
}
,set_max: function(f) {
this.max = f;
if(this.value > this.max) {
this.set_value(this.max);
}
return this.max;
}
,set_value: function(f) {
this.value = f;
if(this.value < this.min) {
this.value = this.min;
}
if(this.value > this.max) {
this.value = this.max;
}
if(this.text_field != null) {
var displayValue = this.value;
if(this.isPercent) {
displayValue *= 100;
var tens = Math.pow(10,this.decimals);
this.text_field.set_text(Std.string(Std.string(Math.round(displayValue * tens) / tens)) + "%");
} else {
var tens = Math.pow(10,this.decimals);
this.text_field.set_text(Std.string(Math.round(displayValue * tens) / tens));
}
}
return this.value;
}
,set_decimals: function(i) {
this.decimals = i;
if(i < 0) {
this.decimals = 0;
}
this.set_value(this.value);
return this.decimals;
}
,set_isPercent: function(b) {
this.isPercent = b;
this.set_value(this.value);
return this.isPercent;
}
,set_stack: function(s) {
this.stack = s;
var btnSize = 10;
var offsetX = 0;
var offsetY = 0;
if(((this.text_field) instanceof flixel_addons_ui_FlxUIInputText)) {
offsetX = 1;
offsetY = 1;
}
switch(this.stack) {
case 0:
btnSize = 1 + this.text_field.get_height() / 2;
if(this.button_plus.get_height() != btnSize) {
this.button_plus.resize(btnSize,btnSize);
}
if(this.button_minus.get_height() != btnSize) {
this.button_minus.resize(btnSize,btnSize);
}
this.button_plus.set_x(offsetX + this.text_field.x + this.text_field.get_width());
this.button_plus.set_y(-offsetY + this.text_field.y);
this.button_minus.set_x(offsetX + this.text_field.x + this.text_field.get_width());
this.button_minus.set_y(offsetY + this.text_field.y + (this.text_field.get_height() - this.button_minus.get_height()));
break;
case 1:
btnSize = 2 + this.text_field.get_height();
if(this.button_plus.get_height() != btnSize) {
this.button_plus.resize(btnSize,btnSize);
}
if(this.button_minus.get_height() != btnSize) {
this.button_minus.resize(btnSize,btnSize);
}
this.button_plus.set_x(offsetX + this.text_field.x + this.text_field.get_width());
this.button_plus.set_y(-offsetY + this.text_field.y);
this.button_minus.set_x(this.button_plus.x + this.button_plus.get_width());
this.button_minus.set_y(this.button_plus.y);
break;
}
return this.stack;
}
,decimalize: function(f,digits) {
var tens = Math.pow(10,digits);
return Std.string(Math.round(f * tens) / tens);
}
,_onInputTextEvent: function(text,action) {
if(text == "") {
text = Std.string(this.min);
}
var numDecimals = 0;
var _g = 0;
var _g1 = text.length;
while(_g < _g1) {
var i = _g++;
var char = text.charAt(i);
if(char == ".") {
++numDecimals;
}
}
var justAddedDecimal = numDecimals == 1 && text.indexOf(".") == text.length - 1;
if(!justAddedDecimal) {
this.set_value(parseFloat(text));
this._doCallback("edit_numeric_stepper");
this._doCallback("change_numeric_stepper");
}
}
,_onPlus: function() {
var _g = this;
_g.set_value(_g.value + this.stepSize);
this._doCallback("click_numeric_stepper");
this._doCallback("change_numeric_stepper");
}
,_onMinus: function() {
var _g = this;
_g.set_value(_g.value - this.stepSize);
this._doCallback("click_numeric_stepper");
this._doCallback("change_numeric_stepper");
}
,_doCallback: function(event_name) {
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event(event_name,this,this.value,this.params);
}
}
,__class__: flixel_addons_ui_FlxUINumericStepper
,__properties__: $extend(flixel_addons_ui_FlxUIGroup.prototype.__properties__,{set_skipButtonUpdate:"set_skipButtonUpdate",set_params:"set_params",set_isPercent:"set_isPercent",set_stack:"set_stack",set_value:"set_value",set_max:"set_max",set_min:"set_min",set_decimals:"set_decimals"})
});
var flixel_addons_ui_FlxUIRadioGroup = function(X,Y,ids_,labels_,callback_,y_space_,width_,height_,label_width_,MoreString,PrevButtonOffset,NextButtonOffset,PrevButton,NextButton) {
if(MoreString == null) {
MoreString = "<X> more...";
}
if(label_width_ == null) {
label_width_ = 100;
}
if(height_ == null) {
height_ = 20;
}
if(width_ == null) {
width_ = 100;
}
if(y_space_ == null) {
y_space_ = 25;
}
this._clickable = true;
this._selected = 0;
this._y_space = 25;
this._height = 20;
this._width = 100;
this._label_width = 100;
this.fixedSize = false;
flixel_addons_ui_FlxUIGroup.call(this);
this._y_space = y_space_;
this._width = width_;
this._height = height_;
this._label_width = label_width_;
if(ids_ == null) {
ids_ = [];
}
if(labels_ == null) {
labels_ = [];
}
this.callback = callback_;
this._list_radios = [];
this._list_active = [];
this._list = new flixel_addons_ui_FlxUIList(0,0,null,0,0,MoreString,1,0,PrevButtonOffset,NextButtonOffset,PrevButton,NextButton);
this.add(this._list);
this.updateRadios(ids_,labels_);
this.loadGraphics(null,null);
this.set_x(X);
this.set_y(Y);
};
$hxClasses["flixel.addons.ui.FlxUIRadioGroup"] = flixel_addons_ui_FlxUIRadioGroup;
flixel_addons_ui_FlxUIRadioGroup.__name__ = "flixel.addons.ui.FlxUIRadioGroup";
flixel_addons_ui_FlxUIRadioGroup.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable];
flixel_addons_ui_FlxUIRadioGroup.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUIRadioGroup.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
activeStyle: null
,set_activeStyle: function(b) {
this.activeStyle = b;
this.updateActives();
return this.activeStyle;
}
,inactiveStyle: null
,set_inactiveStyle: function(b) {
this.inactiveStyle = b;
this.updateActives();
return this.inactiveStyle;
}
,get_numRadios: function() {
return this._list_radios.length;
}
,skipButtonUpdate: null
,set_skipButtonUpdate: function(b) {
this.skipButtonUpdate = b;
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var fcb = _g1[_g];
++_g;
fcb.set_skipButtonUpdate(b);
}
return this.skipButtonUpdate;
}
,callback: null
,params: null
,set_params: function(p) {
this.params = p;
return this.params;
}
,fixedSize: null
,set_width: function(Value) {
flixel_addons_ui_FlxUIGroup.prototype.set_width.call(this,Value);
if(this.fixedSize) {
if(this._list != null) {
this._list.set_width(Value);
}
}
return Value;
}
,set_height: function(Value) {
flixel_addons_ui_FlxUIGroup.prototype.set_height.call(this,Value);
if(this.fixedSize) {
if(this._list != null) {
this._list.set_height(Value);
}
}
return Value;
}
,loadGraphics: function(Box,Dot) {
if(Box != null) {
this._box_asset = Box;
} else {
this._box_asset = "flixel/flixel-ui/img/radio.png";
}
if(Dot != null) {
this._dot_asset = Dot;
} else {
this._dot_asset = "flixel/flixel-ui/img/radio_dot.png";
}
if(((this._box_asset) instanceof flixel_FlxSprite)) {
var fs = this._box_asset;
this._box_asset = fs.graphic.key;
}
if(((this._dot_asset) instanceof flixel_FlxSprite)) {
var fs = this._dot_asset;
this._dot_asset = fs.graphic.key;
}
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
c.box.loadGraphic(this._box_asset,true);
c.mark.loadGraphic(this._dot_asset);
}
this._refreshRadios();
}
,destroy: function() {
if(this._list_radios != null) {
flixel_addons_ui_U.clearArray(this._list_radios);
}
if(this._list_active != null) {
flixel_addons_ui_U.clearArray(this._list_active);
}
this._list_active = null;
this._list_radios = null;
this._list = null;
this._ids = null;
this._labels = null;
flixel_addons_ui_FlxUIGroup.prototype.destroy.call(this);
}
,updateLabel: function(i,label_) {
if(i >= this._list_radios.length) {
return false;
}
this._labels[i] = label_;
var c = this._list_radios[i];
if(c != null) {
c.button.set_width(this._label_width);
c.set_text(label_);
}
return true;
}
,updateId: function(i,id_) {
if(i >= this._list_radios.length) {
return false;
}
this._ids[i] = id_;
return true;
}
,show: function(b) {
var _g = 0;
var _g1 = this._list.group.members;
while(_g < _g1.length) {
var fo = _g1[_g];
++_g;
fo.set_visible(b);
}
}
,updateRadios: function(ids_,labels_) {
this._ids = ids_;
this._labels = labels_;
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
c.set_visible(false);
}
this._refreshRadios();
}
,getRadios: function() {
return this._list_radios;
}
,getLabel: function(i) {
if(i >= 0 && i < this._labels.length) {
return this._labels[i];
}
return null;
}
,getId: function(i) {
if(i >= 0 && i < this._ids.length) {
return this._ids[i];
}
return null;
}
,getIsVisible: function(i) {
if(i >= 0 && i < this._list_radios.length) {
return this._list_radios[i].visible;
}
return false;
}
,get_clickable: function() {
return this._clickable;
}
,set_clickable: function(b) {
this._clickable = b;
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
c.set_active(b);
}
return this._clickable;
}
,get_selectedIndex: function() {
return this._selected;
}
,set_selectedIndex: function(i) {
this._selected = i;
var j = 0;
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
c.set_checked(false);
if(j == i) {
c.set_checked(true);
}
++j;
}
if(this._selected < 0 || this._selected >= this._list_radios.length) {
this._selected = -1;
}
return this._selected;
}
,get_selectedLabel: function() {
return this._labels[this._selected];
}
,set_selectedLabel: function(str) {
var i = 0;
this._selected = -1;
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
c.set_checked(false);
if(this._labels[i] == str) {
this._selected = i;
c.set_checked(true);
}
++i;
}
if(this._selected >= 0 && this._selected < this._labels.length) {
return this._labels[this._selected];
}
return null;
}
,get_selectedId: function() {
return this._ids[this._selected];
}
,set_selectedId: function(str) {
var i = 0;
this._selected = -1;
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
c.set_checked(false);
if(this._ids[i] == str) {
this._selected = i;
c.set_checked(true);
}
++i;
}
if(this._selected >= 0 && this._selected < this._ids.length) {
return this._ids[this._selected];
}
return null;
}
,setLineScroll: function(scroll,max_items) {
this._list.set_scrollIndex(scroll);
if(max_items != null) {
if(this._list.stacking == 1) {
this.set_height(this._y_space * max_items + 1);
}
}
var X = this._list.amountPrevious;
var Y = this._list.amountNext;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
return point;
}
,setRadioActive: function(i,b) {
if(i >= 0 && i < this._list_active.length) {
this._list_active[i] = b;
}
this.updateActives();
}
,_list_active: null
,_list: null
,_box_asset: null
,_dot_asset: null
,_labels: null
,_ids: null
,_label_width: null
,_width: null
,_height: null
,_y_space: null
,_selected: null
,_clickable: null
,_list_radios: null
,_refreshRadios: function() {
var xx = this.x;
var yy = this.y;
var i = 0;
var maxX = 0;
var maxY = 0;
this._list._skipRefresh = true;
var _g = 0;
var _g1 = this._ids;
while(_g < _g1.length) {
var id = _g1[_g];
++_g;
var label = "";
if(this._labels != null && this._labels.length > i) {
label = this._labels[i];
} else {
label = "<" + id + ">";
}
var c;
if(this._list_radios.length > i) {
c = this._list_radios[i];
c.set_visible(true);
c.set_text(label);
if(i == 0) {
xx = c.x;
yy = c.y;
} else {
c.set_x(xx | 0);
c.set_y(yy | 0);
}
} else {
c = new flixel_addons_ui_FlxUICheckBox(0,0,this._box_asset,this._dot_asset,label,this._label_width,[id,false]);
c.broadcastToFlxUI = false;
c.callback = (function(_g,checkBox) {
return function() {
_g[0](checkBox[0]);
};
})([$bind(this,this._onCheckBoxEvent)],[c]);
this._list.add(c);
c.set_x(xx | 0);
c.set_y(yy | 0);
c.set_text(label);
if(this._list_radios.length > 0) {
c.button.copyStyle(this._list_radios[0].button);
if(this.activeStyle == null) {
this.set_activeStyle(this.makeActiveStyle());
}
c.button.set_width(this._list_radios[0].button.get_width());
c.button.set_height(this._list_radios[0].button.get_height());
c.set_textX(this._list_radios[0].textX);
c.set_textY(this._list_radios[0].textY);
}
this._list_radios.push(c);
this._list_active.push(true);
}
if(xx + c.get_width() > maxX) {
maxX = xx + c.get_width();
}
if(yy + c.get_height() > maxY) {
maxY = yy + c.get_height();
}
yy += this._y_space;
++i;
}
if(this.fixedSize == false) {
maxX += 5;
maxY += 5;
if(maxX > this._list.get_width()) {
this._list.set_width(maxX);
}
if(maxY > this._list.get_height()) {
this._list.set_height(maxY);
}
this.set_width(maxX);
this.set_height(maxY);
}
this._list._skipRefresh = false;
if(this.fixedSize == true) {
this._list.refreshList();
}
this.updateActives();
}
,updateActives: function() {
var i = 0;
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var r = _g1[_g];
++_g;
r.set_active(this._list_active[i]);
if(this._list_active[i] == false && this.inactiveStyle != null) {
this.inactiveStyle.applyToCheck(r);
} else if(this._list_active[i] == true && this.activeStyle != null) {
this.activeStyle.applyToCheck(r);
}
++i;
}
}
,makeActiveStyle: function() {
if(this._list_radios.length > 0) {
var btn = this._list_radios[0].button;
var t = btn.label;
var fd = flixel_addons_ui_FontDef.copyFromFlxText(t);
var bd = new flixel_addons_ui_BorderDef(t.borderStyle,t.borderColor,t.borderSize,t.borderQuality);
var cs = new flixel_addons_ui_CheckStyle(16777215,fd,flixel_text_FlxTextAlign.fromOpenFL(t._defaultFormat.align),t.color,bd);
return cs;
}
return null;
}
,_onCheckBoxEvent: function(checkBox) {
this._onClick(checkBox,true);
}
,_onClick: function(checkBox,doCallback) {
if(!this._clickable) {
return false;
}
var i = 0;
var _g = 0;
var _g1 = this._list_radios;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
c.set_checked(false);
if(checkBox == c) {
this._selected = i;
c.set_checked(true);
}
++i;
}
if(doCallback) {
if(this.callback != null) {
this.callback(this.get_selectedId());
}
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event("click_radio_group",this,this._ids[this._selected],this.params);
}
}
return true;
}
,__class__: flixel_addons_ui_FlxUIRadioGroup
,__properties__: $extend(flixel_addons_ui_FlxUIGroup.prototype.__properties__,{set_params:"set_params",set_skipButtonUpdate:"set_skipButtonUpdate",get_numRadios:"get_numRadios",set_inactiveStyle:"set_inactiveStyle",set_activeStyle:"set_activeStyle",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",set_selectedLabel:"set_selectedLabel",get_selectedLabel:"get_selectedLabel",set_selectedId:"set_selectedId",get_selectedId:"get_selectedId",set_clickable:"set_clickable",get_clickable:"get_clickable"})
});
var flixel_addons_ui_CheckStyle = function(CheckColor,Font,Align,Color,Border) {
this.checkColor = null;
this.checkColor = CheckColor;
flixel_addons_ui_ButtonLabelStyle.call(this,Font,Align,Color,Border);
};
$hxClasses["flixel.addons.ui.CheckStyle"] = flixel_addons_ui_CheckStyle;
flixel_addons_ui_CheckStyle.__name__ = "flixel.addons.ui.CheckStyle";
flixel_addons_ui_CheckStyle.__super__ = flixel_addons_ui_ButtonLabelStyle;
flixel_addons_ui_CheckStyle.prototype = $extend(flixel_addons_ui_ButtonLabelStyle.prototype,{
checkColor: null
,applyToCheck: function(c) {
if(this.checkColor != null) {
c.set_color(this.checkColor);
}
this.apply(c.button.label);
}
,__class__: flixel_addons_ui_CheckStyle
});
var flixel_addons_ui_FlxUIRegion = function(X,Y,W,H) {
if(H == null) {
H = 16;
}
if(W == null) {
W = 16;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.broadcastToFlxUI = true;
flixel_FlxSprite.call(this,X,Y);
this.makeGraphic(1,1,0);
if(H < 1) {
H = 1;
}
if(W < 1) {
W = 1;
}
this.resize(W,H);
};
$hxClasses["flixel.addons.ui.FlxUIRegion"] = flixel_addons_ui_FlxUIRegion;
flixel_addons_ui_FlxUIRegion.__name__ = "flixel.addons.ui.FlxUIRegion";
flixel_addons_ui_FlxUIRegion.__interfaces__ = [flixel_addons_ui_interfaces_IResizable,flixel_addons_ui_interfaces_IFlxUIWidget];
flixel_addons_ui_FlxUIRegion.__super__ = flixel_FlxSprite;
flixel_addons_ui_FlxUIRegion.prototype = $extend(flixel_FlxSprite.prototype,{
broadcastToFlxUI: null
,name: null
,resize: function(w,h) {
this.set_width(w);
this.set_height(h);
}
,__class__: flixel_addons_ui_FlxUIRegion
});
var flixel_addons_ui_FlxUISpriteButton = function(X,Y,Asset,OnClick) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
flixel_addons_ui_FlxUITypedButton.call(this,X,Y,OnClick);
this.up_color = this.over_color = this.down_color = this.up_toggle_color = this.over_toggle_color = this.down_toggle_color = -1;
if(Asset != null) {
this.set_label(Asset);
}
};
$hxClasses["flixel.addons.ui.FlxUISpriteButton"] = flixel_addons_ui_FlxUISpriteButton;
flixel_addons_ui_FlxUISpriteButton.__name__ = "flixel.addons.ui.FlxUISpriteButton";
flixel_addons_ui_FlxUISpriteButton.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIButton];
flixel_addons_ui_FlxUISpriteButton.__super__ = flixel_addons_ui_FlxUITypedButton;
flixel_addons_ui_FlxUISpriteButton.prototype = $extend(flixel_addons_ui_FlxUITypedButton.prototype,{
resize: function(W,H) {
flixel_addons_ui_FlxUITypedButton.prototype.resize.call(this,W,H);
this.autoCenterLabel();
}
,autoCenterLabel: function() {
if(this.label != null) {
if(((this.label) instanceof flixel_group_FlxTypedSpriteGroup)) {
var g = this.label;
var _g = 0;
var _g1 = g.group.members;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
sprite.set_x(-sprite.get_width() / 2);
sprite.set_y(-sprite.get_height() / 2);
}
var W = g.get_width();
var H = g.get_height();
var _g = 0;
var _g1 = g.group.members;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
sprite.set_x((W - sprite.get_width()) / 2);
sprite.set_y((H - sprite.get_height()) / 2);
}
}
flixel_addons_ui_FlxUITypedButton.prototype.autoCenterLabel.call(this);
}
}
,__class__: flixel_addons_ui_FlxUISpriteButton
});
var flixel_addons_ui_FlxUISubState = function(BGColor) {
if(BGColor == null) {
BGColor = 0;
}
this.getTextFallback = null;
this._reload_countdown = 0;
this._reload = false;
this.reload_ui_on_resize = false;
this._xml_id = "";
this.cursor = null;
flixel_FlxSubState.call(this,BGColor);
};
$hxClasses["flixel.addons.ui.FlxUISubState"] = flixel_addons_ui_FlxUISubState;
flixel_addons_ui_FlxUISubState.__name__ = "flixel.addons.ui.FlxUISubState";
flixel_addons_ui_FlxUISubState.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIState];
flixel_addons_ui_FlxUISubState.__super__ = flixel_FlxSubState;
flixel_addons_ui_FlxUISubState.prototype = $extend(flixel_FlxSubState.prototype,{
destroyed: null
,cursor: null
,_makeCursor: null
,tooltips: null
,_xml_id: null
,_ui: null
,_tongue: null
,reload_ui_on_resize: null
,_reload: null
,_reload_countdown: null
,getTextFallback: null
,forceScrollFactor: function(X,Y) {
if(this._ui != null) {
var _g = 0;
var _g1 = this._ui.group.members;
while(_g < _g1.length) {
var w = _g1[_g];
++_g;
w.scrollFactor.set(X,Y);
}
if(this._ui.scrollFactor != null) {
this._ui.scrollFactor.set(X,Y);
}
}
}
,forceFocus: function(b,thing) {
if(this._ui != null) {
if(b) {
this._ui.set_focus(thing);
} else {
this._ui.set_focus(null);
}
}
}
,create: function() {
if(flixel_addons_ui_FlxUIState.static_tongue != null) {
this._tongue = flixel_addons_ui_FlxUIState.static_tongue;
}
if(this._makeCursor == true) {
this.cursor = this.createCursor();
}
this.tooltips = new flixel_addons_ui_FlxUITooltipManager(null,this);
this._ui = this.createUI(null,this,null,this._tongue);
this.add(this._ui);
this._ui.getTextFallback = this.getTextFallback;
if(this._xml_id != "" && this._xml_id != null) {
var data = flixel_addons_ui_U.xml(this._xml_id);
if(data == null) {
data = flixel_addons_ui_U.xml(this._xml_id,"xml",true,"");
}
if(data != null) {
this._ui.load(data);
}
} else {
this._ui.load(null);
}
if(this.cursor != null && this._ui != null) {
this.add(this.cursor);
this.cursor.addWidgetsFromUI(this._ui);
this.cursor.findVisibleLocation(0);
}
flixel_FlxG.mouse.set_visible(true);
this.tooltips.init();
flixel_FlxSubState.prototype.create.call(this);
this.cleanup();
if(((this._parentState) instanceof flixel_addons_ui_FlxUIState)) {
this.reload_ui_on_resize = (js_Boot.__cast(this._parentState , flixel_addons_ui_FlxUIState)).reload_ui_on_resize;
}
}
,onCursorEvent: function(code,target) {
this.getEvent(code,target,null);
}
,onShowTooltip: function(t) {
}
,onResize: function(Width,Height) {
if(this.reload_ui_on_resize) {
flixel_FlxG.scaleMode.onMeasure(Width,Height);
this._reload_countdown = 5;
this._reload = true;
}
}
,update: function(elapsed) {
flixel_FlxSubState.prototype.update.call(this,elapsed);
this.tooltips.update(elapsed);
if(this._reload) {
if(this._reload_countdown > 0) {
this._reload_countdown--;
if(this._reload_countdown == 0) {
this.reloadUI();
}
}
}
}
,destroy: function() {
this.destroyed = true;
if(this.tooltips != null) {
this.tooltips.destroy();
this.tooltips = null;
}
if(this._ui != null) {
this._ui.destroy();
this.remove(this._ui,true);
this._ui = null;
}
flixel_FlxSubState.prototype.destroy.call(this);
}
,getEvent: function(id,sender,data,params) {
}
,getRequest: function(id,sender,data,params) {
return null;
}
,getText: function(Flag,Context,Safe) {
if(Safe == null) {
Safe = true;
}
if(Context == null) {
Context = "ui";
}
if(this._tongue != null) {
return this._tongue.get(Flag,Context,Safe);
}
if(this.getTextFallback != null) {
return this.getTextFallback(Flag,Context,Safe);
}
return Flag;
}
,cleanup: function() {
this._ui.cleanup();
}
,createCursor: function() {
return new flixel_addons_ui_FlxUICursor($bind(this,this.onCursorEvent));
}
,createUI: function(data,ptr,superIndex_,tongue_,liveFilePath_) {
if(liveFilePath_ == null) {
liveFilePath_ = "";
}
return new flixel_addons_ui_FlxUI(data,ptr,superIndex_,tongue_,liveFilePath_);
}
,reloadUI: function() {
if(this._ui != null) {
this.remove(this._ui,true);
this._ui.destroy();
this._ui = null;
}
this._ui = this.createUI(null,this,null,this._tongue);
this.add(this._ui);
var data = flixel_addons_ui_U.xml(this._xml_id);
this._ui.load(data);
this._reload = false;
this._reload_countdown = 0;
}
,__class__: flixel_addons_ui_FlxUISubState
});
var flixel_addons_ui_FlxUITabMenu = function(back_,tabs_,tab_names_and_labels_,tab_offset,stretch_tabs,tab_spacing,tab_stacking) {
if(stretch_tabs == null) {
stretch_tabs = false;
}
this._selected_tab = -1;
this._selected_tab_id = "";
this._tab_offset = null;
this._tab_stacking = null;
this._tab_spacing = null;
this._stretch_tabs = false;
flixel_addons_ui_FlxUIGroup.call(this);
if(back_ == null) {
back_ = new flixel_addons_ui_FlxUI9SliceSprite(0,0,"flixel/flixel-ui/img/chrome_flat.png",new openfl_geom_Rectangle(0,0,200,200));
}
this._back = back_;
this.add(this._back);
if(tabs_ == null) {
if(tab_names_and_labels_ != null) {
tabs_ = [];
var _g = 0;
while(_g < tab_names_and_labels_.length) {
var tdata = tab_names_and_labels_[_g];
++_g;
var fb = new flixel_addons_ui_FlxUIButton(0,0,tdata.label);
fb.up_color = 16777215;
fb.down_color = 16777215;
fb.over_color = 16777215;
fb.up_toggle_color = 16777215;
fb.down_toggle_color = 16777215;
fb.over_toggle_color = 16777215;
fb.label.set_color(16777215);
var _this = fb.label;
_this.set_borderStyle(flixel_text_FlxTextBorderStyle.OUTLINE);
_this.set_borderColor(0);
_this.set_borderSize(1);
_this.set_borderQuality(1);
fb.name = tdata.name;
var graphic_names = ["flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab.png","flixel/flixel-ui/img/tab.png","flixel/flixel-ui/img/tab.png"];
var slice9tab = flixel_util_FlxStringUtil.toIntArray("6,6,11,11");
var slice9_names = [slice9tab,slice9tab,slice9tab,slice9tab,slice9tab,slice9tab];
fb.loadGraphicSlice9(graphic_names,0,0,slice9_names,0,-1,true);
tabs_.push(fb);
}
}
}
this._tabs = tabs_;
this._stretch_tabs = stretch_tabs;
this._tab_spacing = tab_spacing;
this._tab_stacking = tab_stacking;
if(this._tab_stacking == null) {
this._tab_stacking = ["front","back"];
}
this._tab_offset = tab_offset;
var i = 0;
var tab = null;
var _g = 0;
var _g1 = this._tabs;
while(_g < _g1.length) {
var t = _g1[_g];
++_g;
tab = t;
this.add(tab);
var tmp = (function(_g,name) {
return function() {
_g[0](name[0]);
};
})([$bind(this,this._onTabEvent)],[tab.name]);
tab.onUp.callback = tmp;
++i;
}
this.distributeTabs();
this._tab_groups = [];
};
$hxClasses["flixel.addons.ui.FlxUITabMenu"] = flixel_addons_ui_FlxUITabMenu;
flixel_addons_ui_FlxUITabMenu.__name__ = "flixel.addons.ui.FlxUITabMenu";
flixel_addons_ui_FlxUITabMenu.__interfaces__ = [flixel_addons_ui_interfaces_IEventGetter,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IResizable];
flixel_addons_ui_FlxUITabMenu.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUITabMenu.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
get_numTabs: function() {
if(this._tabs != null) {
return this._tabs.length;
}
return 0;
}
,getEvent: function(name,sender,data,params) {
}
,getRequest: function(name,sender,data,params) {
return null;
}
,skipButtonUpdate: null
,set_skipButtonUpdate: function(b) {
this.skipButtonUpdate = b;
var _g = 0;
var _g1 = this._tabs;
while(_g < _g1.length) {
var tab = _g1[_g];
++_g;
var tabtyped = tab;
tabtyped.set_skipButtonUpdate(b);
}
var _g = 0;
var _g1 = this._tab_groups;
while(_g < _g1.length) {
var group = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = group.group.members;
while(_g2 < _g3.length) {
var sprite = _g3[_g2];
++_g2;
if(js_Boot.__implements(sprite,flixel_addons_ui_interfaces_IFlxUIClickable)) {
var widget = sprite;
widget.set_skipButtonUpdate(b);
}
}
}
return b;
}
,get_width: function() {
return this._back.get_width();
}
,get_height: function() {
var fbt = this.getFirstTab();
if(fbt != null) {
return this._back.y + this._back.get_height() - fbt.y;
}
return this._back.get_height();
}
,resize: function(W,H) {
var ir;
if(js_Boot.__implements(this._back,flixel_addons_ui_interfaces_IResizable)) {
this.distributeTabs(W);
ir = this._back;
var fbt = this.getFirstTab();
if(fbt != null) {
ir.resize(W,H - fbt.get_height());
} else {
ir.resize(W,H);
}
} else {
this.distributeTabs();
}
}
,get_selected_tab: function() {
return this._selected_tab;
}
,set_selected_tab: function(i) {
this.showTabInt(i);
return this._selected_tab;
}
,get_selected_tab_id: function() {
return this._selected_tab_id;
}
,set_selected_tab_id: function(str) {
this.showTabId(str);
return this._selected_tab_id;
}
,destroy: function() {
flixel_addons_ui_FlxUIGroup.prototype.destroy.call(this);
flixel_addons_ui_U.clearArray(this._tab_groups);
flixel_addons_ui_U.clearArray(this._tabs);
this._back = null;
this._tabs = null;
this._tab_groups = null;
}
,getTab: function(name,index) {
if(name != null) {
var _g = 0;
var _g1 = this._tabs;
while(_g < _g1.length) {
var tab = _g1[_g];
++_g;
if(tab.name == name) {
return tab;
}
}
}
if(index != null) {
if(index < this._tabs.length) {
return this._tabs[index];
}
}
return null;
}
,getTabGroup: function(name,index) {
if(name != null) {
var _g = 0;
var _g1 = this._tab_groups;
while(_g < _g1.length) {
var tabGroup = _g1[_g];
++_g;
if(tabGroup.name == name) {
return tabGroup;
}
}
}
if(index != null) {
if(index < this._tab_groups.length) {
return this._tab_groups[index];
}
}
return null;
}
,getBack: function() {
return this._back;
}
,replaceBack: function(newBack) {
var i = this.group.members.indexOf(this._back);
if(i != -1) {
var oldBack = this._back;
if(js_Boot.__implements(newBack,flixel_addons_ui_interfaces_IResizable)) {
var ir = newBack;
ir.resize(oldBack.get_width(),oldBack.get_height());
}
this.group.members[i] = newBack;
newBack.set_x(oldBack.x);
newBack.set_y(oldBack.y);
oldBack.destroy();
}
}
,addGroup: function(g) {
if(g == this) {
return;
}
if(!this.hasThis(g)) {
g.set_y(this._back.y - this.y);
this.add(g);
this._tab_groups.push(g);
}
this._showOnlyGroup("");
if(this._tab_groups.length == 1) {
this.set_selected_tab(0);
}
if(this._selected_tab != -1) {
this.set_selected_tab(this._selected_tab);
}
}
,_onTabEvent: function(name) {
this.showTabId(name);
var tab = this.getTab(name);
var params = tab != null ? tab.params : null;
if(this.broadcastToFlxUI) {
flixel_addons_ui_FlxUI.event("tab_menu_click",this,name,params);
}
}
,stackTabs: function() {
var _backx = this._back.x;
var _backy = this._back.y;
this.group.remove(this._back,true);
var tab = null;
var _g = 0;
var _g1 = this._tabs;
while(_g < _g1.length) {
var t = _g1[_g];
++_g;
tab = t;
if(tab.toggled) {
this.group.remove(tab,true);
}
}
this.group.add(this._back);
var _g = 0;
var _g1 = this._tabs;
while(_g < _g1.length) {
var t = _g1[_g];
++_g;
tab = t;
if(tab.toggled) {
this.group.add(tab);
}
}
var _g = 0;
var _g1 = this._tab_groups;
while(_g < _g1.length) {
var group = _g1[_g];
++_g;
var tempX = group.x;
var tempY = group.y;
this.remove(group,true);
this.add(group);
group.set_x(tempX);
group.set_y(tempY);
}
this._back.set_x(_backx);
this._back.set_y(_backy);
}
,showTabId: function(name) {
this._selected_tab = -1;
this._selected_tab_id = "";
var i = 0;
var _g = 0;
var _g1 = this._tabs;
while(_g < _g1.length) {
var tab = _g1[_g];
++_g;
tab.set_toggled(false);
tab.forceStateHandler("out_button");
if(tab.name == name) {
tab.set_toggled(true);
this._selected_tab_id = name;
this._selected_tab = i;
}
++i;
}
this._showOnlyGroup(name);
this.stackTabs();
}
,_back: null
,_tabs: null
,_tab_groups: null
,_stretch_tabs: null
,_tab_spacing: null
,_tab_stacking: null
,_tab_offset: null
,_selected_tab_id: null
,_selected_tab: null
,sortTabs: function(a,b) {
if(a.name < b.name) {
return -1;
} else if(a.name > b.name) {
return 1;
}
return -1;
}
,showTabInt: function(i) {
if(i >= 0 && this._tabs != null && this._tabs.length > i) {
var _tab = this._tabs[i];
var name = _tab.name;
this.showTabId(name);
} else {
this.showTabId("");
}
}
,_showOnlyGroup: function(name) {
var _g = 0;
var _g1 = this._tab_groups;
while(_g < _g1.length) {
var group = _g1[_g];
++_g;
if(group.name == name) {
group.set_visible(group.set_active(true));
} else {
group.set_visible(group.set_active(false));
}
}
}
,getFirstTab: function() {
var _the_tab = null;
if(this._tabs != null && this._tabs.length > 0) {
_the_tab = this._tabs[0];
}
return _the_tab;
}
,distributeTabs: function(W) {
if(W == null) {
W = -1;
}
var xx = 0;
var tab_width = 0;
if(W == -1) {
W = this._back.get_width();
}
var diff_size = 0;
if(this._stretch_tabs) {
tab_width = W / this._tabs.length;
var tot_size = (tab_width | 0) * this._tabs.length;
if(tot_size < W) {
diff_size = W - tot_size;
}
}
this._tabs.sort($bind(this,this.sortTabs));
var i = 0;
var firstHeight = 0;
var tab;
var _g = 0;
var _g1 = this._tabs;
while(_g < _g1.length) {
var t = _g1[_g];
++_g;
tab = t;
tab.set_x(this.x + xx);
tab.set_y(this.y);
if(this._tab_offset != null) {
var _g2 = tab;
_g2.set_x(_g2.x + this._tab_offset.x);
var _g3 = tab;
_g3.set_y(_g3.y + this._tab_offset.y);
}
if(this._stretch_tabs) {
var theHeight = tab.get_height();
if(i != 0) {
theHeight = firstHeight;
tab.resize_ratio = -1;
}
if(diff_size > 0) {
tab.resize(tab_width + 1,theHeight);
xx += (tab_width | 0) + 1;
--diff_size;
} else {
tab.resize(tab_width,theHeight);
xx += tab_width | 0;
}
} else if(this._tab_spacing != null) {
xx += tab.get_width() + this._tab_spacing;
} else {
xx += tab.get_width();
}
if(i == 0) {
firstHeight = tab.get_height();
}
++i;
}
if(this._tabs != null && this._tabs.length > 0 && this._tabs[0] != null) {
this._back.set_y(this._tabs[0].y + this._tabs[0].get_height() - 2);
if(this._tab_offset != null) {
var _g = this._back;
_g.set_y(_g.y - this._tab_offset.y);
}
}
this.calcBounds();
}
,__class__: flixel_addons_ui_FlxUITabMenu
,__properties__: $extend(flixel_addons_ui_FlxUIGroup.prototype.__properties__,{set_selected_tab_id:"set_selected_tab_id",get_selected_tab_id:"get_selected_tab_id",set_selected_tab:"set_selected_tab",get_selected_tab:"get_selected_tab",set_skipButtonUpdate:"set_skipButtonUpdate",get_numTabs:"get_numTabs"})
});
var flixel_addons_ui_FlxUIText = function(X,Y,FieldWidth,Text1,Size,EmbeddedFont) {
if(EmbeddedFont == null) {
EmbeddedFont = true;
}
if(Size == null) {
Size = 8;
}
if(FieldWidth == null) {
FieldWidth = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.minimumHeight = 1;
this.broadcastToFlxUI = true;
flixel_text_FlxText.call(this,X,Y,FieldWidth,Text1,Size,EmbeddedFont);
};
$hxClasses["flixel.addons.ui.FlxUIText"] = flixel_addons_ui_FlxUIText;
flixel_addons_ui_FlxUIText.__name__ = "flixel.addons.ui.FlxUIText";
flixel_addons_ui_FlxUIText.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable];
flixel_addons_ui_FlxUIText.__super__ = flixel_text_FlxText;
flixel_addons_ui_FlxUIText.prototype = $extend(flixel_text_FlxText.prototype,{
broadcastToFlxUI: null
,name: null
,params: null
,minimumHeight: null
,resize: function(w,h) {
var sign = 1;
if(h < this.minimumHeight) {
h = this.minimumHeight;
}
if(h < this.get_height()) {
sign = -1;
}
this.set_width(w);
this.set_height(h);
this.textField.set_width(this.get_width());
var old_size = this._defaultFormat.size | 0;
var diff = this.get_height() - this.graphic.bitmap.height;
var failsafe = 0;
var numLines = this.textField.get_numLines();
while(diff * sign > 0 && failsafe < 999) {
++failsafe;
var _g = this;
_g.set_size((_g._defaultFormat.size | 0) + sign);
if(sign > 0 && this.textField.get_numLines() > numLines) {
var _g1 = this;
_g1.set_size((_g1._defaultFormat.size | 0) - sign);
break;
}
this._regen = true;
this.calcFrame(true);
diff = h - this.graphic.bitmap.height;
diff = h - this.graphic.bitmap.height;
}
if(failsafe >= 999) {
this.set_size(old_size);
}
this.set_width(w);
this.set_height(h);
this._regen = true;
this.calcFrame(true);
}
,set_minimumHeight: function(H) {
if(H < 1) {
H = 1;
}
this.minimumHeight = H;
return this.minimumHeight;
}
,set_params: function(p) {
this.params = p;
return this.params;
}
,clone: function() {
var newText = new flixel_addons_ui_FlxUIText();
newText.set_width(this.get_width());
newText.set_height(this.get_height());
var theFont = this._font;
theFont = flixel_addons_ui_FontFixer.fix(this._font);
newText.setFormat(theFont,this._defaultFormat.size | 0,this.color);
if(this._defaultFormat != null && this._defaultFormat.align != null) {
newText.set_alignment(flixel_text_FlxTextAlign.fromOpenFL(this._defaultFormat.align));
}
var Color = this.borderColor;
var Size = this.borderSize;
var Quality = this.borderQuality;
if(Quality == null) {
Quality = 1;
}
if(Size == null) {
Size = 1;
}
if(Color == null) {
Color = 0;
}
newText.set_borderStyle(this.borderStyle);
newText.set_borderColor(Color);
newText.set_borderSize(Size);
newText.set_borderQuality(Quality);
newText.set_text(this.text);
return newText;
}
,__class__: flixel_addons_ui_FlxUIText
,__properties__: $extend(flixel_text_FlxText.prototype.__properties__,{set_minimumHeight:"set_minimumHeight",set_params:"set_params"})
});
var flixel_addons_ui_FlxUITileTest = function(X,Y,TileWidth,TileHeight,tilesWide,tilesTall,color1,color2,FloorToEven) {
if(FloorToEven == null) {
FloorToEven = false;
}
if(color2 == null) {
color2 = 12895428;
}
if(color1 == null) {
color1 = 8421504;
}
this.baseTileSize = -1;
this.floorToEven = false;
this._color2 = 0;
this._color1 = 0;
this._tilesTall = 2;
this._tilesWide = 2;
flixel_addons_ui_FlxUISprite.call(this,X,Y);
this.tileWidth = TileWidth;
this.tileHeight = TileHeight;
this._tilesWide = tilesWide;
this._tilesTall = tilesTall;
this._color1 = color1;
this._color2 = color2;
this.floorToEven = FloorToEven;
this.makeTiles(this.tileWidth,this.tileHeight,this._tilesWide,this._tilesTall,this._color1,this._color2);
};
$hxClasses["flixel.addons.ui.FlxUITileTest"] = flixel_addons_ui_FlxUITileTest;
flixel_addons_ui_FlxUITileTest.__name__ = "flixel.addons.ui.FlxUITileTest";
flixel_addons_ui_FlxUITileTest.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable];
flixel_addons_ui_FlxUITileTest.__super__ = flixel_addons_ui_FlxUISprite;
flixel_addons_ui_FlxUITileTest.prototype = $extend(flixel_addons_ui_FlxUISprite.prototype,{
tileWidth: null
,tileHeight: null
,get_widthInTiles: function() {
return this._tilesWide;
}
,get_heightInTiles: function() {
return this._tilesTall;
}
,_tilesWide: null
,_tilesTall: null
,_color1: null
,_color2: null
,floorToEven: null
,baseTileSize: null
,makeTiles: function(tileWidth,tileHeight,tilesWide,tilesTall,color1,color2) {
if(color2 == null) {
color2 = -3881788;
}
if(color1 == null) {
color1 = -8355712;
}
var size = this.constrain(tileWidth * this._tilesWide,tileHeight * this._tilesTall);
tileWidth = size.x | 0;
tileHeight = size.y | 0;
this.makeGraphic(tilesWide,tilesTall,color1);
var canvas = this.get_pixels();
var j = 0;
var _g = 0;
var _g1 = tilesWide;
while(_g < _g1) {
var ix = _g++;
var _g2 = 0;
var _g3 = tilesTall;
while(_g2 < _g3) {
var iy = _g2++;
if(j % 2 == 0) {
canvas.setPixel(ix,iy,color2);
}
++j;
}
if(tilesWide % 2 != 0) {
++j;
}
}
this.set_pixels(canvas);
this.scale.set(tileWidth,tileHeight);
this.updateHitbox();
}
,constrain: function(w,h) {
var tileWidth = w / this._tilesWide | 0;
var tileHeight = h / this._tilesTall | 0;
if(tileWidth < tileHeight) {
tileHeight = tileWidth;
} else if(tileHeight < tileWidth) {
tileWidth = tileHeight;
}
if(this.floorToEven) {
if(tileWidth % 2 == 1) {
--tileWidth;
tileHeight = tileWidth;
}
}
if(this.baseTileSize > 0) {
tileWidth = (tileWidth / this.baseTileSize | 0) * this.baseTileSize;
tileHeight = tileWidth;
}
return new flixel_math_FlxPoint(tileWidth,tileHeight);
}
,resize: function(w,h) {
this.makeTiles(this.tileWidth,this.tileHeight,this._tilesWide,this._tilesTall,this._color1,this._color2);
}
,__class__: flixel_addons_ui_FlxUITileTest
,__properties__: $extend(flixel_addons_ui_FlxUISprite.prototype.__properties__,{get_heightInTiles:"get_heightInTiles",get_widthInTiles:"get_widthInTiles"})
});
var flixel_addons_ui_FlxUITooltip = function(Width,Height,Anchor_,Style) {
flixel_addons_ui_FlxUIGroup.call(this,0,0);
if(Anchor_ == null) {
Anchor_ = new flixel_addons_ui_Anchor(0,0,"left","top","right","top");
}
Style = flixel_addons_ui_FlxUITooltip.styleFix(Style);
this.refresh(Width,Height,"","",Anchor_,Style);
this.setScrollFactor(0,0);
};
$hxClasses["flixel.addons.ui.FlxUITooltip"] = flixel_addons_ui_FlxUITooltip;
flixel_addons_ui_FlxUITooltip.__name__ = "flixel.addons.ui.FlxUITooltip";
flixel_addons_ui_FlxUITooltip.styleFix = function(Style,DefaultStyle) {
if(Style == null) {
Style = { titleFormat : null, bodyFormat : null, titleBorder : null, bodyBorder : null, titleOffset : null, bodyOffset : null, background : null, borderSize : -1, borderColor : null, arrow : null, titleWidth : -1, bodyWidth : -1, autoSizeHorizontal : null, autoSizeVertical : null, leftPadding : -1, rightPadding : -1, topPadding : -1, bottomPadding : -1};
}
if(DefaultStyle != null) {
if(Style.titleFormat == null) {
Style.titleFormat = DefaultStyle.titleFormat;
}
if(Style.bodyFormat == null) {
Style.bodyFormat = DefaultStyle.bodyFormat;
}
if(Style.titleBorder == null) {
Style.titleBorder = DefaultStyle.titleBorder;
}
if(Style.bodyBorder == null) {
Style.bodyBorder = DefaultStyle.bodyBorder;
}
if(Style.titleOffset == null) {
Style.titleOffset = DefaultStyle.titleOffset;
}
if(Style.bodyOffset == null) {
Style.bodyOffset = DefaultStyle.bodyOffset;
}
if(Style.background == null) {
Style.background = DefaultStyle.background;
}
if(Style.borderColor == null) {
Style.borderColor = DefaultStyle.borderColor;
}
if(Style.arrow == null) {
Style.arrow = DefaultStyle.arrow;
}
if(Style.borderSize == null || Style.borderSize < 0) {
Style.borderSize = DefaultStyle.borderSize;
}
if(Style.titleWidth == null || Style.titleWidth < 0) {
Style.titleWidth = DefaultStyle.titleWidth;
}
if(Style.bodyWidth == null || Style.bodyWidth < 0) {
Style.bodyWidth = DefaultStyle.bodyWidth;
}
if(Style.autoSizeHorizontal == null) {
Style.autoSizeHorizontal = DefaultStyle.autoSizeHorizontal;
}
if(Style.autoSizeVertical == null) {
Style.autoSizeVertical = DefaultStyle.autoSizeVertical;
}
if(Style.leftPadding == null || Style.leftPadding < 0) {
Style.leftPadding = DefaultStyle.leftPadding;
}
if(Style.rightPadding == null || Style.rightPadding < 0) {
Style.rightPadding = DefaultStyle.rightPadding;
}
if(Style.topPadding == null || Style.topPadding < 0) {
Style.topPadding = DefaultStyle.topPadding;
}
if(Style.leftPadding == null || Style.bottomPadding < 0) {
Style.bottomPadding = DefaultStyle.bottomPadding;
}
}
if(DefaultStyle != null) {
if(Style.titleFormat != null) {
flixel_addons_ui_FlxUITooltip.fillFontDefNulls(Style.titleFormat,DefaultStyle.titleFormat);
if(Style.titleFormat.format != null && DefaultStyle.titleFormat.format != null) {
flixel_addons_ui_FlxUITooltip.fillFormatNulls(Style.titleFormat.format,DefaultStyle.titleFormat.format);
}
}
if(Style.bodyFormat != null) {
flixel_addons_ui_FlxUITooltip.fillFontDefNulls(Style.bodyFormat,DefaultStyle.bodyFormat);
if(Style.bodyFormat.format != null && DefaultStyle.bodyFormat.format != null) {
flixel_addons_ui_FlxUITooltip.fillFormatNulls(Style.bodyFormat.format,DefaultStyle.bodyFormat.format);
}
}
}
if(Style.titleFormat == null) {
Style.titleFormat = new flixel_addons_ui_FontDef(null,null,null,new openfl_text_TextFormat(null,8,-16777216),null);
}
if(Style.bodyFormat == null) {
Style.bodyFormat = new flixel_addons_ui_FontDef(null,null,null,new openfl_text_TextFormat(null,8,-16777216),null);
}
if(Style.titleBorder == null) {
Style.titleBorder = new flixel_addons_ui_BorderDef(flixel_text_FlxTextBorderStyle.NONE,0,0,1);
}
if(Style.bodyBorder == null) {
Style.bodyBorder = new flixel_addons_ui_BorderDef(flixel_text_FlxTextBorderStyle.NONE,0,0,1);
}
if(Style.titleOffset == null) {
Style.titleOffset = new flixel_math_FlxPoint(0,0);
}
if(Style.bodyOffset == null) {
Style.bodyOffset = new flixel_math_FlxPoint(0,0);
}
if(Style.background == null) {
Style.background = 16777162;
}
if(Style.borderColor == null) {
Style.borderColor = -16777216;
}
if(Style.arrow == null) {
Style.arrow = "flixel/flixel-ui/img/tooltip_arrow.png";
}
if(Style.borderSize == null || Style.borderSize < 0) {
Style.borderSize = 1;
}
if(Style.titleWidth == null || Style.titleWidth < 0) {
Style.titleWidth = 100;
}
if(Style.bodyWidth == null || Style.bodyWidth < 0) {
Style.bodyWidth = 100;
}
if(Style.autoSizeHorizontal == null) {
Style.autoSizeHorizontal = true;
}
if(Style.autoSizeVertical == null) {
Style.autoSizeVertical = true;
}
if(Style.leftPadding == null || Style.leftPadding < 0) {
Style.leftPadding = 0;
}
if(Style.rightPadding == null || Style.rightPadding < 0) {
Style.rightPadding = 0;
}
if(Style.topPadding == null || Style.topPadding < 0) {
Style.topPadding = 0;
}
if(Style.leftPadding == null || Style.bottomPadding < 0) {
Style.bottomPadding = 0;
}
return Style;
};
flixel_addons_ui_FlxUITooltip.cloneStyle = function(s) {
var tf = s.titleFormat != null ? s.titleFormat.clone() : null;
var bf = s.bodyFormat != null ? s.bodyFormat.clone() : null;
var obj = { titleFormat : tf, bodyFormat : bf, borderSize : s.borderSize, titleWidth : s.titleWidth, bodyWidth : s.bodyWidth, background : s.background, borderColor : s.borderColor, arrow : s.arrow, titleOffset : s.titleOffset.copyTo(), bodyOffset : s.bodyOffset.copyTo(), titleBorder : s.titleBorder.clone(), bodyBorder : s.bodyBorder.clone(), autoSizeVertical : s.autoSizeVertical, autoSizeHorizontal : s.autoSizeHorizontal, leftPadding : s.leftPadding, rightPadding : s.rightPadding, topPadding : s.topPadding, bottomPadding : s.bottomPadding};
return obj;
};
flixel_addons_ui_FlxUITooltip.fillFontDefNulls = function(a,b) {
if(a.get_size() == 0) {
a.set_size(b.get_size());
}
if(a.name == null || a.name == "") {
a.name = b.name;
}
if(a.file == null || a.file == "") {
a.file = b.file;
}
if(a.extension == null || a.extension == "") {
a.extension = b.extension;
}
if(a.border == null) {
a.border = b.border != null ? b.border.clone() : null;
}
};
flixel_addons_ui_FlxUITooltip.fillFormatNulls = function(a,b) {
if(a.align == null) {
a.align = b.align;
}
if(a.blockIndent == null) {
a.blockIndent = b.blockIndent;
}
if(a.bold == null) {
a.bold = b.bold;
}
if(a.bullet == null) {
a.bullet = b.bullet;
}
if(a.color == null) {
a.color = b.color;
}
if(a.font == null) {
a.font = b.font;
}
if(a.indent == null) {
a.indent = b.indent;
}
if(a.italic == null) {
a.italic = b.italic;
}
if(a.kerning == null) {
a.kerning = b.kerning;
}
if(a.leading == null) {
a.leading = b.leading;
}
if(a.leftMargin == null) {
a.leftMargin = b.leftMargin;
}
if(a.letterSpacing == null) {
a.letterSpacing = b.letterSpacing;
}
if(a.rightMargin == null) {
a.rightMargin = b.rightMargin;
}
if(a.size == null) {
a.size = b.size;
}
if(a.tabStops == null) {
a.tabStops = b.tabStops;
}
if(a.target == null) {
a.target = b.target;
}
if(a.underline == null) {
a.underline = b.underline;
}
if(a.url == null) {
a.url = b.url;
}
};
flixel_addons_ui_FlxUITooltip.__super__ = flixel_addons_ui_FlxUIGroup;
flixel_addons_ui_FlxUITooltip.prototype = $extend(flixel_addons_ui_FlxUIGroup.prototype,{
style: null
,anchor: null
,title: null
,body: null
,show: function(obj,Title,Body,AutoSizeVertical,AutoSizeHorizontal,ShowArrow) {
if(ShowArrow == null) {
ShowArrow = true;
}
if(AutoSizeHorizontal == null) {
AutoSizeHorizontal = true;
}
if(AutoSizeVertical == null) {
AutoSizeVertical = true;
}
if(Body == null) {
Body = "";
}
if(Title == null) {
Title = "";
}
this.set_visible(true);
this.set_active(true);
this.set_x(0);
this.set_y(0);
this._bkg.set_x(0);
this._bkg.set_y(0);
this._arrow.set_x(0);
this._arrow.set_y(0);
this._arrowBkg.set_x(0);
this._arrowBkg.set_y(0);
this._arrowBkg = this.makeArrowBkg(this._arrowBkg);
this._arrow.set_color(this.style.background);
this._arrow.set_visible(this._arrowBkg.set_visible(ShowArrow));
if(this.style.titleWidth > 0) {
this._titleText.set_width(this._titleText.textField.set_width(this.style.titleWidth) | 0);
}
if(this.style.bodyWidth > 0) {
this._bodyText.set_width(this._bodyText.textField.set_width(this.style.bodyWidth) | 0);
}
if(this.style.titleFormat != null) {
this.style.titleFormat.apply(null,this._titleText);
}
if(this.style.bodyFormat != null) {
this.style.bodyFormat.apply(null,this._bodyText);
}
if(this.style.titleBorder != null) {
this.style.titleBorder.apply(this._titleText);
}
if(this.style.bodyBorder != null) {
this.style.bodyBorder.apply(this._bodyText);
}
this._titleText.set_text(Title);
this._bodyText.set_text(Body);
this._titleText.update(0);
this._bodyText.update(0);
var titleHeight = this._titleText.textField.get_textHeight() + 4 | 0;
if(this.style.titleOffset != null) {
this._titleText.set_x(this.style.titleOffset.x | 0);
this._titleText.set_y(this.style.titleOffset.y | 0);
}
if(this.style.bodyOffset != null) {
this._bodyText.set_x(this.style.bodyOffset.x | 0);
this._bodyText.set_y(this._titleText.y + titleHeight + this.style.bodyOffset.y | 0);
}
var W = this._bkg.get_width() | 0;
var H = this._bkg.get_height() | 0;
if(AutoSizeHorizontal) {
var tw = this._titleText.text != "" ? this._titleText.x + this._titleText.get_width() : 0;
var bw = this._bodyText.text != "" ? this._bodyText.x + this._bodyText.get_width() : 0;
W = Math.max(tw,bw) | 0;
}
if(AutoSizeVertical) {
var th = this._titleText.text != "" ? this._titleText.y + this._titleText.get_height() : 0;
var bh = this._bodyText.text != "" ? this._bodyText.y + this._bodyText.get_height() : 0;
H = Math.max(th,bh) | 0;
H = Math.max(H,this._arrowBkg.get_height()) | 0;
}
if(this.style.leftPadding == null) {
this.style.leftPadding = 0;
}
if(this.style.rightPadding == null) {
this.style.rightPadding = 0;
}
if(this.style.topPadding == null) {
this.style.topPadding = 0;
}
if(this.style.bottomPadding == null) {
this.style.bottomPadding = 0;
}
W += this.style.leftPadding + this.style.rightPadding;
H += this.style.topPadding + this.style.bottomPadding;
W |= 0;
H |= 0;
this.refreshBkg(W,H,this.style);
var oldOffX = this._anchorArrow.x.offset | 0;
var oldOffY = this._anchorArrow.y.offset | 0;
this._anchorArrow.x.offset -= this.anchor.x.offset;
this._anchorArrow.y.offset += this.anchor.y.offset;
this._anchorArrow.x.offset = this._anchorArrow.x.offset | 0;
this._anchorArrow.y.offset = this._anchorArrow.y.offset | 0;
this._anchorArrow.anchorThing(this._arrow,this._bkg);
this._anchorArrow.x.offset = oldOffX;
this._anchorArrow.y.offset = oldOffY;
if(this._arrow.x < 0) {
var xx = Math.abs(this._arrow.x) | 0;
var _g = this._bkg;
_g.set_x(_g.x + xx);
var _g = this._titleText;
_g.set_x(_g.x + xx);
var _g = this._bodyText;
_g.set_x(_g.x + xx);
this._arrow.set_x(0);
}
if(this._arrow.y < 0) {
var yy = Math.abs(this._arrow.y) | 0;
var _g = this._bkg;
_g.set_y(_g.y + yy);
var _g = this._titleText;
_g.set_y(_g.y + yy);
var _g = this._bodyText;
_g.set_y(_g.y + yy);
this._arrow.set_y(0);
}
if(this._titleText.text != "" && this._bodyText.text == "") {
var tempH = H - (this.style.topPadding + this.style.bottomPadding);
var titleOnlyOffset = (tempH - titleHeight) / 2 | 0;
var _g = this._titleText;
_g.set_y(_g.y + titleOnlyOffset);
}
var _g = this._titleText;
_g.set_x(_g.x + this.style.leftPadding);
var _g = this._bodyText;
_g.set_x(_g.x + this.style.leftPadding);
var _g = this._titleText;
_g.set_y(_g.y + this.style.topPadding);
var _g = this._bodyText;
_g.set_y(_g.y + this.style.topPadding);
if(this._titleText.text == "") {
this._titleText.set_x(this._bkg.x);
this._titleText.set_y(this._bkg.y);
this._titleText.set_width(this._bkg.get_width());
}
if(this._bodyText.text == "") {
this._bodyText.set_x(this._bkg.x);
this._bodyText.set_y(this._bkg.y);
this._bodyText.set_width(this._bkg.get_width());
}
this.anchor.anchorThing(this,obj);
this.set_x(this.x | 0);
this.set_y(this.y | 0);
this._arrowBkg.set_x(this._arrow.x - this.style.borderSize | 0);
this._arrowBkg.set_y(this._arrow.y - this.style.borderSize | 0);
this._titleText.set_x(this._titleText.x | 0);
this._bodyText.set_x(this._bodyText.x | 0);
this._bkg.set_x(this._bkg.x | 0);
this._bkg.set_y(this._bkg.y | 0);
this._arrowBkg.set_x(this._arrowBkg.x | 0);
this._arrowBkg.set_y(this._arrowBkg.y | 0);
this._arrow.set_x(this._arrow.x | 0);
this._arrow.set_y(this._arrow.y | 0);
}
,get_height: function() {
if(this.group.length == 0) {
return 0;
}
var minY = Infinity;
var maxY = -Infinity;
var _g = 0;
var _g1 = this._sprites;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(member == null) {
continue;
}
if(((member) instanceof flixel_text_FlxText)) {
continue;
}
var minMemberY = member.y;
var maxMemberY = minMemberY + member.get_height();
if(maxMemberY > maxY) {
maxY = maxMemberY;
}
if(minMemberY < minY) {
minY = minMemberY;
}
}
return maxY - minY;
}
,hide: function() {
this.set_visible(false);
this.set_active(false);
}
,set_anchor: function(a) {
this.anchor = a;
this._anchorArrow = this.getArrowAnchor(a,this._anchorArrow);
if(this._arrowBkg != null) {
this.makeArrowBkg(this._arrowBkg);
}
return a;
}
,set_style: function(s) {
this.style = s;
return s;
}
,set_title: function(t) {
this.title = t;
return t;
}
,set_body: function(b) {
this.body = b;
return b;
}
,_bkg: null
,_titleText: null
,_bodyText: null
,_arrow: null
,_arrowBkg: null
,_anchorArrow: null
,refresh: function(Width,Height,Title,Body,Anchor_,Style) {
var newBkg = this._bkg == null;
var newArrow = this._arrow == null;
var newTitle = this._titleText == null;
var newBody = this._bodyText == null;
if(newBkg) {
this._bkg = new flixel_FlxSprite();
}
if(newArrow) {
this._arrow = new flixel_FlxSprite();
}
if(newTitle) {
this._titleText = new flixel_addons_ui_FlxUIText(0,0,Width);
if(Style.titleFormat != null) {
Style.titleFormat.apply(null,this._titleText);
}
if(Style.titleBorder != null) {
Style.titleBorder.apply(this._titleText);
}
}
if(newBody) {
this._bodyText = new flixel_addons_ui_FlxUIText(0,0,Width);
if(Style.bodyFormat != null) {
Style.bodyFormat.apply(null,this._bodyText);
}
if(Style.bodyBorder != null) {
Style.bodyBorder.apply(this._bodyText);
}
}
this._titleText.set_text(Title);
this._bodyText.set_text(Body);
this._arrow.set_color(Style.background);
var test = flixel_FlxG.bitmap.add(Style.arrow);
if(Style.arrow == null) {
Style.arrow = "flixel/flixel-ui/img/tooltip_arrow.png";
flixel_FlxG.bitmap.add(Style.arrow);
}
this._arrow.loadGraphic(Style.arrow,true,test.height,test.height);
if(newArrow) {
this._arrow.animation.add("right",[0],0,false);
this._arrow.animation.add("down",[1],0,false);
this._arrow.animation.add("left",[2],0,false);
this._arrow.animation.add("up",[3],0,false);
}
this.refreshBkg(Width,Height,Style);
this.set_style(Style);
if(newArrow && Style.borderSize > 0) {
this._arrowBkg = new flixel_FlxSprite();
this.add(this._arrowBkg);
}
this.set_anchor(Anchor_);
if(newBkg) {
this.add(this._bkg);
}
if(newArrow) {
this.add(this._arrow);
}
if(newTitle) {
this.add(this._titleText);
}
if(newBody) {
this.add(this._bodyText);
}
}
,refreshBkg: function(Width,Height,Style) {
var key = this.getStyleKey(Width,Height,Style);
if(flixel_FlxG.bitmap._cache.h[key] == null) {
var pix = null;
if(Style.borderSize > 0) {
pix = new openfl_display_BitmapData(Width,Height,false,Style.borderColor);
pix.fillRect(new openfl_geom_Rectangle(Style.borderSize,Style.borderSize,Width - Style.borderSize * 2,Height - Style.borderSize * 2),Style.background);
} else {
pix = new openfl_display_BitmapData(Width,Height,false,Style.background);
}
flixel_FlxG.bitmap.add(pix,true,key);
}
this._bkg.loadGraphic(key);
}
,getStyleKey: function(W,H,Style) {
var this1 = Style.background;
var tmp = W + "," + H + "," + ("0x" + StringTools.hex(this1 >> 24 & 255,2) + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2)) + "," + Style.borderSize + ",";
var this1 = Style.borderColor;
return tmp + ("0x" + StringTools.hex(this1 >> 24 & 255,2) + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2));
}
,makeArrowBkg: function(b) {
if(b == null) {
b = new flixel_FlxSprite();
}
var animName = this._arrow == null ? "null" : this._arrow.animation._curAnim == null ? "null" : this._arrow.animation._curAnim.name;
var key = "arrowBkg:" + this.style.background + "," + this.style.borderSize + "," + this.style.borderColor + "," + animName;
if(flixel_FlxG.bitmap._cache.h[key] == null) {
var bs = this.style.borderSize;
if(bs < 0 || bs == null) {
bs = 0;
}
var W = this._arrow.get_width() + bs | 0;
var H = this._arrow.get_height() + bs | 0;
var bd = new openfl_display_BitmapData(W,H,true,0);
flixel_FlxG.bitmap.add(bd,false,key);
b.loadGraphic(key);
var oldColor = this._arrow.color;
this._arrow.set_color(this.style.borderColor);
var m = new openfl_geom_Matrix();
m.identity();
b.stamp(this._arrow,0 * this.style.borderSize,0 * this.style.borderSize);
b.stamp(this._arrow,this.style.borderSize,0 * this.style.borderSize);
b.stamp(this._arrow,2 * this.style.borderSize,0 * this.style.borderSize);
b.stamp(this._arrow,0 * this.style.borderSize,this.style.borderSize);
b.stamp(this._arrow,2 * this.style.borderSize,this.style.borderSize);
b.stamp(this._arrow,0 * this.style.borderSize,2 * this.style.borderSize);
b.stamp(this._arrow,this.style.borderSize,2 * this.style.borderSize);
b.stamp(this._arrow,2 * this.style.borderSize,2 * this.style.borderSize);
this._arrow.set_color(oldColor);
}
b.loadGraphic(key);
return b;
}
,getArrowAnchor: function(a,result) {
var touchHorz = a.x.side == "left" && a.x.flush == "right" || a.x.side == "right" && a.x.flush == "left";
var touchVert = a.y.side == "top" && a.y.flush == "bottom" || a.y.side == "bottom" && a.y.flush == "top";
var matchHorz = a.x.side == "left" && a.x.flush == "left" || a.x.side == "right" && a.x.flush == "right";
var matchVert = a.y.side == "top" && a.y.flush == "top" || a.y.side == "bottom" && a.y.flush == "bottom";
var touchBoth = touchHorz && touchVert;
var matchBoth = matchHorz && matchVert;
var off = this.style.borderSize;
if(!touchBoth) {
if(touchHorz) {
result = a.getFlipped(true,false,result);
if(result.x.flush == "left") {
result.x.offset -= off;
this._arrow.animation.play("right");
}
if(result.x.flush == "right") {
result.x.offset += off;
this._arrow.animation.play("left");
}
}
if(touchVert) {
result = a.getFlipped(false,true,result);
if(result.y.flush == "top") {
result.y.offset -= off;
this._arrow.animation.play("down");
}
if(result.y.flush == "bottom") {
result.y.offset += off;
this._arrow.animation.play("up");
}
}
}
if(!matchBoth) {
if(matchHorz) {
if(result.x.flush == "left") {
result.x.offset += off;
}
if(result.x.flush == "right") {
result.x.offset -= off;
}
}
if(matchVert) {
if(result.y.flush == "top") {
result.y.offset += off;
}
if(result.y.flush == "bottom") {
result.y.offset -= off;
}
}
}
if(result != null) {
return result;
}
return a;
}
,__class__: flixel_addons_ui_FlxUITooltip
,__properties__: $extend(flixel_addons_ui_FlxUIGroup.prototype.__properties__,{set_body:"set_body",set_title:"set_title",set_anchor:"set_anchor",set_style:"set_style"})
});
var flixel_addons_ui_FlxUITooltipManager = function(State,SubState) {
this.current = -1;
this._init = false;
this.delay = 0.1;
this.showOnClick = false;
this.defaultStyle = null;
this.fixedPosition = null;
this.defaultAnchor = null;
this.autoFlipAnchor = true;
if(State != null) {
this.state = State;
} else if(SubState != null) {
this.subState = SubState;
}
this.list = [];
this.tooltip = new flixel_addons_ui_FlxUITooltip(100,50);
this.lastPosition = new flixel_math_FlxPoint(0,0);
this.defaultAnchor = this.tooltip.anchor.clone();
this.defaultStyle = flixel_addons_ui_FlxUITooltip.cloneStyle(this.tooltip.style);
};
$hxClasses["flixel.addons.ui.FlxUITooltipManager"] = flixel_addons_ui_FlxUITooltipManager;
flixel_addons_ui_FlxUITooltipManager.__name__ = "flixel.addons.ui.FlxUITooltipManager";
flixel_addons_ui_FlxUITooltipManager.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_addons_ui_FlxUITooltipManager.prototype = {
autoFlipAnchor: null
,defaultAnchor: null
,fixedPosition: null
,defaultStyle: null
,showOnClick: null
,delay: null
,showTooltipArrow: null
,cameras: null
,init: function() {
var ui = this.state != null ? this.state._ui : this.subState != null ? this.subState._ui : null;
if(ui == null) {
return;
}
if(ui != null && ui.getDefinition("default:tooltip") != null) {
var tt = ui._loadTooltipData(null);
this.defaultStyle = flixel_addons_ui_FlxUITooltip.cloneStyle(tt.style);
this.tooltip.set_style(this.defaultStyle);
}
}
,destroy: function() {
flixel_util_FlxDestroyUtil.destroyArray(this.list);
this.list = null;
this.tooltip = null;
this.lastPosition = null;
this.state = null;
this.subState = null;
this.defaultAnchor = null;
this.defaultStyle = null;
}
,clear: function() {
while(this.list.length > 0) {
var entry = this.list.pop();
if(entry != null) {
entry.destroy();
}
}
}
,hideCurrent: function() {
if(this.current > 0) {
this.hide(this.current);
}
}
,isVisible: function() {
return this.current > 0;
}
,doesCurrentTooltipBelongTo: function(thing,checkChildren) {
if(checkChildren == null) {
checkChildren = true;
}
if(((thing) instanceof flixel_addons_ui_FlxUIGroup)) {
var i = this.findObj(thing);
if(i != -1) {
return i == this.current;
}
if(checkChildren) {
var fuig = thing;
var _g = 0;
var _g1 = fuig.group.members;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(this.doesCurrentTooltipBelongTo(member)) {
return true;
}
}
}
} else if(((thing) instanceof flixel_addons_ui_FlxUIButton)) {
var i = this.findBtn(thing);
if(i == -1) {
return false;
}
return i == this.current;
} else if(((thing) instanceof flixel_FlxObject)) {
var i = this.findObj(thing);
if(i == -1) {
return false;
}
return i == this.current;
}
return false;
}
,stickyTooltipFor: function(thing,sticky) {
if(sticky == null) {
sticky = true;
}
var i = this.findThing(thing);
if(i != -1) {
this.list[i].sticky = sticky;
}
}
,showTooltipFor: function(thing,value) {
if(value == null) {
value = true;
}
var i = this.findThing(thing);
if(i != -1) {
this.current = -1;
if(value) {
this.show(i);
} else {
this.hide(i);
}
}
}
,enableTooltipFor: function(thing,enabled) {
var i = this.findThing(thing);
if(i >= 0 && i < this.list.length) {
var entry = this.list[i];
entry.enabled = enabled;
return true;
}
return false;
}
,add: function(thing,data) {
if(this._init) {
data.style = flixel_addons_ui_FlxUITooltip.styleFix(data.style,this.defaultStyle);
}
var btn = null;
var i = -1;
if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IFlxUIButton)) {
btn = thing;
i = this.findBtn(btn);
if(i == -1) {
this.list.push(new flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry(btn,data));
} else {
this.list[i].data = data;
this.list[i].count = 0;
}
} else {
i = this.findObj(thing);
if(i == -1) {
var b = new flixel_addons_ui_FlxUIButton(0,0,"",null,false,true);
b.resize(thing.get_width(),thing.get_height());
btn = b;
btn.set_x(thing.x);
btn.set_y(thing.y);
btn.set_width(thing.get_width());
btn.set_height(thing.get_height());
btn.scrollFactor.set(thing.scrollFactor.x,thing.scrollFactor.y);
if(this.state != null) {
this.state.add(btn);
} else if(this.subState != null) {
this.subState.add(btn);
}
this.list.push(new flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry(btn,data,thing));
} else {
this.list[i].data = data;
this.list[i].count = 0;
this.list[i].btn.set_x(thing.x);
this.list[i].btn.set_y(thing.y);
this.list[i].btn.set_width(thing.get_width());
this.list[i].btn.set_height(thing.get_height());
this.list[i].btn.scrollFactor.set(thing.scrollFactor.x,thing.scrollFactor.y);
}
}
}
,remove: function(thing) {
var btn = null;
var i = -1;
if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IFlxUIButton)) {
btn = thing;
i = this.findBtn(btn);
} else {
i = this.findObj(thing);
}
if(i != -1) {
if(this.current == i) {
this.hide(this.current);
}
var entry = this.list[i];
this.list.splice(i,1);
entry.destroy();
}
}
,update: function(elapsed) {
var _g = 0;
var _g1 = this.list.length;
while(_g < _g1) {
var i = _g++;
var btn = this.list[i].btn;
var obj = this.list[i].obj;
if(this.list[i].enabled == false) {
if(this.current == i) {
this.hide(i);
}
this.list[i].count = 0;
continue;
}
if(obj != null) {
btn.set_x(obj.x);
btn.set_y(obj.y);
btn.set_width(obj.get_width());
btn.set_height(obj.get_height());
btn.set_visible(obj.visible);
}
if(this.list[i].sticky == false && (false == btn.visible || btn.get_justMousedOut() || btn.get_mouseIsOut())) {
this.list[i].count = 0;
this.hide(i);
} else if(btn.get_justMousedOver() || btn.get_mouseIsOver()) {
if(btn.get_mouseIsOver()) {
this.list[i].count += elapsed;
}
}
if(this.list[i].count > this.delay || this.list[i].data.delay >= 0 && this.list[i].count > this.list[i].data.delay) {
if(this.current != i) {
this.show(i);
} else if(this.list[i].data.moving) {
this.show(i);
}
}
}
}
,_init: null
,list: null
,tooltip: null
,current: null
,lastPosition: null
,state: null
,subState: null
,hide: function(i) {
if(this.current == i) {
this.tooltip.hide();
if(this.state != null) {
this.state.remove(this.tooltip,true);
}
if(this.subState != null) {
this.subState.remove(this.tooltip,true);
}
this.current = -1;
}
}
,findThing: function(thing) {
if(thing == null) {
return -1;
}
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var entry = _g1[_g];
++_g;
if(entry.obj == thing || js_Boot.__implements(thing,flixel_addons_ui_interfaces_IFlxUIButton) && js_Boot.__cast(thing , flixel_addons_ui_interfaces_IFlxUIButton) == entry.btn) {
return this.list.indexOf(entry);
}
}
return -1;
}
,findBtn: function(btn) {
if(btn == null) {
return -1;
}
var _g = 0;
var _g1 = this.list.length;
while(_g < _g1) {
var i = _g++;
if(this.list[i] != null && this.list[i].btn == btn) {
return i;
}
}
return -1;
}
,findObj: function(obj) {
if(obj == null) {
return -1;
}
var _g = 0;
var _g1 = this.list.length;
while(_g < _g1) {
var i = _g++;
if(this.list[i] != null && this.list[i].obj == obj) {
return i;
}
}
return -1;
}
,set_fixedPosition: function(value) {
this.fixedPosition = value;
if(this.tooltip != null && this.tooltip.visible) {
this.show(this.current);
}
return this.fixedPosition;
}
,set_showTooltipArrow: function(b) {
this.showTooltipArrow = b;
if(this.tooltip != null && this.tooltip.visible) {
this.tooltip._arrow.set_visible(this.tooltip._arrowBkg.set_visible(b));
}
return this.showTooltipArrow;
}
,show: function(i) {
if(i < 0 || i >= this.list.length) {
return;
}
var btn = this.list[i].btn;
if(btn.visible == false || this.list[i].obj != null && this.list[i].obj.visible == false) {
return;
}
if(this.current == i) {
var deltaX = btn.x - this.lastPosition.x;
var deltaY = btn.y - this.lastPosition.y;
this.lastPosition.set_x(btn.x);
this.lastPosition.set_y(btn.y);
var _g = this.tooltip;
_g.set_x(_g.x + deltaX);
var _g = this.tooltip;
_g.set_y(_g.y + deltaY);
return;
}
this.current = i;
var data = this.list[i].data;
if(data.init != true) {
data.style = flixel_addons_ui_FlxUITooltip.styleFix(data.style,this.defaultStyle);
data.init = true;
}
var autoSizeVertical = true;
var autoSizeHorizontal = true;
if(data.style != null) {
this.tooltip.set_style(data.style);
autoSizeVertical = data.style.autoSizeVertical;
autoSizeHorizontal = data.style.autoSizeHorizontal;
}
if(data.anchor != null) {
this.tooltip.set_anchor(data.anchor);
} else if(this.defaultAnchor != null) {
this.tooltip.set_anchor(this.defaultAnchor);
}
if(this.state != null) {
this.state.add(this.tooltip);
}
if(this.subState != null) {
this.subState.add(this.tooltip);
}
this.tooltip.show(btn,data.title,data.body,autoSizeVertical,autoSizeHorizontal);
if(this.fixedPosition != null) {
this.fixedPosition.anchor.anchorThing(this.tooltip,this.fixedPosition.object);
}
if(this.autoFlipAnchor) {
if(this.checkAutoFlip(this.tooltip,this.fixedPosition != null ? this.fixedPosition.anchor : null)) {
if(this.fixedPosition != null) {
this.fixedPosition.anchor.anchorThing(this.tooltip,this.fixedPosition.object);
} else {
this.tooltip.show(btn,data.title,data.body,autoSizeVertical,autoSizeHorizontal,this.showTooltipArrow);
}
}
}
this.lastPosition.set(btn.x,btn.y);
if(this.state != null) {
this.state.onShowTooltip(this.tooltip);
} else if(this.subState != null) {
this.subState.onShowTooltip(this.tooltip);
}
}
,checkAutoFlip: function(tooltip,anchor) {
var flipX = tooltip.x < 0 || tooltip.x + tooltip.get_width() > flixel_FlxG.width;
var flipY = tooltip.y < 0 || tooltip.y + tooltip.get_height() > flixel_FlxG.height;
if(flipX || flipY) {
if(anchor == null) {
anchor = tooltip.anchor;
}
anchor.getFlipped(flipX,flipY,anchor);
return true;
}
return false;
}
,set_cameras: function(value) {
this.tooltip.set_cameras(value);
return this.cameras = value;
}
,__class__: flixel_addons_ui_FlxUITooltipManager
,__properties__: {set_cameras:"set_cameras",set_showTooltipArrow:"set_showTooltipArrow",set_fixedPosition:"set_fixedPosition"}
};
var flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry = function(Btn,Data,Obj) {
this.sticky = false;
this.btn = Btn;
this.data = Data;
this.obj = Obj;
this.count = 0;
this.enabled = true;
if(this.data != null) {
if(this.data.delay == null) {
this.data.delay = -1;
}
if(this.data.moving == null) {
this.data.moving = false;
}
}
};
$hxClasses["flixel.addons.ui._FlxUITooltipManager.FlxUITooltipEntry"] = flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry;
flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry.__name__ = "flixel.addons.ui._FlxUITooltipManager.FlxUITooltipEntry";
flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry.prototype = {
obj: null
,btn: null
,count: null
,data: null
,enabled: null
,sticky: null
,destroy: function() {
this.count = 0;
this.obj = null;
this.btn = null;
this.data.anchor = null;
this.data.style = null;
this.data = null;
}
,__class__: flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry
};
var flixel_addons_ui_FontDef = function(Name,Extension,File1,Format,Border) {
if(File1 == null) {
File1 = "";
}
if(Extension == null) {
Extension = ".ttf";
}
this._size = 0;
this.name = Name;
this.extension = Extension;
this.file = File1;
this.format = Format;
if(this.format == null) {
this.format = new openfl_text_TextFormat();
}
this.border = Border;
if(this.border == null) {
this.border = new flixel_addons_ui_BorderDef(flixel_text_FlxTextBorderStyle.NONE,0);
}
};
$hxClasses["flixel.addons.ui.FontDef"] = flixel_addons_ui_FontDef;
flixel_addons_ui_FontDef.__name__ = "flixel.addons.ui.FontDef";
flixel_addons_ui_FontDef.copyFromTextField = function(t) {
var dtf = t.get_defaultTextFormat();
var fd = new flixel_addons_ui_FontDef("");
fd.fromStr(dtf.font);
fd.format.font = dtf.font;
fd.format.size = dtf.size;
fd.format.color = dtf.color;
fd.format.bold = dtf.bold;
fd.format.italic = dtf.italic;
fd.format.underline = dtf.underline;
fd.format.url = dtf.url;
fd.format.letterSpacing = dtf.letterSpacing;
fd.format.leading = dtf.leading;
fd.format.target = dtf.target;
fd.format.align = dtf.align;
return fd;
};
flixel_addons_ui_FontDef.copyFromFlxText = function(t) {
var fd = flixel_addons_ui_FontDef.copyFromTextField(t.textField);
fd.fromStr(t._font);
fd.border.style = t.borderStyle;
fd.border.color = t.borderColor;
fd.border.quality = t.borderQuality;
fd.border.size = t.borderSize;
return fd;
};
flixel_addons_ui_FontDef.fromXML = function(data) {
var fontFace = flixel_addons_ui_U.xml_str(data,"font");
var fontStyle = flixel_addons_ui_U.xml_str(data,"style");
var fontFile = null;
if(fontFace != "") {
fontFile = flixel_addons_ui_FlxUI.font(fontFace,fontStyle);
}
var fontStyle = flixel_addons_ui_U.xml_str(data,"style");
var fontSize = flixel_addons_ui_FlxUI.fontSize(fontFile,flixel_addons_ui_U.xml_i(data,"size",8));
var fontColor = flixel_addons_ui_U.xml_color(data,"color",true,-1);
var fontAlign = flixel_addons_ui_U.xml_str(data,"align");
var align;
switch(fontAlign.toLowerCase()) {
case "center":
align = 0;
break;
case "justify":
align = 2;
break;
case "left":
align = 3;
break;
case "right":
align = 4;
break;
default:
align = 3;
}
var fd = new flixel_addons_ui_FontDef(flixel_addons_ui_U.xml_str(data,"font"),".ttf",fontFile);
fd.format.color = fontColor;
fd.format.size = fontSize;
fd.format.align = align;
fd.set_size(fontSize);
fd.setFontStyle(fontStyle);
fd.border = flixel_addons_ui_BorderDef.fromXML(data);
return fd;
};
flixel_addons_ui_FontDef.prototype = {
name: null
,extension: null
,file: null
,format: null
,border: null
,get_size: function() {
if(this.format != null) {
this._size = this.format.size | 0;
}
return this._size;
}
,set_size: function(i) {
if(this.format != null) {
this.format.size = i;
}
this._size = i;
return this._size;
}
,clone: function() {
var newBorder = this.border == null ? null : this.border.clone();
var newFormat = this.format == null ? null : new openfl_text_TextFormat(this.format.font,this.format.size,this.format.color,this.format.bold,this.format.italic,this.format.underline,this.format.url,this.format.target,this.format.align,this.format.leftMargin,this.format.rightMargin,this.format.indent,this.format.leading);
if(this.format != null) {
newFormat.letterSpacing = this.format.letterSpacing;
}
var newThis = new flixel_addons_ui_FontDef(this.name,this.extension,this.file,newFormat,newBorder);
newThis.set_size(this.get_size());
return newThis;
}
,applyTxt: function(textField) {
textField.setTextFormat(this.format);
return textField;
}
,applyFlx: function(flxText) {
var flxTxtAlign = null;
if(this.format.align != null) {
switch(this.format.align) {
case 0:
flxTxtAlign = "center";
break;
case 2:
flxTxtAlign = "justify";
break;
case 3:
flxTxtAlign = "left";
break;
case 4:
flxTxtAlign = "right";
break;
default:
flxTxtAlign = "left";
}
}
var font = this.file == "" || this.file == null ? null : this.file;
flxText.setFormat(font,this.format.size | 0,this.format.color,flxTxtAlign,this.border.style,this.border.color);
flxText.textField.get_defaultTextFormat().leading = this.format.leading;
flxText.textField.get_defaultTextFormat().letterSpacing = this.format.letterSpacing;
return flxText;
}
,apply: function(textField,flxText) {
if(textField != null) {
textField.setTextFormat(this.format);
}
if(flxText != null) {
this.applyFlx(flxText);
}
}
,fromStr: function(str,recursion) {
if(recursion == null) {
recursion = 0;
}
if(recursion > 3) {
return;
}
str = flixel_addons_ui_FontFixer.fix(str);
var style = this.getFontStyle(str);
this.setFontStyle(style);
var extension = "";
var _g = 0;
var _g1 = flixel_addons_ui_FontDef.EXTENSIONS;
while(_g < _g1.length) {
var ext = _g1[_g];
++_g;
if(str.indexOf(ext) != -1) {
if(openfl_utils_Assets.exists(str + extension,"FONT")) {
this.name = StringTools.replace(str,extension,"");
this.file = str;
extension = ext;
break;
}
}
}
if(extension == "") {
var _g = 0;
var _g1 = flixel_addons_ui_FontDef.EXTENSIONS;
while(_g < _g1.length) {
var ext = _g1[_g];
++_g;
if(openfl_utils_Assets.exists(str + ext,"FONT")) {
extension = ext;
this.name = str;
this.file = str + extension;
extension = ext;
break;
}
}
} else {
str = this.stripFontExtensions(str);
var fontStyle = this.getFontStyle(str);
if(fontStyle != "") {
str = HxOverrides.substr(str,str.length - 1,1);
this.fromStr(str,recursion + 1);
return;
} else {
this.fromStr(str,recursion + 1);
return;
}
}
this.setFontStyle(style);
}
,_size: null
,stripFontExtensions: function(str) {
if(str == null) {
return str;
}
var _g = 0;
var _g1 = flixel_addons_ui_FontDef.EXTENSIONS;
while(_g < _g1.length) {
var ext = _g1[_g];
++_g;
if(str != null && str.indexOf(ext) != -1) {
str = StringTools.replace(str,ext,"");
}
}
return str;
}
,getFontExtension: function(str) {
if(str == null) {
return "";
}
var _g = 0;
var _g1 = flixel_addons_ui_FontDef.EXTENSIONS;
while(_g < _g1.length) {
var ext = _g1[_g];
++_g;
if(str.indexOf(ext) != -1) {
return ext;
}
}
return str;
}
,fixFontName: function() {
var fontStyle = this.getFontStyle(this.file);
var extension = this.getFontExtension(this.file);
var fontbase = this.stripFontExtensions(this.file);
if(fontStyle != "") {
fontbase = HxOverrides.substr(fontbase,0,fontbase.length - 1);
}
var styleStr = "";
if(this.format.bold && this.format.italic) {
styleStr = "z";
} else if(this.format.bold) {
styleStr = "b";
} else if(this.format.italic) {
styleStr = "i";
}
this.file = fontbase + styleStr + extension;
}
,getFontStyle: function(str) {
if(str == null) {
return "";
}
str = this.stripFontExtensions(str);
var lastChar = HxOverrides.substr(str,str.length - 1,1);
if(lastChar != "" && lastChar != null) {
lastChar = lastChar.toLowerCase();
switch(lastChar) {
case "b":
return "b";
case "i":
return "i";
case "z":
return "z";
default:
return "";
}
}
return "";
}
,setFontStyle: function(str) {
str = str.toLowerCase();
switch(str) {
case "b":case "bold":
this.format.bold = true;
this.format.italic = false;
break;
case "all":case "bi":case "bold-italic":case "bolditalic":case "both":case "ib":case "italicbold":case "z":
this.format.bold = true;
this.format.italic = true;
break;
case "i":case "italic":
this.format.bold = false;
this.format.italic = true;
break;
default:
this.format.bold = false;
this.format.italic = false;
}
this.fixFontName();
}
,toString: function() {
return "{name:" + this.name + ",size:" + this.get_size() + ",file:" + this.file + ",extension:" + this.extension + ",format:" + Std.string(this.format) + ",border:" + Std.string(this.border) + "}";
}
,__class__: flixel_addons_ui_FontDef
,__properties__: {set_size:"set_size",get_size:"get_size"}
};
var flixel_addons_ui_FontFixer = function() { };
$hxClasses["flixel.addons.ui.FontFixer"] = flixel_addons_ui_FontFixer;
flixel_addons_ui_FontFixer.__name__ = "flixel.addons.ui.FontFixer";
flixel_addons_ui_FontFixer.name2File = null;
flixel_addons_ui_FontFixer.init = function() {
if(flixel_addons_ui_FontFixer.name2File == null) {
flixel_addons_ui_FontFixer.name2File = new haxe_ds_StringMap();
}
};
flixel_addons_ui_FontFixer.fix = function(font) {
flixel_addons_ui_FontFixer.init();
if(font.indexOf(".ttf") == -1) {
if(Object.prototype.hasOwnProperty.call(flixel_addons_ui_FontFixer.name2File.h,font)) {
font = flixel_addons_ui_FontFixer.name2File.h[font];
}
}
return font;
};
flixel_addons_ui_FontFixer.add = function(file,name) {
if(name == null) {
name = "";
}
flixel_addons_ui_FontFixer.init();
if(name != "" && Object.prototype.hasOwnProperty.call(flixel_addons_ui_FontFixer.name2File.h,name)) {
return flixel_addons_ui_FontFixer.name2File.h[name];
}
if(!openfl_utils_Assets.exists(file,"FONT")) {
return file;
}
var font = openfl_utils_Assets.getFont(file);
if(font == null) {
return file;
}
if(name == "") {
name = font.name;
}
flixel_addons_ui_FontFixer.name2File.h[name] = file;
return flixel_addons_ui_FontFixer.fix(file);
};
var flixel_addons_ui_StrNameLabel = function(Name,Label) {
if(Label == null) {
Label = "";
}
if(Name == null) {
Name = "";
}
this.name = Name;
this.label = Label;
};
$hxClasses["flixel.addons.ui.StrNameLabel"] = flixel_addons_ui_StrNameLabel;
flixel_addons_ui_StrNameLabel.__name__ = "flixel.addons.ui.StrNameLabel";
flixel_addons_ui_StrNameLabel.sortByLabel = function(a,b) {
if(a.label < b.label) {
return -1;
}
if(a.label > b.label) {
return 1;
}
return 0;
};
flixel_addons_ui_StrNameLabel.sortByName = function(a,b) {
if(a.name < b.name) {
return -1;
}
if(a.name > b.name) {
return 1;
}
return 0;
};
flixel_addons_ui_StrNameLabel.prototype = {
name: null
,label: null
,copy: function() {
return new flixel_addons_ui_StrNameLabel(this.name,this.label);
}
,toString: function() {
var value = this.name;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "name";
_this.value = value;
var value = this.label;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "label";
_this1.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1]);
}
,__class__: flixel_addons_ui_StrNameLabel
};
var flixel_addons_ui_U = function() { };
$hxClasses["flixel.addons.ui.U"] = flixel_addons_ui_U;
flixel_addons_ui_U.__name__ = "flixel.addons.ui.U";
flixel_addons_ui_U.xml_str = function(data,att,lower_case,default_str) {
if(default_str == null) {
default_str = "";
}
if(lower_case == null) {
lower_case = false;
}
if(data.get(att) != null) {
if(lower_case) {
return data.get(att).toLowerCase();
} else {
return data.get(att);
}
}
return default_str;
};
flixel_addons_ui_U.xml_name = function(data) {
var name = flixel_addons_ui_U.xml_str(data,"name",true,"");
if(name == "") {
name = flixel_addons_ui_U.xml_str(data,"id",true,"");
}
return name;
};
flixel_addons_ui_U.xml_color = function(data,att,cast32Bit,defaultColor) {
if(cast32Bit == null) {
cast32Bit = true;
}
var col = null;
var str = flixel_addons_ui_U.xml_str(data,att,true);
if(str != "") {
var cast32Bit1 = cast32Bit;
var return_val = flixel_util_FlxColor.fromString(str);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + str);
}
col = return_val;
}
if(col == null && defaultColor != null) {
col = defaultColor;
}
return col;
};
flixel_addons_ui_U.xml_iArray = function(data,att) {
var arr = flixel_addons_ui_U.xml_strArray(data,att);
var ints = null;
if(arr != null && arr.length > 0) {
ints = [];
var _g = 0;
var _g1 = arr.length;
while(_g < _g1) {
var i = _g++;
ints[i] = Std.parseInt(arr[i]);
}
}
return ints;
};
flixel_addons_ui_U.xml_fArray = function(data,att) {
var arr = flixel_addons_ui_U.xml_strArray(data,att);
var fs = null;
if(arr != null && arr.length > 0) {
fs = [];
var _g = 0;
var _g1 = arr.length;
while(_g < _g1) {
var i = _g++;
fs[i] = parseFloat(arr[i]);
}
}
return fs;
};
flixel_addons_ui_U.xml_strArray = function(data,att,lowerCase,default_) {
if(lowerCase == null) {
lowerCase = true;
}
var str = flixel_addons_ui_U.xml_str(data,att,lowerCase);
if(str != "") {
var arr = str.split(",");
return arr;
} else {
return default_;
}
};
flixel_addons_ui_U.xml_colorArray = function(data,att,cast32Bit) {
if(cast32Bit == null) {
cast32Bit = true;
}
var arr = flixel_addons_ui_U.xml_strArray(data,att);
var cols = null;
if(arr != null && arr.length > 0) {
cols = [];
var _g = 0;
var _g1 = arr.length;
while(_g < _g1) {
var i = _g++;
var str = arr[i];
var cast32Bit1 = cast32Bit;
var return_val = flixel_util_FlxColor.fromString(str);
if(return_val == null) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + str);
}
cols[i] = return_val;
}
}
return cols;
};
flixel_addons_ui_U.perc_to_float = function(str) {
if(str.lastIndexOf("%") == str.length - 1) {
str = HxOverrides.substr(str,0,str.length - 1);
var r = new EReg("([0-9]+)?(\\.)?([0-9]*)?","");
if(r.match(str)) {
var match = r.matchedPos();
if(match.pos == 0 && match.len == str.length) {
var perc_float = parseFloat(str);
perc_float /= 100;
return perc_float;
}
}
}
return NaN;
};
flixel_addons_ui_U.isStrNum = function(str) {
if(str == null || str == "") {
return false;
}
var r = new EReg("-?([0-9]+)?(\\.)?([0-9]*)?","");
if(r.match(str)) {
var p = r.matchedPos();
if(p.pos == 0 && p.len == str.length) {
return true;
}
}
return false;
};
flixel_addons_ui_U.isStrInt = function(str) {
var r = new EReg("[0-9]+","");
if(r.match(str)) {
var p = r.matchedPos();
if(p.pos == 0 && p.len == str.length) {
return true;
}
}
return false;
};
flixel_addons_ui_U.isStrFloat = function(str) {
var r = new EReg("[0-9]+\\.[0-9]+","");
if(r.match(str)) {
var p = r.matchedPos();
if(p.pos == 0 && p.len == str.length) {
return true;
}
}
return false;
};
flixel_addons_ui_U.xml_f = function(data,att,default_) {
if(default_ == null) {
default_ = 0;
}
if(data.get(att) != null) {
return parseFloat(data.get(att));
}
return default_;
};
flixel_addons_ui_U.xml_i = function(data,att,default_) {
if(default_ == null) {
default_ = 0;
}
if(data.get(att) != null) {
return Std.parseInt(data.get(att));
}
return default_;
};
flixel_addons_ui_U.xml_pt = function(data,att,default_) {
if(data.get(att) != null) {
return flixel_addons_ui_U.pointify(data.get(att));
}
return default_;
};
flixel_addons_ui_U.boolify = function(str) {
str = str.toLowerCase();
if(str == "true" || str == "1") {
return true;
}
return false;
};
flixel_addons_ui_U.pointify = function(str) {
var pt = null;
if(str != null) {
var arr = ["(",")"," ","=",":"];
var _g = 0;
while(_g < arr.length) {
var thing = arr[_g];
++_g;
while(str.indexOf(thing) != -1) str = StringTools.replace(str,thing,"");
}
if(str.indexOf(",") == -1) {
if(str.indexOf("x") != -1) {
str = StringTools.replace(str,"x",",");
}
}
arr = str.split(",");
if(arr.length == 2) {
pt = new flixel_math_FlxPoint(parseFloat(arr[0]),parseFloat(arr[1]));
}
}
return pt;
};
flixel_addons_ui_U.compareStringVars = function(variable,otherValue,type,op) {
if(op == null) {
op = "==";
}
switch(type) {
case "bool":
var ba = flixel_addons_ui_U.boolify(variable);
var bb = flixel_addons_ui_U.boolify(otherValue);
if(op == "==" || op == "=") {
return ba == bb;
} else if(op == "!==" || op == "!=") {
return ba != bb;
}
break;
case "float":
var fa = parseFloat(variable);
var fb = parseFloat(otherValue);
if(op == "==" || op == "=") {
return fa == fb;
} else if(op == "!==" || op == "!=") {
return fa != fb;
} else if(op == "<") {
return fa < fb;
} else if(op == ">") {
return fa > fb;
} else if(op == "<=") {
return fa <= fb;
} else if(op == ">=") {
return fa >= fb;
}
break;
case "int":
var ia = Std.parseInt(variable);
var ib = Std.parseInt(otherValue);
if(op == "==" || op == "=") {
return ia == ib;
} else if(op == "!==" || op == "!=") {
return ia != ib;
} else if(op == "<") {
return ia < ib;
} else if(op == ">") {
return ia > ib;
} else if(op == "<=") {
return ia <= ib;
} else if(op == ">=") {
return ia >= ib;
}
break;
case "string":
if(op == "==" || op == "=") {
return variable == otherValue;
}
if(op == "!==" || op == "!=") {
return variable != otherValue;
}
break;
}
return false;
};
flixel_addons_ui_U.xml_bool = function(data,att,default_) {
if(default_ == null) {
default_ = false;
}
if(data.get(att) != null) {
var str = data.get(att);
str = str.toLowerCase();
if(str == "true" || str == "1") {
return true;
}
return false;
}
return default_;
};
flixel_addons_ui_U.xml_gfx = function(data,att,test) {
if(test == null) {
test = true;
}
var str = "";
if(data.get(att) != null) {
str = data.get(att);
if(str == "" || str == null) {
str = "";
} else {
str = flixel_addons_ui_U.gfx(str);
if(test) {
try {
if(!openfl_utils_Assets.exists(str,"IMAGE")) {
throw haxe_Exception.thrown("couldn't load bmp \"" + att + "\"");
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(typeof(haxe_Exception.caught(_g).unwrap()) != "string") {
throw _g;
}
}
}
}
}
return str;
};
flixel_addons_ui_U.center = function(fb1,fb2,centerX,centerY) {
if(centerY == null) {
centerY = true;
}
if(centerX == null) {
centerX = true;
}
if(centerX) {
fb2.set_x(fb1.x + (fb1.get_width() - fb2.get_width()) / 2);
}
if(centerY) {
fb2.set_y(fb1.y + (fb1.get_height() - fb2.get_height()) / 2);
}
};
flixel_addons_ui_U.test_int = function(i1,test,i2) {
switch(test) {
case "!=":
return i1 != i2;
case "<":
return i1 < i2;
case "<=":
return i1 <= i2;
case "==":
return i1 == i2;
case ">":
return i1 > i2;
case ">=":
return i1 >= i2;
default:
return false;
}
};
flixel_addons_ui_U.test_float = function(f1,test,f2) {
switch(test) {
case "!=":
return f1 != f2;
case "<":
return f1 < f2;
case "<=":
return f1 <= f2;
case "==":
return f1 == f2;
case ">":
return f1 > f2;
case ">=":
return f1 >= f2;
default:
return false;
}
};
flixel_addons_ui_U.padDigits = function(i,d,padChar) {
if(padChar == null) {
padChar = "0";
}
var f = i;
var str = "";
var num_digits = 0;
while(f >= 1) {
f /= 10;
++num_digits;
}
if(i == 0) {
num_digits = 1;
}
if(num_digits < d) {
var _g = 0;
var _g1 = d - num_digits;
while(_g < _g1) {
var temp = _g++;
str += padChar;
}
}
return str + (i == null ? "null" : "" + i);
};
flixel_addons_ui_U.conformToBounds = function(pt,maxMin) {
if(maxMin != null) {
if(pt.x < maxMin.min_width) {
pt.x = maxMin.min_width;
}
if(pt.y < maxMin.min_height) {
pt.y = maxMin.min_height;
}
if(pt.x > maxMin.max_width) {
pt.x = maxMin.max_width;
}
if(pt.x > maxMin.max_height) {
pt.y = maxMin.max_height;
}
}
return pt;
};
flixel_addons_ui_U.parseHex = function(str,cast32Bit,safe,default_color) {
if(default_color == null) {
default_color = 0;
}
if(safe == null) {
safe = false;
}
if(cast32Bit == null) {
cast32Bit = false;
}
var return_val = flixel_util_FlxColor.fromString(str);
if(return_val == null) {
if(!safe) {
throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + str);
} else {
return_val = default_color;
}
}
return return_val;
};
flixel_addons_ui_U.hexChar2dec = function(hex_char) {
switch(hex_char) {
case "0":case "1":case "10":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":
return Std.parseInt(hex_char);
case "A":case "a":
return 10;
case "C":case "c":
return 12;
case "E":case "e":
return 14;
case "B":case "b":
return 11;
case "D":case "d":
return 13;
case "F":case "f":
return 15;
default:
throw haxe_Exception.thrown("U.hexChar2dec() illegal char(" + hex_char + ")");
}
};
flixel_addons_ui_U.hex2dec = function(hex_str) {
var length = hex_str.length;
var place_mult = 1;
var sum = 0;
var i = length - 1;
while(i >= 0) {
var char_hex = HxOverrides.substr(hex_str,i,1);
var char_int;
switch(char_hex) {
case "0":case "1":case "10":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":
char_int = Std.parseInt(char_hex);
break;
case "A":case "a":
char_int = 10;
break;
case "C":case "c":
char_int = 12;
break;
case "E":case "e":
char_int = 14;
break;
case "B":case "b":
char_int = 11;
break;
case "D":case "d":
char_int = 13;
break;
case "F":case "f":
char_int = 15;
break;
default:
throw haxe_Exception.thrown("U.hexChar2dec() illegal char(" + char_hex + ")");
}
sum += char_int * place_mult;
place_mult *= 16;
--i;
}
return sum;
};
flixel_addons_ui_U.hex2rgb = function(hex) {
return [hex >> 16 & 255,hex >> 8 & 255,hex & 255];
};
flixel_addons_ui_U.applyResize = function(resize_ratio,resize_ratio_axis,w,h,pt) {
if(pt == null) {
pt = new flixel_math_FlxPoint();
}
if(resize_ratio > 0) {
var effective_ratio = w / h;
if(Math.abs(effective_ratio - resize_ratio) > 0.0001) {
if(resize_ratio_axis == 1) {
h = w * (1 / resize_ratio);
} else {
w = h * (1 / resize_ratio);
}
}
}
var iw = w | 0;
if(iw < 1) {
w = 1;
}
var ih = h | 0;
if(ih < 1) {
h = 1;
}
pt.set(w,h);
return pt;
};
flixel_addons_ui_U.rgb2hex = function(r,g,b) {
return r << 16 | g << 8 | b;
};
flixel_addons_ui_U.interpolate = function(hex1,hex2,amt) {
if(amt < 0) {
amt = 0;
} else if(amt > 1) {
amt = 1;
}
var a1 = 1 - amt;
var c1r = hex1 >> 16 & 255;
var c1g = hex1 >> 8 & 255;
var c1b = hex1 & 255;
var c2r = hex2 >> 16 & 255;
var c2g = hex2 >> 8 & 255;
var c2b = hex2 & 255;
var c3r = c1r * a1 + c2r * amt | 0;
var c3g = c1g * a1 + c2g * amt | 0;
var c3b = c1b * a1 + c2b * amt | 0;
return c3r << 16 | c3g << 8 | c3b;
};
flixel_addons_ui_U.getLocList = function(xmin,ymin,xmax,ymax) {
var list = [];
var _g = ymin;
var _g1 = ymax + 1;
while(_g < _g1) {
var yy = _g++;
var _g2 = xmin;
var _g3 = xmax + 1;
while(_g2 < _g3) {
var xx = _g2++;
var X = xx;
var Y = yy;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
list.push(point);
}
}
return list;
};
flixel_addons_ui_U.disposeXML = function(thing) {
};
flixel_addons_ui_U.copyAccess = function(fast) {
var x = Xml.parse(haxe_xml_Printer.print(fast)).firstElement();
if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType)));
}
var this1 = x;
return this1;
};
flixel_addons_ui_U.copyXml = function(data) {
return Xml.parse(haxe_xml_Printer.print(data)).firstElement();
};
flixel_addons_ui_U.getXML = function(str,folder) {
if(folder == null) {
folder = "";
}
var id = str;
if(folder != "") {
id = folder + "/" + id;
}
return flixel_addons_ui_U.xml(id);
};
flixel_addons_ui_U.json = function(str,extension,dir) {
if(dir == null) {
dir = "assets/json/";
}
if(extension == null) {
extension = "json";
}
var json_str = openfl_utils_Assets.getText(dir + str + "." + extension);
if(json_str != "" && json_str != null) {
var the_json = JSON.parse(json_str);
return the_json;
}
return null;
};
flixel_addons_ui_U.field = function(object,field,_default) {
if(object == null) {
return null;
}
if(Object.prototype.hasOwnProperty.call(object,field)) {
var thing = Reflect.field(object,field);
if(thing == null) {
return _default;
}
return thing;
}
return _default;
};
flixel_addons_ui_U.xml = function(id,extension,getAccess,dir) {
if(dir == null) {
dir = "assets/xml/";
}
if(getAccess == null) {
getAccess = true;
}
if(extension == null) {
extension = "xml";
}
if(id.indexOf("raw:") == 0 || id.indexOf("RAW:") == 0) {
id = HxOverrides.substr(id,4,id.length - 4);
dir = "";
}
var thePath = dir + id + "." + extension;
var exists = openfl_utils_Assets.exists(thePath,"TEXT");
if(!exists) {
return null;
}
var str = openfl_utils_Assets.getText(dir + id + "." + extension);
if(str == null) {
return null;
}
var the_xml = Xml.parse(str);
if(getAccess) {
var x = the_xml.firstElement();
if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType)));
}
var this1 = x;
var fast = this1;
return fast;
} else {
return the_xml.firstElement();
}
};
flixel_addons_ui_U.clearArraySoft = function(array) {
if(array == null) {
return;
}
var i = array.length - 1;
while(i >= 0) {
array[i] = null;
array.splice(i,1);
--i;
}
array = null;
};
flixel_addons_ui_U.clearArray = function(array) {
if(array == null) {
return;
}
var i = array.length - 1;
while(i >= 0) {
flixel_addons_ui_U.destroyThing(array[i]);
array[i] = null;
array.splice(i,1);
--i;
}
array = null;
};
flixel_addons_ui_U.destroyThing = function(thing) {
if(thing == null) {
return;
}
if(((thing) instanceof Array)) {
flixel_addons_ui_U.clearArray(thing);
} else if(js_Boot.__implements(thing,flixel_util_IFlxDestroyable)) {
var idstr = js_Boot.__cast(thing , flixel_util_IFlxDestroyable);
idstr.destroy();
idstr = null;
} else if(((thing) instanceof flixel_FlxBasic)) {
var fb = js_Boot.__cast(thing , flixel_FlxBasic);
fb.destroy();
fb = null;
}
thing = null;
};
flixel_addons_ui_U.fontStr = function(str,style) {
if(style == null) {
style = "";
}
var style1 = style;
if(style1 == null) {
style1 = "";
}
style1 = style1.toLowerCase();
var suffix = "";
switch(style1) {
case "b":case "bold":
suffix = "b";
break;
case "bi":case "bold-italic":case "boldi":case "bolditalic":case "ib":case "ibold":case "italic-bold":case "italicbold":case "z":
suffix = "z";
break;
case "i":case "italic":
suffix = "i";
break;
case "":case "none":case "normal":case "regular":
suffix = "";
break;
}
if(str.indexOf("assets/fonts/") != 0) {
return "assets/fonts/" + str + suffix;
} else {
return str + suffix;
}
};
flixel_addons_ui_U.font = function(str,style,extension) {
if(extension == null) {
extension = ".ttf";
}
if(style == null) {
style = "";
}
var ostr = str;
var style1 = style;
if(style1 == null) {
style1 = "";
}
style1 = style1.toLowerCase();
var suffix = "";
switch(style1) {
case "b":case "bold":
suffix = "b";
break;
case "bi":case "bold-italic":case "boldi":case "bolditalic":case "ib":case "ibold":case "italic-bold":case "italicbold":case "z":
suffix = "z";
break;
case "i":case "italic":
suffix = "i";
break;
case "":case "none":case "normal":case "regular":
suffix = "";
break;
}
if(str.indexOf("assets/fonts/") != 0) {
str = "assets/fonts/" + str + suffix;
} else {
str += suffix;
}
if(str.indexOf(extension) == -1) {
str += extension;
}
str = flixel_addons_ui_FontFixer.add(str);
var exists = openfl_utils_Assets.exists(str,"FONT");
if(!exists && extension == ".ttf") {
var alt = flixel_addons_ui_U.font(ostr,style,".otf");
if(openfl_utils_Assets.exists(alt,"FONT")) {
return alt;
}
}
return str;
};
flixel_addons_ui_U._font = function(str,style) {
if(style == null) {
style = "";
}
style = style.toLowerCase();
var suffix = "";
switch(style) {
case "b":case "bold":
suffix = "b";
break;
case "bi":case "bold-italic":case "boldi":case "bolditalic":case "ib":case "ibold":case "italic-bold":case "italicbold":case "z":
suffix = "z";
break;
case "i":case "italic":
suffix = "i";
break;
case "":case "none":case "normal":case "regular":
suffix = "";
break;
}
if(str.indexOf("assets/fonts/") != 0) {
return "assets/fonts/" + str + suffix;
}
return str + suffix;
};
flixel_addons_ui_U.fsx = function(data) {
return new flixel_addons_ui_FlxUISprite(0,0,data);
};
flixel_addons_ui_U.fs = function(data) {
return new flixel_FlxSprite(0,0,data);
};
flixel_addons_ui_U.FU = function(str) {
return HxOverrides.substr(str,0,1).toUpperCase() + HxOverrides.substr(str,1,str.length - 1);
};
flixel_addons_ui_U.FUL = function(str) {
return HxOverrides.substr(str,0,1).toUpperCase() + HxOverrides.substr(str,1,str.length - 1).toLowerCase();
};
flixel_addons_ui_U.getBmp = function(asset) {
var str = null;
if(typeof(asset) == "string") {
str = asset;
} else if(((asset) instanceof flixel_graphics_FlxGraphic)) {
var fg = asset;
str = fg.key;
} else if(((asset) instanceof openfl_display_BitmapData)) {
var bmp = asset;
return bmp;
}
if(flixel_FlxG.bitmap._cache.h[str] != null) {
var cg = flixel_FlxG.bitmap._cache.h[str];
if(cg.bitmap != null) {
return cg.bitmap;
}
}
return openfl_utils_Assets.getBitmapData(str,false);
};
flixel_addons_ui_U.checkHaxedef = function(str) {
str = str.toLowerCase();
switch(str) {
case "android":
break;
case "console-pc":case "console_pc":
break;
case "cpp":
break;
case "demo":
break;
case "desktop":
break;
case "flash":
break;
case "html5":
return true;
case "ios":
break;
case "js":
return true;
case "legacy":case "lime_legacy":
break;
case "lime_next":case "next":
var val = true;
return val;
case "linux":
break;
case "mac":
break;
case "mobile":
break;
case "neko":
break;
case "ps3":
break;
case "ps4":
break;
case "sys":
break;
case "tvos":
break;
case "vita":
break;
case "web":
return true;
case "wiiu":
break;
case "windows":
break;
case "xbox1":
break;
}
return false;
};
flixel_addons_ui_U.copy_shallow_arr = function(src) {
if(src == null) {
return null;
}
var arr = [];
if(src == null) {
return arr;
}
var _g = 0;
while(_g < src.length) {
var thing = src[_g];
++_g;
arr.push(thing);
}
return arr;
};
flixel_addons_ui_U.copy_arr_arr_i = function(src) {
if(src == null) {
return null;
}
var arrarr = [];
var _g = 0;
while(_g < src.length) {
var arri = src[_g];
++_g;
var temp = [];
var _g1 = 0;
while(_g1 < arri.length) {
var i = arri[_g1];
++_g1;
temp.push(i);
}
arrarr.push(temp);
}
return arrarr;
};
flixel_addons_ui_U.copy_shallow_arr_i = function(src) {
if(src == null) {
return null;
}
var arr = [];
var _g = 0;
while(_g < src.length) {
var thing = src[_g];
++_g;
arr.push(thing);
}
return arr;
};
flixel_addons_ui_U.copy_shallow_arr_str = function(src) {
if(src == null) {
return null;
}
var arr = [];
var _g = 0;
while(_g < src.length) {
var thing = src[_g];
++_g;
arr.push(thing);
}
return arr;
};
flixel_addons_ui_U.FU_ = function(str) {
var arr = str.split(" ");
var str = "";
var _g = 0;
var _g1 = arr.length;
while(_g < _g1) {
var i = _g++;
str += flixel_addons_ui_U.FU(arr[i]);
if(i != arr.length - 1) {
str += " ";
}
}
return str;
};
flixel_addons_ui_U.xml_blend = function(x,att) {
return flixel_addons_ui_U.blendModeFromString(flixel_addons_ui_U.xml_str(x,att,true,"normal"));
};
flixel_addons_ui_U.blendModeFromString = function(str) {
str = str.toLowerCase();
switch(str) {
case "add":
return 0;
case "alpha":
return 1;
case "darken":
return 2;
case "difference":
return 3;
case "erase":
return 4;
case "hardlight":
return 5;
case "invert":
return 6;
case "layer":
return 7;
case "lighten":
return 8;
case "multiply":
return 9;
case "normal":
return 10;
case "overlay":
return 11;
case "screen":
return 12;
case "subtract":
return 14;
default:
return 10;
}
};
flixel_addons_ui_U.scaleTileBmp = function(orig_id,scale,origW,origH,W,H,smooth) {
if(smooth == null) {
smooth = true;
}
if(H == null) {
H = -1;
}
if(W == null) {
W = -1;
}
var orig = openfl_utils_Assets.getBitmapData(orig_id,false);
if(orig == null) {
if(flixel_FlxG.bitmap._cache.h[orig_id] != null) {
orig = flixel_FlxG.bitmap._cache.h[orig_id].bitmap;
} else {
return null;
}
}
var widthInTiles = orig.width / origW | 0;
var heightInTiles = orig.height / origH | 0;
if(W == -1) {
W = origW * scale | 0;
}
if(H == -1) {
H = origH * scale | 0;
scale = H / origH;
}
if(Math.abs(scale - 1.0) > 0.001) {
var scaled = new openfl_display_BitmapData(W * widthInTiles | 0,H * heightInTiles | 0,true,0);
var rect = new openfl_geom_Rectangle();
var pt = new openfl_geom_Point();
var matrix = new openfl_geom_Matrix();
matrix.scale(scale,scale);
var _g = 0;
var _g1 = heightInTiles;
while(_g < _g1) {
var tiley = _g++;
var _g2 = 0;
var _g3 = widthInTiles;
while(_g2 < _g3) {
var tilex = _g2++;
var tile = new openfl_display_BitmapData(origW,origH,true,0);
rect.setTo(tilex * origW,tiley * origH,origW,origH);
pt.setTo(0,0);
tile.copyPixels(orig,rect,pt);
var scaleTile = new openfl_display_BitmapData(W,H,true,0);
scaleTile.draw(tile,matrix,null,null,null,smooth);
pt.setTo(tilex * W,tiley * H);
scaled.copyPixels(scaleTile,scaleTile.rect,pt);
}
}
return scaled;
} else {
return orig.clone();
}
};
flixel_addons_ui_U.scaleAndStoreTileset = function(orig_id,scale,OrigW,OrigH,TileW,TileH,Smooth) {
if(Smooth == null) {
Smooth = true;
}
if(TileH == null) {
TileH = -1;
}
if(TileW == null) {
TileW = -1;
}
var assetKey = orig_id + "_x" + scale;
if(flixel_FlxG.bitmap._cache.h[assetKey] != null == false) {
var bmp = flixel_addons_ui_U.scaleTileBmp(orig_id,scale,OrigW,OrigH,TileW,TileH,Smooth);
flixel_FlxG.bitmap.add(bmp,false,assetKey);
}
return assetKey;
};
flixel_addons_ui_U.loadScaledImage = function(src,W,H,smooth) {
if(smooth == null) {
smooth = true;
}
var bmpSrc = flixel_addons_ui_U.gfx(src);
var testBmp = openfl_utils_Assets.getBitmapData(bmpSrc,false);
if(testBmp != null) {
if(W < 0) {
W = testBmp.width;
}
if(H < 0) {
H = testBmp.height;
}
var diff = Math.abs(W - testBmp.width) + Math.abs(H - testBmp.height);
if(diff > 0.01) {
var scaleKey = bmpSrc + "_" + (W | 0) + "x" + (H | 0);
if(flixel_FlxG.bitmap._cache.h[scaleKey] == null) {
var scaledBmp = new openfl_display_BitmapData(W | 0,H | 0,true,0);
var m = flixel_addons_ui_U.getMatrix();
m.identity();
m.scale(W / testBmp.width,H / testBmp.height);
scaledBmp.draw(testBmp,m,null,null,null,smooth);
flixel_FlxG.bitmap.add(scaledBmp,true,scaleKey);
}
return scaleKey;
} else {
return bmpSrc;
}
}
return null;
};
flixel_addons_ui_U.loadImageScaleToHeight = function(src,Height,Smooth,checkFlxBitmap) {
if(checkFlxBitmap == null) {
checkFlxBitmap = false;
}
if(Smooth == null) {
Smooth = true;
}
var bmpSrc = flixel_addons_ui_U.gfx(src);
var testBmp = null;
if(!checkFlxBitmap) {
testBmp = openfl_utils_Assets.getBitmapData(bmpSrc,false);
} else {
var flximg = flixel_FlxG.bitmap._cache.h[bmpSrc];
testBmp = flximg != null ? flximg.bitmap : null;
}
var ratio = testBmp != null ? Height / testBmp.height : 1.0;
return flixel_addons_ui_U.loadMonoScaledImage(bmpSrc,ratio,Smooth,checkFlxBitmap);
};
flixel_addons_ui_U.loadMonoScaledImage = function(src,Scale,smooth,checkFlxBitmap,fixAlphaChannel) {
if(fixAlphaChannel == null) {
fixAlphaChannel = false;
}
if(checkFlxBitmap == null) {
checkFlxBitmap = false;
}
if(smooth == null) {
smooth = true;
}
var bmpSrc = flixel_addons_ui_U.gfx(src);
var testBmp = null;
if(!checkFlxBitmap) {
testBmp = openfl_utils_Assets.getBitmapData(bmpSrc,false);
if(testBmp == null) {
testBmp = openfl_utils_Assets.getBitmapData(bmpSrc,true);
}
} else {
var flximg = flixel_FlxG.bitmap._cache.h[bmpSrc];
testBmp = flximg != null ? flximg.bitmap : null;
}
if(testBmp != null) {
if(Scale <= 0) {
throw haxe_Exception.thrown("Error! Scale must be positive & > 0! (Scale was = " + Scale + ")");
}
if(Math.abs(Scale - 1.00) > 0.001) {
var scaleKey = bmpSrc + "_ScaleX" + Scale;
if(flixel_FlxG.bitmap._cache.h[scaleKey] == null) {
var scaledBmp = new openfl_display_BitmapData(testBmp.width * Scale | 0,testBmp.height * Scale | 0,true,0);
var m = flixel_addons_ui_U.getMatrix();
m.identity();
m.scale(Scale,Scale);
scaledBmp.draw(testBmp,m,null,null,null,smooth);
if(fixAlphaChannel) {
var black = new openfl_display_BitmapData(scaledBmp.width,scaledBmp.height,true,-16777216);
black.copyPixels(scaledBmp,scaledBmp.rect,new openfl_geom_Point(),null,null,true);
black.copyChannel(scaledBmp,scaledBmp.rect,new openfl_geom_Point(0,0),8,8);
var temp = scaledBmp;
scaledBmp = black;
temp.dispose();
}
flixel_FlxG.bitmap.add(scaledBmp,true,scaleKey);
}
return scaleKey;
} else {
flixel_FlxG.bitmap.add(testBmp,false,bmpSrc);
return bmpSrc;
}
}
return null;
};
flixel_addons_ui_U.gfx = function(id,dir1,dir2,dir3,dir4,suppressError) {
if(suppressError == null) {
suppressError = false;
}
if(dir4 == null) {
dir4 = "";
}
if(dir3 == null) {
dir3 = "";
}
if(dir2 == null) {
dir2 = "";
}
if(dir1 == null) {
dir1 = "";
}
if(id != null) {
id = id.toLowerCase();
}
var prefix = "";
if(dir1 != "") {
prefix = dir1 + "/";
if(dir2 != "") {
prefix += dir2 + "/";
if(dir3 != "") {
prefix += dir3 + "/";
if(dir4 != "") {
prefix += dir4 + "/";
}
}
}
}
if(prefix != "") {
id = prefix + id;
}
if(id.indexOf("raw:") != 0) {
id = StringTools.replace(id,"-","_");
}
return flixel_addons_ui_U.get_gfx(id);
};
flixel_addons_ui_U.bmpToArrayIntLayer = function(color_index,bd) {
var p;
var arr = [];
var w = bd.width;
var h = bd.height;
var _g = 0;
var _g1 = h;
while(_g < _g1) {
var r = _g++;
var _g2 = 0;
var _g3 = w;
while(_g2 < _g3) {
var c = _g2++;
p = bd.getPixel(c,r);
if(p == color_index) {
p = 1;
} else {
p = 0;
}
arr.push(p);
}
}
return arr;
};
flixel_addons_ui_U.bmpToCSVLayer = function(color_index,bd) {
var p;
var csv = "";
var w = bd.width;
var h = bd.height;
var _g = 0;
var _g1 = h;
while(_g < _g1) {
var r = _g++;
var _g2 = 0;
var _g3 = w;
while(_g2 < _g3) {
var c = _g2++;
p = bd.getPixel(c,r);
if(p == color_index) {
p = 1;
} else {
p = 0;
}
if(c == 0) {
if(r == 0) {
csv += p;
} else {
csv += "\n" + p;
}
} else {
csv += ", " + p;
}
}
}
return csv;
};
flixel_addons_ui_U.get_gfx = function(str) {
var return_str = "";
var suffix = "";
if(str.indexOf(".jpg") != -1) {
suffix = ".jpg";
} else {
suffix = ".png";
}
if(str != null && str.length > 4 && str.indexOf(suffix) != -1) {
str = HxOverrides.substr(str,0,str.length - 4);
}
if(str.indexOf("raw:") == 0 || str.indexOf("RAW:") == 0) {
str = HxOverrides.substr(str,4,str.length - 4);
return_str = str + suffix;
}
if(str != null && str.indexOf("assets/gfx/") == 0) {
return_str = str + suffix;
}
if(return_str == "") {
return_str = "assets/gfx/" + str + suffix;
}
if(return_str.indexOf(".stitch.txt" + suffix) != -1) {
return_str = StringTools.replace(return_str,".stitch.txt" + suffix,".stitch.txt");
}
return return_str;
};
flixel_addons_ui_U.sfx = function(str) {
var extension = "";
extension = ".ogg";
if(str.indexOf("RAW:") == 0) {
str = HxOverrides.substr(str,4,str.length - 4);
return str + extension;
}
return "assets/sfx/" + str + extension;
};
flixel_addons_ui_U.intStr_to_arr = function(str) {
var arr = str.split(",");
var str_arr = [];
var _g = 0;
while(_g < arr.length) {
var s = arr[_g];
++_g;
if(s.indexOf("-") == -1) {
str_arr.push(Std.parseInt(s));
} else {
var range = str.split("-");
var lo = -1;
var hi = -1;
if(range != null && range.length == 2) {
lo = Std.parseInt(range[0]);
hi = Std.parseInt(range[1]) + 1;
if(lo >= 0 && hi > lo) {
var _g1 = lo;
var _g2 = hi;
while(_g1 < _g2) {
var i = _g1++;
str_arr.push(i);
}
}
}
}
}
return str_arr;
};
flixel_addons_ui_U.intStr_to_arrStr = function(str) {
var arr = str.split(",");
var str_arr = [];
var _g = 0;
while(_g < arr.length) {
var s = arr[_g];
++_g;
if(s.indexOf("-") == -1) {
str_arr.push(Std.string(Std.parseInt(s)));
} else {
var range = str.split("-");
var lo = -1;
var hi = -1;
if(range != null && range.length == 2) {
lo = Std.parseInt(range[0]);
hi = Std.parseInt(range[1]) + 1;
if(lo >= 0 && hi > lo) {
var _g1 = lo;
var _g2 = hi;
while(_g1 < _g2) {
var i = _g1++;
str_arr.push(i == null ? "null" : "" + i);
}
}
}
}
}
return str_arr;
};
flixel_addons_ui_U.dirStr = function(XX,YY) {
var str = "";
if(XX == 0) {
if(YY == -1) {
str = "N";
} else if(YY == 1) {
str = "S";
} else if(YY == 0) {
str = "NONE";
}
} else if(XX == 1) {
if(YY == -1) {
str = "NE";
} else if(YY == 1) {
str = "SE";
} else if(YY == 0) {
str = "E";
}
} else if(XX == -1) {
if(YY == -1) {
str = "NW";
} else if(YY == 1) {
str = "SW";
} else if(YY == 0) {
str = "W";
}
} else {
str = "NONE";
}
return str;
};
flixel_addons_ui_U.obj_direction = function(a,b) {
var dx = a.x - b.x;
var dy = a.y - b.y;
var X = dx / Math.abs(dx) | 0;
var Y = dy / Math.abs(dy) | 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var ipt = point;
return ipt;
};
flixel_addons_ui_U.circle_test = function(x1,y1,r1,x2,y2,r2) {
var dx = x1 - x2;
var dy = y1 - y2;
var d2 = dx * dx + dy * dy;
var dr2 = r1 * r1 + r2 * r2;
return d2 <= dr2;
};
flixel_addons_ui_U.point_circle_test = function(x,y,cx,cy,r) {
var dx = x - cx;
var dy = y - cy;
var d2 = dx * dx + dy * dy;
return d2 <= r * r;
};
flixel_addons_ui_U.aabb_test_mult = function(a,b,multA,multB) {
if(multB == null) {
multB = 1;
}
if(multA == null) {
multA = 1;
}
var extra = a.get_width() * multA;
var diff = (extra - a.get_width()) / 2;
var ax1 = a.x - diff;
var ax2 = a.x + a.get_width() + diff;
extra = a.get_height() * multA;
diff = (extra - a.get_height()) / 2;
var ay1 = a.y - diff;
var ay2 = a.y + a.get_height() + diff;
extra = b.get_width() * multB;
diff = (extra - b.get_width()) / 2;
var bx1 = b.x - diff;
var bx2 = b.x + b.get_width() + diff;
extra = b.get_height() * multB;
diff = (extra - b.get_height()) / 2;
var by1 = b.y - diff;
var by2 = b.y + b.get_height() + diff;
if(Math.abs(bx2 + bx1 - (ax2 + ax1)) <= bx2 - bx1 + ax2 - ax1) {
return Math.abs(by2 + by1 - (ay2 + ay1)) <= by2 - by1 + ay2 - ay1;
} else {
return false;
}
};
flixel_addons_ui_U.aabb_test = function(a,b) {
var ax1 = a.x;
var ax2 = a.x + a.get_width();
var ay1 = a.y;
var ay2 = a.y + a.get_height();
var bx1 = b.x;
var bx2 = b.x + b.get_width();
var by1 = b.y;
var by2 = b.y + b.get_height();
if(Math.abs(bx2 + bx1 - (ax2 + ax1)) <= bx2 - bx1 + ax2 - ax1) {
return Math.abs(by2 + by1 - (ay2 + ay1)) <= by2 - by1 + ay2 - ay1;
} else {
return false;
}
};
flixel_addons_ui_U.bitStringDimensions = function(str) {
var pt = new openfl_geom_Point(0,0);
var arr = str.split("\n");
if(arr != null && arr.length > 1) {
pt.y = arr.length;
if(arr[0] != null && arr[0].length > 1) {
pt.x = arr[0].length;
}
}
return pt;
};
flixel_addons_ui_U.splitBitString = function(str) {
var result = [];
var arr = str.split("\n");
var i = 0;
while(i < arr.length) {
var len = arr[i].length;
var j = 0;
while(j < len) {
var char = arr[i].charAt(j);
var num = Std.parseInt(char);
result.push(num);
++j;
}
++i;
}
return result;
};
flixel_addons_ui_U.getShortTextFromFlxKeyText = function(str) {
str = str.toUpperCase();
switch(str) {
case "ACCENT":
return "`";
case "ALT":
return "AT";
case "BACKSLASH":
return "\\";
case "BACKSPACE":
return "BK";
case "CAPSLOCK":
return "CP";
case "COMMA":
return ",";
case "CONTROL":
return "CT";
case "DELETE":
return "DE";
case "DOWN":
return "DN";
case "EIGHT":
return "8";
case "END":
return "ED";
case "ENTER":
return "EN";
case "EQUALS":
return "=";
case "ESC":case "ESCAPE":
return "EC";
case "FIVE":
return "5";
case "FOUR":
return "4";
case "HOME":
return "HM";
case "INSERT":
return "IN";
case "LBRACKET":
return "[";
case "LEFT":
return "LT";
case "MINUS":
return "-";
case "NINE":
return "9";
case "NULL":
return " ";
case "NUM0":
return "N0";
case "NUM1":
return "N1";
case "NUM2":
return "N2";
case "NUM3":
return "N3";
case "NUM4":
return "N4";
case "NUM5":
return "N5";
case "NUM6":
return "N6";
case "NUM7":
return "N7";
case "NUM8":
return "N8";
case "NUM9":
return "N9";
case "NUMDEC":
return "N.";
case "NUMDIV":
return "N/";
case "NUMLOCK":
return "NM";
case "NUMMINUS":
return "N-";
case "NUMMULT":
return "N*";
case "NUMPLUS":
return "N+";
case "ONE":
return "1";
case "PAGEDOWN":
return "PD";
case "PAGEUP":
return "PU";
case "PAUSEBREAK":
return "PB";
case "PERIOD":
return ".";
case "PLUS":
return "+";
case "QUOTE":
return "\"";
case "RBRACKET":
return "]";
case "RIGHT":
return "RT";
case "SCROLLLOCK":
return "SC";
case "SEMICOLON":
return ";";
case "SEVEN":
return "7";
case "SHIFT":
return "SH";
case "SIX":
return "6";
case "SLASH":
return "/";
case "SPACE":
return "SP";
case "TAB":
return "TB";
case "TEN":
return "10";
case "THREE":
return "3";
case "TWO":
return "2";
case "UP":
return "UP";
case "ZERO":
return "0";
default:
return str;
}
};
flixel_addons_ui_U.getFlxKeyTextFromShortText = function(str) {
str = str.toUpperCase();
switch(str) {
case "":
return " ";
case "\"":
return "QUOTE";
case "*":
return "NUMMULT";
case "+":
return "PLUS";
case ",":
return "COMMA";
case "-":
return "MINUS";
case ".":
return "PERIOD";
case "/":
return "SLASH";
case "0":
return "ZERO";
case "1":
return "ONE";
case "10":
return "TEN";
case "2":
return "TWO";
case "3":
return "THREE";
case "4":
return "FOUR";
case "5":
return "FIVE";
case "6":
return "SIX";
case "7":
return "SEVEN";
case "8":
return "EIGHT";
case "9":
return "NINE";
case ";":
return "SEMICOLON";
case "=":
return "EQUALS";
case "AT":
return "ALT";
case "BK":
return "BACKSPACE";
case "CP":
return "CAPSLOCK";
case "CT":
return "CONTROL";
case "DE":
return "DELETE";
case "DN":
return "DOWN";
case "EC":
return "ESCAPE";
case "ED":
return "END";
case "EN":
return "ENTER";
case "HM":
return "HOME";
case "IN":
return "INSERT";
case "LT":
return "LEFT";
case "N+":
return "NUMPLUS";
case "N-":
return "NUMMINUS";
case "N.":
return "NUMDEC";
case "N/":
return "NUMDIV";
case "N0":
return "NUM0";
case "N1":
return "NUM1";
case "N2":
return "NUM2";
case "N3":
return "NUM3";
case "N4":
return "NUM4";
case "N5":
return "NUM5";
case "N6":
return "NUM6";
case "N7":
return "NUM7";
case "N8":
return "NUM8";
case "N9":
return "NUM9";
case "NM":
return "NUMLOCK";
case "PB":
return "PAUSEBREAK";
case "PD":
return "PAGEDOWN";
case "PU":
return "PAGEUP";
case "RT":
return "RIGHT";
case "SC":
return "SCROLLLOCK";
case "SH":
return "SHIFT";
case "SP":
return "SPACE";
case "TB":
return "TAB";
case "UP":
return "UP";
case "[":
return "LBRACKET";
case "\\":
return "BACKSLASH";
case "]":
return "RBRACKET";
case "`":
return "ACCENT";
default:
return str;
}
};
flixel_addons_ui_U.formatXml = function(_xml) {
var s = haxe_xml_Printer.print(_xml);
var r = new EReg(">[^`<]*<","g");
s = s.replace(r.r,">___SPLITHERE___<");
r = new EReg("___SPLITHERE___","g");
var split = r.split(s);
s = "";
var childDepht = 0;
var whiteSpace = "\t";
var _g = 0;
while(_g < split.length) {
var str = split[_g];
++_g;
var _g1 = 0;
var _g2 = childDepht;
while(_g1 < _g2) {
var i = _g1++;
s += whiteSpace;
}
if(str.charAt(0) == "<" && str.charAt(1) == "/") {
--childDepht;
s = HxOverrides.substr(s,0,s.length - whiteSpace.length);
} else if(str.charAt(str.length - 1) == ">" && str.charAt(str.length - 2) != "/" && str.charAt(str.length - 2) != "-") {
++childDepht;
}
s += str + "\n";
}
return s;
};
flixel_addons_ui_U.strCase = function(str,code) {
switch(code) {
case "fu":
return flixel_addons_ui_U.FU(str);
case "fu_":
return flixel_addons_ui_U.FU_(str);
case "l":
return str.toLowerCase();
case "u":
return str.toUpperCase();
default:
return str;
}
};
flixel_addons_ui_U.unparentXML = function(f) {
if(f.parent != null) {
f.parent.removeChild(f);
}
return f;
};
flixel_addons_ui_U.setButtonLabel = function(btn,str) {
if(btn == null) {
return;
}
if(((btn) instanceof flixel_addons_ui_FlxUIButton)) {
(js_Boot.__cast(btn , flixel_addons_ui_FlxUIButton)).label.set_text(str);
} else if(((btn) instanceof flixel_addons_ui_FlxUISpriteButton)) {
var fuisb = btn;
if(fuisb.label == null) {
return;
}
if(((fuisb.label) instanceof flixel_group_FlxTypedSpriteGroup)) {
var g = fuisb.label;
if(g.group.members == null) {
return;
}
var _g = 0;
var _g1 = g.group.members;
while(_g < _g1.length) {
var sprite = _g1[_g];
++_g;
if(sprite == null) {
continue;
}
if(((sprite) instanceof flixel_text_FlxText)) {
(js_Boot.__cast(sprite , flixel_text_FlxText)).set_text(str);
return;
}
}
}
}
};
flixel_addons_ui_U.getMatrix = function() {
if(flixel_addons_ui_U._matrix == null) {
flixel_addons_ui_U._matrix = new openfl_geom_Matrix();
}
return flixel_addons_ui_U._matrix;
};
var flixel_addons_ui_interfaces_IFireTongue = function() { };
$hxClasses["flixel.addons.ui.interfaces.IFireTongue"] = flixel_addons_ui_interfaces_IFireTongue;
flixel_addons_ui_interfaces_IFireTongue.__name__ = "flixel.addons.ui.interfaces.IFireTongue";
flixel_addons_ui_interfaces_IFireTongue.__isInterface__ = true;
flixel_addons_ui_interfaces_IFireTongue.prototype = {
get: null
,getFont: null
,getFontSize: null
,locale: null
,__class__: flixel_addons_ui_interfaces_IFireTongue
};
var flixel_animation_FlxBaseAnimation = function(Parent,Name) {
this.curIndex = 0;
this.parent = Parent;
this.name = Name;
};
$hxClasses["flixel.animation.FlxBaseAnimation"] = flixel_animation_FlxBaseAnimation;
flixel_animation_FlxBaseAnimation.__name__ = "flixel.animation.FlxBaseAnimation";
flixel_animation_FlxBaseAnimation.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_animation_FlxBaseAnimation.prototype = {
parent: null
,name: null
,curIndex: null
,set_curIndex: function(Value) {
this.curIndex = Value;
if(this.parent != null && this.parent._curAnim == this) {
this.parent.set_frameIndex(Value);
}
return Value;
}
,destroy: function() {
this.parent = null;
this.name = null;
}
,update: function(elapsed) {
}
,clone: function(Parent) {
return null;
}
,__class__: flixel_animation_FlxBaseAnimation
,__properties__: {set_curIndex:"set_curIndex"}
};
var flixel_animation_FlxAnimation = function(Parent,Name,Frames,FrameRate,Looped,FlipX,FlipY) {
if(FlipY == null) {
FlipY = false;
}
if(FlipX == null) {
FlipX = false;
}
if(Looped == null) {
Looped = true;
}
if(FrameRate == null) {
FrameRate = 0;
}
this._frameTimer = 0;
this.flipY = false;
this.flipX = false;
this.reversed = false;
this.looped = true;
this.paused = true;
this.finished = true;
this.delay = 0;
this.curFrame = 0;
flixel_animation_FlxBaseAnimation.call(this,Parent,Name);
this.set_frameRate(FrameRate);
this.frames = Frames;
this.looped = Looped;
this.flipX = FlipX;
this.flipY = FlipY;
};
$hxClasses["flixel.animation.FlxAnimation"] = flixel_animation_FlxAnimation;
flixel_animation_FlxAnimation.__name__ = "flixel.animation.FlxAnimation";
flixel_animation_FlxAnimation.__super__ = flixel_animation_FlxBaseAnimation;
flixel_animation_FlxAnimation.prototype = $extend(flixel_animation_FlxBaseAnimation.prototype,{
frameRate: null
,curFrame: null
,delay: null
,finished: null
,paused: null
,looped: null
,reversed: null
,flipX: null
,flipY: null
,frames: null
,_frameTimer: null
,destroy: function() {
this.frames = null;
this.name = null;
flixel_animation_FlxBaseAnimation.prototype.destroy.call(this);
}
,play: function(Force,Reversed,Frame) {
if(Frame == null) {
Frame = 0;
}
if(Reversed == null) {
Reversed = false;
}
if(Force == null) {
Force = false;
}
if(!Force && !this.finished && this.reversed == Reversed) {
this.paused = false;
this.finished = false;
return;
}
this.reversed = Reversed;
this.paused = false;
this._frameTimer = 0;
this.finished = this.delay == 0;
var maxFrameIndex = this.frames.length - 1;
if(Frame < 0) {
this.set_curFrame(flixel_FlxG.random.int(0,maxFrameIndex));
} else {
if(Frame > maxFrameIndex) {
Frame = maxFrameIndex;
}
if(this.reversed) {
Frame = maxFrameIndex - Frame;
}
this.set_curFrame(Frame);
}
if(this.finished) {
var _this = this.parent;
if(_this.finishCallback != null) {
_this.finishCallback(this.name);
}
}
}
,restart: function() {
this.play(true,this.reversed);
}
,stop: function() {
this.finished = true;
this.paused = true;
}
,reset: function() {
this.stop();
this.set_curFrame(this.reversed ? this.frames.length - 1 : 0);
}
,finish: function() {
this.stop();
this.set_curFrame(this.reversed ? 0 : this.frames.length - 1);
}
,pause: function() {
this.paused = true;
}
,resume: function() {
this.paused = false;
}
,reverse: function() {
this.reversed = !this.reversed;
if(this.finished) {
this.play(false,this.reversed);
}
}
,update: function(elapsed) {
if(this.delay == 0 || this.finished || this.paused) {
return;
}
this._frameTimer += elapsed;
while(this._frameTimer > this.delay && !this.finished) {
this._frameTimer -= this.delay;
if(this.reversed) {
if(this.looped && this.curFrame == 0) {
this.set_curFrame(this.frames.length - 1);
} else {
var _g = this;
_g.set_curFrame(_g.curFrame - 1);
}
} else if(this.looped && this.curFrame == this.frames.length - 1) {
this.set_curFrame(0);
} else {
var _g1 = this;
_g1.set_curFrame(_g1.curFrame + 1);
}
}
}
,clone: function(Parent) {
return new flixel_animation_FlxAnimation(Parent,this.name,this.frames,this.frameRate,this.looped,this.flipX,this.flipY);
}
,set_frameRate: function(value) {
this.delay = 0;
this.frameRate = value;
if(value > 0) {
this.delay = 1.0 / value;
}
return value;
}
,set_curFrame: function(Frame) {
var maxFrameIndex = this.frames.length - 1;
var tempFrame = this.reversed ? maxFrameIndex - Frame : Frame;
if(tempFrame >= 0) {
if(!this.looped && Frame > maxFrameIndex) {
this.finished = true;
this.curFrame = this.reversed ? 0 : maxFrameIndex;
} else {
this.curFrame = Frame;
}
} else {
this.curFrame = flixel_FlxG.random.int(0,maxFrameIndex);
}
this.set_curIndex(this.frames[this.curFrame]);
if(this.finished && this.parent != null) {
var _this = this.parent;
if(_this.finishCallback != null) {
_this.finishCallback(this.name);
}
}
return Frame;
}
,get_numFrames: function() {
return this.frames.length;
}
,__class__: flixel_animation_FlxAnimation
,__properties__: $extend(flixel_animation_FlxBaseAnimation.prototype.__properties__,{get_numFrames:"get_numFrames",set_curFrame:"set_curFrame",set_frameRate:"set_frameRate"})
});
var flixel_animation_FlxAnimationController = function(Sprite) {
this.frameIndex = -1;
this._sprite = Sprite;
this._animations = new haxe_ds_StringMap();
};
$hxClasses["flixel.animation.FlxAnimationController"] = flixel_animation_FlxAnimationController;
flixel_animation_FlxAnimationController.__name__ = "flixel.animation.FlxAnimationController";
flixel_animation_FlxAnimationController.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_animation_FlxAnimationController.prototype = {
frameIndex: null
,callback: null
,finishCallback: null
,_sprite: null
,_curAnim: null
,_animations: null
,_prerotated: null
,update: function(elapsed) {
if(this._curAnim != null) {
this._curAnim.update(elapsed);
} else if(this._prerotated != null) {
this._prerotated.set_angle(this._sprite.angle);
}
}
,copyFrom: function(controller) {
this.destroyAnimations();
var anim = haxe_ds_StringMap.valueIterator(controller._animations.h);
while(anim.hasNext()) {
var anim1 = anim.next();
this.add(anim1.name,anim1.frames,anim1.frameRate,anim1.looped,anim1.flipX,anim1.flipY);
}
if(controller._prerotated != null) {
this.createPrerotated();
}
if(controller.get_name() != null) {
this.set_name(controller.get_name());
}
this.set_frameIndex(controller.frameIndex);
return this;
}
,createPrerotated: function(Controller) {
this.destroyAnimations();
if(Controller == null) {
Controller = this;
}
this._prerotated = new flixel_animation_FlxPrerotatedAnimation(Controller,Controller._sprite.bakedRotationAngle);
this._prerotated.set_angle(this._sprite.angle);
}
,destroyAnimations: function() {
this.clearAnimations();
this.clearPrerotated();
}
,destroy: function() {
this.destroyAnimations();
this._animations = null;
this.callback = null;
this._sprite = null;
}
,clearPrerotated: function() {
if(this._prerotated != null) {
this._prerotated.destroy();
}
this._prerotated = null;
}
,clearAnimations: function() {
if(this._animations != null) {
var anim;
var key = haxe_ds_StringMap.keysIterator(this._animations.h);
while(key.hasNext()) {
var key1 = key.next();
anim = this._animations.h[key1];
if(anim != null) {
anim.destroy();
}
}
}
this._animations = new haxe_ds_StringMap();
this._curAnim = null;
}
,add: function(Name,Frames,FrameRate,Looped,FlipX,FlipY) {
if(FlipY == null) {
FlipY = false;
}
if(FlipX == null) {
FlipX = false;
}
if(Looped == null) {
Looped = true;
}
if(FrameRate == null) {
FrameRate = 30;
}
var framesToAdd = Frames;
var numFrames = framesToAdd.length - 1;
var i = numFrames;
while(i >= 0) {
if(framesToAdd[i] >= this._sprite.numFrames) {
if(framesToAdd == Frames) {
framesToAdd = Frames.slice();
}
framesToAdd.splice(i,1);
}
--i;
}
if(framesToAdd.length > 0) {
var anim = new flixel_animation_FlxAnimation(this,Name,framesToAdd,FrameRate,Looped,FlipX,FlipY);
this._animations.h[Name] = anim;
}
}
,remove: function(Name) {
var anim = this._animations.h[Name];
if(anim != null) {
var _this = this._animations;
if(Object.prototype.hasOwnProperty.call(_this.h,Name)) {
delete(_this.h[Name]);
}
anim.destroy();
}
}
,append: function(Name,Frames) {
var anim = this._animations.h[Name];
if(anim == null) {
return;
}
var numFrames = Frames.length - 1;
var i = numFrames;
while(i >= 0) {
if(Frames[numFrames - i] < this._sprite.numFrames) {
anim.frames.push(Frames[numFrames - i]);
}
--i;
}
}
,addByNames: function(Name,FrameNames,FrameRate,Looped,FlipX,FlipY) {
if(FlipY == null) {
FlipY = false;
}
if(FlipX == null) {
FlipX = false;
}
if(Looped == null) {
Looped = true;
}
if(FrameRate == null) {
FrameRate = 30;
}
if(this._sprite.frames != null) {
var indices = [];
this.byNamesHelper(indices,FrameNames);
if(indices.length > 0) {
var anim = new flixel_animation_FlxAnimation(this,Name,indices,FrameRate,Looped,FlipX,FlipY);
this._animations.h[Name] = anim;
}
}
}
,appendByNames: function(Name,FrameNames) {
var anim = this._animations.h[Name];
if(anim == null) {
return;
}
if(this._sprite.frames != null) {
this.byNamesHelper(anim.frames,FrameNames);
}
}
,addByStringIndices: function(Name,Prefix,Indices,Postfix,FrameRate,Looped,FlipX,FlipY) {
if(FlipY == null) {
FlipY = false;
}
if(FlipX == null) {
FlipX = false;
}
if(Looped == null) {
Looped = true;
}
if(FrameRate == null) {
FrameRate = 30;
}
if(this._sprite.frames != null) {
var frameIndices = [];
this.byStringIndicesHelper(frameIndices,Prefix,Indices,Postfix);
if(frameIndices.length > 0) {
var anim = new flixel_animation_FlxAnimation(this,Name,frameIndices,FrameRate,Looped,FlipX,FlipY);
this._animations.h[Name] = anim;
}
}
}
,appendByStringIndices: function(Name,Prefix,Indices,Postfix) {
var anim = this._animations.h[Name];
if(anim == null) {
return;
}
if(this._sprite.frames != null) {
this.byStringIndicesHelper(anim.frames,Prefix,Indices,Postfix);
}
}
,addByIndices: function(Name,Prefix,Indices,Postfix,FrameRate,Looped,FlipX,FlipY) {
if(FlipY == null) {
FlipY = false;
}
if(FlipX == null) {
FlipX = false;
}
if(Looped == null) {
Looped = true;
}
if(FrameRate == null) {
FrameRate = 30;
}
if(this._sprite.frames != null) {
var frameIndices = [];
this.byIndicesHelper(frameIndices,Prefix,Indices,Postfix);
if(frameIndices.length > 0) {
var anim = new flixel_animation_FlxAnimation(this,Name,frameIndices,FrameRate,Looped,FlipX,FlipY);
this._animations.h[Name] = anim;
}
}
}
,appendByIndices: function(Name,Prefix,Indices,Postfix) {
var anim = this._animations.h[Name];
if(anim == null) {
return;
}
if(this._sprite.frames != null) {
this.byIndicesHelper(anim.frames,Prefix,Indices,Postfix);
}
}
,findSpriteFrame: function(Prefix,Index,Postfix) {
var numFrames = this._sprite.numFrames;
var flxFrames = this._sprite.frames.frames;
var _g = 0;
var _g1 = numFrames;
while(_g < _g1) {
var i = _g++;
var name = flxFrames[i].name;
if(StringTools.startsWith(name,Prefix) && StringTools.endsWith(name,Postfix)) {
var index = Std.parseInt(name.substring(Prefix.length,name.length - Postfix.length));
if(index != null && index == Index) {
return i;
}
}
}
return -1;
}
,addByPrefix: function(Name,Prefix,FrameRate,Looped,FlipX,FlipY) {
if(FlipY == null) {
FlipY = false;
}
if(FlipX == null) {
FlipX = false;
}
if(Looped == null) {
Looped = true;
}
if(FrameRate == null) {
FrameRate = 30;
}
if(this._sprite.frames != null) {
var animFrames = [];
this.findByPrefix(animFrames,Prefix);
if(animFrames.length > 0) {
var frameIndices = [];
this.byPrefixHelper(frameIndices,animFrames,Prefix);
if(frameIndices.length > 0) {
var anim = new flixel_animation_FlxAnimation(this,Name,frameIndices,FrameRate,Looped,FlipX,FlipY);
this._animations.h[Name] = anim;
}
}
}
}
,appendByPrefix: function(Name,Prefix) {
var anim = this._animations.h[Name];
if(anim == null) {
return;
}
if(this._sprite.frames != null) {
var animFrames = [];
this.findByPrefix(animFrames,Prefix);
if(animFrames.length > 0) {
this.byPrefixHelper(anim.frames,animFrames,Prefix);
}
}
}
,play: function(AnimName,Force,Reversed,Frame) {
if(Frame == null) {
Frame = 0;
}
if(Reversed == null) {
Reversed = false;
}
if(Force == null) {
Force = false;
}
if(AnimName == null) {
if(this._curAnim != null) {
this._curAnim.stop();
}
this._curAnim = null;
}
if(AnimName == null || this._animations.h[AnimName] == null) {
return;
}
var oldFlipX = false;
var oldFlipY = false;
if(this._curAnim != null && AnimName != this._curAnim.name) {
oldFlipX = this._curAnim.flipX;
oldFlipY = this._curAnim.flipY;
this._curAnim.stop();
}
this._curAnim = this._animations.h[AnimName];
this._curAnim.play(Force,Reversed,Frame);
if(oldFlipX != this._curAnim.flipX || oldFlipY != this._curAnim.flipY) {
this._sprite.dirty = true;
}
}
,reset: function() {
if(this._curAnim != null) {
this._curAnim.reset();
}
}
,finish: function() {
if(this._curAnim != null) {
this._curAnim.finish();
}
}
,stop: function() {
if(this._curAnim != null) {
this._curAnim.stop();
}
}
,pause: function() {
if(this._curAnim != null) {
this._curAnim.pause();
}
}
,resume: function() {
if(this._curAnim != null) {
this._curAnim.paused = false;
}
}
,reverse: function() {
if(this._curAnim != null) {
this._curAnim.reverse();
}
}
,getByName: function(Name) {
return this._animations.h[Name];
}
,randomFrame: function() {
if(this._curAnim != null) {
this._curAnim.stop();
this._curAnim = null;
}
this.set_frameIndex(flixel_FlxG.random.int(0,this._sprite.numFrames - 1));
}
,fireCallback: function() {
if(this.callback != null) {
var name = this._curAnim != null ? this._curAnim.name : null;
var number = this._curAnim != null ? this._curAnim.curFrame : this.frameIndex;
this.callback(name,number,this.frameIndex);
}
}
,fireFinishCallback: function(name) {
if(this.finishCallback != null) {
this.finishCallback(name);
}
}
,byNamesHelper: function(AddTo,FrameNames) {
var _g = 0;
while(_g < FrameNames.length) {
var frameName = FrameNames[_g];
++_g;
if(Object.prototype.hasOwnProperty.call(this._sprite.frames.framesHash.h,frameName)) {
var frameToAdd = this._sprite.frames.framesHash.h[frameName];
AddTo.push(this._sprite.frames.frames.indexOf(frameToAdd));
}
}
}
,byStringIndicesHelper: function(AddTo,Prefix,Indices,Postfix) {
var _g = 0;
while(_g < Indices.length) {
var index = Indices[_g];
++_g;
var name = Prefix + index + Postfix;
if(Object.prototype.hasOwnProperty.call(this._sprite.frames.framesHash.h,name)) {
var frameToAdd = this._sprite.frames.framesHash.h[name];
AddTo.push(this._sprite.frames.frames.indexOf(frameToAdd));
}
}
}
,byIndicesHelper: function(AddTo,Prefix,Indices,Postfix) {
var _g = 0;
while(_g < Indices.length) {
var index = Indices[_g];
++_g;
var indexToAdd = this.findSpriteFrame(Prefix,index,Postfix);
if(indexToAdd != -1) {
AddTo.push(indexToAdd);
}
}
}
,byPrefixHelper: function(AddTo,AnimFrames,Prefix) {
var name = AnimFrames[0].name;
var postIndex = name.indexOf(".",Prefix.length);
var postFix = name.substring(postIndex == -1 ? name.length : postIndex,name.length);
flixel_graphics_frames_FlxFrame.sort(AnimFrames,Prefix.length,postFix.length);
var _g = 0;
while(_g < AnimFrames.length) {
var animFrame = AnimFrames[_g];
++_g;
AddTo.push(this._sprite.frames.frames.indexOf(animFrame));
}
}
,findByPrefix: function(AnimFrames,Prefix) {
var _g = 0;
var _g1 = this._sprite.frames.frames;
while(_g < _g1.length) {
var frame = _g1[_g];
++_g;
if(frame.name != null && StringTools.startsWith(frame.name,Prefix)) {
AnimFrames.push(frame);
}
}
}
,set_frameIndex: function(Frame) {
if(this._sprite.frames != null && this._sprite.numFrames > 0) {
Frame %= this._sprite.numFrames;
this._sprite.set_frame(this._sprite.frames.frames[Frame]);
this.frameIndex = Frame;
if(this.callback != null) {
var name = this._curAnim != null ? this._curAnim.name : null;
var number = this._curAnim != null ? this._curAnim.curFrame : this.frameIndex;
this.callback(name,number,this.frameIndex);
}
}
return this.frameIndex;
}
,get_frameName: function() {
return this._sprite.frame.name;
}
,set_frameName: function(Value) {
if(this._sprite.frames != null && Object.prototype.hasOwnProperty.call(this._sprite.frames.framesHash.h,Value)) {
if(this._curAnim != null) {
this._curAnim.stop();
this._curAnim = null;
}
var frame = this._sprite.frames.framesHash.h[Value];
if(frame != null) {
this.set_frameIndex(this._sprite.frames.frames.indexOf(frame));
}
}
return Value;
}
,get_name: function() {
var animName = null;
if(this._curAnim != null) {
animName = this._curAnim.name;
}
return animName;
}
,set_name: function(AnimName) {
this.play(AnimName);
return AnimName;
}
,get_curAnim: function() {
return this._curAnim;
}
,set_curAnim: function(Anim) {
if(Anim != this._curAnim) {
if(this._curAnim != null) {
this._curAnim.stop();
}
if(Anim != null) {
Anim.play();
}
}
return this._curAnim = Anim;
}
,get_paused: function() {
var paused = false;
if(this._curAnim != null) {
paused = this._curAnim.paused;
}
return paused;
}
,set_paused: function(Value) {
if(this._curAnim != null) {
if(Value) {
this._curAnim.pause();
} else {
this._curAnim.paused = false;
}
}
return Value;
}
,get_finished: function() {
var finished = true;
if(this._curAnim != null) {
finished = this._curAnim.finished;
}
return finished;
}
,set_finished: function(Value) {
if(Value && this._curAnim != null) {
this._curAnim.finish();
}
return Value;
}
,get_frames: function() {
return this._sprite.numFrames;
}
,getFrameIndex: function(Frame) {
return this._sprite.frames.frames.indexOf(Frame);
}
,__class__: flixel_animation_FlxAnimationController
,__properties__: {get_frames:"get_frames",set_finished:"set_finished",get_finished:"get_finished",set_paused:"set_paused",get_paused:"get_paused",set_name:"set_name",get_name:"get_name",set_frameName:"set_frameName",get_frameName:"get_frameName",set_frameIndex:"set_frameIndex",set_curAnim:"set_curAnim",get_curAnim:"get_curAnim"}
};
var flixel_animation_FlxPrerotatedAnimation = function(Parent,Baked) {
this.angle = 0;
flixel_animation_FlxBaseAnimation.call(this,Parent,"prerotated_animation");
this.baked = Baked;
this.rotations = Math.round(360 / Baked);
};
$hxClasses["flixel.animation.FlxPrerotatedAnimation"] = flixel_animation_FlxPrerotatedAnimation;
flixel_animation_FlxPrerotatedAnimation.__name__ = "flixel.animation.FlxPrerotatedAnimation";
flixel_animation_FlxPrerotatedAnimation.__super__ = flixel_animation_FlxBaseAnimation;
flixel_animation_FlxPrerotatedAnimation.prototype = $extend(flixel_animation_FlxBaseAnimation.prototype,{
rotations: null
,baked: null
,angle: null
,set_angle: function(Value) {
if(isNaN(Value)) {
throw haxe_Exception.thrown("angle must not be NaN");
}
var oldIndex = this.curIndex;
var angleHelper = Math.floor(Value % 360);
while(angleHelper < 0) angleHelper += 360;
var newIndex = Math.floor(angleHelper / this.baked + 0.5);
newIndex = newIndex % this.rotations | 0;
if(oldIndex != newIndex) {
this.set_curIndex(newIndex);
}
return this.angle = Value;
}
,set_curIndex: function(Value) {
this.curIndex = Value;
if(this.parent != null) {
this.parent.set_frameIndex(Value);
}
return Value;
}
,clone: function(Parent) {
return new flixel_animation_FlxPrerotatedAnimation(Parent,this.baked);
}
,__class__: flixel_animation_FlxPrerotatedAnimation
,__properties__: $extend(flixel_animation_FlxBaseAnimation.prototype.__properties__,{set_angle:"set_angle"})
});
var flixel_util_FlxPool_$flixel_$effects_$FlxFlicker = function(classObj) {
this._count = 0;
this._pool = [];
this._class = classObj;
};
$hxClasses["flixel.util.FlxPool_flixel_effects_FlxFlicker"] = flixel_util_FlxPool_$flixel_$effects_$FlxFlicker;
flixel_util_FlxPool_$flixel_$effects_$FlxFlicker.__name__ = "flixel.util.FlxPool_flixel_effects_FlxFlicker";
flixel_util_FlxPool_$flixel_$effects_$FlxFlicker.__interfaces__ = [flixel_util_IFlxPool];
flixel_util_FlxPool_$flixel_$effects_$FlxFlicker.prototype = {
_pool: null
,_class: null
,_count: null
,get: function() {
if(this._count == 0) {
return Type.createInstance(this._class,[]);
}
return this._pool[--this._count];
}
,put: function(obj) {
if(obj != null) {
var i = this._pool.indexOf(obj);
if(i == -1 || i >= this._count) {
obj.destroy();
this._pool[this._count++] = obj;
}
}
}
,putUnsafe: function(obj) {
if(obj != null) {
obj.destroy();
this._pool[this._count++] = obj;
}
}
,preAllocate: function(numObjects) {
while(numObjects-- > 0) this._pool[this._count++] = Type.createInstance(this._class,[]);
}
,clear: function() {
this._count = 0;
var oldPool = this._pool;
this._pool = [];
return oldPool;
}
,get_length: function() {
return this._count;
}
,__class__: flixel_util_FlxPool_$flixel_$effects_$FlxFlicker
,__properties__: {get_length:"get_length"}
};
var flixel_effects_FlxFlicker = function() {
};
$hxClasses["flixel.effects.FlxFlicker"] = flixel_effects_FlxFlicker;
flixel_effects_FlxFlicker.__name__ = "flixel.effects.FlxFlicker";
flixel_effects_FlxFlicker.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_effects_FlxFlicker.flicker = function(Object1,Duration,Interval,EndVisibility,ForceRestart,CompletionCallback,ProgressCallback) {
if(ForceRestart == null) {
ForceRestart = true;
}
if(EndVisibility == null) {
EndVisibility = true;
}
if(Interval == null) {
Interval = 0.04;
}
if(Duration == null) {
Duration = 1;
}
if(flixel_effects_FlxFlicker.isFlickering(Object1)) {
if(ForceRestart) {
flixel_effects_FlxFlicker.stopFlickering(Object1);
} else {
return flixel_effects_FlxFlicker._boundObjects.h[Object1.__id__];
}
}
if(Interval <= 0) {
Interval = flixel_FlxG.elapsed;
}
var flicker = flixel_effects_FlxFlicker._pool.get();
flicker.start(Object1,Duration,Interval,EndVisibility,CompletionCallback,ProgressCallback);
flixel_effects_FlxFlicker._boundObjects.set(Object1,flicker);
return flicker;
};
flixel_effects_FlxFlicker.isFlickering = function(Object1) {
return flixel_effects_FlxFlicker._boundObjects.h.__keys__[Object1.__id__] != null;
};
flixel_effects_FlxFlicker.stopFlickering = function(Object1) {
var boundFlicker = flixel_effects_FlxFlicker._boundObjects.h[Object1.__id__];
if(boundFlicker != null) {
boundFlicker.stop();
}
};
flixel_effects_FlxFlicker.prototype = {
object: null
,endVisibility: null
,timer: null
,completionCallback: null
,progressCallback: null
,duration: null
,interval: null
,destroy: function() {
this.object = null;
this.timer = null;
this.completionCallback = null;
this.progressCallback = null;
}
,start: function(Object1,Duration,Interval,EndVisibility,CompletionCallback,ProgressCallback) {
this.object = Object1;
this.duration = Duration;
this.interval = Interval;
this.completionCallback = CompletionCallback;
this.progressCallback = ProgressCallback;
this.endVisibility = EndVisibility;
this.timer = new flixel_util_FlxTimer().start(this.interval,$bind(this,this.flickerProgress),this.duration / this.interval | 0);
}
,stop: function() {
this.timer.cancel();
this.object.set_visible(true);
this.release();
}
,release: function() {
flixel_effects_FlxFlicker._boundObjects.remove(this.object);
flixel_effects_FlxFlicker._pool.put(this);
}
,flickerProgress: function(Timer) {
this.object.set_visible(!this.object.visible);
if(this.progressCallback != null) {
this.progressCallback(this);
}
if(Timer.loops > 0 && Timer.loops - Timer._loopsCounter == 0) {
this.object.set_visible(this.endVisibility);
if(this.completionCallback != null) {
this.completionCallback(this);
}
this.release();
}
}
,__class__: flixel_effects_FlxFlicker
};
var flixel_effects_postprocess_PostProcess = function(shader) {
};
$hxClasses["flixel.effects.postprocess.PostProcess"] = flixel_effects_postprocess_PostProcess;
flixel_effects_postprocess_PostProcess.__name__ = "flixel.effects.postprocess.PostProcess";
flixel_effects_postprocess_PostProcess.prototype = {
enable: function(to) {
}
,capture: function() {
}
,rebuild: function() {
}
,update: function(elapsed) {
}
,render: function(rect) {
}
,setUniform: function(uniform,value) {
}
,set_to: function(value) {
return null;
}
,__class__: flixel_effects_postprocess_PostProcess
,__properties__: {set_to:"set_to"}
};
var flixel_graphics_FlxGraphic = function(Key,Bitmap,Persist) {
this._destroyOnNoUse = true;
this._useCount = 0;
this.unique = false;
this.isDumped = false;
this.persist = false;
this.height = 0;
this.width = 0;
this.key = Key;
this.persist = Persist != null ? Persist : flixel_graphics_FlxGraphic.defaultPersist;
this.frameCollections = new haxe_ds_EnumValueMap();
this.frameCollectionTypes = [];
this.set_bitmap(Bitmap);
this.shader = new flixel_graphics_tile_FlxGraphicsShader();
};
$hxClasses["flixel.graphics.FlxGraphic"] = flixel_graphics_FlxGraphic;
flixel_graphics_FlxGraphic.__name__ = "flixel.graphics.FlxGraphic";
flixel_graphics_FlxGraphic.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_graphics_FlxGraphic.fromAssetKey = function(Source,Unique,Key,Cache1) {
if(Cache1 == null) {
Cache1 = true;
}
if(Unique == null) {
Unique = false;
}
var bitmap = null;
if(!Cache1) {
bitmap = openfl_utils_Assets.exists(Source) ? openfl_utils_Assets.getBitmapData(Source,false) : null;
if(bitmap == null) {
return null;
}
return flixel_graphics_FlxGraphic.createGraphic(bitmap,Key,Unique,Cache1);
}
var key = flixel_FlxG.bitmap.generateKey(Source,Key,Unique);
var graphic = flixel_FlxG.bitmap._cache.h[key];
if(graphic != null) {
return graphic;
}
bitmap = openfl_utils_Assets.exists(Source) ? openfl_utils_Assets.getBitmapData(Source,false) : null;
if(bitmap == null) {
return null;
}
graphic = flixel_graphics_FlxGraphic.createGraphic(bitmap,key,Unique);
graphic.assetsKey = Source;
return graphic;
};
flixel_graphics_FlxGraphic.fromClass = function(Source,Unique,Key,Cache1) {
if(Cache1 == null) {
Cache1 = true;
}
if(Unique == null) {
Unique = false;
}
var bitmap = null;
if(!Cache1) {
bitmap = Type.createInstance(Source,[0,0]);
return flixel_graphics_FlxGraphic.createGraphic(bitmap,Key,Unique,Cache1);
}
var _this = flixel_FlxG.bitmap;
var key = Source.__name__;
key = flixel_FlxG.bitmap.generateKey(key,Key,Unique);
var graphic = flixel_FlxG.bitmap._cache.h[key];
if(graphic != null) {
return graphic;
}
bitmap = Type.createInstance(Source,[0,0]);
graphic = flixel_graphics_FlxGraphic.createGraphic(bitmap,key,Unique);
graphic.assetsClass = Source;
return graphic;
};
flixel_graphics_FlxGraphic.fromBitmapData = function(Source,Unique,Key,Cache1) {
if(Cache1 == null) {
Cache1 = true;
}
if(Unique == null) {
Unique = false;
}
if(!Cache1) {
return flixel_graphics_FlxGraphic.createGraphic(Source,Key,Unique,Cache1);
}
var key = flixel_FlxG.bitmap.findKeyForBitmap(Source);
var assetKey = null;
var assetClass = null;
var graphic = null;
if(key != null) {
graphic = flixel_FlxG.bitmap._cache.h[key];
assetKey = graphic.assetsKey;
assetClass = graphic.assetsClass;
}
key = flixel_FlxG.bitmap.generateKey(key,Key,Unique);
graphic = flixel_FlxG.bitmap._cache.h[key];
if(graphic != null) {
return graphic;
}
graphic = flixel_graphics_FlxGraphic.createGraphic(Source,key,Unique);
graphic.assetsKey = assetKey;
graphic.assetsClass = assetClass;
return graphic;
};
flixel_graphics_FlxGraphic.fromFrame = function(Source,Unique,Key,Cache1) {
if(Cache1 == null) {
Cache1 = true;
}
if(Unique == null) {
Unique = false;
}
var key = Source.name;
if(key == null) {
var _this = Source.frame;
var value = _this.x;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "x";
_this1.value = value;
var value = _this.y;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "y";
_this2.value = value;
var value = _this.width;
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "w";
_this3.value = value;
var value = _this.height;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "h";
_this.value = value;
key = flixel_util_FlxStringUtil.getDebugString([_this1,_this2,_this3,_this]);
}
key = Source.parent.key + ":" + key;
key = flixel_FlxG.bitmap.generateKey(key,Key,Unique);
var graphic = flixel_FlxG.bitmap._cache.h[key];
if(graphic != null) {
return graphic;
}
var bitmap = Source.paint();
graphic = flixel_graphics_FlxGraphic.createGraphic(bitmap,key,Unique,Cache1);
var image = flixel_graphics_frames_FlxImageFrame.fromGraphic(graphic);
image.frames[0].name = Source.name;
return graphic;
};
flixel_graphics_FlxGraphic.fromFrames = function(Source,Unique,Key) {
if(Unique == null) {
Unique = false;
}
return flixel_graphics_FlxGraphic.fromGraphic(Source.parent,Unique,Key);
};
flixel_graphics_FlxGraphic.fromGraphic = function(Source,Unique,Key) {
if(Unique == null) {
Unique = false;
}
if(!Unique) {
return Source;
}
var key = flixel_FlxG.bitmap.generateKey(Source.key,Key,Unique);
var graphic = flixel_graphics_FlxGraphic.createGraphic(Source.bitmap,key,Unique);
graphic.unique = Unique;
graphic.assetsClass = Source.assetsClass;
graphic.assetsKey = Source.assetsKey;
flixel_FlxG.bitmap._cache.h[graphic.key] = graphic;
return graphic;
};
flixel_graphics_FlxGraphic.fromRectangle = function(Width,Height,Color,Unique,Key) {
if(Unique == null) {
Unique = false;
}
var systemKey = Width + "x" + Height + ":" + Color;
var key = flixel_FlxG.bitmap.generateKey(systemKey,Key,Unique);
var graphic = flixel_FlxG.bitmap._cache.h[key];
if(graphic != null) {
return graphic;
}
var bitmap = new openfl_display_BitmapData(Width,Height,true,Color);
return flixel_graphics_FlxGraphic.createGraphic(bitmap,key);
};
flixel_graphics_FlxGraphic.getBitmap = function(Bitmap,Unique) {
if(Unique == null) {
Unique = false;
}
if(Unique) {
return Bitmap.clone();
} else {
return Bitmap;
}
};
flixel_graphics_FlxGraphic.createGraphic = function(Bitmap,Key,Unique,Cache1) {
if(Cache1 == null) {
Cache1 = true;
}
if(Unique == null) {
Unique = false;
}
var Unique1 = Unique;
if(Unique1 == null) {
Unique1 = false;
}
if(Unique1) {
Bitmap = Bitmap.clone();
}
var graphic = null;
if(Cache1) {
graphic = new flixel_graphics_FlxGraphic(Key,Bitmap);
graphic.unique = Unique;
flixel_FlxG.bitmap._cache.h[graphic.key] = graphic;
} else {
graphic = new flixel_graphics_FlxGraphic(null,Bitmap);
}
return graphic;
};
flixel_graphics_FlxGraphic.prototype = {
key: null
,bitmap: null
,width: null
,height: null
,assetsKey: null
,assetsClass: null
,persist: null
,isDumped: null
,shader: null
,frameCollections: null
,frameCollectionTypes: null
,unique: null
,_imageFrame: null
,_useCount: null
,_destroyOnNoUse: null
,dump: function() {
}
,undump: function() {
var newBitmap = this.getBitmapFromSystem();
if(newBitmap != null) {
this.set_bitmap(newBitmap);
}
this.isDumped = false;
}
,onContext: function() {
if(this.isDumped) {
this.undump();
this.dump();
}
}
,onAssetsReload: function() {
if(!(this.assetsClass != null || this.assetsKey != null)) {
return;
}
var dumped = this.isDumped;
this.undump();
if(dumped) {
this.dump();
}
}
,destroy: function() {
this.set_bitmap(flixel_util_FlxDestroyUtil.dispose(this.bitmap));
this.shader = null;
this.key = null;
this.assetsKey = null;
this.assetsClass = null;
this._imageFrame = null;
if(this.frameCollections == null) {
return;
}
var collections;
var _g = 0;
var _g1 = this.frameCollectionTypes;
while(_g < _g1.length) {
var collectionType = _g1[_g];
++_g;
collections = this.frameCollections.get(collectionType);
flixel_util_FlxDestroyUtil.destroyArray(collections);
}
this.frameCollections = null;
this.frameCollectionTypes = null;
}
,addFrameCollection: function(collection) {
if(collection.type != null) {
var type = collection.type;
var collections = this.frameCollections.get(type);
if(collections == null) {
collections = [];
this.frameCollections.set(type,collections);
}
var collections1 = collections;
collections1.push(collection);
}
}
,getFramesCollections: function(type) {
var collections = this.frameCollections.get(type);
if(collections == null) {
collections = [];
this.frameCollections.set(type,collections);
}
return collections;
}
,getEmptyFrame: function(size) {
var frame = new flixel_graphics_frames_FlxFrame(this);
frame.type = 2;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
frame.set_frame(rect);
var _this = frame.sourceSize;
_this.set_x(size.x);
_this.set_y(size.y);
if(size._weak) {
size.put();
}
return frame;
}
,getBitmapFromSystem: function() {
var newBitmap = null;
if(this.assetsClass != null) {
newBitmap = Type.createInstance(this.assetsClass,[0,0]);
} else if(this.assetsKey != null) {
var id = this.assetsKey;
newBitmap = openfl_utils_Assets.exists(id) ? openfl_utils_Assets.getBitmapData(id,false) : null;
}
if(newBitmap != null) {
var Unique = this.unique;
if(Unique == null) {
Unique = false;
}
if(Unique) {
return newBitmap.clone();
} else {
return newBitmap;
}
}
return null;
}
,get_canBeDumped: function() {
if(this.assetsClass == null) {
return this.assetsKey != null;
} else {
return true;
}
}
,get_useCount: function() {
return this._useCount;
}
,set_useCount: function(Value) {
if(Value <= 0 && this._destroyOnNoUse && !this.persist) {
flixel_FlxG.bitmap.remove(this);
}
return this._useCount = Value;
}
,get_destroyOnNoUse: function() {
return this._destroyOnNoUse;
}
,set_destroyOnNoUse: function(Value) {
if(Value && this._useCount <= 0 && this.key != null && !this.persist) {
flixel_FlxG.bitmap.remove(this);
}
return this._destroyOnNoUse = Value;
}
,get_imageFrame: function() {
if(this._imageFrame == null) {
var X = 0;
var Y = 0;
var Width = this.bitmap.width;
var Height = this.bitmap.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this._imageFrame = flixel_graphics_frames_FlxImageFrame.fromRectangle(this,rect);
}
return this._imageFrame;
}
,get_atlasFrames: function() {
return flixel_graphics_frames_FlxAtlasFrames.findFrame(this,null);
}
,set_bitmap: function(value) {
if(value != null) {
this.bitmap = value;
this.width = this.bitmap.width;
this.height = this.bitmap.height;
}
return value;
}
,__class__: flixel_graphics_FlxGraphic
,__properties__: {get_atlasFrames:"get_atlasFrames",get_imageFrame:"get_imageFrame",set_useCount:"set_useCount",get_useCount:"get_useCount",get_canBeDumped:"get_canBeDumped",set_destroyOnNoUse:"set_destroyOnNoUse",get_destroyOnNoUse:"get_destroyOnNoUse",set_bitmap:"set_bitmap"}
};
var flixel_graphics_atlas_FlxAtlas = function(name,powerOfTwo,border,rotate,minSize,maxSize) {
if(rotate == null) {
rotate = false;
}
if(border == null) {
border = 1;
}
if(powerOfTwo == null) {
powerOfTwo = false;
}
this.powerOfTwo = false;
this.allowRotation = false;
this.maxHeight = 1024;
this.maxWidth = 1024;
this.minHeight = 128;
this.minWidth = 128;
this.border = 1;
this.persist = false;
this.nodes = new haxe_ds_StringMap();
this.name = name;
this.set_powerOfTwo(powerOfTwo);
this.border = border;
if(minSize == null) {
minSize = flixel_graphics_atlas_FlxAtlas.defaultMinSize;
}
if(maxSize == null) {
maxSize = flixel_graphics_atlas_FlxAtlas.defaultMaxSize;
}
this.set_minWidth(minSize.x | 0);
this.set_minHeight(minSize.y | 0);
this.set_maxWidth(maxSize.x > minSize.x ? maxSize.x | 0 : this.minWidth);
this.set_maxHeight(maxSize.y > minSize.x ? maxSize.y | 0 : this.minHeight);
this.allowRotation = rotate;
this.initRoot();
flixel_FlxG.signals.preStateCreate.add($bind(this,this.onClear));
};
$hxClasses["flixel.graphics.atlas.FlxAtlas"] = flixel_graphics_atlas_FlxAtlas;
flixel_graphics_atlas_FlxAtlas.__name__ = "flixel.graphics.atlas.FlxAtlas";
flixel_graphics_atlas_FlxAtlas.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_graphics_atlas_FlxAtlas.prototype = {
root: null
,name: null
,nodes: null
,bitmapData: null
,persist: null
,border: null
,width: null
,height: null
,minWidth: null
,minHeight: null
,maxWidth: null
,maxHeight: null
,allowRotation: null
,powerOfTwo: null
,_graphic: null
,_tempStorage: null
,initRoot: function() {
var rootWidth = this.minWidth;
var rootHeight = this.minHeight;
if(this.powerOfTwo) {
rootWidth = this.getNextPowerOfTwo(rootWidth);
rootHeight = this.getNextPowerOfTwo(rootHeight);
}
var X = 0;
var Y = 0;
var Width = rootWidth;
var Height = rootHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.root = new flixel_graphics_atlas_FlxNode(rect,this);
}
,addNode: function(Graphic,Key) {
var key = flixel_system_FlxAssets.resolveKey(Graphic,Key);
if(key == null) {
return null;
}
if(this.hasNodeWithName(key)) {
return this.nodes.h[key];
}
var data = flixel_system_FlxAssets.resolveBitmapData(Graphic);
if(data == null) {
return null;
}
if(this.root.left == null) {
return this.insertFirstNodeInRoot(data,key);
}
if(this.root.right == null) {
return this.expand(data,key);
}
var inserted = this.tryInsert(data,key);
if(inserted != null) {
return inserted;
}
this.wrapRoot();
return this.expand(data,key);
}
,wrapRoot: function() {
var temp = this.root;
var X = 0;
var Y = 0;
var Width = temp.rect.width | 0;
var Height = temp.rect.height | 0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.root = new flixel_graphics_atlas_FlxNode(rect,this);
this.root.left = temp;
}
,tryInsert: function(data,key) {
var insertWidth = data.width + this.border;
var insertHeight = data.height + this.border;
var rotateNode = false;
var nodeToInsert = this.findNodeToInsert(insertWidth,insertHeight);
if(this.allowRotation) {
var nodeToInsertWithRotation = this.findNodeToInsert(insertHeight,insertWidth);
if(nodeToInsertWithRotation != null) {
var nodeWithRotationArea = (nodeToInsertWithRotation.rect.width | 0) * (nodeToInsertWithRotation.rect.height | 0);
if(nodeToInsert == null || nodeToInsert != null && (nodeToInsert.rect.width | 0) * (nodeToInsert.rect.height | 0) > nodeWithRotationArea) {
nodeToInsert = nodeToInsertWithRotation;
rotateNode = true;
var temp = insertWidth;
insertWidth = insertHeight;
insertHeight = temp;
}
}
}
if(nodeToInsert != null) {
var horizontally = this.needToDivideHorizontally(nodeToInsert,insertWidth,insertHeight);
return this.divideNode(nodeToInsert,insertWidth,insertHeight,horizontally,data,key,rotateNode);
}
return null;
}
,needToDivideHorizontally: function(nodeToDivide,insertWidth,insertHeight) {
var dw = (nodeToDivide.rect.width | 0) - insertWidth;
var dh = (nodeToDivide.rect.height | 0) - insertHeight;
return dw > dh;
}
,divideNode: function(nodeToDivide,insertWidth,insertHeight,divideHorizontally,firstGrandChildData,firstGrandChildKey,firstGrandChildRotated) {
if(firstGrandChildRotated == null) {
firstGrandChildRotated = false;
}
if(nodeToDivide != null) {
var firstChild = null;
var secondChild = null;
var firstGrandChild = null;
var secondGrandChild = null;
var firstGrandChildFilled = firstGrandChildKey != null;
if(divideHorizontally) {
var X = nodeToDivide.rect.x | 0;
var Y = nodeToDivide.rect.y | 0;
var Width = insertWidth;
var Height = nodeToDivide.rect.height | 0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
firstChild = new flixel_graphics_atlas_FlxNode(rect,this);
if((nodeToDivide.rect.width | 0) - insertWidth > 0) {
var X = (nodeToDivide.rect.x | 0) + insertWidth;
var Y = nodeToDivide.rect.y | 0;
var Width = (nodeToDivide.rect.width | 0) - insertWidth;
var Height = nodeToDivide.rect.height | 0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
secondChild = new flixel_graphics_atlas_FlxNode(rect,this);
}
var X = firstChild.rect.x | 0;
var Y = firstChild.rect.y | 0;
var Width = insertWidth;
var Height = insertHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
firstGrandChild = new flixel_graphics_atlas_FlxNode(rect,this,firstGrandChildFilled,firstGrandChildKey,firstGrandChildRotated);
if((firstChild.rect.height | 0) - insertHeight > 0) {
var X = firstChild.rect.x | 0;
var Y = (firstChild.rect.y | 0) + insertHeight;
var Width = insertWidth;
var Height = (firstChild.rect.height | 0) - insertHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
secondGrandChild = new flixel_graphics_atlas_FlxNode(rect,this);
}
} else {
var X = nodeToDivide.rect.x | 0;
var Y = nodeToDivide.rect.y | 0;
var Width = nodeToDivide.rect.width | 0;
var Height = insertHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
firstChild = new flixel_graphics_atlas_FlxNode(rect,this);
if((nodeToDivide.rect.height | 0) - insertHeight > 0) {
var X = nodeToDivide.rect.x | 0;
var Y = (nodeToDivide.rect.y | 0) + insertHeight;
var Width = nodeToDivide.rect.width | 0;
var Height = (nodeToDivide.rect.height | 0) - insertHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
secondChild = new flixel_graphics_atlas_FlxNode(rect,this);
}
var X = firstChild.rect.x | 0;
var Y = firstChild.rect.y | 0;
var Width = insertWidth;
var Height = insertHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
firstGrandChild = new flixel_graphics_atlas_FlxNode(rect,this,firstGrandChildFilled,firstGrandChildKey,firstGrandChildRotated);
if((firstChild.rect.width | 0) - insertWidth > 0) {
var X = (firstChild.rect.x | 0) + insertWidth;
var Y = firstChild.rect.y | 0;
var Width = (firstChild.rect.width | 0) - insertWidth;
var Height = insertHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
secondGrandChild = new flixel_graphics_atlas_FlxNode(rect,this);
}
}
firstChild.left = firstGrandChild;
firstChild.right = secondGrandChild;
nodeToDivide.left = firstChild;
nodeToDivide.right = secondChild;
if(firstGrandChildKey != null && firstGrandChildData != null) {
this.expandBitmapData();
if(firstGrandChildRotated) {
flixel_graphics_atlas_FlxAtlas.matrix.identity();
flixel_graphics_atlas_FlxAtlas.matrix.rotate(Math.PI / 2);
flixel_graphics_atlas_FlxAtlas.matrix.translate(firstGrandChildData.height + (firstGrandChild.rect.x | 0),firstGrandChild.rect.y | 0);
this.bitmapData.draw(firstGrandChildData,flixel_graphics_atlas_FlxAtlas.matrix);
} else {
flixel_graphics_atlas_FlxAtlas.point.setTo(firstGrandChild.rect.x | 0,firstGrandChild.rect.y | 0);
this.bitmapData.copyPixels(firstGrandChildData,firstGrandChildData.rect,flixel_graphics_atlas_FlxAtlas.point);
}
this.addNodeToAtlasFrames(firstGrandChild);
this.nodes.h[firstGrandChildKey] = firstGrandChild;
}
return firstGrandChild;
}
return null;
}
,insertFirstNodeInRoot: function(data,key) {
if(this.root.left == null) {
var insertWidth = data.width + this.border;
var insertHeight = data.height + this.border;
var rootWidth = insertWidth;
var rootHeight = insertHeight;
if(this.powerOfTwo) {
rootWidth = this.getNextPowerOfTwo(rootWidth);
rootHeight = this.getNextPowerOfTwo(rootHeight);
}
if(this.minWidth > rootWidth) {
rootWidth = this.minWidth;
}
if(this.minHeight > rootHeight) {
rootHeight = this.minHeight;
}
if(this.powerOfTwo) {
rootWidth = this.getNextPowerOfTwo(rootWidth);
rootHeight = this.getNextPowerOfTwo(rootHeight);
}
if(this.maxWidth > 0 && rootWidth > this.maxWidth || this.maxHeight > 0 && rootHeight > this.maxHeight) {
return null;
}
this.root.set_width(rootWidth);
this.root.set_height(rootHeight);
var horizontally = this.needToDivideHorizontally(this.root,insertWidth,insertHeight);
return this.divideNode(this.root,insertWidth,insertHeight,horizontally,data,key);
}
return null;
}
,expand: function(data,key) {
if(this.root.right == null) {
var insertWidth = data.width + this.border;
var insertHeight = data.height + this.border;
var addRightWidth = (this.root.rect.width | 0) + insertWidth;
var addRightHeight = Math.max(this.root.rect.height | 0,insertHeight) | 0;
var addBottomWidth = Math.max(this.root.rect.width | 0,insertWidth) | 0;
var addBottomHeight = (this.root.rect.height | 0) + insertHeight;
var addRightWidthRotate = addRightWidth;
var addRightHeightRotate = addRightHeight;
var addBottomWidthRotate = addBottomWidth;
var addBottomHeightRotate = addBottomHeight;
if(this.allowRotation) {
addRightWidthRotate = (this.root.rect.width | 0) + insertHeight;
addRightHeightRotate = Math.max(this.root.rect.height | 0,insertWidth) | 0;
addBottomWidthRotate = Math.max(this.root.rect.width | 0,insertHeight) | 0;
addBottomHeightRotate = (this.root.rect.height | 0) + insertWidth;
}
if(this.powerOfTwo) {
addRightWidth = this.getNextPowerOfTwo(addRightWidth);
addRightWidthRotate = addRightWidth;
addRightHeight = this.getNextPowerOfTwo(addRightHeight);
addRightHeightRotate = addRightHeight;
addBottomWidth = this.getNextPowerOfTwo(addBottomWidth);
addBottomWidthRotate = addBottomWidth;
addBottomHeight = this.getNextPowerOfTwo(addBottomHeight);
addBottomHeightRotate = addBottomHeight;
if(this.allowRotation) {
addRightWidthRotate = this.getNextPowerOfTwo(addRightWidthRotate);
addRightHeightRotate = this.getNextPowerOfTwo(addRightHeightRotate);
addBottomWidthRotate = this.getNextPowerOfTwo(addBottomWidthRotate);
addBottomHeightRotate = this.getNextPowerOfTwo(addBottomHeightRotate);
}
}
var canExpandRight = true;
var canExpandBottom = true;
var canExpandRightRotate = this.allowRotation;
var canExpandBottomRotate = this.allowRotation;
if(this.maxWidth > 0 && addRightWidth > this.maxWidth || this.maxHeight > 0 && addRightHeight > this.maxHeight) {
canExpandRight = false;
}
if(this.maxWidth > 0 && addBottomWidth > this.maxWidth || this.maxHeight > 0 && addBottomHeight > this.maxHeight) {
canExpandBottom = false;
}
if(this.maxWidth > 0 && addRightWidthRotate > this.maxWidth || this.maxHeight > 0 && addRightHeightRotate > this.maxHeight) {
canExpandRightRotate = false;
}
if(this.maxWidth > 0 && addBottomWidthRotate > this.maxWidth || this.maxHeight > 0 && addBottomHeightRotate > this.maxHeight) {
canExpandBottomRotate = false;
}
if(!canExpandRight && !canExpandBottom && !canExpandRightRotate && !canExpandBottomRotate) {
return null;
}
var addRightArea = addRightWidth * addRightHeight;
var addBottomArea = addBottomWidth * addBottomHeight;
var addRightAreaRotate = addRightWidthRotate * addRightHeightRotate;
var addBottomAreaRotate = addBottomWidthRotate * addBottomHeightRotate;
var rotateRight = false;
var rotateBottom = false;
var rotateNode = false;
if(canExpandRight && canExpandRightRotate && addRightArea > addRightAreaRotate || !canExpandRight && canExpandRightRotate) {
addRightArea = addBottomAreaRotate;
addRightWidth = addRightWidthRotate;
addRightHeight = addRightHeightRotate;
canExpandRight = true;
rotateRight = true;
}
if(canExpandBottom && canExpandBottomRotate && addBottomArea > addBottomAreaRotate || !canExpandBottom && canExpandBottomRotate) {
addBottomArea = addBottomAreaRotate;
addBottomWidth = addBottomWidthRotate;
addBottomHeight = addBottomHeightRotate;
canExpandBottom = true;
rotateBottom = true;
}
if(!canExpandRight && canExpandBottom) {
addRightArea = addBottomArea + 1;
rotateNode = rotateRight;
} else if(canExpandRight && !canExpandBottom) {
addBottomArea = addRightArea + 1;
rotateNode = rotateBottom;
}
var dataNode = null;
var temp = this.root;
var insertNodeWidth = insertWidth;
var insertNodeHeight = insertHeight;
if(addBottomArea >= addRightArea) {
if(rotateRight) {
insertNodeWidth = insertHeight;
insertNodeHeight = insertWidth;
}
this.expandRoot((temp.rect.width | 0) + insertNodeWidth,Math.max(temp.rect.height | 0,insertNodeHeight),true);
dataNode = this.divideNode(this.root.right,insertNodeWidth,insertNodeHeight,true,data,key,rotateRight);
this.expandRoot(addRightWidth,addRightHeight,false,true);
} else {
if(rotateBottom) {
insertNodeWidth = insertHeight;
insertNodeHeight = insertWidth;
}
this.expandRoot(Math.max(temp.rect.width | 0,insertNodeWidth),(temp.rect.height | 0) + insertNodeHeight,false);
dataNode = this.divideNode(this.root.right,insertNodeWidth,insertNodeHeight,true,data,key,rotateBottom);
this.expandRoot(addBottomWidth,addBottomHeight,false,true);
}
return dataNode;
}
return null;
}
,expandRoot: function(newWidth,newHeight,divideHorizontally,decideHowToDivide) {
if(decideHowToDivide == null) {
decideHowToDivide = false;
}
if(newWidth > (this.root.rect.width | 0) || newHeight > (this.root.rect.height | 0)) {
var temp = this.root;
var X = 0;
var Y = 0;
var Width = newWidth;
var Height = newHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.root = new flixel_graphics_atlas_FlxNode(rect,this);
if(decideHowToDivide) {
divideHorizontally = this.needToDivideHorizontally(this.root,temp.rect.width | 0,temp.rect.height | 0);
}
this.divideNode(this.root,temp.rect.width | 0,temp.rect.height | 0,divideHorizontally);
this.root.left.left = temp;
}
}
,expandBitmapData: function() {
if(this.bitmapData != null && this.bitmapData.width == (this.root.rect.width | 0) && this.bitmapData.height == (this.root.rect.height | 0)) {
return;
}
var newBitmapData = new openfl_display_BitmapData(this.root.rect.width | 0,this.root.rect.height | 0,true,0);
if(this.bitmapData != null) {
flixel_graphics_atlas_FlxAtlas.point.setTo(0,0);
newBitmapData.copyPixels(this.bitmapData,this.bitmapData.rect,flixel_graphics_atlas_FlxAtlas.point);
}
this.set_bitmapData(flixel_util_FlxDestroyUtil.dispose(this.bitmapData));
this.set_bitmapData(newBitmapData);
}
,getNextPowerOfTwo: function(number) {
var n = number | 0;
if(n > 0 && (n & n - 1) == 0) {
return n;
}
var result = 1;
while(result < n) result <<= 1;
return result;
}
,addNodeWithSpacesAndBorders: function(Graphic,Key,tileSize,tileSpacing,tileBorder,region) {
var key = flixel_system_FlxAssets.resolveKey(Graphic,Key);
if(key == null) {
return null;
}
key = flixel_FlxG.bitmap.getKeyWithSpacesAndBorders(key,tileSize,tileSpacing,tileBorder,region);
if(this.hasNodeWithName(key)) {
return this.nodes.h[key].getTileFrames(tileSize,tileSpacing,tileBorder);
}
var data = flixel_system_FlxAssets.resolveBitmapData(Graphic);
if(data == null) {
return null;
}
var nodeData = flixel_util_FlxBitmapDataUtil.addSpacesAndBorders(data,tileSize,tileSpacing,tileBorder,region);
var node = this.addNode(nodeData,key);
if(node == null) {
return null;
}
if(tileBorder != null) {
var X = 2 * tileBorder.x;
var Y = 2 * tileBorder.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = tileSize;
_g.set_x(_g.x + X);
var _g = tileSize;
_g.set_y(_g.y + Y);
}
return node.getTileFrames(tileSize,tileSpacing,tileBorder);
}
,getAtlasFrames: function() {
var graph = this.get_graphic();
var atlasFrames = graph.get_atlasFrames();
if(graph.get_atlasFrames() == null) {
atlasFrames = new flixel_graphics_frames_FlxAtlasFrames(graph);
}
var node = haxe_ds_StringMap.valueIterator(this.nodes.h);
while(node.hasNext()) {
var node1 = node.next();
this.addNodeToAtlasFrames(node1);
}
return atlasFrames;
}
,addNodeToAtlasFrames: function(node) {
if(this._graphic == null || this._graphic.get_atlasFrames() == null || node == null) {
return;
}
var atlasFrames = this._graphic.get_atlasFrames();
if(node.filled && !Object.prototype.hasOwnProperty.call(atlasFrames.framesHash.h,node.key)) {
var X = node.rect.x | 0;
var Y = node.rect.y | 0;
var Width = (node.rect.width | 0) - this.border;
var Height = (node.rect.height | 0) - this.border;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
var frame = rect;
var sourceSize;
if(node.rotated) {
var X = (node.rect.height | 0) - this.border;
var Y = (node.rect.width | 0) - this.border;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
sourceSize = point;
} else {
var X = (node.rect.width | 0) - this.border;
var Y = (node.rect.height | 0) - this.border;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
sourceSize = point;
}
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var offset = point;
var angle = node.rotated ? -90 : 0;
atlasFrames.addAtlasFrame(frame,sourceSize,offset,node.key,angle);
}
}
,hasNodeWithName: function(nodeName) {
return Object.prototype.hasOwnProperty.call(this.nodes.h,nodeName);
}
,getNode: function(key) {
return this.nodes.h[key];
}
,addNodes: function(bitmaps,keys) {
var numKeys = keys.length;
var numBitmaps = bitmaps.length;
if(numBitmaps != numKeys) {
return null;
}
this._tempStorage = [];
var _g = 0;
var _g1 = numBitmaps;
while(_g < _g1) {
var i = _g++;
this._tempStorage.push({ bmd : bitmaps[i], keyStr : keys[i]});
}
this.addFromAtlasObjects(this._tempStorage);
return this;
}
,addFromAtlasObjects: function(objects) {
objects.sort($bind(this,this.bitmapSorter));
var numBitmaps = objects.length;
var _g = 0;
var _g1 = numBitmaps;
while(_g < _g1) {
var i = _g++;
this.addNode(objects[i].bmd,objects[i].keyStr);
}
this._tempStorage = null;
}
,bitmapSorter: function(obj1,obj2) {
if(this.allowRotation) {
var area1 = obj1.bmd.width * obj1.bmd.height;
var area2 = obj2.bmd.width * obj2.bmd.height;
return area2 - area1;
}
if(obj2.bmd.width == obj1.bmd.width) {
return obj2.bmd.height - obj1.bmd.height;
}
return obj2.bmd.width - obj1.bmd.width;
}
,createQueue: function() {
this._tempStorage = [];
return this;
}
,addToQueue: function(data,key) {
if(this._tempStorage == null) {
this._tempStorage = [];
}
this._tempStorage.push({ bmd : data, keyStr : key});
return this;
}
,generateFromQueue: function() {
if(this._tempStorage != null) {
this.addFromAtlasObjects(this._tempStorage);
}
return this;
}
,onClear: function(_) {
if(!this.persist || this._graphic != null && this._graphic.get_useCount() <= 0) {
this.destroy();
}
}
,destroy: function() {
this._tempStorage = null;
this.deleteSubtree(this.root);
this.root = null;
flixel_FlxG.bitmap.removeByKey(this.name);
this.set_bitmapData(null);
this.nodes = null;
this._graphic = null;
flixel_FlxG.signals.preStateCreate.remove($bind(this,this.onClear));
}
,clear: function() {
this.deleteSubtree(this.root);
this.initRoot();
flixel_FlxG.bitmap.removeByKey(this.name);
this.set_bitmapData(null);
this.nodes = new haxe_ds_StringMap();
this._graphic = null;
}
,getLibGdxData: function() {
var data = "\n";
data += this.name + "\n";
data += "format: RGBA8888\n";
data += "filter: Linear,Linear\n";
data += "repeat: none\n";
var node = haxe_ds_StringMap.valueIterator(this.nodes.h);
while(node.hasNext()) {
var node1 = node.next();
data += node1.key + "\n";
data += " rotate: " + (node1.rotated == null ? "null" : "" + node1.rotated) + "\n";
data += " xy: " + (node1.rect.x | 0) + ", " + (node1.rect.y | 0) + "\n";
if(this.allowRotation) {
data += "size: " + (node1.rect.height | 0) + ", " + (node1.rect.width | 0) + "\n";
data += "orig: " + (node1.rect.height | 0) + ", " + (node1.rect.width | 0) + "\n";
} else {
data += "size: " + (node1.rect.width | 0) + ", " + (node1.rect.height | 0) + "\n";
data += "orig: " + (node1.rect.width | 0) + ", " + (node1.rect.height | 0) + "\n";
}
data += " offset: 0, 0\n";
data += " index: -1\n";
}
return data;
}
,deleteSubtree: function(node) {
if(node != null) {
if(node.left != null) {
this.deleteSubtree(node.left);
}
if(node.right != null) {
this.deleteSubtree(node.right);
}
node.key = null;
node.left = null;
node.right = null;
node.rect = null;
node.atlas = null;
}
}
,findNodeToInsert: function(insertWidth,insertHeight) {
var stack = [];
var current = this.root;
var emptyNodes = [];
var canPlaceRight = false;
var canPlaceLeft = false;
var looping = true;
var result = null;
var minArea = this.maxWidth * this.maxHeight + 1;
var nodeArea;
while(looping) {
if(!current.filled && current.left == null && current.right == null && (current.rect.width >= insertWidth && current.rect.height >= insertHeight)) {
nodeArea = (current.rect.width | 0) * (current.rect.height | 0);
if(nodeArea < minArea) {
minArea = nodeArea;
result = current;
}
}
if(current.right != null) {
var _this = current.right;
canPlaceRight = _this.rect.width >= insertWidth && _this.rect.height >= insertHeight;
} else {
canPlaceRight = false;
}
if(current.left != null) {
var _this1 = current.left;
canPlaceLeft = _this1.rect.width >= insertWidth && _this1.rect.height >= insertHeight;
} else {
canPlaceLeft = false;
}
if(canPlaceRight && canPlaceLeft) {
stack.push(current.right);
current = current.left;
} else if(canPlaceLeft) {
current = current.left;
} else if(canPlaceRight) {
current = current.right;
} else if(stack.length > 0) {
current = stack.pop();
} else {
looping = false;
}
}
return result;
}
,set_bitmapData: function(value) {
if(value != null && this._graphic != null) {
this._graphic.set_bitmap(value);
}
return this.bitmapData = value;
}
,get_graphic: function() {
if(this._graphic != null) {
return this._graphic;
}
this._graphic = flixel_FlxG.bitmap.add(this.bitmapData,false,this.name);
this._graphic.persist = this.persist;
return this._graphic;
}
,set_persist: function(value) {
if(this._graphic != null) {
this._graphic.persist = value;
}
return this.persist = value;
}
,set_minWidth: function(value) {
if(value <= this.maxWidth) {
this.minWidth = value;
if(value > this.get_width()) {
this.set_width(value);
}
}
return this.minWidth;
}
,set_minHeight: function(value) {
if(value <= this.maxHeight) {
this.minHeight = value;
if(value > this.get_height()) {
this.set_height(value);
}
}
return this.minHeight;
}
,get_width: function() {
if(this.root != null) {
return this.root.rect.width | 0;
}
return 0;
}
,set_width: function(value) {
if(value > this.get_width()) {
if(this.powerOfTwo) {
value = this.getNextPowerOfTwo(value);
}
if(value <= this.maxWidth) {
if(this.root != null && (this.root.rect.width | 0) < value) {
this.expandRoot(value,this.root.rect.height | 0,this.needToDivideHorizontally(this.root,this.root.rect.width | 0,this.root.rect.height | 0));
}
}
}
return value;
}
,get_height: function() {
if(this.root != null) {
return this.root.rect.height | 0;
}
return 0;
}
,set_height: function(value) {
if(value > this.get_height()) {
if(this.powerOfTwo) {
value = this.getNextPowerOfTwo(value);
}
if(value <= this.maxHeight) {
if(this.root != null && (this.root.rect.height | 0) < value) {
this.expandRoot(this.root.rect.width | 0,value,this.needToDivideHorizontally(this.root,this.root.rect.width | 0,this.root.rect.height | 0));
}
}
}
return value;
}
,set_maxWidth: function(value) {
if(value >= this.minWidth && (this.root == null || value >= this.get_width())) {
this.maxWidth = value;
}
return this.maxWidth;
}
,set_maxHeight: function(value) {
if(value >= this.minHeight && (this.root == null || value >= this.get_height())) {
this.maxHeight = value;
}
return this.maxHeight;
}
,set_powerOfTwo: function(value) {
if(value != this.powerOfTwo && value && this.root != null) {
var nextWidth = this.getNextPowerOfTwo(this.root.rect.width | 0);
var nextHeight = this.getNextPowerOfTwo(this.root.rect.height | 0);
if(nextWidth != (this.root.rect.width | 0) || nextHeight != (this.root.rect.height | 0)) {
if(this.maxWidth > 0 && nextWidth > this.maxWidth || this.maxHeight > 0 && nextHeight > this.maxHeight) {
return false;
}
var temp = this.root;
var X = 0;
var Y = 0;
var Width = nextWidth;
var Height = nextHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
this.root = new flixel_graphics_atlas_FlxNode(rect,this);
if(temp.left != null) {
this.divideNode(this.root,temp.rect.width | 0,temp.rect.height | 0,this.needToDivideHorizontally(this.root,temp.rect.width | 0,temp.rect.height | 0));
this.root.left.left = temp;
}
}
}
return this.powerOfTwo = value;
}
,__class__: flixel_graphics_atlas_FlxAtlas
,__properties__: {set_powerOfTwo:"set_powerOfTwo",set_maxHeight:"set_maxHeight",set_maxWidth:"set_maxWidth",set_minHeight:"set_minHeight",set_minWidth:"set_minWidth",set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",set_persist:"set_persist",get_graphic:"get_graphic",set_bitmapData:"set_bitmapData"}
};
var flixel_graphics_atlas_FlxNode = function(rect,atlas,filled,key,rotated) {
if(rotated == null) {
rotated = false;
}
if(key == null) {
key = "";
}
if(filled == null) {
filled = false;
}
this.filled = filled;
this.left = null;
this.right = null;
this.rect = rect;
this.key = key;
this.atlas = atlas;
this.rotated = rotated;
};
$hxClasses["flixel.graphics.atlas.FlxNode"] = flixel_graphics_atlas_FlxNode;
flixel_graphics_atlas_FlxNode.__name__ = "flixel.graphics.atlas.FlxNode";
flixel_graphics_atlas_FlxNode.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_graphics_atlas_FlxNode.prototype = {
left: null
,right: null
,rect: null
,key: null
,filled: null
,atlas: null
,rotated: null
,destroy: function() {
this.key = null;
this.left = null;
this.right = null;
this.rect = null;
this.atlas = null;
}
,canPlace: function(width,height) {
if(this.rect.width >= width) {
return this.rect.height >= height;
} else {
return false;
}
}
,getTileFrames: function(tileSize,tileSpacing,tileBorder) {
flixel_FlxG.bitmap.add(this.atlas.bitmapData,false,this.atlas.name);
var frame = this.atlas.getAtlasFrames().framesHash.h[this.key];
if(frame != null) {
var tileFrames = flixel_graphics_frames_FlxTileFrames.fromFrame(frame,tileSize,tileSpacing);
if(tileBorder != null) {
tileFrames = tileFrames.addBorder(tileBorder);
}
return tileFrames;
}
return null;
}
,getImageFrame: function() {
flixel_FlxG.bitmap.add(this.atlas.bitmapData,false,this.atlas.name);
var frame = this.atlas.getAtlasFrames().framesHash.h[this.key];
if(frame != null) {
return flixel_graphics_frames_FlxImageFrame.fromFrame(frame);
}
return null;
}
,get_isEmpty: function() {
if(!this.filled && this.left == null) {
return this.right == null;
} else {
return false;
}
}
,get_x: function() {
return this.rect.x | 0;
}
,get_y: function() {
return this.rect.y | 0;
}
,get_width: function() {
return this.rect.width | 0;
}
,set_width: function(value) {
this.rect.width = value;
return value;
}
,get_height: function() {
return this.rect.height | 0;
}
,set_height: function(value) {
this.rect.height = value;
return value;
}
,__class__: flixel_graphics_atlas_FlxNode
,__properties__: {get_isEmpty:"get_isEmpty",set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",get_y:"get_y",get_x:"get_x"}
};
var flixel_graphics_frames_FlxFramesCollection = function(parent,type,border) {
this.parent = parent;
this.type = type;
var tmp;
if(border == null) {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
tmp = point;
} else {
tmp = border;
}
this.border = tmp;
this.frames = [];
this.framesHash = new haxe_ds_StringMap();
if(parent != null) {
parent.addFrameCollection(this);
}
};
$hxClasses["flixel.graphics.frames.FlxFramesCollection"] = flixel_graphics_frames_FlxFramesCollection;
flixel_graphics_frames_FlxFramesCollection.__name__ = "flixel.graphics.frames.FlxFramesCollection";
flixel_graphics_frames_FlxFramesCollection.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_graphics_frames_FlxFramesCollection.prototype = {
frames: null
,framesHash: null
,parent: null
,type: null
,border: null
,getByName: function(name) {
return this.framesHash.h[name];
}
,getByIndex: function(index) {
return this.frames[index];
}
,getIndexByName: function(name) {
var _g = 0;
var _g1 = this.frames.length;
while(_g < _g1) {
var i = _g++;
if(this.frames[i].name == name) {
return i;
}
}
return -1;
}
,getFrameIndex: function(frame) {
return this.frames.indexOf(frame);
}
,destroy: function() {
this.frames = flixel_util_FlxDestroyUtil.destroyArray(this.frames);
this.border = flixel_util_FlxDestroyUtil.put(this.border);
this.framesHash = null;
this.parent = null;
this.type = null;
}
,addEmptyFrame: function(size) {
var frame = new flixel_graphics_frames_FlxFrame(this.parent);
frame.type = 2;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
frame.set_frame(rect);
frame.sourceSize.set(size.width,size.height);
this.frames.push(frame);
return frame;
}
,addSpriteSheetFrame: function(region) {
var frame = new flixel_graphics_frames_FlxFrame(this.parent);
frame.set_frame(this.checkFrame(region));
frame.sourceSize.set(region.width,region.height);
frame.offset.set(0,0);
return this.pushFrame(frame);
}
,addAtlasFrame: function(frame,sourceSize,offset,name,angle,flipX,flipY) {
if(flipY == null) {
flipY = false;
}
if(flipX == null) {
flipX = false;
}
if(angle == null) {
angle = 0;
}
if(name != null && Object.prototype.hasOwnProperty.call(this.framesHash.h,name)) {
return this.framesHash.h[name];
}
var texFrame = new flixel_graphics_frames_FlxFrame(this.parent,angle,flipX,flipY);
texFrame.name = name;
texFrame.sourceSize.set(sourceSize.x,sourceSize.y);
texFrame.offset.set(offset.x,offset.y);
texFrame.set_frame(this.checkFrame(frame,name));
sourceSize = flixel_util_FlxDestroyUtil.put(sourceSize);
offset = flixel_util_FlxDestroyUtil.put(offset);
return this.pushFrame(texFrame);
}
,checkFrame: function(frame,name) {
var Value = frame.x;
var Max = this.parent.width;
var lowerBound = Value < 0 ? 0 : Value;
var x = Max != null && lowerBound > Max ? Max : lowerBound;
var Value = frame.y;
var Max = this.parent.height;
var lowerBound = Value < 0 ? 0 : Value;
var y = Max != null && lowerBound > Max ? Max : lowerBound;
var Value = frame.x + frame.width;
var Max = this.parent.width;
var lowerBound = Value < 0 ? 0 : Value;
var r = Max != null && lowerBound > Max ? Max : lowerBound;
var Value = frame.y + frame.height;
var Max = this.parent.height;
var lowerBound = Value < 0 ? 0 : Value;
var b = Max != null && lowerBound > Max ? Max : lowerBound;
var X = x;
var Y = y;
var Width = r - x;
var Height = b - y;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
frame.x = X;
frame.y = Y;
frame.width = Width;
frame.height = Height;
var tmp = frame.width <= 0 || frame.height <= 0;
return frame;
}
,pushFrame: function(frameObj) {
var name = frameObj.name;
if(name != null && Object.prototype.hasOwnProperty.call(this.framesHash.h,name)) {
return this.framesHash.h[name];
}
this.frames.push(frameObj);
frameObj.cacheFrameMatrix();
if(name != null) {
this.framesHash.h[name] = frameObj;
}
return frameObj;
}
,addBorder: function(border) {
throw haxe_Exception.thrown("To be overriden in subclasses");
}
,toString: function() {
var value = this.frames;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "frames";
_this.value = value;
var value = this.type;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "type";
_this1.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1]);
}
,get_numFrames: function() {
return this.frames.length;
}
,__class__: flixel_graphics_frames_FlxFramesCollection
,__properties__: {get_numFrames:"get_numFrames"}
};
var flixel_graphics_frames_FlxAtlasFrames = function(parent,border) {
flixel_graphics_frames_FlxFramesCollection.call(this,parent,flixel_graphics_frames_FlxFrameCollectionType.ATLAS,border);
};
$hxClasses["flixel.graphics.frames.FlxAtlasFrames"] = flixel_graphics_frames_FlxAtlasFrames;
flixel_graphics_frames_FlxAtlasFrames.__name__ = "flixel.graphics.frames.FlxAtlasFrames";
flixel_graphics_frames_FlxAtlasFrames.fromTexturePackerJson = function(Source,Description) {
var graphic = flixel_FlxG.bitmap.add(Source,false);
if(graphic == null) {
return null;
}
var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic);
if(frames != null) {
return frames;
}
if(graphic == null || Description == null) {
return null;
}
frames = new flixel_graphics_frames_FlxAtlasFrames(graphic);
var data;
if(typeof(Description) == "string") {
var json = Description;
if(openfl_utils_Assets.exists(json)) {
json = openfl_utils_Assets.getText(json);
}
data = JSON.parse(json);
} else {
data = Description;
}
if(((data.frames) instanceof Array)) {
var _g = 0;
var _g1 = Lambda.array(data.frames);
while(_g < _g1.length) {
var frame = _g1[_g];
++_g;
flixel_graphics_frames_FlxAtlasFrames.texturePackerHelper(frame.filename,frame,frames);
}
} else {
var _g = 0;
var _g1 = Reflect.fields(data.frames);
while(_g < _g1.length) {
var frameName = _g1[_g];
++_g;
flixel_graphics_frames_FlxAtlasFrames.texturePackerHelper(frameName,Reflect.field(data.frames,frameName),frames);
}
}
return frames;
};
flixel_graphics_frames_FlxAtlasFrames.texturePackerHelper = function(FrameName,FrameData,Frames) {
var rotated = FrameData.rotated;
var name = FrameName;
var X = FrameData.sourceSize.w;
var Y = FrameData.sourceSize.h;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var sourceSize = point;
var X = FrameData.spriteSourceSize.x;
var Y = FrameData.spriteSourceSize.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var offset = point;
var angle = 0;
var frameRect = null;
if(rotated) {
var X = FrameData.frame.x;
var Y = FrameData.frame.y;
var Width = FrameData.frame.h;
var Height = FrameData.frame.w;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
frameRect = rect;
angle = -90;
} else {
var X = FrameData.frame.x;
var Y = FrameData.frame.y;
var Width = FrameData.frame.w;
var Height = FrameData.frame.h;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
frameRect = rect;
}
Frames.addAtlasFrame(frameRect,sourceSize,offset,name,angle);
};
flixel_graphics_frames_FlxAtlasFrames.fromLibGdx = function(Source,Description) {
var graphic = flixel_FlxG.bitmap.add(Source);
if(graphic == null) {
return null;
}
var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic);
if(frames != null) {
return frames;
}
if(graphic == null || Description == null) {
return null;
}
frames = new flixel_graphics_frames_FlxAtlasFrames(graphic);
if(openfl_utils_Assets.exists(Description)) {
Description = openfl_utils_Assets.getText(Description);
}
var pack = StringTools.trim(Description);
var lines = pack.split("\n");
var repeatLine = lines[3].indexOf("repeat:") > -1 ? 3 : 4;
lines.splice(0,repeatLine + 1);
var numElementsPerImage = 7;
var numImages = lines.length / numElementsPerImage | 0;
var size = [];
var _g = 0;
var _g1 = numImages;
while(_g < _g1) {
var i = _g++;
var curIndex = i * numElementsPerImage;
var name = lines[curIndex++];
var rotated = lines[curIndex++].indexOf("true") >= 0;
var angle = 0;
var tempString = lines[curIndex++];
var size1 = flixel_graphics_frames_FlxAtlasFrames.getDimensions(tempString,size);
var imageX = size1[0];
var imageY = size1[1];
tempString = lines[curIndex++];
size1 = flixel_graphics_frames_FlxAtlasFrames.getDimensions(tempString,size1);
var imageWidth = size1[0];
var imageHeight = size1[1];
var rect = null;
if(rotated) {
var X = imageX;
var Y = imageY;
var Width = imageHeight;
var Height = imageWidth;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect1 = _this;
rect1._inPool = false;
rect = rect1;
angle = 90;
} else {
var X2 = imageX;
var Y2 = imageY;
var Width2 = imageWidth;
var Height2 = imageHeight;
if(Height2 == null) {
Height2 = 0;
}
if(Width2 == null) {
Width2 = 0;
}
if(Y2 == null) {
Y2 = 0;
}
if(X2 == null) {
X2 = 0;
}
var _this1 = flixel_math_FlxRect._pool.get();
var X3 = X2;
var Y3 = Y2;
var Width3 = Width2;
var Height3 = Height2;
if(Height3 == null) {
Height3 = 0;
}
if(Width3 == null) {
Width3 = 0;
}
if(Y3 == null) {
Y3 = 0;
}
if(X3 == null) {
X3 = 0;
}
_this1.x = X3;
_this1.y = Y3;
_this1.width = Width3;
_this1.height = Height3;
var rect2 = _this1;
rect2._inPool = false;
rect = rect2;
}
tempString = lines[curIndex++];
size1 = flixel_graphics_frames_FlxAtlasFrames.getDimensions(tempString,size1);
var X4 = size1[0];
var Y4 = size1[1];
if(Y4 == null) {
Y4 = 0;
}
if(X4 == null) {
X4 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X4,Y4);
point._inPool = false;
var sourceSize = point;
tempString = lines[curIndex++];
size1 = flixel_graphics_frames_FlxAtlasFrames.getDimensions(tempString,size1);
var X5 = size1[0];
var Y5 = sourceSize.y - size1[1] - imageHeight;
if(Y5 == null) {
Y5 = 0;
}
if(X5 == null) {
X5 = 0;
}
var point1 = flixel_math_FlxPoint._pool.get().set(X5,Y5);
point1._inPool = false;
var offset = point1;
frames.addAtlasFrame(rect,sourceSize,offset,name,angle);
}
return frames;
};
flixel_graphics_frames_FlxAtlasFrames.getDimensions = function(line,size) {
var colonPosition = line.indexOf(":");
var comaPosition = line.indexOf(",");
size[0] = Std.parseInt(line.substring(colonPosition + 1,comaPosition));
size[1] = Std.parseInt(line.substring(comaPosition + 1,line.length));
return size;
};
flixel_graphics_frames_FlxAtlasFrames.fromSparrow = function(Source,Description) {
var graphic = flixel_FlxG.bitmap.add(Source);
if(graphic == null) {
return null;
}
var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic);
if(frames != null) {
return frames;
}
if(graphic == null || Description == null) {
return null;
}
frames = new flixel_graphics_frames_FlxAtlasFrames(graphic);
if(openfl_utils_Assets.exists(Description)) {
Description = openfl_utils_Assets.getText(Description);
}
var x = Xml.parse(Description).firstElement();
if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType)));
}
var this1 = x;
var data = this1;
var _g = 0;
var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"SubTexture");
while(_g < _g1.length) {
var texture = _g1[_g];
++_g;
var name = haxe_xml__$Access_AttribAccess.resolve(texture,"name");
var trimmed = haxe_xml__$Access_HasAttribAccess.resolve(texture,"frameX");
var rotated = haxe_xml__$Access_HasAttribAccess.resolve(texture,"rotated") && haxe_xml__$Access_AttribAccess.resolve(texture,"rotated") == "true";
var flipX = haxe_xml__$Access_HasAttribAccess.resolve(texture,"flipX") && haxe_xml__$Access_AttribAccess.resolve(texture,"flipX") == "true";
var flipY = haxe_xml__$Access_HasAttribAccess.resolve(texture,"flipY") && haxe_xml__$Access_AttribAccess.resolve(texture,"flipY") == "true";
var X = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"x"));
var Y = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"y"));
var Width = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"width"));
var Height = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"height"));
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
var rect1 = rect;
var size = trimmed ? new openfl_geom_Rectangle(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameX")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameY")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameWidth")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameHeight"))) : new openfl_geom_Rectangle(0,0,rect1.width,rect1.height);
var angle = rotated ? -90 : 0;
var X2 = -size.get_left();
var Y2 = -size.get_top();
if(Y2 == null) {
Y2 = 0;
}
if(X2 == null) {
X2 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X2,Y2);
point._inPool = false;
var offset = point;
var X3 = size.width;
var Y3 = size.height;
if(Y3 == null) {
Y3 = 0;
}
if(X3 == null) {
X3 = 0;
}
var point1 = flixel_math_FlxPoint._pool.get().set(X3,Y3);
point1._inPool = false;
var sourceSize = point1;
if(rotated && !trimmed) {
sourceSize.set(size.height,size.width);
}
frames.addAtlasFrame(rect1,sourceSize,offset,name,angle,flipX,flipY);
}
return frames;
};
flixel_graphics_frames_FlxAtlasFrames.fromTexturePackerXml = function(Source,Description) {
var graphic = flixel_FlxG.bitmap.add(Source,false);
if(graphic == null) {
return null;
}
var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic);
if(frames != null) {
return frames;
}
if(graphic == null || Description == null) {
return null;
}
frames = new flixel_graphics_frames_FlxAtlasFrames(graphic);
if(openfl_utils_Assets.exists(Description)) {
Description = openfl_utils_Assets.getText(Description);
}
var xml = Xml.parse(Description);
var sprite = xml.firstElement().elements();
while(sprite.hasNext()) {
var sprite1 = sprite.next();
var trimmed = sprite1.exists("oX") || sprite1.exists("oY");
var rotated = sprite1.exists("r") && sprite1.get("r") == "y";
var angle = rotated ? -90 : 0;
var name = sprite1.get("n");
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var offset = point;
var X1 = Std.parseInt(sprite1.get("x"));
var Y1 = Std.parseInt(sprite1.get("y"));
var Width = Std.parseInt(sprite1.get("w"));
var Height = Std.parseInt(sprite1.get("h"));
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X2 = X1;
var Y2 = Y1;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y2 == null) {
Y2 = 0;
}
if(X2 == null) {
X2 = 0;
}
_this.x = X2;
_this.y = Y2;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
var rect1 = rect;
var X3 = rect1.width;
var Y3 = rect1.height;
if(Y3 == null) {
Y3 = 0;
}
if(X3 == null) {
X3 = 0;
}
var point1 = flixel_math_FlxPoint._pool.get().set(X3,Y3);
point1._inPool = false;
var sourceSize = point1;
if(trimmed) {
offset.set(Std.parseInt(sprite1.get("oX")),Std.parseInt(sprite1.get("oY")));
sourceSize.set(Std.parseInt(sprite1.get("oW")),Std.parseInt(sprite1.get("oH")));
}
frames.addAtlasFrame(rect1,sourceSize,offset,name,angle);
}
return frames;
};
flixel_graphics_frames_FlxAtlasFrames.fromSpriteSheetPacker = function(Source,Description) {
var graphic = flixel_FlxG.bitmap.add(Source);
if(graphic == null) {
return null;
}
var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic);
if(frames != null) {
return frames;
}
if(graphic == null || Description == null) {
return null;
}
frames = new flixel_graphics_frames_FlxAtlasFrames(graphic);
if(openfl_utils_Assets.exists(Description)) {
Description = openfl_utils_Assets.getText(Description);
}
var pack = StringTools.trim(Description);
var lines = pack.split("\n");
var _g = 0;
var _g1 = lines.length;
while(_g < _g1) {
var i = _g++;
var currImageData = lines[i].split("=");
var name = StringTools.trim(currImageData[0]);
var currImageRegion = StringTools.trim(currImageData[1]).split(" ");
var X = Std.parseInt(currImageRegion[0]);
var Y = Std.parseInt(currImageRegion[1]);
var Width = Std.parseInt(currImageRegion[2]);
var Height = Std.parseInt(currImageRegion[3]);
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
var rect1 = rect;
var X2 = rect1.width;
var Y2 = rect1.height;
if(Y2 == null) {
Y2 = 0;
}
if(X2 == null) {
X2 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X2,Y2);
point._inPool = false;
var sourceSize = point;
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
var offset = point1;
frames.addAtlasFrame(rect1,sourceSize,offset,name,0);
}
return frames;
};
flixel_graphics_frames_FlxAtlasFrames.findFrame = function(graphic,border) {
if(border == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
border = point1;
}
var type = flixel_graphics_frames_FlxFrameCollectionType.ATLAS;
var collections = graphic.frameCollections.get(type);
if(collections == null) {
collections = [];
graphic.frameCollections.set(type,collections);
}
var atlasFrames = collections;
var _g = 0;
while(_g < atlasFrames.length) {
var atlas = atlasFrames[_g];
++_g;
var _this = atlas.border;
var result = Math.abs(_this.x - border.x) <= 0.0000001 && Math.abs(_this.y - border.y) <= 0.0000001;
if(border._weak) {
border.put();
}
if(result) {
return atlas;
}
}
return null;
};
flixel_graphics_frames_FlxAtlasFrames.__super__ = flixel_graphics_frames_FlxFramesCollection;
flixel_graphics_frames_FlxAtlasFrames.prototype = $extend(flixel_graphics_frames_FlxFramesCollection.prototype,{
addBorder: function(border) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
var resultBorder = point1.addPoint(this.border).addPoint(border);
var atlasFrames = flixel_graphics_frames_FlxAtlasFrames.findFrame(this.parent,resultBorder);
if(atlasFrames != null) {
return atlasFrames;
}
atlasFrames = new flixel_graphics_frames_FlxAtlasFrames(this.parent,resultBorder);
var _g = 0;
var _g1 = this.frames;
while(_g < _g1.length) {
var frame = _g1[_g];
++_g;
atlasFrames.pushFrame(frame.setBorderTo(border));
}
return atlasFrames;
}
,__class__: flixel_graphics_frames_FlxAtlasFrames
});
var flixel_graphics_frames_FlxFrame = function(parent,angle,flipX,flipY) {
if(flipY == null) {
flipY = false;
}
if(flipX == null) {
flipX = false;
}
if(angle == null) {
angle = 0;
}
this.matrix = new flixel_math_FlxMatrix();
this.rect = new openfl_geom_Rectangle();
this.point2 = new openfl_geom_Point();
this.point1 = new openfl_geom_Point();
this.parent = parent;
this.angle = angle;
this.flipX = flipX;
this.flipY = flipY;
this.type = 0;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.sourceSize = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.offset = point;
var this1 = new Array(6);
this.blitMatrix = this1;
if(flixel_FlxG.renderTile) {
var this1 = new Array(6);
this.tileMatrix = this1;
}
};
$hxClasses["flixel.graphics.frames.FlxFrame"] = flixel_graphics_frames_FlxFrame;
flixel_graphics_frames_FlxFrame.__name__ = "flixel.graphics.frames.FlxFrame";
flixel_graphics_frames_FlxFrame.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_graphics_frames_FlxFrame.sort = function(frames,prefixLength,postfixLength) {
var prefixLength1 = prefixLength;
var postfixLength1 = postfixLength;
haxe_ds_ArraySort.sort(frames,function(frame1,frame2) {
return flixel_graphics_frames_FlxFrame.sortByName(frame1,frame2,prefixLength1,postfixLength1);
});
};
flixel_graphics_frames_FlxFrame.sortByName = function(frame1,frame2,prefixLength,postfixLength) {
var name1 = frame1.name;
var name2 = frame2.name;
var num1 = Std.parseInt(name1.substring(prefixLength,name1.length - postfixLength));
var num2 = Std.parseInt(name2.substring(prefixLength,name2.length - postfixLength));
if(num1 == null) {
num1 = 0;
}
if(num2 == null) {
num2 = 0;
}
return num1 - num2;
};
flixel_graphics_frames_FlxFrame.prototype = {
point1: null
,point2: null
,rect: null
,matrix: null
,name: null
,frame: null
,uv: null
,parent: null
,angle: null
,flipX: null
,flipY: null
,sourceSize: null
,offset: null
,type: null
,tileMatrix: null
,blitMatrix: null
,cacheFrameMatrix: function() {
var mat = this.matrix;
var blit = true;
if(blit == null) {
blit = true;
}
mat.identity();
if(blit) {
mat.translate(-this.frame.x,-this.frame.y);
}
if(this.angle == 90) {
mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx);
mat.translate(this.frame.height,0);
} else if(this.angle == -90) {
mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx);
mat.translate(0,this.frame.width);
}
mat.translate(this.offset.x,this.offset.y);
this.blitMatrix[0] = this.matrix.a;
this.blitMatrix[1] = this.matrix.b;
this.blitMatrix[2] = this.matrix.c;
this.blitMatrix[3] = this.matrix.d;
this.blitMatrix[4] = this.matrix.tx;
this.blitMatrix[5] = this.matrix.ty;
if(flixel_FlxG.renderTile) {
var mat = this.matrix;
var blit = false;
if(blit == null) {
blit = true;
}
mat.identity();
if(blit) {
mat.translate(-this.frame.x,-this.frame.y);
}
if(this.angle == 90) {
mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx);
mat.translate(this.frame.height,0);
} else if(this.angle == -90) {
mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx);
mat.translate(0,this.frame.width);
}
mat.translate(this.offset.x,this.offset.y);
this.tileMatrix[0] = this.matrix.a;
this.tileMatrix[1] = this.matrix.b;
this.tileMatrix[2] = this.matrix.c;
this.tileMatrix[3] = this.matrix.d;
this.tileMatrix[4] = this.matrix.tx;
this.tileMatrix[5] = this.matrix.ty;
}
}
,prepareBlitMatrix: function(mat,blit) {
if(blit == null) {
blit = true;
}
mat.identity();
if(blit) {
mat.translate(-this.frame.x,-this.frame.y);
}
if(this.angle == 90) {
mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx);
mat.translate(this.frame.height,0);
} else if(this.angle == -90) {
mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx);
mat.translate(0,this.frame.width);
}
mat.translate(this.offset.x,this.offset.y);
return mat;
}
,rotateAndFlip: function(mat,rotation,flipX,flipY) {
if(flipY == null) {
flipY = false;
}
if(flipX == null) {
flipX = false;
}
if(rotation == null) {
rotation = 0;
}
var w = this.sourceSize.x | 0;
var h = this.sourceSize.y | 0;
if(rotation != 0) {
var t = w;
w = h;
h = t;
if(rotation == 90) {
mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx);
mat.translate(this.sourceSize.y,0);
} else if(rotation == -90 || rotation == -90) {
mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx);
mat.translate(0,this.sourceSize.x);
}
}
if(flipX) {
mat.scale(-1,1);
mat.translate(w,0);
}
if(flipY) {
mat.scale(1,-1);
mat.translate(0,h);
}
return mat;
}
,prepareTransformedBlitMatrix: function(mat,rotation,flipX,flipY) {
if(flipY == null) {
flipY = false;
}
if(flipX == null) {
flipX = false;
}
if(rotation == null) {
rotation = 0;
}
mat.a = this.blitMatrix[0];
mat.b = this.blitMatrix[1];
mat.c = this.blitMatrix[2];
mat.d = this.blitMatrix[3];
mat.tx = this.blitMatrix[4];
mat.ty = this.blitMatrix[5];
var rotation1 = rotation;
var flipX1 = flipX;
var flipY1 = flipY;
if(flipY1 == null) {
flipY1 = false;
}
if(flipX1 == null) {
flipX1 = false;
}
if(rotation1 == null) {
rotation1 = 0;
}
var w = this.sourceSize.x | 0;
var h = this.sourceSize.y | 0;
if(rotation1 != 0) {
var t = w;
w = h;
h = t;
if(rotation1 == 90) {
mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx);
mat.translate(this.sourceSize.y,0);
} else if(rotation1 == -90 || rotation1 == -90) {
mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx);
mat.translate(0,this.sourceSize.x);
}
}
if(flipX1) {
mat.scale(-1,1);
mat.translate(w,0);
}
if(flipY1) {
mat.scale(1,-1);
mat.translate(0,h);
}
return mat;
}
,prepareMatrix: function(mat,rotation,flipX,flipY) {
if(flipY == null) {
flipY = false;
}
if(flipX == null) {
flipX = false;
}
if(rotation == null) {
rotation = 0;
}
if(flixel_FlxG.renderBlit) {
mat.identity();
return mat;
}
mat.a = this.tileMatrix[0];
mat.b = this.tileMatrix[1];
mat.c = this.tileMatrix[2];
mat.d = this.tileMatrix[3];
mat.tx = this.tileMatrix[4];
mat.ty = this.tileMatrix[5];
var doFlipX = flipX != this.flipX;
var doFlipY = flipY != this.flipY;
if(rotation == 0 && !doFlipX && !doFlipY) {
return mat;
}
var rotation1 = rotation;
var flipX = doFlipX;
var flipY = doFlipY;
if(flipY == null) {
flipY = false;
}
if(flipX == null) {
flipX = false;
}
if(rotation1 == null) {
rotation1 = 0;
}
var w = this.sourceSize.x | 0;
var h = this.sourceSize.y | 0;
if(rotation1 != 0) {
var t = w;
w = h;
h = t;
if(rotation1 == 90) {
mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx);
mat.translate(this.sourceSize.y,0);
} else if(rotation1 == -90 || rotation1 == -90) {
mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx);
mat.translate(0,this.sourceSize.x);
}
}
if(flipX) {
mat.scale(-1,1);
mat.translate(w,0);
}
if(flipY) {
mat.scale(1,-1);
mat.translate(0,h);
}
return mat;
}
,fillBlitMatrix: function(mat) {
mat.a = this.blitMatrix[0];
mat.b = this.blitMatrix[1];
mat.c = this.blitMatrix[2];
mat.d = this.blitMatrix[3];
mat.tx = this.blitMatrix[4];
mat.ty = this.blitMatrix[5];
return mat;
}
,paint: function(bmd,point,mergeAlpha,disposeIfNotEqual) {
if(disposeIfNotEqual == null) {
disposeIfNotEqual = false;
}
if(mergeAlpha == null) {
mergeAlpha = false;
}
if(point == null) {
point = this.point1;
point.setTo(0,0);
}
var bmd1 = bmd;
var rotation = 0;
var mergeAlpha1 = mergeAlpha;
var disposeIfNotEqual1 = disposeIfNotEqual;
if(disposeIfNotEqual1 == null) {
disposeIfNotEqual1 = false;
}
if(mergeAlpha1 == null) {
mergeAlpha1 = false;
}
if(rotation == null) {
rotation = 0;
}
var w = this.sourceSize.x | 0;
var h = this.sourceSize.y | 0;
if(rotation != 0) {
var t = w;
w = h;
h = t;
}
if(bmd1 != null && disposeIfNotEqual1) {
bmd1 = flixel_util_FlxDestroyUtil.disposeIfNotEqual(bmd1,w,h);
}
if(bmd1 != null && !mergeAlpha1) {
this.rect.setTo(point.x,point.y,w,h);
bmd1.fillRect(this.rect,0);
} else if(bmd1 == null) {
bmd1 = new openfl_display_BitmapData(w,h,true,0);
}
bmd = bmd1;
if(this.type == 2) {
return bmd;
}
if(this.angle == 0) {
var _this = this.offset;
var FlashPoint = this.point2;
if(FlashPoint == null) {
FlashPoint = new openfl_geom_Point();
}
FlashPoint.x = _this.x;
FlashPoint.y = _this.y;
this.point2.x += point.x;
this.point2.y += point.y;
var tmp = this.parent.bitmap;
var _this = this.frame;
var FlashRect = this.rect;
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = _this.x;
FlashRect.y = _this.y;
FlashRect.width = _this.width;
FlashRect.height = _this.height;
bmd.copyPixels(tmp,FlashRect,this.point2,null,null,mergeAlpha);
} else {
var mat = this.matrix;
mat.a = this.blitMatrix[0];
mat.b = this.blitMatrix[1];
mat.c = this.blitMatrix[2];
mat.d = this.blitMatrix[3];
mat.tx = this.blitMatrix[4];
mat.ty = this.blitMatrix[5];
this.matrix.translate(point.x,point.y);
var mat = this.matrix;
var X = this.frame.x;
var Y = this.frame.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p1 = point1;
var _this = this.frame;
var X = _this.x + _this.width;
var _this = this.frame;
var Y = _this.y + _this.height;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p2 = point1;
var x1 = p1.x * mat.a + p1.y * mat.c + mat.tx;
var y1 = p1.x * mat.b + p1.y * mat.d + mat.ty;
p1.set(x1,y1);
var x1 = p2.x * mat.a + p2.y * mat.c + mat.tx;
var y1 = p2.x * mat.b + p2.y * mat.d + mat.ty;
p2.set(x1,y1);
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
var _this = rect;
var minX = Math.min(p1.x,p2.x);
var minY = Math.min(p1.y,p2.y);
var maxX = Math.max(p1.x,p2.x);
var maxY = Math.max(p1.y,p2.y);
if(p1._weak) {
p1.put();
}
if(p2._weak) {
p2.put();
}
var X = minX;
var Y = minY;
var Width = maxX - minX;
var Height = maxY - minY;
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;
var flxRect = _this;
var FlashRect = this.rect;
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = flxRect.x;
FlashRect.y = flxRect.y;
FlashRect.width = flxRect.width;
FlashRect.height = flxRect.height;
if(!flxRect._inPool) {
flxRect._inPool = true;
flxRect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(flxRect);
}
var rect = this.rect;
bmd.draw(this.parent.bitmap,this.matrix,null,null,rect);
}
return bmd;
}
,paintRotatedAndFlipped: function(bmd,point,rotation,flipX,flipY,mergeAlpha,disposeIfNotEqual) {
if(disposeIfNotEqual == null) {
disposeIfNotEqual = false;
}
if(mergeAlpha == null) {
mergeAlpha = false;
}
if(flipY == null) {
flipY = false;
}
if(flipX == null) {
flipX = false;
}
if(rotation == null) {
rotation = 0;
}
if(this.type == 2 && rotation == 0) {
return this.paint(bmd,point,mergeAlpha,disposeIfNotEqual);
}
if(point == null) {
point = this.point2;
point.setTo(0,0);
}
var bmd1 = bmd;
var rotation1 = rotation;
var mergeAlpha1 = mergeAlpha;
var disposeIfNotEqual1 = disposeIfNotEqual;
if(disposeIfNotEqual1 == null) {
disposeIfNotEqual1 = false;
}
if(mergeAlpha1 == null) {
mergeAlpha1 = false;
}
if(rotation1 == null) {
rotation1 = 0;
}
var w = this.sourceSize.x | 0;
var h = this.sourceSize.y | 0;
if(rotation1 != 0) {
var t = w;
w = h;
h = t;
}
if(bmd1 != null && disposeIfNotEqual1) {
bmd1 = flixel_util_FlxDestroyUtil.disposeIfNotEqual(bmd1,w,h);
}
if(bmd1 != null && !mergeAlpha1) {
this.rect.setTo(point.x,point.y,w,h);
bmd1.fillRect(this.rect,0);
} else if(bmd1 == null) {
bmd1 = new openfl_display_BitmapData(w,h,true,0);
}
bmd = bmd1;
if(this.type == 2) {
return bmd;
}
var doFlipX = flipX != this.flipX;
var doFlipY = flipY != this.flipY;
this.prepareTransformedBlitMatrix(this.matrix,rotation,doFlipX,doFlipY);
this.matrix.translate(point.x,point.y);
var mat = this.matrix;
var X = this.frame.x;
var Y = this.frame.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p1 = point1;
var _this = this.frame;
var X = _this.x + _this.width;
var _this = this.frame;
var Y = _this.y + _this.height;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p2 = point1;
var x1 = p1.x * mat.a + p1.y * mat.c + mat.tx;
var y1 = p1.x * mat.b + p1.y * mat.d + mat.ty;
p1.set(x1,y1);
var x1 = p2.x * mat.a + p2.y * mat.c + mat.tx;
var y1 = p2.x * mat.b + p2.y * mat.d + mat.ty;
p2.set(x1,y1);
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
var _this = rect;
var minX = Math.min(p1.x,p2.x);
var minY = Math.min(p1.y,p2.y);
var maxX = Math.max(p1.x,p2.x);
var maxY = Math.max(p1.y,p2.y);
if(p1._weak) {
p1.put();
}
if(p2._weak) {
p2.put();
}
var X = minX;
var Y = minY;
var Width = maxX - minX;
var Height = maxY - minY;
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;
var flxRect = _this;
var FlashRect = this.rect;
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = flxRect.x;
FlashRect.y = flxRect.y;
FlashRect.width = flxRect.width;
FlashRect.height = flxRect.height;
if(!flxRect._inPool) {
flxRect._inPool = true;
flxRect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(flxRect);
}
var rect = this.rect;
bmd.draw(this.parent.bitmap,this.matrix,null,null,rect);
return bmd;
}
,checkInputBitmap: function(bmd,point,rotation,mergeAlpha,disposeIfNotEqual) {
if(disposeIfNotEqual == null) {
disposeIfNotEqual = false;
}
if(mergeAlpha == null) {
mergeAlpha = false;
}
if(rotation == null) {
rotation = 0;
}
var w = this.sourceSize.x | 0;
var h = this.sourceSize.y | 0;
if(rotation != 0) {
var t = w;
w = h;
h = t;
}
if(bmd != null && disposeIfNotEqual) {
bmd = flixel_util_FlxDestroyUtil.disposeIfNotEqual(bmd,w,h);
}
if(bmd != null && !mergeAlpha) {
this.rect.setTo(point.x,point.y,w,h);
bmd.fillRect(this.rect,0);
} else if(bmd == null) {
bmd = new openfl_display_BitmapData(w,h,true,0);
}
return bmd;
}
,getDrawFrameRect: function(mat) {
var X = this.frame.x;
var Y = this.frame.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p1 = point1;
var _this = this.frame;
var X = _this.x + _this.width;
var _this = this.frame;
var Y = _this.y + _this.height;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p2 = point1;
var x1 = p1.x * mat.a + p1.y * mat.c + mat.tx;
var y1 = p1.x * mat.b + p1.y * mat.d + mat.ty;
p1.set(x1,y1);
var x1 = p2.x * mat.a + p2.y * mat.c + mat.tx;
var y1 = p2.x * mat.b + p2.y * mat.d + mat.ty;
p2.set(x1,y1);
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
var _this = rect;
var minX = Math.min(p1.x,p2.x);
var minY = Math.min(p1.y,p2.y);
var maxX = Math.max(p1.x,p2.x);
var maxY = Math.max(p1.y,p2.y);
if(p1._weak) {
p1.put();
}
if(p2._weak) {
p2.put();
}
var X = minX;
var Y = minY;
var Width = maxX - minX;
var Height = maxY - minY;
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;
var flxRect = _this;
var FlashRect = this.rect;
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = flxRect.x;
FlashRect.y = flxRect.y;
FlashRect.width = flxRect.width;
FlashRect.height = flxRect.height;
if(!flxRect._inPool) {
flxRect._inPool = true;
flxRect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(flxRect);
}
return this.rect;
}
,subFrameTo: function(rect,frameToFill) {
if(frameToFill == null) {
frameToFill = new flixel_graphics_frames_FlxFrame(this.parent,this.angle);
} else {
frameToFill.parent = this.parent;
frameToFill.angle = this.angle;
frameToFill.set_frame(flixel_util_FlxDestroyUtil.put(frameToFill.frame));
}
frameToFill.sourceSize.set(rect.width,rect.height);
if(this.type == 2) {
frameToFill.type = 2;
frameToFill.offset.set(0,0);
return frameToFill;
}
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect1 = _this;
rect1._inPool = false;
var _this = rect1;
_this.width = this.frame.width;
_this.height = this.frame.height;
var clippedRect = _this;
if(this.angle != 0) {
clippedRect.width = this.frame.height;
clippedRect.height = this.frame.width;
}
var ox = Math.max(this.offset.x,0);
var oy = Math.max(this.offset.y,0);
rect.x += -ox;
rect.y += -oy;
var frameRect = clippedRect.intersection(rect);
clippedRect = flixel_util_FlxDestroyUtil.put(clippedRect);
rect.x += ox;
rect.y += oy;
if(frameRect.width == 0 || frameRect.height == 0) {
frameToFill.type = 2;
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
frameRect.x = X;
frameRect.y = Y;
frameRect.width = Width;
frameRect.height = Height;
frameToFill.set_frame(frameRect);
frameToFill.offset.set(0,0);
} else {
frameToFill.type = 0;
var _this = frameToFill.offset.set(frameRect.x,frameRect.y);
var X = rect.x;
var Y = rect.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = _this;
_g.set_x(_g.x - X);
var _g = _this;
_g.set_y(_g.y - Y);
_this.addPoint(this.offset);
var X = frameRect.x;
var Y = frameRect.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p1 = point1;
var X = frameRect.x + frameRect.width;
var Y = frameRect.y + frameRect.height;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p2 = point1;
this.matrix.identity();
if(this.angle == -90) {
var _this = this.matrix;
_this.setTo(-_this.b,_this.a,-_this.d,_this.c,-_this.ty,_this.tx);
this.matrix.translate(this.frame.width,0);
} else if(this.angle == 90) {
var _this = this.matrix;
_this.setTo(_this.b,-_this.a,_this.d,-_this.c,_this.ty,-_this.tx);
this.matrix.translate(0,this.frame.height);
}
if(this.angle != 0) {
var matrix = this.matrix;
var x1 = p1.x * matrix.a + p1.y * matrix.c + matrix.tx;
var y1 = p1.x * matrix.b + p1.y * matrix.d + matrix.ty;
p1.set(x1,y1);
var matrix = this.matrix;
var x1 = p2.x * matrix.a + p2.y * matrix.c + matrix.tx;
var y1 = p2.x * matrix.b + p2.y * matrix.d + matrix.ty;
p2.set(x1,y1);
}
var minX = Math.min(p1.x,p2.x);
var minY = Math.min(p1.y,p2.y);
var maxX = Math.max(p1.x,p2.x);
var maxY = Math.max(p1.y,p2.y);
if(p1._weak) {
p1.put();
}
if(p2._weak) {
p2.put();
}
var X = minX;
var Y = minY;
var Width = maxX - minX;
var Height = maxY - minY;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
frameRect.x = X;
frameRect.y = Y;
frameRect.width = Width;
frameRect.height = Height;
frameRect.x += this.frame.x;
frameRect.y += this.frame.y;
frameToFill.set_frame(frameRect);
frameToFill.cacheFrameMatrix();
}
return frameToFill;
}
,setBorderTo: function(border,frameToFill) {
var X = border.x;
var Y = border.y;
var Width = this.sourceSize.x - 2 * border.x;
var Height = this.sourceSize.y - 2 * border.y;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
var rect1 = rect;
frameToFill = this.subFrameTo(rect1,frameToFill);
frameToFill.name = this.name;
rect1 = flixel_util_FlxDestroyUtil.put(rect1);
return frameToFill;
}
,clipTo: function(clip,clippedFrame) {
if(clippedFrame == null) {
clippedFrame = new flixel_graphics_frames_FlxFrame(this.parent,this.angle);
} else {
clippedFrame.parent = this.parent;
clippedFrame.angle = this.angle;
clippedFrame.set_frame(flixel_util_FlxDestroyUtil.put(clippedFrame.frame));
}
var _this = clippedFrame.sourceSize;
var point = this.sourceSize;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
clippedFrame.name = this.name;
if(this.type == 2) {
clippedFrame.type = 2;
clippedFrame.offset.set(0,0);
return clippedFrame;
}
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width = 0;
var Height = 0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width;
_this.height = Height;
var rect = _this;
rect._inPool = false;
var _this = rect;
_this.width = this.frame.width;
_this.height = this.frame.height;
var clippedRect = _this;
if(this.angle != 0) {
clippedRect.width = this.frame.height;
clippedRect.height = this.frame.width;
}
clip.x += -this.offset.x;
clip.y += -this.offset.y;
var frameRect = clippedRect.intersection(clip);
clippedRect = flixel_util_FlxDestroyUtil.put(clippedRect);
if(frameRect.width == 0 || frameRect.height == 0) {
clippedFrame.type = 2;
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
frameRect.x = X;
frameRect.y = Y;
frameRect.width = Width;
frameRect.height = Height;
clippedFrame.set_frame(frameRect);
clippedFrame.offset.set(0,0);
} else {
clippedFrame.type = 0;
clippedFrame.offset.set(frameRect.x,frameRect.y).addPoint(this.offset);
var X = frameRect.x;
var Y = frameRect.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p1 = point1;
var X = frameRect.x + frameRect.width;
var Y = frameRect.y + frameRect.height;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
var p2 = point1;
this.matrix.identity();
if(this.angle == -90) {
var _this = this.matrix;
_this.setTo(-_this.b,_this.a,-_this.d,_this.c,-_this.ty,_this.tx);
this.matrix.translate(this.frame.width,0);
} else if(this.angle == 90) {
var _this = this.matrix;
_this.setTo(_this.b,-_this.a,_this.d,-_this.c,_this.ty,-_this.tx);
this.matrix.translate(0,this.frame.height);
}
if(this.angle != 0) {
var matrix = this.matrix;
var x1 = p1.x * matrix.a + p1.y * matrix.c + matrix.tx;
var y1 = p1.x * matrix.b + p1.y * matrix.d + matrix.ty;
p1.set(x1,y1);
var matrix = this.matrix;
var x1 = p2.x * matrix.a + p2.y * matrix.c + matrix.tx;
var y1 = p2.x * matrix.b + p2.y * matrix.d + matrix.ty;
p2.set(x1,y1);
}
var minX = Math.min(p1.x,p2.x);
var minY = Math.min(p1.y,p2.y);
var maxX = Math.max(p1.x,p2.x);
var maxY = Math.max(p1.y,p2.y);
if(p1._weak) {
p1.put();
}
if(p2._weak) {
p2.put();
}
var X = minX;
var Y = minY;
var Width = maxX - minX;
var Height = maxY - minY;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
frameRect.x = X;
frameRect.y = Y;
frameRect.width = Width;
frameRect.height = Height;
frameRect.x += this.frame.x;
frameRect.y += this.frame.y;
clippedFrame.set_frame(frameRect);
clippedFrame.cacheFrameMatrix();
}
clip.x += this.offset.x;
clip.y += this.offset.y;
return clippedFrame;
}
,copyTo: function(clone) {
if(clone == null) {
clone = new flixel_graphics_frames_FlxFrame(this.parent,this.angle);
} else {
clone.parent = this.parent;
clone.angle = this.angle;
clone.set_frame(flixel_util_FlxDestroyUtil.put(clone.frame));
}
var _this = clone.offset;
var point = this.offset;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
clone.flipX = this.flipX;
clone.flipY = this.flipY;
var _this = clone.sourceSize;
var point = this.sourceSize;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
var _this = rect;
var Rect = this.frame;
_this.x = Rect.x;
_this.y = Rect.y;
_this.width = Rect.width;
_this.height = Rect.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
clone.set_frame(_this);
clone.type = this.type;
clone.name = this.name;
clone.cacheFrameMatrix();
return clone;
}
,destroy: function() {
this.name = null;
this.parent = null;
this.sourceSize = flixel_util_FlxDestroyUtil.put(this.sourceSize);
this.offset = flixel_util_FlxDestroyUtil.put(this.offset);
this.set_frame(flixel_util_FlxDestroyUtil.put(this.frame));
this.uv = flixel_util_FlxDestroyUtil.put(this.uv);
this.blitMatrix = null;
this.tileMatrix = null;
}
,toString: function() {
var value = this.name;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "name";
_this.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this]);
}
,set_frame: function(value) {
if(value != null) {
if(this.uv == null) {
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
this.uv = rect;
}
var _this = this.uv;
var X = value.x / this.parent.width;
var Y = value.y / this.parent.height;
var Width = (value.x + value.width) / this.parent.width;
var Height = (value.y + value.height) / this.parent.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;
}
return this.frame = value;
}
,__class__: flixel_graphics_frames_FlxFrame
,__properties__: {set_frame:"set_frame"}
};
var flixel_graphics_frames_FlxFrameCollectionType = $hxEnums["flixel.graphics.frames.FlxFrameCollectionType"] = { __ename__ : "flixel.graphics.frames.FlxFrameCollectionType", __constructs__ : ["IMAGE","TILES","ATLAS","FONT","USER","FILTER"]
,IMAGE: {_hx_index:0,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr}
,TILES: {_hx_index:1,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr}
,ATLAS: {_hx_index:2,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr}
,FONT: {_hx_index:3,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr}
,USER: ($_=function(type) { return {_hx_index:4,type:type,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr}; },$_.__params__ = ["type"],$_)
,FILTER: {_hx_index:5,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr}
};
var flixel_graphics_frames_FlxImageFrame = function(parent,border) {
flixel_graphics_frames_FlxFramesCollection.call(this,parent,flixel_graphics_frames_FlxFrameCollectionType.IMAGE,border);
};
$hxClasses["flixel.graphics.frames.FlxImageFrame"] = flixel_graphics_frames_FlxImageFrame;
flixel_graphics_frames_FlxImageFrame.__name__ = "flixel.graphics.frames.FlxImageFrame";
flixel_graphics_frames_FlxImageFrame.fromEmptyFrame = function(graphic,frameRect) {
if(graphic == null || frameRect == null) {
return null;
}
var imageFrame = flixel_graphics_frames_FlxImageFrame.findEmptyFrame(graphic,frameRect);
if(imageFrame != null) {
return imageFrame;
}
imageFrame = new flixel_graphics_frames_FlxImageFrame(graphic);
imageFrame.addEmptyFrame(frameRect);
return imageFrame;
};
flixel_graphics_frames_FlxImageFrame.fromFrame = function(source) {
var graphic = source.parent;
var rect = source.frame;
var imageFrame = flixel_graphics_frames_FlxImageFrame.findFrame(graphic,rect);
if(imageFrame != null) {
return imageFrame;
}
imageFrame = new flixel_graphics_frames_FlxImageFrame(graphic);
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect1 = _this;
rect1._inPool = false;
var Rect = rect1;
Rect.x = rect.x;
Rect.y = rect.y;
Rect.width = rect.width;
Rect.height = rect.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
imageFrame.addSpriteSheetFrame(Rect);
return imageFrame;
};
flixel_graphics_frames_FlxImageFrame.fromImage = function(source) {
return flixel_graphics_frames_FlxImageFrame.fromRectangle(source,null);
};
flixel_graphics_frames_FlxImageFrame.fromGraphic = function(graphic,region) {
if(graphic == null) {
return null;
}
var checkRegion = region;
if(checkRegion == null) {
var X = 0;
var Y = 0;
var Width = graphic.width;
var Height = graphic.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X = X1;
var Y = Y1;
var Width = Width1;
var Height = Height1;
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;
var rect = _this;
rect._inPool = false;
var rect1 = rect;
rect1._weak = true;
checkRegion = rect1;
}
var imageFrame = flixel_graphics_frames_FlxImageFrame.findFrame(graphic,checkRegion);
if(imageFrame != null) {
return imageFrame;
}
imageFrame = new flixel_graphics_frames_FlxImageFrame(graphic);
if(region == null) {
var X = 0;
var Y = 0;
var Width = graphic.width;
var Height = graphic.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
region = rect;
} else {
if(region.width == 0) {
region.width = graphic.width - region.x;
}
if(region.height == 0) {
region.height = graphic.height - region.y;
}
}
imageFrame.addSpriteSheetFrame(region);
return imageFrame;
};
flixel_graphics_frames_FlxImageFrame.fromRectangle = function(source,region) {
var graphic = flixel_FlxG.bitmap.add(source,false);
return flixel_graphics_frames_FlxImageFrame.fromGraphic(graphic,region);
};
flixel_graphics_frames_FlxImageFrame.fromBitmapAddSpacesAndBorders = function(source,border,region) {
var graphic = flixel_FlxG.bitmap.add(source,false);
if(graphic == null) {
return null;
}
var key = flixel_FlxG.bitmap.getKeyWithSpacesAndBorders(graphic.key,null,null,border,region);
var result = flixel_FlxG.bitmap._cache.h[key];
if(result == null) {
var bitmap = flixel_util_FlxBitmapDataUtil.addSpacesAndBorders(graphic.bitmap,null,null,border,region);
result = flixel_FlxG.bitmap.add(bitmap,false,key);
}
var imageFrame = flixel_graphics_frames_FlxImageFrame.fromGraphic(graphic);
return imageFrame.addBorder(border);
};
flixel_graphics_frames_FlxImageFrame.fromFrameAddSpacesAndBorders = function(frame,border) {
var bitmap = frame.paint();
return flixel_graphics_frames_FlxImageFrame.fromBitmapAddSpacesAndBorders(bitmap,border);
};
flixel_graphics_frames_FlxImageFrame.findFrame = function(graphic,frameRect,frameBorder) {
if(frameBorder == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
frameBorder = point1;
}
var type = flixel_graphics_frames_FlxFrameCollectionType.IMAGE;
var collections = graphic.frameCollections.get(type);
if(collections == null) {
collections = [];
graphic.frameCollections.set(type,collections);
}
var imageFrames = collections;
var _g = 0;
while(_g < imageFrames.length) {
var imageFrame = imageFrames[_g];
++_g;
var tmp;
var rect = imageFrame.get_frame().frame;
var result = Math.abs(frameRect.x - rect.x) <= 0.0000001 && Math.abs(frameRect.y - rect.y) <= 0.0000001 && Math.abs(frameRect.width - rect.width) <= 0.0000001 && Math.abs(frameRect.height - rect.height) <= 0.0000001;
if(rect._weak) {
if(!rect._inPool) {
rect._inPool = true;
rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(rect);
}
}
if(result) {
var point = imageFrame.border;
var result1 = Math.abs(frameBorder.x - point.x) <= 0.0000001 && Math.abs(frameBorder.y - point.y) <= 0.0000001;
if(point._weak) {
point.put();
}
tmp = result1;
} else {
tmp = false;
}
if(tmp && imageFrame.get_frame().type != 2) {
return imageFrame;
}
}
return null;
};
flixel_graphics_frames_FlxImageFrame.findEmptyFrame = function(graphic,frameRect) {
var type = flixel_graphics_frames_FlxFrameCollectionType.IMAGE;
var collections = graphic.frameCollections.get(type);
if(collections == null) {
collections = [];
graphic.frameCollections.set(type,collections);
}
var imageFrames = collections;
var _g = 0;
while(_g < imageFrames.length) {
var imageFrame = imageFrames[_g];
++_g;
var frame = imageFrame.get_frame();
if(frame.sourceSize.x == frameRect.width && frame.sourceSize.y == frameRect.height && frame.type == 2) {
return imageFrame;
}
}
return null;
};
flixel_graphics_frames_FlxImageFrame.__super__ = flixel_graphics_frames_FlxFramesCollection;
flixel_graphics_frames_FlxImageFrame.prototype = $extend(flixel_graphics_frames_FlxFramesCollection.prototype,{
equals: function(rect,border) {
var rect1 = this.get_frame().frame;
var result = Math.abs(rect.x - rect1.x) <= 0.0000001 && Math.abs(rect.y - rect1.y) <= 0.0000001 && Math.abs(rect.width - rect1.width) <= 0.0000001 && Math.abs(rect.height - rect1.height) <= 0.0000001;
if(rect1._weak) {
if(!rect1._inPool) {
rect1._inPool = true;
rect1._weak = false;
flixel_math_FlxRect._pool.putUnsafe(rect1);
}
}
if(result) {
var point = this.border;
var result = Math.abs(border.x - point.x) <= 0.0000001 && Math.abs(border.y - point.y) <= 0.0000001;
if(point._weak) {
point.put();
}
return result;
} else {
return false;
}
}
,addBorder: function(border) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
var resultBorder = point1.addPoint(this.border).addPoint(border);
var imageFrame = flixel_graphics_frames_FlxImageFrame.findFrame(this.parent,this.get_frame().frame,resultBorder);
if(imageFrame != null) {
return imageFrame;
}
imageFrame = new flixel_graphics_frames_FlxImageFrame(this.parent,resultBorder);
imageFrame.pushFrame(this.get_frame().setBorderTo(border));
return imageFrame;
}
,destroy: function() {
flixel_graphics_frames_FlxFramesCollection.prototype.destroy.call(this);
flixel_util_FlxDestroyUtil.destroy(this.get_frame());
}
,get_frame: function() {
return this.frames[0];
}
,__class__: flixel_graphics_frames_FlxImageFrame
,__properties__: $extend(flixel_graphics_frames_FlxFramesCollection.prototype.__properties__,{get_frame:"get_frame"})
});
var flixel_graphics_frames_FlxTileFrames = function(parent,border) {
this.numCols = 0;
this.numRows = 0;
flixel_graphics_frames_FlxFramesCollection.call(this,parent,flixel_graphics_frames_FlxFrameCollectionType.TILES,border);
};
$hxClasses["flixel.graphics.frames.FlxTileFrames"] = flixel_graphics_frames_FlxTileFrames;
flixel_graphics_frames_FlxTileFrames.__name__ = "flixel.graphics.frames.FlxTileFrames";
flixel_graphics_frames_FlxTileFrames.fromBitmapAddSpacesAndBorders = function(source,tileSize,tileSpacing,tileBorder,region) {
var graphic = flixel_FlxG.bitmap.add(source,false);
if(graphic == null) {
return null;
}
var key = flixel_FlxG.bitmap.getKeyWithSpacesAndBorders(graphic.key,tileSize,tileSpacing,tileBorder,region);
var result = flixel_FlxG.bitmap._cache.h[key];
if(result == null) {
var bitmap = flixel_util_FlxBitmapDataUtil.addSpacesAndBorders(graphic.bitmap,tileSize,tileSpacing,tileBorder,region);
result = flixel_FlxG.bitmap.add(bitmap,false,key);
}
var borderX = 0;
var borderY = 0;
if(tileBorder != null) {
borderX = tileBorder.x | 0;
borderY = tileBorder.y | 0;
}
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var _this = point.addPoint(tileSize);
var X = 2 * borderX;
var Y = 2 * borderY;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = _this;
_g.set_x(_g.x + X);
var _g = _this;
_g.set_y(_g.y + Y);
var tileFrames = flixel_graphics_frames_FlxTileFrames.fromGraphic(result,_this,null,tileSpacing);
if(tileBorder == null) {
return tileFrames;
}
return tileFrames.addBorder(tileBorder);
};
flixel_graphics_frames_FlxTileFrames.fromFrameAddSpacesAndBorders = function(frame,tileSize,tileSpacing,tileBorder) {
var bitmap = frame.paint();
return flixel_graphics_frames_FlxTileFrames.fromBitmapAddSpacesAndBorders(bitmap,tileSize,tileSpacing,tileBorder);
};
flixel_graphics_frames_FlxTileFrames.fromFrame = function(frame,tileSize,tileSpacing) {
var graphic = frame.parent;
var tileFrames = flixel_graphics_frames_FlxTileFrames.findFrame(graphic,tileSize,null,frame,tileSpacing);
if(tileFrames != null) {
return tileFrames;
}
if(tileSpacing == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
tileSpacing = point;
}
tileFrames = new flixel_graphics_frames_FlxTileFrames(graphic);
tileFrames.atlasFrame = frame;
tileFrames.region = frame.frame;
tileFrames.tileSize = tileSize;
tileFrames.tileSpacing = tileSpacing;
tileSpacing.set_x(Math.floor(tileSpacing.x));
tileSpacing.set_y(Math.floor(tileSpacing.y));
tileSize.set_x(Math.floor(tileSize.x));
tileSize.set_y(Math.floor(tileSize.y));
var spacedWidth = tileSize.x + tileSpacing.x;
var spacedHeight = tileSize.y + tileSpacing.y;
var numRows = tileSize.y == 0 ? 1 : (frame.sourceSize.y + tileSpacing.y) / spacedHeight | 0;
var numCols = tileSize.x == 0 ? 1 : (frame.sourceSize.x + tileSpacing.x) / spacedWidth | 0;
var X = 0;
var Y = 0;
var Width = tileSize.x;
var Height = tileSize.y;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
var helperRect = rect;
var _g = 0;
var _g1 = numRows;
while(_g < _g1) {
var j = _g++;
var _g2 = 0;
var _g3 = numCols;
while(_g2 < _g3) {
var i = _g2++;
helperRect.x = spacedWidth * i;
helperRect.y = spacedHeight * j;
tileFrames.pushFrame(frame.subFrameTo(helperRect));
}
}
helperRect = flixel_util_FlxDestroyUtil.put(helperRect);
tileFrames.numCols = numCols;
tileFrames.numRows = numRows;
return tileFrames;
};
flixel_graphics_frames_FlxTileFrames.fromFrames = function(Frames) {
var firstFrame = Frames[0];
var graphic = firstFrame.parent;
var _g = 0;
while(_g < Frames.length) {
var frame = Frames[_g];
++_g;
var tmp;
if(frame.parent == firstFrame.parent) {
var _this = frame.sourceSize;
var point = firstFrame.sourceSize;
var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001;
if(point._weak) {
point.put();
}
tmp = !result;
} else {
tmp = true;
}
if(tmp) {
return null;
}
}
var tileFrames = new flixel_graphics_frames_FlxTileFrames(graphic);
tileFrames.region = null;
tileFrames.atlasFrame = null;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var _this = point;
var point = firstFrame.sourceSize;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
tileFrames.tileSize = _this;
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
tileFrames.tileSpacing = point;
tileFrames.numCols = Frames.length;
tileFrames.numRows = 1;
var _g = 0;
while(_g < Frames.length) {
var frame = Frames[_g];
++_g;
tileFrames.frames.push(frame);
if(frame.name != null) {
tileFrames.framesHash.h[frame.name] = frame;
}
}
return tileFrames;
};
flixel_graphics_frames_FlxTileFrames.fromAtlasByPrefix = function(Frames,Prefix) {
var framesToAdd = [];
var _g = 0;
var _g1 = Frames.frames;
while(_g < _g1.length) {
var frame = _g1[_g];
++_g;
if(StringTools.startsWith(frame.name,Prefix)) {
framesToAdd.push(frame);
}
}
if(framesToAdd.length > 0) {
var name = framesToAdd[0].name;
var postIndex = name.indexOf(".",Prefix.length);
var postFix = name.substring(postIndex == -1 ? name.length : postIndex,name.length);
flixel_graphics_frames_FlxFrame.sort(framesToAdd,Prefix.length,postFix.length);
return flixel_graphics_frames_FlxTileFrames.fromFrames(framesToAdd);
}
return null;
};
flixel_graphics_frames_FlxTileFrames.fromGraphic = function(graphic,tileSize,region,tileSpacing) {
var tileFrames = flixel_graphics_frames_FlxTileFrames.findFrame(graphic,tileSize,region,null,tileSpacing);
if(tileFrames != null) {
return tileFrames;
}
if(region == null) {
var X = 0;
var Y = 0;
var Width = graphic.width;
var Height = graphic.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
region = rect;
} else {
if(region.width == 0) {
region.width = graphic.width - region.x;
}
if(region.height == 0) {
region.height = graphic.height - region.y;
}
}
if(tileSpacing == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
tileSpacing = point;
}
tileFrames = new flixel_graphics_frames_FlxTileFrames(graphic);
tileFrames.region = region;
tileFrames.atlasFrame = null;
tileFrames.tileSize = tileSize;
tileFrames.tileSpacing = tileSpacing;
region.x = Math.floor(region.x);
region.y = Math.floor(region.y);
region.width = Math.floor(region.width);
region.height = Math.floor(region.height);
tileSpacing.set_x(Math.floor(tileSpacing.x));
tileSpacing.set_y(Math.floor(tileSpacing.y));
tileSize.set_x(Math.floor(tileSize.x));
tileSize.set_y(Math.floor(tileSize.y));
var spacedWidth = tileSize.x + tileSpacing.x;
var spacedHeight = tileSize.y + tileSpacing.y;
var numRows = tileSize.y == 0 ? 1 : (region.height + tileSpacing.y) / spacedHeight | 0;
var numCols = tileSize.x == 0 ? 1 : (region.width + tileSpacing.x) / spacedWidth | 0;
var tileRect;
var _g = 0;
var _g1 = numRows;
while(_g < _g1) {
var j = _g++;
var _g2 = 0;
var _g3 = numCols;
while(_g2 < _g3) {
var i = _g2++;
var X = region.x + i * spacedWidth;
var Y = region.y + j * spacedHeight;
var Width = tileSize.x;
var Height = tileSize.y;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
tileRect = rect;
tileFrames.addSpriteSheetFrame(tileRect);
}
}
tileFrames.numCols = numCols;
tileFrames.numRows = numRows;
return tileFrames;
};
flixel_graphics_frames_FlxTileFrames.fromRectangle = function(source,tileSize,region,tileSpacing) {
var graphic = flixel_FlxG.bitmap.add(source,false);
if(graphic == null) {
return null;
}
return flixel_graphics_frames_FlxTileFrames.fromGraphic(graphic,tileSize,region,tileSpacing);
};
flixel_graphics_frames_FlxTileFrames.combineTileSets = function(bitmaps,tileSize,spacing,border) {
var framesCollections = [];
var _g = 0;
while(_g < bitmaps.length) {
var bitmap = bitmaps[_g];
++_g;
framesCollections.push(flixel_graphics_frames_FlxTileFrames.fromRectangle(bitmap,tileSize));
}
return flixel_graphics_frames_FlxTileFrames.combineTileFrames(framesCollections,spacing,border);
};
flixel_graphics_frames_FlxTileFrames.combineTileFrames = function(tileframes,spacing,border) {
var totalArea = 0;
var rows = 0;
var cols = 0;
var tileWidth = tileframes[0].frames[0].sourceSize.x | 0;
var tileHeight = tileframes[0].frames[0].sourceSize.y | 0;
var spaceX = 0;
var spaceY = 0;
if(spacing != null) {
spaceX = spacing.x | 0;
spaceY = spacing.y | 0;
}
var borderX = 0;
var borderY = 0;
if(border != null) {
borderX = border.x | 0;
borderY = border.y | 0;
}
var _g = 0;
while(_g < tileframes.length) {
var collection = tileframes[_g];
++_g;
cols = collection.numCols;
rows = collection.numRows;
totalArea += cols * (tileWidth + 2 * borderX) * rows * (tileHeight + 2 * borderY) | 0;
}
var side = Math.sqrt(totalArea);
cols = side / (tileWidth + 2 * borderX) | 0;
rows = Math.ceil(totalArea / (cols * (tileWidth + 2 * borderX) * (tileHeight + 2 * borderY)));
var width = (cols * (tileWidth + 2 * borderX) | 0) + (cols - 1) * spaceX;
var height = (rows * (tileHeight + 2 * borderY) | 0) + (rows - 1) * spaceY;
var combined = new openfl_display_BitmapData(width,height,true,0);
var graphic = flixel_FlxG.bitmap.add(combined);
var result = new flixel_graphics_frames_FlxTileFrames(graphic);
var destPoint = new openfl_geom_Point(borderX,borderY);
var X = 0;
var Y = 0;
var Width = width;
var Height = height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
result.region = rect;
result.atlasFrame = null;
var X = tileWidth;
var Y = tileHeight;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
result.tileSize = point;
var X = spaceX;
var Y = spaceY;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
result.tileSpacing = point;
result.numCols = cols;
result.numRows = rows;
var _g = 0;
while(_g < tileframes.length) {
var collection = tileframes[_g];
++_g;
var _g1 = 0;
var _g2 = collection.frames;
while(_g1 < _g2.length) {
var frame = _g2[_g1];
++_g1;
frame.paint(combined,destPoint,true);
var X = destPoint.x;
var Y = destPoint.y;
var Width = tileWidth;
var Height = tileHeight;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
var X2 = tileWidth;
var Y2 = tileHeight;
if(Y2 == null) {
Y2 = 0;
}
if(X2 == null) {
X2 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X2,Y2);
point._inPool = false;
var X3 = 0;
var Y3 = 0;
if(Y3 == null) {
Y3 = 0;
}
if(X3 == null) {
X3 = 0;
}
var point1 = flixel_math_FlxPoint._pool.get().set(X3,Y3);
point1._inPool = false;
result.addAtlasFrame(rect,point,point1);
destPoint.x += tileWidth + 2 * borderX + spaceX;
if(destPoint.x >= combined.width) {
destPoint.x = borderX;
destPoint.y += tileHeight + 2 * borderY + spaceY;
}
}
}
flixel_util_FlxBitmapDataUtil.copyBorderPixels(combined,tileWidth,tileHeight,spaceX,spaceY,borderX,borderY,cols,rows);
return result;
};
flixel_graphics_frames_FlxTileFrames.findFrame = function(graphic,tileSize,region,atlasFrame,tileSpacing,border) {
var type = flixel_graphics_frames_FlxFrameCollectionType.TILES;
var collections = graphic.frameCollections.get(type);
if(collections == null) {
collections = [];
graphic.frameCollections.set(type,collections);
}
var tileFrames = collections;
var _g = 0;
while(_g < tileFrames.length) {
var sheet = tileFrames[_g];
++_g;
if(sheet.equals(tileSize,region,null,tileSpacing,border)) {
return sheet;
}
}
return null;
};
flixel_graphics_frames_FlxTileFrames.__super__ = flixel_graphics_frames_FlxFramesCollection;
flixel_graphics_frames_FlxTileFrames.prototype = $extend(flixel_graphics_frames_FlxFramesCollection.prototype,{
atlasFrame: null
,region: null
,tileSize: null
,tileSpacing: null
,numRows: null
,numCols: null
,getByTilePosition: function(column,row) {
return this.frames[row * this.numCols + column];
}
,equals: function(tileSize,region,atlasFrame,tileSpacing,border) {
if(this.region == null && this.atlasFrame == null) {
return false;
}
if(atlasFrame != null) {
region = atlasFrame.frame;
}
if(region == null) {
var X = 0;
var Y = 0;
var Width = this.parent.width;
var Height = this.parent.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X = X1;
var Y = Y1;
var Width = Width1;
var Height = Height1;
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;
var rect = _this;
rect._inPool = false;
var rect1 = rect;
rect1._weak = true;
region = rect1;
}
if(tileSpacing == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
tileSpacing = point1;
}
if(border == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
border = point1;
}
var tmp;
var tmp1;
var tmp2;
if(this.atlasFrame == atlasFrame) {
var _this = this.region;
var result = Math.abs(_this.x - region.x) <= 0.0000001 && Math.abs(_this.y - region.y) <= 0.0000001 && Math.abs(_this.width - region.width) <= 0.0000001 && Math.abs(_this.height - region.height) <= 0.0000001;
if(region._weak) {
if(!region._inPool) {
region._inPool = true;
region._weak = false;
flixel_math_FlxRect._pool.putUnsafe(region);
}
}
tmp2 = result;
} else {
tmp2 = false;
}
if(tmp2) {
var _this = this.tileSize;
var result = Math.abs(_this.x - tileSize.x) <= 0.0000001 && Math.abs(_this.y - tileSize.y) <= 0.0000001;
if(tileSize._weak) {
tileSize.put();
}
tmp1 = result;
} else {
tmp1 = false;
}
if(tmp1) {
var _this = this.tileSpacing;
var result = Math.abs(_this.x - tileSpacing.x) <= 0.0000001 && Math.abs(_this.y - tileSpacing.y) <= 0.0000001;
if(tileSpacing._weak) {
tileSpacing.put();
}
tmp = result;
} else {
tmp = false;
}
if(tmp) {
var _this = this.border;
var result = Math.abs(_this.x - border.x) <= 0.0000001 && Math.abs(_this.y - border.y) <= 0.0000001;
if(border._weak) {
border.put();
}
return result;
} else {
return false;
}
}
,addBorder: function(border) {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var resultBorder = point.addPoint(this.border).addPoint(border);
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var _this = point;
var point = this.tileSize;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
var _this1 = _this;
var X = 2 * border.x;
var Y = 2 * border.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = _this1;
_g.set_x(_g.x - X);
var _g = _this1;
_g.set_y(_g.y - Y);
var resultSize = _this1;
var tileFrames = flixel_graphics_frames_FlxTileFrames.findFrame(this.parent,resultSize,this.region,this.atlasFrame,this.tileSpacing,resultBorder);
if(tileFrames != null) {
resultSize = flixel_util_FlxDestroyUtil.put(resultSize);
return tileFrames;
}
tileFrames = new flixel_graphics_frames_FlxTileFrames(this.parent,resultBorder);
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
var _this = rect;
var Rect = this.region;
_this.x = Rect.x;
_this.y = Rect.y;
_this.width = Rect.width;
_this.height = Rect.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
tileFrames.region = _this;
tileFrames.atlasFrame = this.atlasFrame;
tileFrames.tileSize = resultSize;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var _this = point;
var point = this.tileSpacing;
_this.set_x(point.x);
_this.set_y(point.y);
if(point._weak) {
point.put();
}
tileFrames.tileSpacing = _this;
var _g = 0;
var _g1 = this.frames;
while(_g < _g1.length) {
var frame = _g1[_g];
++_g;
tileFrames.pushFrame(frame.setBorderTo(border));
}
return tileFrames;
}
,destroy: function() {
flixel_graphics_frames_FlxFramesCollection.prototype.destroy.call(this);
this.atlasFrame = null;
this.region = flixel_util_FlxDestroyUtil.put(this.region);
this.tileSize = flixel_util_FlxDestroyUtil.put(this.tileSize);
this.tileSpacing = flixel_util_FlxDestroyUtil.put(this.tileSpacing);
}
,__class__: flixel_graphics_frames_FlxTileFrames
});
var flixel_graphics_tile_FlxDrawBaseItem = function() {
this.blending = 0;
this.hasColorOffsets = false;
this.colored = false;
this.antialiasing = false;
};
$hxClasses["flixel.graphics.tile.FlxDrawBaseItem"] = flixel_graphics_tile_FlxDrawBaseItem;
flixel_graphics_tile_FlxDrawBaseItem.__name__ = "flixel.graphics.tile.FlxDrawBaseItem";
flixel_graphics_tile_FlxDrawBaseItem.blendToInt = function(blend) {
return 0;
};
flixel_graphics_tile_FlxDrawBaseItem.prototype = {
nextTyped: null
,next: null
,graphics: null
,antialiasing: null
,colored: null
,hasColorOffsets: null
,blending: null
,blend: null
,type: null
,reset: function() {
this.graphics = null;
this.antialiasing = false;
this.nextTyped = null;
this.next = null;
}
,dispose: function() {
this.graphics = null;
this.next = null;
this.type = null;
this.nextTyped = null;
}
,render: function(camera) {
flixel_graphics_tile_FlxDrawBaseItem.drawCalls++;
}
,addQuad: function(frame,matrix,transform) {
}
,get_numVertices: function() {
return 0;
}
,get_numTriangles: function() {
return 0;
}
,__class__: flixel_graphics_tile_FlxDrawBaseItem
,__properties__: {get_numTriangles:"get_numTriangles",get_numVertices:"get_numVertices"}
};
var flixel_graphics_tile_FlxDrawItemType = $hxEnums["flixel.graphics.tile.FlxDrawItemType"] = { __ename__ : "flixel.graphics.tile.FlxDrawItemType", __constructs__ : ["TILES","TRIANGLES"]
,TILES: {_hx_index:0,__enum__:"flixel.graphics.tile.FlxDrawItemType",toString:$estr}
,TRIANGLES: {_hx_index:1,__enum__:"flixel.graphics.tile.FlxDrawItemType",toString:$estr}
};
var flixel_graphics_tile_FlxDrawQuadsItem = function() {
flixel_graphics_tile_FlxDrawBaseItem.call(this);
this.type = flixel_graphics_tile_FlxDrawItemType.TILES;
this.rects = openfl_Vector.toFloatVector(null);
this.transforms = openfl_Vector.toFloatVector(null);
this.alphas = [];
};
$hxClasses["flixel.graphics.tile.FlxDrawQuadsItem"] = flixel_graphics_tile_FlxDrawQuadsItem;
flixel_graphics_tile_FlxDrawQuadsItem.__name__ = "flixel.graphics.tile.FlxDrawQuadsItem";
flixel_graphics_tile_FlxDrawQuadsItem.__super__ = flixel_graphics_tile_FlxDrawBaseItem;
flixel_graphics_tile_FlxDrawQuadsItem.prototype = $extend(flixel_graphics_tile_FlxDrawBaseItem.prototype,{
shader: null
,rects: null
,transforms: null
,alphas: null
,colorMultipliers: null
,colorOffsets: null
,reset: function() {
flixel_graphics_tile_FlxDrawBaseItem.prototype.reset.call(this);
this.rects.set_length(0);
this.transforms.set_length(0);
this.alphas.splice(0,this.alphas.length);
if(this.colorMultipliers != null) {
this.colorMultipliers.splice(0,this.colorMultipliers.length);
}
if(this.colorOffsets != null) {
this.colorOffsets.splice(0,this.colorOffsets.length);
}
}
,dispose: function() {
flixel_graphics_tile_FlxDrawBaseItem.prototype.dispose.call(this);
this.rects = null;
this.transforms = null;
this.alphas = null;
this.colorMultipliers = null;
this.colorOffsets = null;
}
,addQuad: function(frame,matrix,transform) {
var rect = frame.frame;
this.rects.push(rect.x);
this.rects.push(rect.y);
this.rects.push(rect.width);
this.rects.push(rect.height);
this.transforms.push(matrix.a);
this.transforms.push(matrix.b);
this.transforms.push(matrix.c);
this.transforms.push(matrix.d);
this.transforms.push(matrix.tx);
this.transforms.push(matrix.ty);
this.alphas.push(transform != null ? transform.alphaMultiplier : 1.0);
this.alphas.push(transform != null ? transform.alphaMultiplier : 1.0);
this.alphas.push(transform != null ? transform.alphaMultiplier : 1.0);
this.alphas.push(transform != null ? transform.alphaMultiplier : 1.0);
if(this.colored || this.hasColorOffsets) {
if(this.colorMultipliers == null) {
this.colorMultipliers = [];
}
if(this.colorOffsets == null) {
this.colorOffsets = [];
}
var _g = 0;
while(_g < 4) {
var i = _g++;
if(transform != null) {
this.colorMultipliers.push(transform.redMultiplier);
this.colorMultipliers.push(transform.greenMultiplier);
this.colorMultipliers.push(transform.blueMultiplier);
this.colorOffsets.push(transform.redOffset);
this.colorOffsets.push(transform.greenOffset);
this.colorOffsets.push(transform.blueOffset);
this.colorOffsets.push(transform.alphaOffset);
} else {
this.colorMultipliers.push(1);
this.colorMultipliers.push(1);
this.colorMultipliers.push(1);
this.colorOffsets.push(0);
this.colorOffsets.push(0);
this.colorOffsets.push(0);
this.colorOffsets.push(0);
}
this.colorMultipliers.push(1);
}
}
}
,render: function(camera) {
if(this.rects.get_length() == 0) {
return;
}
var shader = this.shader != null ? this.shader : this.graphics.shader;
shader.bitmap.input = this.graphics.bitmap;
shader.bitmap.filter = camera.antialiasing || this.antialiasing ? 4 : 5;
shader.alpha.value = this.alphas;
if(this.colored || this.hasColorOffsets) {
shader.colorMultiplier.value = this.colorMultipliers;
shader.colorOffset.value = this.colorOffsets;
}
var parameter = shader.hasTransform;
if(parameter.value == null) {
parameter.value = [];
}
parameter.value[0] = true;
var parameter = shader.hasColorTransform;
if(parameter.value == null) {
parameter.value = [];
}
parameter.value[0] = this.colored || this.hasColorOffsets;
camera.canvas.get_graphics().overrideBlendMode(this.blend);
camera.canvas.get_graphics().beginShaderFill(shader);
camera.canvas.get_graphics().drawQuads(this.rects,null,this.transforms);
flixel_graphics_tile_FlxDrawBaseItem.prototype.render.call(this,camera);
}
,setParameterValue: function(parameter,value) {
if(parameter.value == null) {
parameter.value = [];
}
parameter.value[0] = value;
}
,__class__: flixel_graphics_tile_FlxDrawQuadsItem
});
var flixel_graphics_tile_FlxDrawTrianglesItem = function() {
var _this = flixel_math_FlxRect._pool.get();
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
_this._inPool = false;
this.bounds = _this;
this.colorsPosition = 0;
this.indicesPosition = 0;
this.verticesPosition = 0;
this.colors = openfl_Vector.toIntVector(null);
this.uvtData = openfl_Vector.toFloatVector(null);
this.indices = openfl_Vector.toIntVector(null);
this.vertices = openfl_Vector.toFloatVector(null);
flixel_graphics_tile_FlxDrawBaseItem.call(this);
this.type = flixel_graphics_tile_FlxDrawItemType.TRIANGLES;
};
$hxClasses["flixel.graphics.tile.FlxDrawTrianglesItem"] = flixel_graphics_tile_FlxDrawTrianglesItem;
flixel_graphics_tile_FlxDrawTrianglesItem.__name__ = "flixel.graphics.tile.FlxDrawTrianglesItem";
flixel_graphics_tile_FlxDrawTrianglesItem.inflateBounds = function(bounds,x,y) {
if(x < bounds.x) {
bounds.width += bounds.x - x;
bounds.x = x;
}
if(y < bounds.y) {
bounds.height += bounds.y - y;
bounds.y = y;
}
if(x > bounds.x + bounds.width) {
bounds.width = x - bounds.x;
}
if(y > bounds.y + bounds.height) {
bounds.height = y - bounds.y;
}
return bounds;
};
flixel_graphics_tile_FlxDrawTrianglesItem.__super__ = flixel_graphics_tile_FlxDrawBaseItem;
flixel_graphics_tile_FlxDrawTrianglesItem.prototype = $extend(flixel_graphics_tile_FlxDrawBaseItem.prototype,{
vertices: null
,indices: null
,uvtData: null
,colors: null
,verticesPosition: null
,indicesPosition: null
,colorsPosition: null
,bounds: null
,render: function(camera) {
if(!flixel_FlxG.renderTile) {
return;
}
if(this.get_numTriangles() <= 0) {
return;
}
var tmp = camera.antialiasing || this.antialiasing;
camera.canvas.get_graphics().beginBitmapFill(this.graphics.bitmap,null,true,tmp);
camera.canvas.get_graphics().drawTriangles(this.vertices,this.indices,this.uvtData,1);
camera.canvas.get_graphics().endFill();
flixel_graphics_tile_FlxDrawBaseItem.prototype.render.call(this,camera);
}
,reset: function() {
flixel_graphics_tile_FlxDrawBaseItem.prototype.reset.call(this);
this.vertices.splice(0,this.vertices.get_length());
this.indices.splice(0,this.indices.get_length());
this.uvtData.splice(0,this.uvtData.get_length());
this.colors.splice(0,this.colors.get_length());
this.verticesPosition = 0;
this.indicesPosition = 0;
this.colorsPosition = 0;
}
,dispose: function() {
flixel_graphics_tile_FlxDrawBaseItem.prototype.dispose.call(this);
this.vertices = null;
this.indices = null;
this.uvtData = null;
this.colors = null;
this.bounds = null;
}
,addTriangles: function(vertices,indices,uvtData,colors,position,cameraBounds) {
if(position == null) {
position = flixel_graphics_tile_FlxDrawTrianglesItem.point.set();
}
if(cameraBounds == null) {
var _this = flixel_graphics_tile_FlxDrawTrianglesItem.rect;
var X = 0;
var Y = 0;
var Width = flixel_FlxG.width;
var Height = flixel_FlxG.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;
cameraBounds = _this;
}
var verticesLength = vertices.get_length();
var prevVerticesLength = this.vertices.get_length();
var numberOfVertices = verticesLength / 2 | 0;
var prevIndicesLength = this.indices.get_length();
var prevUVTDataLength = this.uvtData.get_length();
var prevColorsLength = this.colors.get_length();
var prevNumberOfVertices = this.get_numVertices();
var tempX;
var tempY;
var i = 0;
var currentVertexPosition = prevVerticesLength;
while(i < verticesLength) {
tempX = position.x + vertices.get(i);
tempY = position.y + vertices.get(i + 1);
this.vertices.set(currentVertexPosition++,tempX);
this.vertices.set(currentVertexPosition++,tempY);
if(i == 0) {
var _this = this.bounds;
var X = tempX;
var Y = tempY;
var Width = 0;
var Height = 0;
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;
} else {
var bounds = this.bounds;
if(tempX < bounds.x) {
bounds.width += bounds.x - tempX;
bounds.x = tempX;
}
if(tempY < bounds.y) {
bounds.height += bounds.y - tempY;
bounds.y = tempY;
}
if(tempX > bounds.x + bounds.width) {
bounds.width = tempX - bounds.x;
}
if(tempY > bounds.y + bounds.height) {
bounds.height = tempY - bounds.y;
}
}
i += 2;
}
var Rect = this.bounds;
var result = Rect.x + Rect.width > cameraBounds.x && Rect.x < cameraBounds.x + cameraBounds.width && Rect.y + Rect.height > cameraBounds.y && Rect.y < cameraBounds.y + cameraBounds.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
if(!result) {
this.vertices.splice(this.vertices.get_length() - verticesLength,verticesLength);
} else {
var uvtDataLength = uvtData.get_length();
var _g = 0;
var _g1 = uvtDataLength;
while(_g < _g1) {
var i = _g++;
this.uvtData.set(prevUVTDataLength + i,uvtData.get(i));
}
var indicesLength = indices.get_length();
var _g = 0;
var _g1 = indicesLength;
while(_g < _g1) {
var i = _g++;
this.indices.set(prevIndicesLength + i,indices.get(i) + prevNumberOfVertices);
}
if(this.colored) {
var _g = 0;
var _g1 = numberOfVertices;
while(_g < _g1) {
var i = _g++;
this.colors.set(prevColorsLength + i,colors.get(i));
}
this.colorsPosition += numberOfVertices;
}
this.verticesPosition += verticesLength;
this.indicesPosition += indicesLength;
}
if(position._weak) {
position.put();
}
if(cameraBounds._weak) {
if(!cameraBounds._inPool) {
cameraBounds._inPool = true;
cameraBounds._weak = false;
flixel_math_FlxRect._pool.putUnsafe(cameraBounds);
}
}
}
,addQuad: function(frame,matrix,transform) {
var prevVerticesPos = this.verticesPosition;
var prevIndicesPos = this.indicesPosition;
var prevColorsPos = this.colorsPosition;
var prevNumberOfVertices = this.get_numVertices();
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var point1 = point;
var x1 = point1.x * matrix.a + point1.y * matrix.c + matrix.tx;
var y1 = point1.x * matrix.b + point1.y * matrix.d + matrix.ty;
point1.set(x1,y1);
this.vertices.set(prevVerticesPos,point1.x);
this.vertices.set(prevVerticesPos + 1,point1.y);
this.uvtData.set(prevVerticesPos,frame.uv.x);
this.uvtData.set(prevVerticesPos + 1,frame.uv.y);
point1.set(frame.frame.width,0);
var x1 = point1.x * matrix.a + point1.y * matrix.c + matrix.tx;
var y1 = point1.x * matrix.b + point1.y * matrix.d + matrix.ty;
point1.set(x1,y1);
this.vertices.set(prevVerticesPos + 2,point1.x);
this.vertices.set(prevVerticesPos + 3,point1.y);
this.uvtData.set(prevVerticesPos + 2,frame.uv.width);
this.uvtData.set(prevVerticesPos + 3,frame.uv.y);
point1.set(frame.frame.width,frame.frame.height);
var x1 = point1.x * matrix.a + point1.y * matrix.c + matrix.tx;
var y1 = point1.x * matrix.b + point1.y * matrix.d + matrix.ty;
point1.set(x1,y1);
this.vertices.set(prevVerticesPos + 4,point1.x);
this.vertices.set(prevVerticesPos + 5,point1.y);
this.uvtData.set(prevVerticesPos + 4,frame.uv.width);
this.uvtData.set(prevVerticesPos + 5,frame.uv.height);
point1.set(0,frame.frame.height);
var x1 = point1.x * matrix.a + point1.y * matrix.c + matrix.tx;
var y1 = point1.x * matrix.b + point1.y * matrix.d + matrix.ty;
point1.set(x1,y1);
this.vertices.set(prevVerticesPos + 6,point1.x);
this.vertices.set(prevVerticesPos + 7,point1.y);
point1.put();
this.uvtData.set(prevVerticesPos + 6,frame.uv.x);
this.uvtData.set(prevVerticesPos + 7,frame.uv.height);
this.indices.set(prevIndicesPos,prevNumberOfVertices);
this.indices.set(prevIndicesPos + 1,prevNumberOfVertices + 1);
this.indices.set(prevIndicesPos + 2,prevNumberOfVertices + 2);
this.indices.set(prevIndicesPos + 3,prevNumberOfVertices + 2);
this.indices.set(prevIndicesPos + 4,prevNumberOfVertices + 3);
this.indices.set(prevIndicesPos + 5,prevNumberOfVertices);
if(this.colored) {
var red = 1.0;
var green = 1.0;
var blue = 1.0;
var alpha = 1.0;
if(transform != null) {
red = transform.redMultiplier;
green = transform.greenMultiplier;
blue = transform.blueMultiplier;
alpha = transform.alphaMultiplier;
}
var Alpha = alpha;
if(Alpha == null) {
Alpha = 1;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(red * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(green * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(blue * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
var color1 = color;
this.colors.set(prevColorsPos,color1);
this.colors.set(prevColorsPos + 1,color1);
this.colors.set(prevColorsPos + 2,color1);
this.colors.set(prevColorsPos + 3,color1);
this.colorsPosition += 4;
}
this.verticesPosition += 8;
this.indicesPosition += 6;
}
,get_numVertices: function() {
return this.vertices.get_length() / 2 | 0;
}
,get_numTriangles: function() {
return this.indices.get_length() / 3 | 0;
}
,__class__: flixel_graphics_tile_FlxDrawTrianglesItem
});
var flixel_group_FlxTypedGroupIterator = function(GroupMembers,filter) {
this._groupMembers = GroupMembers;
this._filter = filter;
this._cursor = 0;
this._length = this._groupMembers.length;
};
$hxClasses["flixel.group.FlxTypedGroupIterator"] = flixel_group_FlxTypedGroupIterator;
flixel_group_FlxTypedGroupIterator.__name__ = "flixel.group.FlxTypedGroupIterator";
flixel_group_FlxTypedGroupIterator.prototype = {
_groupMembers: null
,_filter: null
,_cursor: null
,_length: null
,next: function() {
if(this.hasNext()) {
return this._groupMembers[this._cursor++];
} else {
return null;
}
}
,hasNext: function() {
while(this._cursor < this._length && (this._groupMembers[this._cursor] == null || this._filter != null && !this._filter(this._groupMembers[this._cursor]))) this._cursor++;
return this._cursor < this._length;
}
,__class__: flixel_group_FlxTypedGroupIterator
};
var flixel_input_FlxAccelerometer = function() {
this.z = 0;
this.y = 0;
this.x = 0;
if(openfl_sensors_Accelerometer.get_isSupported()) {
this._sensor = new openfl_sensors_Accelerometer();
this._sensor.addEventListener("update",$bind(this,this.update));
}
};
$hxClasses["flixel.input.FlxAccelerometer"] = flixel_input_FlxAccelerometer;
flixel_input_FlxAccelerometer.__name__ = "flixel.input.FlxAccelerometer";
flixel_input_FlxAccelerometer.prototype = {
x: null
,y: null
,z: null
,_sensor: null
,get_isSupported: function() {
return openfl_sensors_Accelerometer.get_isSupported();
}
,update: function(Event1) {
this.x = Event1.accelerationX;
this.y = Event1.accelerationY;
this.z = Event1.accelerationZ;
this.x /= 10;
this.y /= 10;
this.z /= 10;
}
,__class__: flixel_input_FlxAccelerometer
,__properties__: {get_isSupported:"get_isSupported"}
};
var flixel_input_FlxBaseKeyList = function(status,keyManager) {
this.status = status;
this.keyManager = keyManager;
};
$hxClasses["flixel.input.FlxBaseKeyList"] = flixel_input_FlxBaseKeyList;
flixel_input_FlxBaseKeyList.__name__ = "flixel.input.FlxBaseKeyList";
flixel_input_FlxBaseKeyList.prototype = {
status: null
,keyManager: null
,check: function(keyCode) {
return this.keyManager.checkStatus(keyCode,this.status);
}
,get_ANY: function() {
var _g = 0;
var _g1 = this.keyManager._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key != null && this.keyManager.checkStatus(key.ID,this.status)) {
return true;
}
}
return false;
}
,get_NONE: function() {
var _g = 0;
var _g1 = this.keyManager._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key != null && this.keyManager.checkStatus(key.ID,this.status)) {
return false;
}
}
return true;
}
,__class__: flixel_input_FlxBaseKeyList
,__properties__: {get_NONE:"get_NONE",get_ANY:"get_ANY"}
};
var flixel_input_FlxInput = function(ID) {
this.last = 0;
this.current = 0;
this.ID = ID;
};
$hxClasses["flixel.input.FlxInput"] = flixel_input_FlxInput;
flixel_input_FlxInput.__name__ = "flixel.input.FlxInput";
flixel_input_FlxInput.__interfaces__ = [flixel_input_IFlxInput];
flixel_input_FlxInput.prototype = {
ID: null
,current: null
,last: null
,press: function() {
this.last = this.current;
this.current = this.current == 1 || this.current == 2 ? 1 : 2;
}
,release: function() {
this.last = this.current;
this.current = this.current == 1 || this.current == 2 ? -1 : 0;
}
,update: function() {
if(this.last == -1 && this.current == -1) {
this.current = 0;
} else if(this.last == 2 && this.current == 2) {
this.current = 1;
}
this.last = this.current;
}
,reset: function() {
this.current = 0;
this.last = 0;
}
,hasState: function(state) {
switch(state) {
case -1:
return this.current == -1;
case 0:
if(this.current != 0) {
return this.current == -1;
} else {
return true;
}
break;
case 1:
if(this.current != 1) {
return this.current == 2;
} else {
return true;
}
break;
case 2:
return this.current == 2;
}
}
,get_justReleased: function() {
return this.current == -1;
}
,get_released: function() {
if(this.current != 0) {
return this.current == -1;
} else {
return true;
}
}
,get_pressed: function() {
if(this.current != 1) {
return this.current == 2;
} else {
return true;
}
}
,get_justPressed: function() {
return this.current == 2;
}
,__class__: flixel_input_FlxInput
,__properties__: {get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased"}
};
var flixel_input_FlxKeyManager = function(createKeyList) {
this._keyListMap = new haxe_ds_IntMap();
this._keyListArray = [];
this.preventDefaultKeys = [];
this.enabled = true;
openfl_Lib.get_current().stage.addEventListener("keyDown",$bind(this,this.onKeyDown));
openfl_Lib.get_current().stage.addEventListener("keyUp",$bind(this,this.onKeyUp));
this.pressed = createKeyList(1,this);
this.released = createKeyList(0,this);
this.justPressed = createKeyList(2,this);
this.justReleased = createKeyList(-1,this);
};
$hxClasses["flixel.input.FlxKeyManager"] = flixel_input_FlxKeyManager;
flixel_input_FlxKeyManager.__name__ = "flixel.input.FlxKeyManager";
flixel_input_FlxKeyManager.__interfaces__ = [flixel_input_IFlxInputManager];
flixel_input_FlxKeyManager.prototype = {
enabled: null
,preventDefaultKeys: null
,pressed: null
,justPressed: null
,released: null
,justReleased: null
,_keyListArray: null
,_keyListMap: null
,anyPressed: function(KeyArray) {
return this.checkKeyArrayState(KeyArray,1);
}
,anyJustPressed: function(KeyArray) {
return this.checkKeyArrayState(KeyArray,2);
}
,anyJustReleased: function(KeyArray) {
return this.checkKeyArrayState(KeyArray,-1);
}
,firstPressed: function() {
var _g = 0;
var _g1 = this._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key != null && (key.current == 1 || key.current == 2)) {
return key.ID;
}
}
return -1;
}
,firstJustPressed: function() {
var _g = 0;
var _g1 = this._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key != null && key.current == 2) {
return key.ID;
}
}
return -1;
}
,firstJustReleased: function() {
var _g = 0;
var _g1 = this._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key != null && key.current == -1) {
return key.ID;
}
}
return -1;
}
,checkStatus: function(KeyCode,Status) {
switch(KeyCode) {
case -2:
switch(Status) {
case -1:
return this.justReleased.get_ANY();
case 0:
return this.released.get_ANY();
case 1:
return this.pressed.get_ANY();
case 2:
return this.justPressed.get_ANY();
}
break;
case -1:
switch(Status) {
case -1:
return this.justReleased.get_NONE();
case 0:
return this.released.get_NONE();
case 1:
return this.pressed.get_NONE();
case 2:
return this.justPressed.get_NONE();
}
break;
default:
var key = this._keyListMap.h[KeyCode];
if(key == null) {
return false;
}
return key.hasState(Status);
}
}
,getIsDown: function() {
var keysDown = [];
var _g = 0;
var _g1 = this._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key != null && (key.current == 1 || key.current == 2)) {
keysDown.push(key);
}
}
return keysDown;
}
,destroy: function() {
this._keyListArray = null;
this._keyListMap = null;
}
,reset: function() {
var _g = 0;
var _g1 = this._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key != null) {
key.release();
}
}
}
,update: function() {
var _g = 0;
var _g1 = this._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key != null) {
key.update();
}
}
}
,checkKeyArrayState: function(KeyArray,State) {
if(KeyArray == null) {
return false;
}
var _g = 0;
while(_g < KeyArray.length) {
var code = KeyArray[_g];
++_g;
if(this.checkStatus(code,State)) {
return true;
}
}
return false;
}
,onKeyUp: function(event) {
var c = this.resolveKeyCode(event);
this.handlePreventDefaultKeys(c,event);
if(this.enabled) {
var key = this._keyListMap.h[c];
if(key != null) {
key.release();
}
}
}
,onKeyDown: function(event) {
var c = this.resolveKeyCode(event);
this.handlePreventDefaultKeys(c,event);
if(this.enabled) {
var key = this._keyListMap.h[c];
if(key != null) {
key.press();
}
}
}
,handlePreventDefaultKeys: function(keyCode,event) {
var key = this._keyListMap.h[keyCode];
if(key != null && this.preventDefaultKeys != null && this.preventDefaultKeys.indexOf(key.ID) != -1) {
event.stopImmediatePropagation();
event.stopPropagation();
event.preventDefault();
}
}
,inKeyArray: function(KeyArray,Event1) {
if(KeyArray == null) {
return false;
} else {
var code = this.resolveKeyCode(Event1);
var _g = 0;
while(_g < KeyArray.length) {
var key = KeyArray[_g];
++_g;
if(key == code || key == -2) {
return true;
}
}
}
return false;
}
,resolveKeyCode: function(e) {
return e.keyCode;
}
,updateKeyStates: function(KeyCode,Down) {
var key = this._keyListMap.h[KeyCode];
if(key != null) {
if(Down) {
key.press();
} else {
key.release();
}
}
}
,onFocus: function() {
}
,onFocusLost: function() {
this.reset();
}
,getKey: function(KeyCode) {
return this._keyListMap.h[KeyCode];
}
,__class__: flixel_input_FlxKeyManager
};
var flixel_input_FlxSwipe = function(ID,StartPosition,EndPosition,StartTimeInTicks) {
this.ID = ID;
this.startPosition = StartPosition;
this.endPosition = EndPosition;
this._startTimeInTicks = StartTimeInTicks;
this._endTimeInTicks = flixel_FlxG.game.ticks;
};
$hxClasses["flixel.input.FlxSwipe"] = flixel_input_FlxSwipe;
flixel_input_FlxSwipe.__name__ = "flixel.input.FlxSwipe";
flixel_input_FlxSwipe.prototype = {
ID: null
,startPosition: null
,endPosition: null
,_startTimeInTicks: null
,_endTimeInTicks: null
,toString: function() {
var value = this.ID;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "ID";
_this.value = value;
var value = this.startPosition;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "start";
_this1.value = value;
var value = this.endPosition;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "end";
_this2.value = value;
var dx = this.startPosition.x - this.endPosition.x;
var dy = this.startPosition.y - this.endPosition.y;
var value = Math.sqrt(dx * dx + dy * dy);
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "distance";
_this3.value = value;
var value = this.startPosition.angleBetween(this.endPosition);
var _this4 = flixel_util_LabelValuePair._pool.get();
_this4.label = "angle";
_this4.value = value;
var value = (this._endTimeInTicks - this._startTimeInTicks) / 1000;
var _this5 = flixel_util_LabelValuePair._pool.get();
_this5.label = "duration";
_this5.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5]);
}
,get_distance: function() {
var dx = this.startPosition.x - this.endPosition.x;
var dy = this.startPosition.y - this.endPosition.y;
return Math.sqrt(dx * dx + dy * dy);
}
,get_angle: function() {
return this.startPosition.angleBetween(this.endPosition);
}
,get_duration: function() {
return (this._endTimeInTicks - this._startTimeInTicks) / 1000;
}
,__class__: flixel_input_FlxSwipe
,__properties__: {get_duration:"get_duration",get_angle:"get_angle",get_distance:"get_distance"}
};
var flixel_input_actions_FlxAction = function(InputType,Name) {
this.steamOriginsChanged = false;
this._checked = false;
this._timestamp = 0;
this._y = null;
this._x = null;
this.triggered = false;
this.steamHandle = -1;
this.type = InputType;
this.name = Name;
this.inputs = [];
};
$hxClasses["flixel.input.actions.FlxAction"] = flixel_input_actions_FlxAction;
flixel_input_actions_FlxAction.__name__ = "flixel.input.actions.FlxAction";
flixel_input_actions_FlxAction.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_input_actions_FlxAction.prototype = {
type: null
,name: null
,steamHandle: null
,triggered: null
,inputs: null
,_x: null
,_y: null
,_timestamp: null
,_checked: null
,steamOriginsChanged: null
,getFirstSteamOrigin: function() {
return 0;
}
,getSteamOrigins: function(origins) {
return origins;
}
,removeAll: function(Destroy) {
if(Destroy == null) {
Destroy = true;
}
var len = this.inputs.length;
var _g = 0;
var _g1 = len;
while(_g < _g1) {
var i = _g++;
var j = len - i - 1;
var input = this.inputs[j];
this.remove(input,Destroy);
this.inputs.splice(j,1);
}
}
,remove: function(Input,Destroy) {
if(Destroy == null) {
Destroy = false;
}
if(Input == null) {
return;
}
HxOverrides.remove(this.inputs,Input);
if(Destroy) {
Input.destroy();
}
}
,toString: function() {
return "FlxAction(" + Std.string(this.type) + ") name:" + this.name;
}
,check: function() {
this._x = null;
this._y = null;
if(this._timestamp == flixel_FlxG.game.ticks) {
this.triggered = this._checked;
return this._checked;
}
this._timestamp = flixel_FlxG.game.ticks;
this._checked = false;
var len = this.inputs != null ? this.inputs.length : 0;
var _g = 0;
var _g1 = len;
while(_g < _g1) {
var i = _g++;
var j = len - i - 1;
var input = this.inputs[j];
if(input.destroyed) {
this.inputs.splice(j,1);
continue;
}
input.update();
if(input.check(this)) {
this._checked = true;
}
}
this.triggered = this._checked;
return this._checked;
}
,update: function() {
this.check();
}
,destroy: function() {
flixel_util_FlxDestroyUtil.destroyArray(this.inputs);
this.inputs = null;
}
,match: function(other) {
if(this.name == other.name) {
return this.steamHandle == other.steamHandle;
} else {
return false;
}
}
,addGenericInput: function(input) {
if(this.inputs == null) {
this.inputs = [];
}
if(!this.checkExists(input)) {
this.inputs.push(input);
}
return this;
}
,checkExists: function(input) {
if(this.inputs == null) {
return false;
}
return this.inputs.indexOf(input) != -1;
}
,__class__: flixel_input_actions_FlxAction
};
var flixel_input_actions_FlxActionDigital = function(Name,Callback) {
if(Name == null) {
Name = "";
}
flixel_input_actions_FlxAction.call(this,flixel_input_actions_FlxInputType.DIGITAL,Name);
this.callback = Callback;
};
$hxClasses["flixel.input.actions.FlxActionDigital"] = flixel_input_actions_FlxActionDigital;
flixel_input_actions_FlxActionDigital.__name__ = "flixel.input.actions.FlxActionDigital";
flixel_input_actions_FlxActionDigital.__super__ = flixel_input_actions_FlxAction;
flixel_input_actions_FlxActionDigital.prototype = $extend(flixel_input_actions_FlxAction.prototype,{
callback: null
,add: function(input) {
this.addGenericInput(input);
return this;
}
,addInput: function(Input,Trigger) {
return this.add(new flixel_input_actions_FlxActionInputDigitalIFlxInput(Input,Trigger));
}
,addGamepad: function(InputID,Trigger,GamepadID) {
if(GamepadID == null) {
GamepadID = -2;
}
return this.add(new flixel_input_actions_FlxActionInputDigitalGamepad(InputID,Trigger,GamepadID));
}
,addKey: function(Key,Trigger) {
return this.add(new flixel_input_actions_FlxActionInputDigitalKeyboard(Key,Trigger));
}
,addMouse: function(ButtonID,Trigger) {
return this.add(new flixel_input_actions_FlxActionInputDigitalMouse(ButtonID,Trigger));
}
,addMouseWheel: function(Positive,Trigger) {
return this.add(new flixel_input_actions_FlxActionInputDigitalMouseWheel(Positive,Trigger));
}
,destroy: function() {
this.callback = null;
flixel_input_actions_FlxAction.prototype.destroy.call(this);
}
,check: function() {
var val = flixel_input_actions_FlxAction.prototype.check.call(this);
if(val && this.callback != null) {
this.callback(this);
}
return val;
}
,__class__: flixel_input_actions_FlxActionDigital
});
var flixel_input_actions_FlxActionAnalog = function(Name,Callback) {
if(Name == null) {
Name = "";
}
flixel_input_actions_FlxAction.call(this,flixel_input_actions_FlxInputType.ANALOG,Name);
this.callback = Callback;
};
$hxClasses["flixel.input.actions.FlxActionAnalog"] = flixel_input_actions_FlxActionAnalog;
flixel_input_actions_FlxActionAnalog.__name__ = "flixel.input.actions.FlxActionAnalog";
flixel_input_actions_FlxActionAnalog.__super__ = flixel_input_actions_FlxAction;
flixel_input_actions_FlxActionAnalog.prototype = $extend(flixel_input_actions_FlxAction.prototype,{
callback: null
,add: function(input) {
this.addGenericInput(input);
return this;
}
,addMouseClickAndDragMotion: function(ButtonID,Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX) {
if(InvertX == null) {
InvertX = false;
}
if(InvertY == null) {
InvertY = false;
}
if(DeadZone == null) {
DeadZone = 0.1;
}
if(PixelsPerUnit == null) {
PixelsPerUnit = 10;
}
if(Axis == null) {
Axis = 3;
}
return this.add(new flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion(ButtonID,Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX));
}
,addMouseMotion: function(Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX) {
if(InvertX == null) {
InvertX = false;
}
if(InvertY == null) {
InvertY = false;
}
if(DeadZone == null) {
DeadZone = 0.1;
}
if(PixelsPerUnit == null) {
PixelsPerUnit = 10;
}
if(Axis == null) {
Axis = 3;
}
return this.add(new flixel_input_actions_FlxActionInputAnalogMouseMotion(Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX));
}
,addMousePosition: function(Trigger,Axis) {
if(Axis == null) {
Axis = 3;
}
return this.add(new flixel_input_actions_FlxActionInputAnalogMousePosition(Trigger,Axis));
}
,addGamepad: function(InputID,Trigger,Axis,GamepadID) {
if(GamepadID == null) {
GamepadID = -2;
}
if(Axis == null) {
Axis = 3;
}
return this.add(new flixel_input_actions_FlxActionInputAnalogGamepad(InputID,Trigger,Axis,GamepadID));
}
,update: function() {
this._x = null;
this._y = null;
flixel_input_actions_FlxAction.prototype.update.call(this);
}
,destroy: function() {
this.callback = null;
flixel_input_actions_FlxAction.prototype.destroy.call(this);
}
,toString: function() {
return "FlxAction(" + Std.string(this.type) + ") name:" + this.name + " x/y:" + this._x + "," + this._y;
}
,check: function() {
var val = flixel_input_actions_FlxAction.prototype.check.call(this);
if(val && this.callback != null) {
this.callback(this);
}
return val;
}
,get_x: function() {
if(this._x != null) {
return this._x;
} else {
return 0;
}
}
,get_y: function() {
if(this._y != null) {
return this._y;
} else {
return 0;
}
}
,__class__: flixel_input_actions_FlxActionAnalog
,__properties__: {get_y:"get_y",get_x:"get_x"}
});
var flixel_input_actions_FlxActionInput = function(InputType,Device1,InputID,Trigger,DeviceID) {
if(DeviceID == null) {
DeviceID = -2;
}
this.destroyed = false;
this.type = InputType;
this.device = Device1;
this.inputID = InputID;
this.trigger = Trigger;
this.deviceID = DeviceID;
};
$hxClasses["flixel.input.actions.FlxActionInput"] = flixel_input_actions_FlxActionInput;
flixel_input_actions_FlxActionInput.__name__ = "flixel.input.actions.FlxActionInput";
flixel_input_actions_FlxActionInput.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_input_actions_FlxActionInput.prototype = {
type: null
,device: null
,deviceID: null
,destroyed: null
,inputID: null
,trigger: null
,update: function() {
}
,destroy: function() {
this.destroyed = true;
}
,check: function(action) {
return false;
}
,compareState: function(condition,state) {
switch(condition) {
case -1:
return state == -1;
case 0:
if(state != 0) {
return state == -1;
} else {
return true;
}
break;
case 1:
if(state != 1) {
return state == 2;
} else {
return true;
}
break;
case 2:
return state == 2;
default:
return false;
}
}
,__class__: flixel_input_actions_FlxActionInput
};
var flixel_input_actions_FlxInputType = $hxEnums["flixel.input.actions.FlxInputType"] = { __ename__ : "flixel.input.actions.FlxInputType", __constructs__ : ["DIGITAL","ANALOG"]
,DIGITAL: {_hx_index:0,__enum__:"flixel.input.actions.FlxInputType",toString:$estr}
,ANALOG: {_hx_index:1,__enum__:"flixel.input.actions.FlxInputType",toString:$estr}
};
var flixel_input_actions_FlxInputDevice = $hxEnums["flixel.input.actions.FlxInputDevice"] = { __ename__ : "flixel.input.actions.FlxInputDevice", __constructs__ : ["UNKNOWN","MOUSE","MOUSE_WHEEL","KEYBOARD","GAMEPAD","STEAM_CONTROLLER","IFLXINPUT_OBJECT","OTHER","ALL","NONE"]
,UNKNOWN: {_hx_index:0,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,MOUSE: {_hx_index:1,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,MOUSE_WHEEL: {_hx_index:2,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,KEYBOARD: {_hx_index:3,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,GAMEPAD: {_hx_index:4,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,STEAM_CONTROLLER: {_hx_index:5,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,IFLXINPUT_OBJECT: {_hx_index:6,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,OTHER: {_hx_index:7,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,ALL: {_hx_index:8,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
,NONE: {_hx_index:9,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr}
};
var flixel_input_actions_FlxInputDeviceID = function() { };
$hxClasses["flixel.input.actions.FlxInputDeviceID"] = flixel_input_actions_FlxInputDeviceID;
flixel_input_actions_FlxInputDeviceID.__name__ = "flixel.input.actions.FlxInputDeviceID";
var flixel_input_actions_FlxInputDeviceObject = function(Device1,ID,Model) {
if(Model == null) {
Model = "";
}
this.device = Device1;
this.id = ID;
this.model = Model;
};
$hxClasses["flixel.input.actions.FlxInputDeviceObject"] = flixel_input_actions_FlxInputDeviceObject;
flixel_input_actions_FlxInputDeviceObject.__name__ = "flixel.input.actions.FlxInputDeviceObject";
flixel_input_actions_FlxInputDeviceObject.prototype = {
device: null
,id: null
,model: null
,toString: function() {
return "{device:" + Std.string(this.device) + ",id:" + this.id + ",model:" + this.model + "}";
}
,__class__: flixel_input_actions_FlxInputDeviceObject
};
var flixel_input_actions_FlxActionInputAnalog = function(Device1,InputID,Trigger,Axis,DeviceID) {
if(DeviceID == null) {
DeviceID = -2;
}
if(Axis == null) {
Axis = 3;
}
this.y = 0;
this.x = 0;
flixel_input_actions_FlxActionInput.call(this,flixel_input_actions_FlxInputType.ANALOG,Device1,InputID,Trigger,DeviceID);
this.axis = Axis;
this.xMoved = new flixel_input_FlxInput(0);
this.yMoved = new flixel_input_FlxInput(1);
};
$hxClasses["flixel.input.actions.FlxActionInputAnalog"] = flixel_input_actions_FlxActionInputAnalog;
flixel_input_actions_FlxActionInputAnalog.__name__ = "flixel.input.actions.FlxActionInputAnalog";
flixel_input_actions_FlxActionInputAnalog.__super__ = flixel_input_actions_FlxActionInput;
flixel_input_actions_FlxActionInputAnalog.prototype = $extend(flixel_input_actions_FlxActionInput.prototype,{
axis: null
,x: null
,y: null
,xMoved: null
,yMoved: null
,check: function(Action1) {
var returnVal;
switch(this.axis) {
case 0:
var state = this.xMoved.current;
switch(this.trigger) {
case -1:
returnVal = state == -1;
break;
case 0:
returnVal = state == 0 || state == -1;
break;
case 1:
returnVal = state == 1 || state == 2;
break;
case 2:
returnVal = state == 2;
break;
default:
returnVal = false;
}
break;
case 1:
var state = this.yMoved.current;
switch(this.trigger) {
case -1:
returnVal = state == -1;
break;
case 0:
returnVal = state == 0 || state == -1;
break;
case 1:
returnVal = state == 1 || state == 2;
break;
case 2:
returnVal = state == 2;
break;
default:
returnVal = false;
}
break;
case 2:
var state = this.xMoved.current;
var returnVal1;
switch(this.trigger) {
case -1:
returnVal1 = state == -1;
break;
case 0:
returnVal1 = state == 0 || state == -1;
break;
case 1:
returnVal1 = state == 1 || state == 2;
break;
case 2:
returnVal1 = state == 2;
break;
default:
returnVal1 = false;
}
if(returnVal1) {
var state = this.yMoved.current;
switch(this.trigger) {
case -1:
returnVal = state == -1;
break;
case 0:
returnVal = state == 0 || state == -1;
break;
case 1:
returnVal = state == 1 || state == 2;
break;
case 2:
returnVal = state == 2;
break;
default:
returnVal = false;
}
} else {
returnVal = false;
}
break;
case 3:
switch(this.trigger) {
case -1:
returnVal = this.checkAxis(true,-1) && this.checkAxis(false,0) || this.checkAxis(true,0) && this.checkAxis(false,-1);
break;
case 0:
returnVal = this.checkAxis(true,0) || this.checkAxis(false,0);
break;
case 1:
returnVal = this.checkAxis(true,1) || this.checkAxis(false,1);
break;
case 2:
returnVal = this.checkAxis(true,2) && this.checkAxis(false,2) || this.checkAxis(true,2) && this.checkAxis(false,0) || this.checkAxis(true,0) && this.checkAxis(false,2);
break;
}
break;
}
if(returnVal) {
if(Action1._x == null) {
Action1._x = this.x;
}
if(Action1._y == null) {
Action1._y = this.y;
}
}
return returnVal;
}
,checkAxis: function(isX,state) {
var input = isX ? this.xMoved : this.yMoved;
var state1 = input.current;
switch(state) {
case -1:
return state1 == -1;
case 0:
if(state1 != 0) {
return state1 == -1;
} else {
return true;
}
break;
case 1:
if(state1 != 1) {
return state1 == 2;
} else {
return true;
}
break;
case 2:
return state1 == 2;
default:
return false;
}
}
,updateValues: function(X,Y) {
if(X != 0) {
this.xMoved.press();
} else {
this.xMoved.release();
}
if(Y != 0) {
this.yMoved.press();
} else {
this.yMoved.release();
}
this.x = X;
this.y = Y;
}
,__class__: flixel_input_actions_FlxActionInputAnalog
});
var flixel_input_actions_FlxActionInputAnalogMouseMotion = function(Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX) {
if(InvertX == null) {
InvertX = false;
}
if(InvertY == null) {
InvertY = false;
}
if(DeadZone == null) {
DeadZone = 0.1;
}
if(PixelsPerUnit == null) {
PixelsPerUnit = 10;
}
if(Axis == null) {
Axis = 3;
}
this.lastY = 0;
this.lastX = 0;
this.pixelsPerUnit = PixelsPerUnit;
if(this.pixelsPerUnit < 1) {
this.pixelsPerUnit = 1;
}
this.deadZone = DeadZone;
this.invertX = InvertX;
this.invertY = InvertY;
flixel_input_actions_FlxActionInputAnalog.call(this,flixel_input_actions_FlxInputDevice.MOUSE,-1,Trigger,Axis);
};
$hxClasses["flixel.input.actions.FlxActionInputAnalogMouseMotion"] = flixel_input_actions_FlxActionInputAnalogMouseMotion;
flixel_input_actions_FlxActionInputAnalogMouseMotion.__name__ = "flixel.input.actions.FlxActionInputAnalogMouseMotion";
flixel_input_actions_FlxActionInputAnalogMouseMotion.__super__ = flixel_input_actions_FlxActionInputAnalog;
flixel_input_actions_FlxActionInputAnalogMouseMotion.prototype = $extend(flixel_input_actions_FlxActionInputAnalog.prototype,{
lastX: null
,lastY: null
,pixelsPerUnit: null
,deadZone: null
,invertX: null
,invertY: null
,update: function() {
this.updateXYPosition(flixel_FlxG.mouse.x,flixel_FlxG.mouse.y);
}
,updateXYPosition: function(X,Y) {
var xDiff = X - this.lastX;
var yDiff = Y - this.lastY;
this.lastX = X;
this.lastY = Y;
if(this.invertX) {
xDiff *= -1;
}
if(this.invertY) {
yDiff *= -1;
}
xDiff /= this.pixelsPerUnit;
yDiff /= this.pixelsPerUnit;
if(Math.abs(xDiff) < this.deadZone) {
xDiff = 0;
}
if(Math.abs(yDiff) < this.deadZone) {
yDiff = 0;
}
this.updateValues(xDiff,yDiff);
}
,__class__: flixel_input_actions_FlxActionInputAnalogMouseMotion
});
var flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion = function(ButtonID,Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX) {
if(InvertX == null) {
InvertX = false;
}
if(InvertY == null) {
InvertY = false;
}
if(DeadZone == null) {
DeadZone = 0.1;
}
if(PixelsPerUnit == null) {
PixelsPerUnit = 10;
}
if(Axis == null) {
Axis = 3;
}
flixel_input_actions_FlxActionInputAnalogMouseMotion.call(this,Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX);
this.button = ButtonID;
};
$hxClasses["flixel.input.actions.FlxActionInputAnalogClickAndDragMouseMotion"] = flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion;
flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion.__name__ = "flixel.input.actions.FlxActionInputAnalogClickAndDragMouseMotion";
flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion.__super__ = flixel_input_actions_FlxActionInputAnalogMouseMotion;
flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion.prototype = $extend(flixel_input_actions_FlxActionInputAnalogMouseMotion.prototype,{
button: null
,updateValues: function(X,Y) {
var pass = false;
switch(this.button) {
case -3:
var _this = flixel_FlxG.mouse._rightButton;
pass = _this.current == 1 || _this.current == 2;
break;
case -2:
var _this = flixel_FlxG.mouse._middleButton;
pass = _this.current == 1 || _this.current == 2;
break;
case -1:
var _this = flixel_FlxG.mouse._leftButton;
pass = _this.current == 1 || _this.current == 2;
break;
}
if(!pass) {
X = 0;
Y = 0;
}
flixel_input_actions_FlxActionInputAnalogMouseMotion.prototype.updateValues.call(this,X,Y);
}
,__class__: flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion
});
var flixel_input_actions_FlxActionInputAnalogMousePosition = function(Trigger,Axis) {
if(Axis == null) {
Axis = 3;
}
flixel_input_actions_FlxActionInputAnalog.call(this,flixel_input_actions_FlxInputDevice.MOUSE,-1,Trigger,Axis);
};
$hxClasses["flixel.input.actions.FlxActionInputAnalogMousePosition"] = flixel_input_actions_FlxActionInputAnalogMousePosition;
flixel_input_actions_FlxActionInputAnalogMousePosition.__name__ = "flixel.input.actions.FlxActionInputAnalogMousePosition";
flixel_input_actions_FlxActionInputAnalogMousePosition.__super__ = flixel_input_actions_FlxActionInputAnalog;
flixel_input_actions_FlxActionInputAnalogMousePosition.prototype = $extend(flixel_input_actions_FlxActionInputAnalog.prototype,{
update: function() {
this.updateValues(flixel_FlxG.mouse.x,flixel_FlxG.mouse.y);
}
,updateValues: function(X,Y) {
if(X != this.x) {
this.xMoved.press();
} else {
this.xMoved.release();
}
if(Y != this.y) {
this.yMoved.press();
} else {
this.yMoved.release();
}
this.x = X;
this.y = Y;
}
,__class__: flixel_input_actions_FlxActionInputAnalogMousePosition
});
var flixel_input_actions_FlxActionInputAnalogGamepad = function(InputID,Trigger,Axis,GamepadID) {
if(GamepadID == null) {
GamepadID = -2;
}
if(Axis == null) {
Axis = 3;
}
flixel_input_actions_FlxActionInputAnalog.call(this,flixel_input_actions_FlxInputDevice.GAMEPAD,InputID,Trigger,Axis,GamepadID);
};
$hxClasses["flixel.input.actions.FlxActionInputAnalogGamepad"] = flixel_input_actions_FlxActionInputAnalogGamepad;
flixel_input_actions_FlxActionInputAnalogGamepad.__name__ = "flixel.input.actions.FlxActionInputAnalogGamepad";
flixel_input_actions_FlxActionInputAnalogGamepad.__super__ = flixel_input_actions_FlxActionInputAnalog;
flixel_input_actions_FlxActionInputAnalogGamepad.prototype = $extend(flixel_input_actions_FlxActionInputAnalog.prototype,{
update: function() {
if(this.deviceID == -1) {
return;
}
var gamepad = null;
if(this.deviceID == -2) {
gamepad = flixel_FlxG.gamepads.getFirstActiveGamepad();
} else if(this.deviceID >= 0) {
gamepad = flixel_FlxG.gamepads._activeGamepads[this.deviceID];
}
if(gamepad != null) {
switch(this.inputID) {
case 17:
this.updateValues(gamepad.analog.value.gamepad.getAxis(17),0);
break;
case 18:
this.updateValues(gamepad.analog.value.gamepad.getAxis(18),0);
break;
case 19:
var _this = gamepad.analog.value.gamepad;
var tmp = _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19));
var _this = gamepad.analog.value.gamepad;
this.updateValues(tmp,_this.getYAxisRaw(_this.mapping.getAnalogStick(19)));
break;
case 20:
var _this = gamepad.analog.value.gamepad;
var tmp = _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20));
var _this = gamepad.analog.value.gamepad;
this.updateValues(tmp,_this.getYAxisRaw(_this.mapping.getAnalogStick(20)));
break;
case 21:
var tmp;
var _this = gamepad.pressed;
var id = 13;
var _this1 = _this.gamepad;
var Status = _this.status;
var tmp1;
switch(id) {
case -2:
tmp1 = _this1.anyButton(Status);
break;
case -1:
tmp1 = !_this1.anyButton(Status);
break;
default:
var RawID = _this1.mapping.getRawID(id);
var button = _this1.buttons[RawID];
tmp1 = button != null && button.hasState(Status);
}
if(tmp1) {
tmp = -1.0;
} else {
var _this = gamepad.pressed;
var id = 14;
var _this1 = _this.gamepad;
var Status = _this.status;
var tmp1;
switch(id) {
case -2:
tmp1 = _this1.anyButton(Status);
break;
case -1:
tmp1 = !_this1.anyButton(Status);
break;
default:
var RawID = _this1.mapping.getRawID(id);
var button = _this1.buttons[RawID];
tmp1 = button != null && button.hasState(Status);
}
tmp = tmp1 ? 1.0 : 0.0;
}
var tmp1;
var _this = gamepad.pressed;
var id = 11;
var _this1 = _this.gamepad;
var Status = _this.status;
var tmp2;
switch(id) {
case -2:
tmp2 = _this1.anyButton(Status);
break;
case -1:
tmp2 = !_this1.anyButton(Status);
break;
default:
var RawID = _this1.mapping.getRawID(id);
var button = _this1.buttons[RawID];
tmp2 = button != null && button.hasState(Status);
}
if(tmp2) {
tmp1 = -1.0;
} else {
var _this = gamepad.pressed;
var id = 12;
var _this1 = _this.gamepad;
var Status = _this.status;
var tmp2;
switch(id) {
case -2:
tmp2 = _this1.anyButton(Status);
break;
case -1:
tmp2 = !_this1.anyButton(Status);
break;
default:
var RawID = _this1.mapping.getRawID(id);
var button = _this1.buttons[RawID];
tmp2 = button != null && button.hasState(Status);
}
tmp1 = tmp2 ? 1.0 : 0.0;
}
this.updateValues(tmp,tmp1);
break;
case 28:
this.updateValues(gamepad.analog.value.gamepad.getAxis(28),0);
break;
case 29:
this.updateValues(gamepad.analog.value.gamepad.getAxis(29),0);
break;
}
} else {
this.updateValues(0,0);
}
}
,__class__: flixel_input_actions_FlxActionInputAnalogGamepad
});
var flixel_input_actions_FlxActionInputAnalogSteam = function(ActionHandle,Trigger,Axis,DeviceID) {
if(DeviceID == null) {
DeviceID = -1;
}
if(Axis == null) {
Axis = 3;
}
flixel_input_actions_FlxActionInputAnalog.call(this,flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,ActionHandle,Trigger,Axis,DeviceID);
};
$hxClasses["flixel.input.actions.FlxActionInputAnalogSteam"] = flixel_input_actions_FlxActionInputAnalogSteam;
flixel_input_actions_FlxActionInputAnalogSteam.__name__ = "flixel.input.actions.FlxActionInputAnalogSteam";
flixel_input_actions_FlxActionInputAnalogSteam.__super__ = flixel_input_actions_FlxActionInputAnalog;
flixel_input_actions_FlxActionInputAnalogSteam.prototype = $extend(flixel_input_actions_FlxActionInputAnalog.prototype,{
update: function() {
}
,__class__: flixel_input_actions_FlxActionInputAnalogSteam
});
var flixel_input_actions_FlxActionInputDigital = function(Device1,InputID,Trigger,DeviceID) {
if(DeviceID == null) {
DeviceID = -2;
}
flixel_input_actions_FlxActionInput.call(this,flixel_input_actions_FlxInputType.DIGITAL,Device1,InputID,Trigger,DeviceID);
this.inputID = InputID;
};
$hxClasses["flixel.input.actions.FlxActionInputDigital"] = flixel_input_actions_FlxActionInputDigital;
flixel_input_actions_FlxActionInputDigital.__name__ = "flixel.input.actions.FlxActionInputDigital";
flixel_input_actions_FlxActionInputDigital.__super__ = flixel_input_actions_FlxActionInput;
flixel_input_actions_FlxActionInputDigital.prototype = $extend(flixel_input_actions_FlxActionInput.prototype,{
__class__: flixel_input_actions_FlxActionInputDigital
});
var flixel_input_actions_FlxActionInputDigitalMouseWheel = function(Positive,Trigger) {
this.sign = 0;
flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.MOUSE_WHEEL,0,Trigger);
this.input = new flixel_input_FlxInput(0);
this.sign = Positive ? 1 : -1;
};
$hxClasses["flixel.input.actions.FlxActionInputDigitalMouseWheel"] = flixel_input_actions_FlxActionInputDigitalMouseWheel;
flixel_input_actions_FlxActionInputDigitalMouseWheel.__name__ = "flixel.input.actions.FlxActionInputDigitalMouseWheel";
flixel_input_actions_FlxActionInputDigitalMouseWheel.__super__ = flixel_input_actions_FlxActionInputDigital;
flixel_input_actions_FlxActionInputDigitalMouseWheel.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{
input: null
,sign: null
,check: function(Action1) {
switch(this.trigger) {
case -1:
return this.input.current == -1;
case 0:
var _this = this.input;
if(!(_this.current == 0 || _this.current == -1)) {
return this.input.current == -1;
} else {
return true;
}
break;
case 1:
var _this = this.input;
if(!(_this.current == 1 || _this.current == 2)) {
return this.input.current == 2;
} else {
return true;
}
break;
case 2:
return this.input.current == 2;
default:
return false;
}
}
,update: function() {
flixel_input_actions_FlxActionInputDigital.prototype.update.call(this);
if(flixel_FlxG.mouse.wheel * this.sign > 0) {
this.input.press();
} else {
this.input.release();
}
}
,__class__: flixel_input_actions_FlxActionInputDigitalMouseWheel
});
var flixel_input_actions_FlxActionInputDigitalGamepad = function(InputID,Trigger,GamepadID) {
if(GamepadID == null) {
GamepadID = -2;
}
flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.GAMEPAD,InputID,Trigger,GamepadID);
this.input = new flixel_input_FlxInput(InputID);
};
$hxClasses["flixel.input.actions.FlxActionInputDigitalGamepad"] = flixel_input_actions_FlxActionInputDigitalGamepad;
flixel_input_actions_FlxActionInputDigitalGamepad.__name__ = "flixel.input.actions.FlxActionInputDigitalGamepad";
flixel_input_actions_FlxActionInputDigitalGamepad.__super__ = flixel_input_actions_FlxActionInputDigital;
flixel_input_actions_FlxActionInputDigitalGamepad.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{
input: null
,toString: function() {
return "FlxActionInputDigitalGamepad{inputID:" + this.inputID + ",trigger:" + this.trigger + ",deviceID:" + this.deviceID + ",device:" + Std.string(this.device) + ",type:" + Std.string(this.type) + "}";
}
,update: function() {
flixel_input_actions_FlxActionInputDigital.prototype.update.call(this);
if(this.deviceID == -1) {
if(flixel_FlxG.gamepads.anyHasState(this.inputID,1) || flixel_FlxG.gamepads.anyHasState(this.inputID,2)) {
this.input.press();
} else {
this.input.release();
}
} else {
var gamepad = null;
if(this.deviceID == -2) {
gamepad = flixel_FlxG.gamepads.getFirstActiveGamepad();
} else if(this.deviceID >= 0) {
gamepad = flixel_FlxG.gamepads._activeGamepads[this.deviceID];
}
if(gamepad != null) {
if(this.inputID == -2 && this.trigger == 0) {
if(gamepad.released.get_ANY()) {
this.input.release();
} else {
this.input.press();
}
} else {
var tmp;
var ID = this.inputID;
var Status = 1;
var tmp1;
switch(ID) {
case -2:
tmp1 = gamepad.anyButton(Status);
break;
case -1:
tmp1 = !gamepad.anyButton(Status);
break;
default:
var RawID = gamepad.mapping.getRawID(ID);
var button = gamepad.buttons[RawID];
tmp1 = button != null && button.hasState(Status);
}
if(!tmp1) {
var ID = this.inputID;
var Status = 2;
switch(ID) {
case -2:
tmp = gamepad.anyButton(Status);
break;
case -1:
tmp = !gamepad.anyButton(Status);
break;
default:
var RawID = gamepad.mapping.getRawID(ID);
var button = gamepad.buttons[RawID];
tmp = button != null && button.hasState(Status);
}
} else {
tmp = true;
}
if(tmp) {
this.input.press();
} else {
this.input.release();
}
}
} else if(this.deviceID == -2) {
this.input.release();
}
}
}
,check: function(Action1) {
switch(this.trigger) {
case -1:
return this.input.current == -1;
case 0:
var _this = this.input;
if(!(_this.current == 0 || _this.current == -1)) {
return this.input.current == -1;
} else {
return true;
}
break;
case 1:
var _this = this.input;
if(!(_this.current == 1 || _this.current == 2)) {
return this.input.current == 2;
} else {
return true;
}
break;
case 2:
return this.input.current == 2;
default:
return false;
}
}
,__class__: flixel_input_actions_FlxActionInputDigitalGamepad
});
var flixel_input_actions_FlxActionInputDigitalKeyboard = function(Key,Trigger) {
flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.KEYBOARD,Key,Trigger);
};
$hxClasses["flixel.input.actions.FlxActionInputDigitalKeyboard"] = flixel_input_actions_FlxActionInputDigitalKeyboard;
flixel_input_actions_FlxActionInputDigitalKeyboard.__name__ = "flixel.input.actions.FlxActionInputDigitalKeyboard";
flixel_input_actions_FlxActionInputDigitalKeyboard.__super__ = flixel_input_actions_FlxActionInputDigital;
flixel_input_actions_FlxActionInputDigitalKeyboard.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{
check: function(Action1) {
switch(this.trigger) {
case -1:
return flixel_FlxG.keys.checkStatus(this.inputID,-1);
case 0:
if(!flixel_FlxG.keys.checkStatus(this.inputID,0)) {
return flixel_FlxG.keys.checkStatus(this.inputID,-1);
} else {
return true;
}
break;
case 1:
if(!flixel_FlxG.keys.checkStatus(this.inputID,1)) {
return flixel_FlxG.keys.checkStatus(this.inputID,2);
} else {
return true;
}
break;
case 2:
return flixel_FlxG.keys.checkStatus(this.inputID,2);
default:
return false;
}
}
,__class__: flixel_input_actions_FlxActionInputDigitalKeyboard
});
var flixel_input_actions_FlxActionInputDigitalMouse = function(ButtonID,Trigger) {
flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.MOUSE,ButtonID,Trigger);
};
$hxClasses["flixel.input.actions.FlxActionInputDigitalMouse"] = flixel_input_actions_FlxActionInputDigitalMouse;
flixel_input_actions_FlxActionInputDigitalMouse.__name__ = "flixel.input.actions.FlxActionInputDigitalMouse";
flixel_input_actions_FlxActionInputDigitalMouse.__super__ = flixel_input_actions_FlxActionInputDigital;
flixel_input_actions_FlxActionInputDigitalMouse.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{
check: function(Action1) {
switch(this.inputID) {
case -3:
switch(this.trigger) {
case -1:
return flixel_FlxG.mouse._rightButton.current == -1;
case 0:
var _this = flixel_FlxG.mouse._rightButton;
if(_this.current == 1 || _this.current == 2) {
return flixel_FlxG.mouse._rightButton.current == -1;
} else {
return true;
}
break;
case 1:
var _this = flixel_FlxG.mouse._rightButton;
if(!(_this.current == 1 || _this.current == 2)) {
return flixel_FlxG.mouse._rightButton.current == 2;
} else {
return true;
}
break;
case 2:
return flixel_FlxG.mouse._rightButton.current == 2;
}
break;
case -2:
switch(this.trigger) {
case -1:
return flixel_FlxG.mouse._middleButton.current == -1;
case 0:
var _this = flixel_FlxG.mouse._middleButton;
if(_this.current == 1 || _this.current == 2) {
return flixel_FlxG.mouse._middleButton.current == -1;
} else {
return true;
}
break;
case 1:
var _this = flixel_FlxG.mouse._middleButton;
if(!(_this.current == 1 || _this.current == 2)) {
return flixel_FlxG.mouse._middleButton.current == 2;
} else {
return true;
}
break;
case 2:
return flixel_FlxG.mouse._middleButton.current == 2;
}
break;
case -1:
switch(this.trigger) {
case -1:
return flixel_FlxG.mouse._leftButton.current == -1;
case 0:
var _this = flixel_FlxG.mouse._leftButton;
if(_this.current == 1 || _this.current == 2) {
return flixel_FlxG.mouse._leftButton.current == -1;
} else {
return true;
}
break;
case 1:
var _this = flixel_FlxG.mouse._leftButton;
if(!(_this.current == 1 || _this.current == 2)) {
return flixel_FlxG.mouse._leftButton.current == 2;
} else {
return true;
}
break;
case 2:
return flixel_FlxG.mouse._leftButton.current == 2;
}
break;
default:
return false;
}
}
,__class__: flixel_input_actions_FlxActionInputDigitalMouse
});
var flixel_input_actions_FlxActionInputDigitalSteam = function(ActionHandle,Trigger,DeviceHandle) {
if(DeviceHandle == null) {
DeviceHandle = -2;
}
flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,ActionHandle,Trigger,DeviceHandle);
};
$hxClasses["flixel.input.actions.FlxActionInputDigitalSteam"] = flixel_input_actions_FlxActionInputDigitalSteam;
flixel_input_actions_FlxActionInputDigitalSteam.__name__ = "flixel.input.actions.FlxActionInputDigitalSteam";
flixel_input_actions_FlxActionInputDigitalSteam.__super__ = flixel_input_actions_FlxActionInputDigital;
flixel_input_actions_FlxActionInputDigitalSteam.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{
steamInput: null
,check: function(Action1) {
switch(this.trigger) {
case -1:
return this.steamInput.current == -1;
case 0:
var _this = this.steamInput;
if(_this.current == 0 || _this.current == -1) {
return this.steamInput.current == -1;
} else {
return true;
}
break;
case 1:
var _this = this.steamInput;
if(!(_this.current == 1 || _this.current == 2)) {
return this.steamInput.current == 2;
} else {
return true;
}
break;
case 2:
return this.steamInput.current == 2;
}
}
,update: function() {
var controllerHandle = this.deviceID;
if(controllerHandle == -2) {
controllerHandle = flixel_input_actions_FlxSteamController.getFirstActiveHandle();
}
var data = flixel_input_actions_FlxSteamController.getDigitalActionData(controllerHandle,this.inputID);
if(data.bActive && data.bState) {
this.steamInput.press();
} else {
this.steamInput.release();
}
}
,getSteamControllerData: function(controllerHandle) {
if(controllerHandle == -2) {
controllerHandle = flixel_input_actions_FlxSteamController.getFirstActiveHandle();
}
var data = flixel_input_actions_FlxSteamController.getDigitalActionData(controllerHandle,this.inputID);
if(data.bActive) {
return data.bState;
} else {
return false;
}
}
,__class__: flixel_input_actions_FlxActionInputDigitalSteam
});
var flixel_input_actions_FlxActionInputDigitalIFlxInput = function(Input,Trigger) {
flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.IFLXINPUT_OBJECT,0,Trigger);
this.input = Input;
};
$hxClasses["flixel.input.actions.FlxActionInputDigitalIFlxInput"] = flixel_input_actions_FlxActionInputDigitalIFlxInput;
flixel_input_actions_FlxActionInputDigitalIFlxInput.__name__ = "flixel.input.actions.FlxActionInputDigitalIFlxInput";
flixel_input_actions_FlxActionInputDigitalIFlxInput.__super__ = flixel_input_actions_FlxActionInputDigital;
flixel_input_actions_FlxActionInputDigitalIFlxInput.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{
input: null
,check: function(action) {
switch(this.trigger) {
case -1:
return this.input.get_justReleased();
case 0:
if(this.input.get_pressed()) {
return this.input.get_justReleased();
} else {
return true;
}
break;
case 1:
if(!this.input.get_pressed()) {
return this.input.get_justPressed();
} else {
return true;
}
break;
case 2:
return this.input.get_justPressed();
default:
return false;
}
}
,destroy: function() {
flixel_input_actions_FlxActionInputDigital.prototype.destroy.call(this);
this.input = null;
}
,__class__: flixel_input_actions_FlxActionInputDigitalIFlxInput
});
var flixel_input_actions_FlxActionManager = function() {
this.resetOnStateSwitch = flixel_input_actions_ResetPolicy.DEFAULT_SET_ONLY;
this.defaultSet = null;
this.sets = [];
this.register = new flixel_input_actions__$FlxActionManager_ActionSetRegister();
this.deviceConnected = new flixel_util__$FlxSignal_FlxSignal3();
this.deviceDisconnected = new flixel_util__$FlxSignal_FlxSignal3();
this.inputsChanged = new flixel_util__$FlxSignal_FlxSignal1();
flixel_FlxG.gamepads.deviceConnected.add($bind(this,this.onDeviceConnected));
flixel_FlxG.gamepads.deviceDisconnected.add($bind(this,this.onDeviceDisconnected));
flixel_input_actions_FlxSteamController.onControllerConnect = $bind(this,this.updateSteamControllers);
flixel_input_actions_FlxSteamController.onOriginUpdate = $bind(this,this.updateSteamOrigins);
flixel_FlxG.signals.preStateSwitch.add($bind(this,this.onStateSwitched));
};
$hxClasses["flixel.input.actions.FlxActionManager"] = flixel_input_actions_FlxActionManager;
flixel_input_actions_FlxActionManager.__name__ = "flixel.input.actions.FlxActionManager";
flixel_input_actions_FlxActionManager.__interfaces__ = [flixel_util_IFlxDestroyable,flixel_input_IFlxInputManager];
flixel_input_actions_FlxActionManager.prototype = {
sets: null
,register: null
,defaultSet: null
,deviceDisconnected: null
,deviceConnected: null
,inputsChanged: null
,resetOnStateSwitch: null
,activateSet: function(ActionSet,Device1,DeviceID) {
this.register.activate(ActionSet,Device1,DeviceID);
this.onChange();
}
,addActions: function(Actions,ActionSet) {
if(ActionSet == null) {
ActionSet = 0;
}
var success = true;
var _g = 0;
while(_g < Actions.length) {
var Action1 = Actions[_g];
++_g;
var result = this.addAction(Action1);
if(!result) {
success = false;
}
}
return success;
}
,addAction: function(Action1,ActionSet) {
if(ActionSet == null) {
ActionSet = 0;
}
var success = false;
if(this.sets == null) {
this.sets = [];
}
if(this.sets.length == 0) {
this.defaultSet = new flixel_input_actions_FlxActionSet("default");
var defaultSetIndex = this.addSet(this.defaultSet);
this.activateSet(defaultSetIndex,flixel_input_actions_FlxInputDevice.ALL,-1);
}
if(ActionSet >= 0 && ActionSet < this.sets.length) {
success = this.sets[ActionSet].add(Action1);
}
this.onChange();
return success;
}
,addSet: function(set) {
if(this.sets.indexOf(set) != -1) {
return -1;
}
this.sets.push(set);
this.onChange();
return this.sets.length - 1;
}
,deactivateSet: function(ActionSet,DeviceID) {
if(DeviceID == null) {
DeviceID = -1;
}
this.register.activate(ActionSet,flixel_input_actions_FlxInputDevice.NONE,DeviceID);
this.onChange();
}
,destroy: function() {
this.sets = flixel_util_FlxDestroyUtil.destroyArray(this.sets);
this.register = flixel_util_FlxDestroyUtil.destroy(this.register);
}
,getSetIndex: function(Name) {
var _g = 0;
var _g1 = this.sets.length;
while(_g < _g1) {
var i = _g++;
if(this.sets[i].name == Name) {
return i;
}
}
return -1;
}
,getSetName: function(Index) {
if(Index >= 0 && Index < this.sets.length) {
return this.sets[Index].name;
}
return "";
}
,getSet: function(Index) {
if(Index >= 0 && Index < this.sets.length) {
return this.sets[Index];
}
return null;
}
,getSetActivatedForDevice: function(device,deviceID) {
if(deviceID == null) {
deviceID = -1;
}
var id = -1;
var index = -1;
switch(device._hx_index) {
case 1:
index = this.register.mouseSet;
break;
case 3:
index = this.register.keyboardSet;
break;
case 4:
switch(deviceID) {
case -3:
index = -1;
break;
case -2:
id = flixel_FlxG.gamepads.getFirstActiveGamepadID();
break;
case -1:
index = this.register.gamepadAllSet;
break;
default:
if(this.register.gamepadAllSet != -1) {
index = this.register.gamepadAllSet;
} else {
id = deviceID;
}
}
if(id >= 0 && id < this.register.gamepadSets.length) {
index = this.register.gamepadSets[id];
}
break;
case 5:
switch(deviceID) {
case -3:
index = -1;
break;
case -1:
index = this.register.steamControllerAllSet;
break;
default:
if(this.register.steamControllerAllSet != -1) {
index = this.register.steamControllerAllSet;
} else {
id = deviceID;
}
}
if(id >= 0 && id < this.register.steamControllerSets.length) {
index = this.register.steamControllerSets[id];
}
break;
case 8:
if(deviceID == -1) {
index = this.register.gamepadAllSet;
}
break;
default:
index = -1;
}
if(index >= 0 && index < this.sets.length) {
return this.sets[index];
}
return null;
}
,initFromJson: function(data,CallbackDigital,CallbackAnalog) {
if(data == null) {
return 0;
}
var i = 0;
var actionSets = data.actionSets;
if(actionSets == null) {
return 0;
}
var _g = 0;
while(_g < actionSets.length) {
var set = actionSets[_g];
++_g;
if(this.addSet(flixel_input_actions_FlxActionSet.fromJson(set,CallbackDigital,CallbackAnalog)) != -1) {
++i;
}
}
this.onChange();
return i;
}
,exportToJson: function() {
var space = "\t";
return JSON.stringify({ "actionSets" : this.sets},function(key,value) {
if(((value) instanceof flixel_input_actions_FlxAction)) {
var fa = value;
return fa.name;
}
if(((value) instanceof flixel_input_actions_FlxActionSet)) {
var fas = value;
return { "name" : fas.name, "digitalActions" : fas.digitalActions, "analogActions" : fas.analogActions};
}
return value;
},space);
}
,removeSet: function(Set,Destroy) {
if(Destroy == null) {
Destroy = true;
}
var success = HxOverrides.remove(this.sets,Set);
if(success) {
if(Destroy) {
flixel_util_FlxDestroyUtil.destroy(Set);
}
this.onChange();
}
return success;
}
,removeAction: function(Action1,ActionSet) {
var success = false;
if(ActionSet >= 0 && ActionSet < this.sets.length) {
success = this.sets[ActionSet].remove(Action1);
}
this.onChange();
return success;
}
,reset: function() {
}
,get_numSets: function() {
return this.sets.length;
}
,onChange: function() {
this.register.markActiveSets(this.sets);
}
,onDeviceConnected: function(gamepad) {
this.deviceConnected.dispatch(flixel_input_actions_FlxInputDevice.GAMEPAD,gamepad.id,Std.string(gamepad.model).toLowerCase());
}
,onDeviceDisconnected: function(gamepad) {
if(gamepad != null) {
var actionSet = this.getSetActivatedForDevice(flixel_input_actions_FlxInputDevice.GAMEPAD,gamepad.id);
if(actionSet != null && actionSet.active) {
var id = gamepad.id;
var model = gamepad.model != null ? Std.string(gamepad.model).toLowerCase() : "";
this.deviceDisconnected.dispatch(flixel_input_actions_FlxInputDevice.GAMEPAD,id,model);
}
}
}
,onFocus: function() {
}
,onFocusLost: function() {
}
,onStateSwitched: function() {
switch(this.resetOnStateSwitch._hx_index) {
case 1:
while(this.sets.length > 0) this.removeSet(this.getSet(0),true);
this.defaultSet = null;
break;
case 2:
if(this.defaultSet != null) {
this.removeSet(this.defaultSet,true);
}
this.defaultSet = null;
break;
default:
}
}
,onSteamConnected: function(handle) {
var allSetIndex = this.register.steamControllerAllSet;
if(allSetIndex != -1) {
this.activateSet(allSetIndex,flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,-1);
} else {
var actionSet = this.getSetActivatedForDevice(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle);
if(actionSet != null && actionSet.active) {
this.activateSet(this.getSetIndex(actionSet.name),flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle);
}
}
this.deviceConnected.dispatch(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle,"");
}
,onSteamDisconnected: function(handle) {
if(handle >= 0) {
var actionSet = this.getSetActivatedForDevice(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle);
if(actionSet != null && actionSet.active) {
this.deviceDisconnected.dispatch(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle,"");
}
}
}
,updateSteamControllers: function() {
}
,updateSteamOrigins: function() {
}
,update: function() {
this.register.update(this.sets);
}
,__class__: flixel_input_actions_FlxActionManager
,__properties__: {get_numSets:"get_numSets"}
};
var flixel_input_actions__$FlxActionManager_ActionSetRegister = function() {
this.steamControllerAllSet = -1;
this.gamepadAllSet = -1;
this.keyboardSet = -1;
this.mouseSet = -1;
flixel_input_actions_FlxSteamController.init();
this.gamepadSets = [];
this.steamControllerSets = [];
};
$hxClasses["flixel.input.actions._FlxActionManager.ActionSetRegister"] = flixel_input_actions__$FlxActionManager_ActionSetRegister;
flixel_input_actions__$FlxActionManager_ActionSetRegister.__name__ = "flixel.input.actions._FlxActionManager.ActionSetRegister";
flixel_input_actions__$FlxActionManager_ActionSetRegister.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_input_actions__$FlxActionManager_ActionSetRegister.prototype = {
mouseSet: null
,keyboardSet: null
,gamepadAllSet: null
,steamControllerAllSet: null
,gamepadSets: null
,steamControllerSets: null
,destroy: function() {
this.gamepadSets = null;
this.steamControllerSets = null;
}
,activate: function(ActionSet,Device1,DeviceID) {
if(DeviceID == null) {
DeviceID = -2;
}
this.setActivate(ActionSet,Device1,DeviceID);
}
,markActiveSets: function(sets) {
var _g = 0;
var _g1 = sets.length;
while(_g < _g1) {
var i = _g++;
sets[i].active = false;
}
this.syncDevice(flixel_input_actions_FlxInputDevice.MOUSE,sets);
this.syncDevice(flixel_input_actions_FlxInputDevice.KEYBOARD,sets);
this.syncDevice(flixel_input_actions_FlxInputDevice.GAMEPAD,sets);
this.syncDevice(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,sets);
}
,update: function(sets) {
var _g = 0;
var _g1 = sets.length;
while(_g < _g1) {
var i = _g++;
sets[i].update();
}
}
,updateSteam: function(sets) {
}
,setActivate: function(ActionSet,Device1,DeviceID,DoActivate) {
if(DoActivate == null) {
DoActivate = true;
}
if(DeviceID == null) {
DeviceID = -2;
}
switch(Device1._hx_index) {
case 1:
this.mouseSet = DoActivate ? ActionSet : -1;
break;
case 3:
this.keyboardSet = DoActivate ? ActionSet : -1;
break;
case 4:
switch(DeviceID) {
case -3:
this.clearSetFromArray(ActionSet,this.gamepadSets);
break;
case -2:
this.gamepadSets[flixel_FlxG.gamepads.getFirstActiveGamepadID()] = DoActivate ? ActionSet : -1;
break;
case -1:
this.clearSetFromArray(-1,this.gamepadSets);
this.gamepadAllSet = DoActivate ? ActionSet : -1;
break;
default:
this.gamepadSets[DeviceID] = DoActivate ? ActionSet : -1;
}
break;
case 5:
switch(DeviceID) {
case -3:
this.clearSetFromArray(ActionSet,this.steamControllerSets);
break;
case -2:
this.steamControllerSets[flixel_input_actions_FlxSteamController.getFirstActiveHandle()] = DoActivate ? ActionSet : -1;
break;
case -1:
this.steamControllerAllSet = DoActivate ? ActionSet : -1;
this.clearSetFromArray(-1,this.steamControllerSets);
break;
default:
this.steamControllerSets[DeviceID] = DoActivate ? ActionSet : -1;
}
break;
case 8:
this.setActivate(ActionSet,flixel_input_actions_FlxInputDevice.MOUSE,DeviceID,DoActivate);
this.setActivate(ActionSet,flixel_input_actions_FlxInputDevice.KEYBOARD,DeviceID,DoActivate);
this.setActivate(ActionSet,flixel_input_actions_FlxInputDevice.GAMEPAD,DeviceID,DoActivate);
break;
case 9:
this.setActivate(ActionSet,flixel_input_actions_FlxInputDevice.ALL,DeviceID,false);
break;
default:
}
}
,updateSteamOrigins: function(sets) {
return [];
}
,updateDigitalActionOrigins: function(action,deviceID,setHandle) {
}
,updateAnalogActionOrigins: function(action,deviceID,setHandle) {
}
,cheapChecksum: function(arr) {
var sum1 = 0;
var sum2 = 0;
if(arr != null) {
var _g = 0;
while(_g < arr.length) {
var n = arr[_g];
++_g;
sum1 = (sum1 + n) % 255;
sum2 = (sum2 + sum1) % 255;
}
}
return sum2 << 8 | sum1;
}
,updateSteamInputs: function(sets) {
}
,changeSteamControllerActionSet: function(controllerHandle,newSet,sets) {
var lastSet = flixel_input_actions_FlxSteamController.getCurrentActionSet(controllerHandle);
if(lastSet == newSet) {
return;
}
if(sets == null) {
return;
}
if(lastSet != -1) {
if(lastSet < sets.length) {
sets[lastSet].attachSteamController(controllerHandle,false);
}
}
sets[newSet].attachSteamController(controllerHandle);
}
,syncDevice: function(device,sets) {
switch(device._hx_index) {
case 1:
if(this.mouseSet >= 0 && this.mouseSet < sets.length) {
sets[this.mouseSet].active = true;
}
break;
case 3:
if(this.keyboardSet >= 0 && this.keyboardSet < sets.length) {
sets[this.keyboardSet].active = true;
}
break;
case 4:
if(this.gamepadAllSet >= 0 && this.gamepadAllSet < sets.length) {
sets[this.gamepadAllSet].active = true;
} else {
var _g = 0;
var _g1 = this.gamepadSets.length;
while(_g < _g1) {
var i = _g++;
var gset = this.gamepadSets[i];
if(gset >= 0 && gset < sets.length) {
sets[gset].active = true;
}
}
}
break;
case 5:
this.updateSteamInputs(sets);
if(this.steamControllerAllSet >= 0 && this.steamControllerAllSet < sets.length) {
sets[this.steamControllerAllSet].active = true;
} else {
var _g = 0;
var _g1 = this.steamControllerSets.length;
while(_g < _g1) {
var i = _g++;
var sset = this.steamControllerSets[i];
if(sset >= 0 && sset < sets.length) {
sets[sset].active = true;
}
}
}
break;
default:
}
}
,clearSetFromArray: function(ActionSet,array) {
if(ActionSet == null) {
ActionSet = -1;
}
var _g = 0;
var _g1 = array.length;
while(_g < _g1) {
var i = _g++;
if(ActionSet == -1 || array[i] == ActionSet) {
array[i] = -1;
}
}
}
,__class__: flixel_input_actions__$FlxActionManager_ActionSetRegister
};
var flixel_input_actions_ResetPolicy = $hxEnums["flixel.input.actions.ResetPolicy"] = { __ename__ : "flixel.input.actions.ResetPolicy", __constructs__ : ["NONE","ALL_SETS","DEFAULT_SET_ONLY"]
,NONE: {_hx_index:0,__enum__:"flixel.input.actions.ResetPolicy",toString:$estr}
,ALL_SETS: {_hx_index:1,__enum__:"flixel.input.actions.ResetPolicy",toString:$estr}
,DEFAULT_SET_ONLY: {_hx_index:2,__enum__:"flixel.input.actions.ResetPolicy",toString:$estr}
};
var flixel_input_actions_FlxSteamController = function() { };
$hxClasses["flixel.input.actions.FlxSteamController"] = flixel_input_actions_FlxSteamController;
flixel_input_actions_FlxSteamController.__name__ = "flixel.input.actions.FlxSteamController";
flixel_input_actions_FlxSteamController.__properties__ = {get_MAX_ORIGINS:"get_MAX_ORIGINS",get_MAX_CONTROLLERS:"get_MAX_CONTROLLERS"};
flixel_input_actions_FlxSteamController.controllers = null;
flixel_input_actions_FlxSteamController.get_MAX_CONTROLLERS = function() {
return 0;
};
flixel_input_actions_FlxSteamController.get_MAX_ORIGINS = function() {
return 0;
};
flixel_input_actions_FlxSteamController.clear = function() {
};
flixel_input_actions_FlxSteamController.init = function() {
flixel_input_actions_FlxSteamController.controllers = [];
};
flixel_input_actions_FlxSteamController.getActionSetHandle = function(name) {
return -1;
};
flixel_input_actions_FlxSteamController.getCurrentActionSet = function(SteamControllerHandle) {
return -1;
};
flixel_input_actions_FlxSteamController.activateActionSet = function(SteamControllerHandle,ActionSetHandle) {
};
flixel_input_actions_FlxSteamController.getFirstActiveHandle = function() {
return -1;
};
flixel_input_actions_FlxSteamController.getConnectedControllers = function() {
return [];
};
flixel_input_actions_FlxSteamController.getAnalogActionData = function(controller,action,data) {
return null;
};
flixel_input_actions_FlxSteamController.getDigitalActionData = function(controller,action) {
return new flixel_input_actions__$FlxSteamController_DigitalActionData(false,false);
};
flixel_input_actions_FlxSteamController.getAnalogActionHandle = function(name) {
return -1;
};
flixel_input_actions_FlxSteamController.getDigitalActionHandle = function(name) {
return -1;
};
var flixel_input_actions__$FlxSteamController_DigitalActionData = function(bActive,bState) {
this.bActive = bActive;
this.bState = bState;
};
$hxClasses["flixel.input.actions._FlxSteamController.DigitalActionData"] = flixel_input_actions__$FlxSteamController_DigitalActionData;
flixel_input_actions__$FlxSteamController_DigitalActionData.__name__ = "flixel.input.actions._FlxSteamController.DigitalActionData";
flixel_input_actions__$FlxSteamController_DigitalActionData.prototype = {
bActive: null
,bState: null
,__class__: flixel_input_actions__$FlxSteamController_DigitalActionData
};
var flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata = function() {
this.connected = new flixel_input_FlxInput(0);
this.active = false;
this.actionSet = -1;
this.handle = -1;
};
$hxClasses["flixel.input.actions._FlxSteamController.FlxSteamControllerMetadata"] = flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata;
flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata.__name__ = "flixel.input.actions._FlxSteamController.FlxSteamControllerMetadata";
flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata.prototype = {
handle: null
,actionSet: null
,active: null
,connected: null
,__class__: flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata
};
var flixel_input_actions__$FlxSteamController_FlxSteamUpdater = function() {
this.originTime = 0.0;
this.controllerTime = 0.0;
};
$hxClasses["flixel.input.actions._FlxSteamController.FlxSteamUpdater"] = flixel_input_actions__$FlxSteamController_FlxSteamUpdater;
flixel_input_actions__$FlxSteamController_FlxSteamUpdater.__name__ = "flixel.input.actions._FlxSteamController.FlxSteamUpdater";
flixel_input_actions__$FlxSteamController_FlxSteamUpdater.__interfaces__ = [flixel_input_IFlxInputManager];
flixel_input_actions__$FlxSteamController_FlxSteamUpdater.prototype = {
controllerTime: null
,originTime: null
,destroy: function() {
}
,reset: function() {
}
,update: function() {
}
,onFocus: function() {
}
,onFocusLost: function() {
}
,__class__: flixel_input_actions__$FlxSteamController_FlxSteamUpdater
};
var flixel_input_gamepad_FlxGamepad = function(ID,Manager,Model,Attachment) {
this.buttons = [];
this._deadZone = 0.15;
this.axisActive = false;
var _g = [];
_g.push(0);
_g.push(0);
_g.push(0);
_g.push(0);
_g.push(0);
_g.push(0);
this.axis = _g;
this.deadZoneMode = flixel_input_gamepad_FlxGamepadDeadZoneMode.INDEPENDENT_AXES;
this.connected = true;
this.id = ID;
this.manager = Manager;
this.pressed = new flixel_input_gamepad_lists_FlxGamepadButtonList(1,this);
this.released = new flixel_input_gamepad_lists_FlxGamepadButtonList(0,this);
this.justPressed = new flixel_input_gamepad_lists_FlxGamepadButtonList(2,this);
this.justReleased = new flixel_input_gamepad_lists_FlxGamepadButtonList(-1,this);
this.analog = new flixel_input_gamepad_lists_FlxGamepadAnalogList(this);
this.motion = new flixel_input_gamepad_lists_FlxGamepadMotionValueList(this);
this.pointer = new flixel_input_gamepad_lists_FlxGamepadPointerValueList(this);
if(Model == null) {
Model = flixel_input_gamepad_FlxGamepadModel.XINPUT;
}
if(Attachment == null) {
Attachment = flixel_input_gamepad_FlxGamepadAttachment.NONE;
}
this.set_model(Model);
this.detectedModel = Model;
};
$hxClasses["flixel.input.gamepad.FlxGamepad"] = flixel_input_gamepad_FlxGamepad;
flixel_input_gamepad_FlxGamepad.__name__ = "flixel.input.gamepad.FlxGamepad";
flixel_input_gamepad_FlxGamepad.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_input_gamepad_FlxGamepad.prototype = {
id: null
,model: null
,detectedModel: null
,mapping: null
,connected: null
,attachment: null
,deadZoneMode: null
,pressed: null
,released: null
,justPressed: null
,justReleased: null
,analog: null
,motion: null
,pointer: null
,axis: null
,axisActive: null
,manager: null
,_deadZone: null
,_device: null
,buttons: null
,getButton: function(RawID) {
if(RawID == -1) {
return null;
}
var gamepadButton = this.buttons[RawID];
if(gamepadButton == null) {
gamepadButton = new flixel_input_gamepad_FlxGamepadButton(RawID);
this.buttons[RawID] = gamepadButton;
}
return gamepadButton;
}
,applyAxisFlip: function(axisValue,axisID) {
if(this.mapping.isAxisFlipped(axisID)) {
axisValue *= -1;
}
return axisValue;
}
,update: function() {
var control;
var button;
if(this._device == null) {
return;
}
var _g = 0;
var _g1 = this._device.get_numControls();
while(_g < _g1) {
var i = _g++;
control = this._device.getControlAt(i);
button = this.getButton(i);
if(this.isAxisForAnalogStick(i)) {
this.handleAxisMove(i,control.value,button.value);
}
button.value = control.value;
var value = Math.abs(control.value);
if(value < this.get_deadZone()) {
button.release();
} else if(value > this.get_deadZone()) {
button.press();
}
}
var _g = 0;
var _g1 = this.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
if(button != null) {
button.update();
}
}
}
,reset: function() {
var _g = 0;
var _g1 = this.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
if(button != null) {
button.reset();
}
}
var numAxis = this.axis.length;
var _g = 0;
var _g1 = numAxis;
while(_g < _g1) {
var i = _g++;
this.axis[i] = 0;
}
}
,destroy: function() {
this.connected = false;
this.buttons = null;
this.axis = null;
this.manager = null;
}
,checkStatus: function(ID,Status) {
switch(ID) {
case -2:
return this.anyButton(Status);
case -1:
return !this.anyButton(Status);
default:
var RawID = this.mapping.getRawID(ID);
var button = this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,checkStatusRaw: function(RawID,Status) {
var button = this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
,checkButtonArrayState: function(IDArray,Status) {
if(IDArray == null) {
return false;
}
var _g = 0;
while(_g < IDArray.length) {
var code = IDArray[_g];
++_g;
var tmp;
switch(code) {
case -2:
tmp = this.anyButton(Status);
break;
case -1:
tmp = !this.anyButton(Status);
break;
default:
var RawID = this.mapping.getRawID(code);
var button = this.buttons[RawID];
tmp = button != null && button.hasState(Status);
}
if(tmp) {
return true;
}
}
return false;
}
,checkButtonArrayStateRaw: function(IDArray,Status) {
if(IDArray == null) {
return false;
}
var _g = 0;
while(_g < IDArray.length) {
var code = IDArray[_g];
++_g;
var button = this.buttons[code];
if(button != null && button.hasState(Status)) {
return true;
}
}
return false;
}
,anyPressed: function(IDArray) {
return this.checkButtonArrayState(IDArray,1);
}
,anyPressedRaw: function(RawIDArray) {
return this.checkButtonArrayStateRaw(RawIDArray,1);
}
,anyJustPressed: function(IDArray) {
return this.checkButtonArrayState(IDArray,2);
}
,anyJustPressedRaw: function(RawIDArray) {
return this.checkButtonArrayStateRaw(RawIDArray,2);
}
,anyJustReleased: function(IDArray) {
return this.checkButtonArrayState(IDArray,-1);
}
,anyJustReleasedRaw: function(RawIDArray) {
return this.checkButtonArrayStateRaw(RawIDArray,-1);
}
,firstPressedID: function() {
return this.mapping.getID(this.firstPressedRawID());
}
,firstPressedRawID: function() {
var _g = 0;
var _g1 = this.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
if(button != null && (button.current == 0 || button.current == -1)) {
return button.ID;
}
}
return -1;
}
,firstJustPressedID: function() {
return this.mapping.getID(this.firstJustPressedRawID());
}
,firstJustPressedRawID: function() {
var _g = 0;
var _g1 = this.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
if(button != null && button.current == 2) {
return button.ID;
}
}
return -1;
}
,firstJustReleasedID: function() {
return this.mapping.getID(this.firstJustReleasedRawID());
}
,firstJustReleasedRawID: function() {
var _g = 0;
var _g1 = this.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
if(button != null && button.current == -1) {
return button.ID;
}
}
return -1;
}
,getAxis: function(AxisButtonID) {
var axisValue = this.getAxisValue(this.mapping.getRawID(AxisButtonID));
if(Math.abs(axisValue) > this.get_deadZone()) {
return axisValue;
} else {
return 0;
}
}
,getAxisRaw: function(RawAxisID) {
var axisValue = this.getAxisValue(RawAxisID);
if(Math.abs(axisValue) > this.get_deadZone()) {
return axisValue;
}
return 0;
}
,isAxisForAnalogStick: function(AxisIndex) {
var leftStick = this.mapping.leftStick;
var rightStick = this.mapping.rightStick;
if(leftStick != null) {
if(AxisIndex == leftStick.x || AxisIndex == leftStick.y) {
return true;
}
}
if(rightStick != null) {
if(AxisIndex == rightStick.x || AxisIndex == rightStick.y) {
return true;
}
}
return false;
}
,getAnalogStickByAxis: function(AxisIndex) {
var leftStick = this.mapping.leftStick;
var rightStick = this.mapping.rightStick;
if(leftStick != null && AxisIndex == leftStick.x || AxisIndex == leftStick.y) {
return leftStick;
}
if(rightStick != null && AxisIndex == rightStick.x || AxisIndex == rightStick.y) {
return rightStick;
}
return null;
}
,getXAxis: function(AxesButtonID) {
return this.getAnalogXAxisValue(this.mapping.getAnalogStick(AxesButtonID));
}
,getXAxisRaw: function(Stick) {
return this.getAnalogXAxisValue(Stick);
}
,getYAxis: function(AxesButtonID) {
return this.getYAxisRaw(this.mapping.getAnalogStick(AxesButtonID));
}
,getYAxisRaw: function(Stick) {
return this.getAnalogYAxisValue(Stick);
}
,getAnalogAxes: function(AxesButtonID) {
var x = this.getAnalogXAxisValue(this.mapping.getAnalogStick(AxesButtonID));
var y = this.getYAxisRaw(this.mapping.getAnalogStick(AxesButtonID));
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
return point;
}
,anyButton: function(state) {
if(state == null) {
state = 1;
}
var _g = 0;
var _g1 = this.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
if(button != null && button.hasState(state)) {
return true;
}
}
return false;
}
,anyInput: function() {
if(this.anyButton()) {
return true;
}
var numAxis = this.axis.length;
var _g = 0;
var _g1 = numAxis;
while(_g < _g1) {
var i = _g++;
if(this.axis[0] != 0) {
return true;
}
}
return false;
}
,getAxisValue: function(AxisID) {
var axisValue = 0;
if(AxisID == -1) {
return 0;
}
var tmp;
if(this._device != null && this._device.enabled) {
var Max = this._device.get_numControls() - 1;
tmp = AxisID >= 0 && (Max == null || AxisID <= Max);
} else {
tmp = false;
}
if(tmp) {
axisValue = this._device.getControlAt(AxisID).value;
}
if(this.isAxisForAnalogStick(AxisID)) {
var axisValue1 = axisValue;
if(this.mapping.isAxisFlipped(AxisID)) {
axisValue1 *= -1;
}
axisValue = axisValue1;
}
return axisValue;
}
,getAnalogXAxisValue: function(stick) {
if(stick == null) {
return 0;
}
if(this.deadZoneMode == flixel_input_gamepad_FlxGamepadDeadZoneMode.CIRCULAR) {
return this.getAnalogAxisValueCircular(stick,stick.x);
} else {
return this.getAnalogAxisValueIndependent(stick.x);
}
}
,getAnalogYAxisValue: function(stick) {
if(stick == null) {
return 0;
}
if(this.deadZoneMode == flixel_input_gamepad_FlxGamepadDeadZoneMode.CIRCULAR) {
return this.getAnalogAxisValueCircular(stick,stick.y);
} else {
return this.getAnalogAxisValueIndependent(stick.y);
}
}
,getAnalogAxisValueCircular: function(stick,axisID) {
if(stick == null) {
return 0;
}
var xAxis = this.getAxisValue(stick.x);
var yAxis = this.getAxisValue(stick.y);
var x = xAxis;
var y = yAxis;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var vector = point;
var length = Math.sqrt(vector.x * vector.x + vector.y * vector.y);
vector.put();
if(length > this.get_deadZone()) {
return this.getAxisValue(axisID);
}
return 0;
}
,getAnalogAxisValueIndependent: function(axisID) {
var axisValue = this.getAxisValue(axisID);
if(Math.abs(axisValue) > this.get_deadZone()) {
return axisValue;
}
return 0;
}
,handleAxisMove: function(axis,newValue,oldValue) {
var axisValue = newValue;
if(this.mapping.isAxisFlipped(axis)) {
axisValue *= -1;
}
newValue = axisValue;
var axisValue = oldValue;
if(this.mapping.isAxisFlipped(axis)) {
axisValue *= -1;
}
oldValue = axisValue;
var leftStick = this.mapping.leftStick;
var rightStick = this.mapping.rightStick;
var stick = leftStick != null && axis == leftStick.x || axis == leftStick.y ? leftStick : rightStick != null && axis == rightStick.x || axis == rightStick.y ? rightStick : null;
if(stick.mode == flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL || stick.mode == flixel_input_gamepad_FlxAnalogToDigitalMode.BOTH) {
this.handleAxisMoveSub(stick,axis,newValue,oldValue,1.0);
this.handleAxisMoveSub(stick,axis,newValue,oldValue,-1.0);
var tmp = stick.mode == flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL;
}
}
,handleAxisMoveSub: function(stick,axis,value,oldValue,sign) {
if(sign == null) {
sign = 1.0;
}
var digitalButton = -1;
if(axis == stick.x) {
digitalButton = sign < 0 ? stick.rawLeft : stick.rawRight;
} else if(axis == stick.y) {
digitalButton = sign < 0 ? stick.rawUp : stick.rawDown;
}
var threshold = stick.digitalThreshold;
var valueSign = value * sign;
var oldValueSign = oldValue * sign;
if(valueSign > threshold && oldValueSign <= threshold) {
var btn = this.getButton(digitalButton);
if(btn != null) {
btn.press();
}
} else if(valueSign <= threshold && oldValueSign > threshold) {
var btn = this.getButton(digitalButton);
if(btn != null) {
btn.release();
}
}
}
,createMappingForModel: function(model) {
switch(model._hx_index) {
case 0:
return new flixel_input_gamepad_mappings_LogitechMapping(this.attachment);
case 1:
return new flixel_input_gamepad_mappings_OUYAMapping(this.attachment);
case 2:
return new flixel_input_gamepad_mappings_PS4Mapping(this.attachment);
case 3:
return new flixel_input_gamepad_mappings_PSVitaMapping(this.attachment);
case 4:
return new flixel_input_gamepad_mappings_XInputMapping(this.attachment);
case 5:
return new flixel_input_gamepad_mappings_MayflashWiiRemoteMapping(this.attachment);
case 6:
return new flixel_input_gamepad_mappings_WiiRemoteMapping(this.attachment);
case 7:
return new flixel_input_gamepad_mappings_MFiMapping(this.attachment);
case 8:
return new flixel_input_gamepad_mappings_SwitchProMapping(this.attachment);
case 9:
return new flixel_input_gamepad_mappings_SwitchJoyconLeftMapping(this.attachment);
case 10:
return new flixel_input_gamepad_mappings_SwitchJoyconRightMapping(this.attachment);
default:
return new flixel_input_gamepad_mappings_XInputMapping(this.attachment);
}
}
,get_name: function() {
if(this._device == null) {
return null;
}
return this._device.name;
}
,set_model: function(Model) {
this.model = Model;
this.mapping = this.createMappingForModel(this.model);
return this.model;
}
,set_attachment: function(Attachment) {
this.attachment = Attachment;
this.mapping.set_attachment(Attachment);
return this.attachment;
}
,get_deadZone: function() {
if(this.manager == null || this.manager.globalDeadZone == null) {
return this._deadZone;
} else {
return this.manager.globalDeadZone;
}
}
,set_deadZone: function(deadZone) {
return this._deadZone = deadZone;
}
,getInputLabel: function(id) {
return this.mapping.getInputLabel(id);
}
,toString: function() {
var value = this.id;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "id";
_this.value = value;
var value = this.model;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "model";
_this1.value = value;
var value = this.get_deadZone();
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "deadZone";
_this2.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2]);
}
,__class__: flixel_input_gamepad_FlxGamepad
,__properties__: {set_deadZone:"set_deadZone",get_deadZone:"get_deadZone",set_attachment:"set_attachment",set_model:"set_model",get_name:"get_name"}
};
var flixel_input_gamepad_FlxGamepadDeadZoneMode = $hxEnums["flixel.input.gamepad.FlxGamepadDeadZoneMode"] = { __ename__ : "flixel.input.gamepad.FlxGamepadDeadZoneMode", __constructs__ : ["INDEPENDENT_AXES","CIRCULAR"]
,INDEPENDENT_AXES: {_hx_index:0,__enum__:"flixel.input.gamepad.FlxGamepadDeadZoneMode",toString:$estr}
,CIRCULAR: {_hx_index:1,__enum__:"flixel.input.gamepad.FlxGamepadDeadZoneMode",toString:$estr}
};
var flixel_input_gamepad_FlxGamepadModel = $hxEnums["flixel.input.gamepad.FlxGamepadModel"] = { __ename__ : "flixel.input.gamepad.FlxGamepadModel", __constructs__ : ["LOGITECH","OUYA","PS4","PSVITA","XINPUT","MAYFLASH_WII_REMOTE","WII_REMOTE","MFI","SWITCH_PRO","SWITCH_JOYCON_LEFT","SWITCH_JOYCON_RIGHT","UNKNOWN"]
,LOGITECH: {_hx_index:0,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,OUYA: {_hx_index:1,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,PS4: {_hx_index:2,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,PSVITA: {_hx_index:3,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,XINPUT: {_hx_index:4,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,MAYFLASH_WII_REMOTE: {_hx_index:5,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,WII_REMOTE: {_hx_index:6,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,MFI: {_hx_index:7,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,SWITCH_PRO: {_hx_index:8,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,SWITCH_JOYCON_LEFT: {_hx_index:9,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,SWITCH_JOYCON_RIGHT: {_hx_index:10,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
,UNKNOWN: {_hx_index:11,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr}
};
var flixel_input_gamepad_FlxGamepadAttachment = $hxEnums["flixel.input.gamepad.FlxGamepadAttachment"] = { __ename__ : "flixel.input.gamepad.FlxGamepadAttachment", __constructs__ : ["WII_NUNCHUCK","WII_CLASSIC_CONTROLLER","NONE"]
,WII_NUNCHUCK: {_hx_index:0,__enum__:"flixel.input.gamepad.FlxGamepadAttachment",toString:$estr}
,WII_CLASSIC_CONTROLLER: {_hx_index:1,__enum__:"flixel.input.gamepad.FlxGamepadAttachment",toString:$estr}
,NONE: {_hx_index:2,__enum__:"flixel.input.gamepad.FlxGamepadAttachment",toString:$estr}
};
var flixel_input_gamepad_FlxGamepadAnalogStick = function(x,y,settings) {
this.mode = flixel_input_gamepad_FlxAnalogToDigitalMode.BOTH;
this.digitalThreshold = 0.5;
this.rawRight = -1;
this.rawLeft = -1;
this.rawDown = -1;
this.rawUp = -1;
this.x = x;
this.y = y;
if(settings == null) {
return;
}
this.mode = settings.mode != null ? settings.mode : flixel_input_gamepad_FlxAnalogToDigitalMode.BOTH;
this.rawUp = settings.up != null ? settings.up : -1;
this.rawDown = settings.down != null ? settings.down : -1;
this.rawLeft = settings.left != null ? settings.left : -1;
this.rawRight = settings.right != null ? settings.right : -1;
this.digitalThreshold = settings.threshold != null ? settings.threshold : 0.5;
};
$hxClasses["flixel.input.gamepad.FlxGamepadAnalogStick"] = flixel_input_gamepad_FlxGamepadAnalogStick;
flixel_input_gamepad_FlxGamepadAnalogStick.__name__ = "flixel.input.gamepad.FlxGamepadAnalogStick";
flixel_input_gamepad_FlxGamepadAnalogStick.prototype = {
x: null
,y: null
,rawUp: null
,rawDown: null
,rawLeft: null
,rawRight: null
,digitalThreshold: null
,mode: null
,toString: function() {
var value = this.x;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "x";
_this.value = value;
var value = this.y;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "y";
_this1.value = value;
var value = this.rawUp;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "rawUp";
_this2.value = value;
var value = this.rawDown;
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "rawDown";
_this3.value = value;
var value = this.rawLeft;
var _this4 = flixel_util_LabelValuePair._pool.get();
_this4.label = "rawLeft";
_this4.value = value;
var value = this.rawRight;
var _this5 = flixel_util_LabelValuePair._pool.get();
_this5.label = "rawRight";
_this5.value = value;
var value = this.digitalThreshold;
var _this6 = flixel_util_LabelValuePair._pool.get();
_this6.label = "digitalThreshold";
_this6.value = value;
var value = this.mode;
var _this7 = flixel_util_LabelValuePair._pool.get();
_this7.label = "mode";
_this7.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5,_this6,_this7]);
}
,__class__: flixel_input_gamepad_FlxGamepadAnalogStick
};
var flixel_input_gamepad_FlxAnalogToDigitalMode = $hxEnums["flixel.input.gamepad.FlxAnalogToDigitalMode"] = { __ename__ : "flixel.input.gamepad.FlxAnalogToDigitalMode", __constructs__ : ["BOTH","ONLY_DIGITAL","ONLY_ANALOG"]
,BOTH: {_hx_index:0,__enum__:"flixel.input.gamepad.FlxAnalogToDigitalMode",toString:$estr}
,ONLY_DIGITAL: {_hx_index:1,__enum__:"flixel.input.gamepad.FlxAnalogToDigitalMode",toString:$estr}
,ONLY_ANALOG: {_hx_index:2,__enum__:"flixel.input.gamepad.FlxAnalogToDigitalMode",toString:$estr}
};
var flixel_input_gamepad_FlxGamepadButton = function(ID) {
this.value = 0;
flixel_input_FlxInput.call(this,ID);
};
$hxClasses["flixel.input.gamepad.FlxGamepadButton"] = flixel_input_gamepad_FlxGamepadButton;
flixel_input_gamepad_FlxGamepadButton.__name__ = "flixel.input.gamepad.FlxGamepadButton";
flixel_input_gamepad_FlxGamepadButton.__super__ = flixel_input_FlxInput;
flixel_input_gamepad_FlxGamepadButton.prototype = $extend(flixel_input_FlxInput.prototype,{
value: null
,__class__: flixel_input_gamepad_FlxGamepadButton
});
var flixel_input_gamepad_FlxGamepadInputID = {};
flixel_input_gamepad_FlxGamepadInputID.fromString = function(s) {
s = s.toUpperCase();
if(Object.prototype.hasOwnProperty.call(flixel_input_gamepad_FlxGamepadInputID.fromStringMap.h,s)) {
return flixel_input_gamepad_FlxGamepadInputID.fromStringMap.h[s];
} else {
return -1;
}
};
flixel_input_gamepad_FlxGamepadInputID.toString = function(this1) {
return flixel_input_gamepad_FlxGamepadInputID.toStringMap.h[this1];
};
var openfl_ui_GameInput = function() {
openfl_events_EventDispatcher.call(this);
openfl_ui_GameInput.__instances.push(this);
};
$hxClasses["openfl.ui.GameInput"] = openfl_ui_GameInput;
openfl_ui_GameInput.__name__ = "openfl.ui.GameInput";
openfl_ui_GameInput.getDeviceAt = function(index) {
if(index >= 0 && index < openfl_ui_GameInput.__deviceList.length) {
return openfl_ui_GameInput.__deviceList[index];
}
return null;
};
openfl_ui_GameInput.__getDevice = function(gamepad) {
if(gamepad == null) {
return null;
}
if(openfl_ui_GameInput.__devices.h.__keys__[gamepad.__id__] == null) {
var devices = lime_ui_Joystick.__getDeviceData();
var device = devices[gamepad.id].id;
var devices = lime_ui_Joystick.__getDeviceData();
var device1 = new openfl_ui_GameInputDevice(device,devices[gamepad.id].id);
openfl_ui_GameInput.__deviceList.push(device1);
openfl_ui_GameInput.__devices.set(gamepad,device1);
openfl_ui_GameInput.numDevices = openfl_ui_GameInput.__deviceList.length;
}
return openfl_ui_GameInput.__devices.h[gamepad.__id__];
};
openfl_ui_GameInput.__onGamepadAxisMove = function(gamepad,axis,value) {
var device = openfl_ui_GameInput.__getDevice(gamepad);
if(device == null) {
return;
}
if(device.enabled) {
if(!device.__axis.h.hasOwnProperty(axis)) {
var control;
if(axis == null) {
control = "null";
} else {
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(device,"AXIS_" + control,-1,1);
device.__axis.h[axis] = control1;
device.__controls.push(control1);
}
var control = device.__axis.h[axis];
control.value = value;
control.dispatchEvent(new openfl_events_Event("change"));
}
};
openfl_ui_GameInput.__onGamepadButtonDown = function(gamepad,button) {
var device = openfl_ui_GameInput.__getDevice(gamepad);
if(device == null) {
return;
}
if(device.enabled) {
if(!device.__button.h.hasOwnProperty(button)) {
var control;
if(button == null) {
control = "null";
} else {
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(device,"BUTTON_" + control,0,1);
device.__button.h[button] = control1;
device.__controls.push(control1);
}
var control = device.__button.h[button];
control.value = 1;
control.dispatchEvent(new openfl_events_Event("change"));
}
};
openfl_ui_GameInput.__onGamepadButtonUp = function(gamepad,button) {
var device = openfl_ui_GameInput.__getDevice(gamepad);
if(device == null) {
return;
}
if(device.enabled) {
if(!device.__button.h.hasOwnProperty(button)) {
var control;
if(button == null) {
control = "null";
} else {
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(device,"BUTTON_" + control,0,1);
device.__button.h[button] = control1;
device.__controls.push(control1);
}
var control = device.__button.h[button];
control.value = 0;
control.dispatchEvent(new openfl_events_Event("change"));
}
};
openfl_ui_GameInput.__onGamepadConnect = function(gamepad) {
var device = openfl_ui_GameInput.__getDevice(gamepad);
if(device == null) {
return;
}
var _g = 0;
var _g1 = openfl_ui_GameInput.__instances;
while(_g < _g1.length) {
var instance = _g1[_g];
++_g;
instance.dispatchEvent(new openfl_events_GameInputEvent("deviceAdded",true,false,device));
}
};
openfl_ui_GameInput.__onGamepadDisconnect = function(gamepad) {
var device = openfl_ui_GameInput.__devices.h[gamepad.__id__];
if(device != null) {
if(openfl_ui_GameInput.__devices.h.__keys__[gamepad.__id__] != null) {
HxOverrides.remove(openfl_ui_GameInput.__deviceList,openfl_ui_GameInput.__devices.h[gamepad.__id__]);
openfl_ui_GameInput.__devices.remove(gamepad);
}
openfl_ui_GameInput.numDevices = openfl_ui_GameInput.__deviceList.length;
var _g = 0;
var _g1 = openfl_ui_GameInput.__instances;
while(_g < _g1.length) {
var instance = _g1[_g];
++_g;
instance.dispatchEvent(new openfl_events_GameInputEvent("deviceRemoved",true,false,device));
}
}
};
openfl_ui_GameInput.__super__ = openfl_events_EventDispatcher;
openfl_ui_GameInput.prototype = $extend(openfl_events_EventDispatcher.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.prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference);
if(type == "deviceAdded") {
var _g = 0;
var _g1 = openfl_ui_GameInput.__deviceList;
while(_g < _g1.length) {
var device = _g1[_g];
++_g;
this.dispatchEvent(new openfl_events_GameInputEvent("deviceAdded",true,false,device));
}
}
}
,__class__: openfl_ui_GameInput
});
var flixel_input_gamepad_FlxGamepadManager = function() {
this._activeGamepads = [];
this._gamepads = [];
this.deviceConnected = new flixel_util__$FlxSignal_FlxSignal1();
this.deviceDisconnected = new flixel_util__$FlxSignal_FlxSignal1();
flixel_input_gamepad_FlxGamepadManager._gameInput.addEventListener("deviceAdded",$bind(this,this.onDeviceAdded));
flixel_input_gamepad_FlxGamepadManager._gameInput.addEventListener("deviceRemoved",$bind(this,this.onDeviceRemoved));
var _g = 0;
var _g1 = openfl_ui_GameInput.numDevices;
while(_g < _g1) {
var i = _g++;
this.addGamepad(openfl_ui_GameInput.getDeviceAt(i));
}
};
$hxClasses["flixel.input.gamepad.FlxGamepadManager"] = flixel_input_gamepad_FlxGamepadManager;
flixel_input_gamepad_FlxGamepadManager.__name__ = "flixel.input.gamepad.FlxGamepadManager";
flixel_input_gamepad_FlxGamepadManager.__interfaces__ = [flixel_input_IFlxInputManager];
flixel_input_gamepad_FlxGamepadManager.prototype = {
firstActive: null
,lastActive: null
,globalDeadZone: null
,deviceConnected: null
,deviceDisconnected: null
,_gamepads: null
,_activeGamepads: null
,getByID: function(GamepadID) {
return this._activeGamepads[GamepadID];
}
,removeByID: function(GamepadID) {
var gamepad = this._gamepads[GamepadID];
if(gamepad != null) {
this._gamepads[GamepadID] = null;
var i = this._activeGamepads.indexOf(gamepad);
if(i != -1) {
this._activeGamepads[i] = null;
this.deviceDisconnected.dispatch(gamepad);
}
flixel_util_FlxDestroyUtil.destroy(gamepad);
}
if(this.lastActive == gamepad) {
this.lastActive = null;
}
if(this.firstActive == gamepad) {
this.firstActive = null;
}
}
,createByID: function(GamepadID,Model) {
var gamepad = this._gamepads[GamepadID];
if(gamepad == null) {
gamepad = new flixel_input_gamepad_FlxGamepad(GamepadID,this,Model);
this._gamepads[GamepadID] = gamepad;
var nullFound = false;
var _g = 0;
var _g1 = this._activeGamepads.length;
while(_g < _g1) {
var i = _g++;
if(this._activeGamepads[i] == null) {
this._activeGamepads[i] = gamepad;
nullFound = true;
break;
}
}
if(!nullFound) {
this._activeGamepads.push(gamepad);
}
}
this.lastActive = gamepad;
if(this.firstActive == null) {
this.firstActive = gamepad;
}
return gamepad;
}
,getActiveGamepadIDs: function(IDsArray) {
if(IDsArray == null) {
IDsArray = [];
}
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad != null && gamepad.anyInput()) {
IDsArray.push(gamepad.id);
}
}
return IDsArray;
}
,getActiveGamepads: function(GamepadArray) {
if(GamepadArray == null) {
GamepadArray = [];
}
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad != null && gamepad.anyInput()) {
GamepadArray.push(gamepad);
}
}
return GamepadArray;
}
,getFirstActiveGamepadID: function() {
var firstActive = this.getFirstActiveGamepad();
if(firstActive == null) {
return -1;
} else {
return firstActive.id;
}
}
,getFirstActiveGamepad: function() {
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad != null && gamepad.anyInput()) {
return gamepad;
}
}
return null;
}
,anyButton: function(state) {
if(state == null) {
state = 1;
}
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad != null && gamepad.anyButton(state)) {
return true;
}
}
return false;
}
,anyInput: function() {
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad != null && gamepad.anyInput()) {
return true;
}
}
return false;
}
,anyPressed: function(buttonID) {
return this.anyHasState(buttonID,1);
}
,anyJustPressed: function(buttonID) {
return this.anyHasState(buttonID,2);
}
,anyJustReleased: function(buttonID) {
return this.anyHasState(buttonID,-1);
}
,anyHasState: function(buttonID,state) {
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
var tmp;
if(gamepad != null) {
switch(buttonID) {
case -2:
tmp = gamepad.anyButton(state);
break;
case -1:
tmp = !gamepad.anyButton(state);
break;
default:
var RawID = gamepad.mapping.getRawID(buttonID);
var button = gamepad.buttons[RawID];
tmp = button != null && button.hasState(state);
}
} else {
tmp = false;
}
if(tmp) {
return true;
}
}
return false;
}
,anyMovedXAxis: function(RawAxisID) {
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad == null) {
continue;
}
var value = gamepad.getAnalogXAxisValue(RawAxisID);
if(value != 0) {
return value;
}
}
return 0;
}
,anyMovedYAxis: function(RawAxisID) {
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad == null) {
continue;
}
var value = gamepad.getYAxisRaw(RawAxisID);
if(value != 0) {
return value;
}
}
return 0;
}
,destroy: function() {
this._gamepads = flixel_util_FlxDestroyUtil.destroyArray(this._gamepads);
this.firstActive = null;
this.lastActive = null;
this._gamepads = null;
flixel_input_gamepad_FlxGamepadManager._gameInput.removeEventListener("deviceAdded",$bind(this,this.onDeviceAdded));
flixel_input_gamepad_FlxGamepadManager._gameInput.removeEventListener("deviceRemoved",$bind(this,this.onDeviceRemoved));
}
,reset: function() {
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad != null) {
gamepad.reset();
}
}
}
,onDeviceAdded: function(Event1) {
this.addGamepad(Event1.device);
}
,onDeviceRemoved: function(Event1) {
this.removeGamepad(Event1.device);
}
,findGamepadIndex: function(Device1) {
if(Device1 == null) {
return -1;
}
var _g = 0;
var _g1 = openfl_ui_GameInput.numDevices;
while(_g < _g1) {
var i = _g++;
if(openfl_ui_GameInput.getDeviceAt(i) == Device1) {
return i;
}
}
return -1;
}
,addGamepad: function(Device1) {
if(Device1 == null) {
return;
}
Device1.enabled = true;
var id = this.findGamepadIndex(Device1);
if(id < 0) {
return;
}
var gamepad = this.createByID(id,this.getModelFromDeviceName(Device1.name));
gamepad._device = Device1;
this.deviceConnected.dispatch(gamepad);
}
,getModelFromDeviceName: function(name) {
if(name == null) {
return flixel_input_gamepad_FlxGamepadModel.UNKNOWN;
}
name = StringTools.replace(StringTools.replace(name.toLowerCase(),"-",""),"_","");
if(name.indexOf("ouya") != -1) {
return flixel_input_gamepad_FlxGamepadModel.OUYA;
} else if(name.indexOf("wireless controller") != -1 || name.indexOf("ps4") != -1) {
return flixel_input_gamepad_FlxGamepadModel.PS4;
} else if(name.indexOf("logitech") != -1) {
return flixel_input_gamepad_FlxGamepadModel.LOGITECH;
} else if(name.indexOf("xbox") != -1 && name.indexOf("360") != -1 || name.indexOf("xinput") != -1) {
return flixel_input_gamepad_FlxGamepadModel.XINPUT;
} else if(name.indexOf("nintendo rvlcnt01tr") != -1) {
return flixel_input_gamepad_FlxGamepadModel.WII_REMOTE;
} else if(name.indexOf("nintendo rvlcnt01") != -1) {
return flixel_input_gamepad_FlxGamepadModel.WII_REMOTE;
} else if(name.indexOf("mayflash wiimote pc adapter") != -1) {
return flixel_input_gamepad_FlxGamepadModel.MAYFLASH_WII_REMOTE;
} else if(name.indexOf("pro controller") != -1 || name.indexOf("joycon l+r") != -1) {
return flixel_input_gamepad_FlxGamepadModel.SWITCH_PRO;
} else if(name.indexOf("joycon (l)") != -1) {
return flixel_input_gamepad_FlxGamepadModel.SWITCH_JOYCON_LEFT;
} else if(name.indexOf("joycon (r)") != -1) {
return flixel_input_gamepad_FlxGamepadModel.SWITCH_JOYCON_RIGHT;
} else if(name.indexOf("mfi") != -1) {
return flixel_input_gamepad_FlxGamepadModel.MFI;
} else {
return flixel_input_gamepad_FlxGamepadModel.UNKNOWN;
}
}
,removeGamepad: function(Device1) {
if(Device1 == null) {
return;
}
var _g = 0;
var _g1 = this._gamepads.length;
while(_g < _g1) {
var i = _g++;
var gamepad = this._gamepads[i];
if(gamepad != null && gamepad._device == Device1) {
this.removeByID(i);
}
}
}
,update: function() {
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad != null) {
gamepad.update();
}
}
}
,onFocus: function() {
}
,onFocusLost: function() {
this.reset();
}
,get_numActiveGamepads: function() {
var count = 0;
var _g = 0;
var _g1 = this._gamepads;
while(_g < _g1.length) {
var gamepad = _g1[_g];
++_g;
if(gamepad != null) {
++count;
}
}
return count;
}
,__class__: flixel_input_gamepad_FlxGamepadManager
,__properties__: {get_numActiveGamepads:"get_numActiveGamepads"}
};
var flixel_input_gamepad_id_LogitechID = function() { };
$hxClasses["flixel.input.gamepad.id.LogitechID"] = flixel_input_gamepad_id_LogitechID;
flixel_input_gamepad_id_LogitechID.__name__ = "flixel.input.gamepad.id.LogitechID";
var flixel_input_gamepad_id_MFiID = function() { };
$hxClasses["flixel.input.gamepad.id.MFiID"] = flixel_input_gamepad_id_MFiID;
flixel_input_gamepad_id_MFiID.__name__ = "flixel.input.gamepad.id.MFiID";
var flixel_input_gamepad_id_MayflashWiiRemoteID = function() { };
$hxClasses["flixel.input.gamepad.id.MayflashWiiRemoteID"] = flixel_input_gamepad_id_MayflashWiiRemoteID;
flixel_input_gamepad_id_MayflashWiiRemoteID.__name__ = "flixel.input.gamepad.id.MayflashWiiRemoteID";
var flixel_input_gamepad_id_OUYAID = function() { };
$hxClasses["flixel.input.gamepad.id.OUYAID"] = flixel_input_gamepad_id_OUYAID;
flixel_input_gamepad_id_OUYAID.__name__ = "flixel.input.gamepad.id.OUYAID";
var flixel_input_gamepad_id_PS4ID = function() { };
$hxClasses["flixel.input.gamepad.id.PS4ID"] = flixel_input_gamepad_id_PS4ID;
flixel_input_gamepad_id_PS4ID.__name__ = "flixel.input.gamepad.id.PS4ID";
var flixel_input_gamepad_id_PSVitaID = function() { };
$hxClasses["flixel.input.gamepad.id.PSVitaID"] = flixel_input_gamepad_id_PSVitaID;
flixel_input_gamepad_id_PSVitaID.__name__ = "flixel.input.gamepad.id.PSVitaID";
var flixel_input_gamepad_id_SwitchJoyconLeftID = function() { };
$hxClasses["flixel.input.gamepad.id.SwitchJoyconLeftID"] = flixel_input_gamepad_id_SwitchJoyconLeftID;
flixel_input_gamepad_id_SwitchJoyconLeftID.__name__ = "flixel.input.gamepad.id.SwitchJoyconLeftID";
var flixel_input_gamepad_id_SwitchJoyconRightID = function() { };
$hxClasses["flixel.input.gamepad.id.SwitchJoyconRightID"] = flixel_input_gamepad_id_SwitchJoyconRightID;
flixel_input_gamepad_id_SwitchJoyconRightID.__name__ = "flixel.input.gamepad.id.SwitchJoyconRightID";
var flixel_input_gamepad_id_SwitchProID = function() { };
$hxClasses["flixel.input.gamepad.id.SwitchProID"] = flixel_input_gamepad_id_SwitchProID;
flixel_input_gamepad_id_SwitchProID.__name__ = "flixel.input.gamepad.id.SwitchProID";
var flixel_input_gamepad_id_WiiRemoteID = function() { };
$hxClasses["flixel.input.gamepad.id.WiiRemoteID"] = flixel_input_gamepad_id_WiiRemoteID;
flixel_input_gamepad_id_WiiRemoteID.__name__ = "flixel.input.gamepad.id.WiiRemoteID";
var flixel_input_gamepad_id_XInputID = function() { };
$hxClasses["flixel.input.gamepad.id.XInputID"] = flixel_input_gamepad_id_XInputID;
flixel_input_gamepad_id_XInputID.__name__ = "flixel.input.gamepad.id.XInputID";
var flixel_input_gamepad_lists_FlxBaseGamepadList = function(status,gamepad) {
this.status = status;
this.gamepad = gamepad;
};
$hxClasses["flixel.input.gamepad.lists.FlxBaseGamepadList"] = flixel_input_gamepad_lists_FlxBaseGamepadList;
flixel_input_gamepad_lists_FlxBaseGamepadList.__name__ = "flixel.input.gamepad.lists.FlxBaseGamepadList";
flixel_input_gamepad_lists_FlxBaseGamepadList.prototype = {
status: null
,gamepad: null
,check: function(id) {
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,checkRaw: function(id) {
var button = this.gamepad.buttons[id];
if(button != null) {
return button.hasState(this.status);
} else {
return false;
}
}
,get_ANY: function() {
var _g = 0;
var _g1 = this.gamepad.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
var tmp;
if(button != null) {
var button1 = this.gamepad.buttons[button.ID];
tmp = button1 != null && button1.hasState(this.status);
} else {
tmp = false;
}
if(tmp) {
return true;
}
}
return false;
}
,get_ALL: function() {
var _g = 0;
var _g1 = this.gamepad.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
var tmp;
if(button != null) {
var button1 = this.gamepad.buttons[button.ID];
tmp = !(button1 != null && button1.hasState(this.status));
} else {
tmp = false;
}
if(tmp) {
return false;
}
}
return true;
}
,get_NONE: function() {
var _g = 0;
var _g1 = this.gamepad.buttons;
while(_g < _g1.length) {
var button = _g1[_g];
++_g;
var tmp;
if(button != null) {
var button1 = this.gamepad.buttons[button.ID];
tmp = button1 != null && button1.hasState(this.status);
} else {
tmp = false;
}
if(tmp) {
return false;
}
}
return true;
}
,__class__: flixel_input_gamepad_lists_FlxBaseGamepadList
,__properties__: {get_NONE:"get_NONE",get_ALL:"get_ALL",get_ANY:"get_ANY"}
};
var flixel_input_gamepad_lists_FlxGamepadAnalogList = function(gamepad) {
this.value = new flixel_input_gamepad_lists_FlxGamepadAnalogValueList(gamepad);
this.justMoved = new flixel_input_gamepad_lists_FlxGamepadAnalogStateList(2,gamepad);
this.justReleased = new flixel_input_gamepad_lists_FlxGamepadAnalogStateList(-1,gamepad);
};
$hxClasses["flixel.input.gamepad.lists.FlxGamepadAnalogList"] = flixel_input_gamepad_lists_FlxGamepadAnalogList;
flixel_input_gamepad_lists_FlxGamepadAnalogList.__name__ = "flixel.input.gamepad.lists.FlxGamepadAnalogList";
flixel_input_gamepad_lists_FlxGamepadAnalogList.prototype = {
value: null
,justMoved: null
,justReleased: null
,__class__: flixel_input_gamepad_lists_FlxGamepadAnalogList
};
var flixel_input_gamepad_lists_FlxGamepadAnalogStateList = function(status,gamepad) {
this.status = status;
this.gamepad = gamepad;
};
$hxClasses["flixel.input.gamepad.lists.FlxGamepadAnalogStateList"] = flixel_input_gamepad_lists_FlxGamepadAnalogStateList;
flixel_input_gamepad_lists_FlxGamepadAnalogStateList.__name__ = "flixel.input.gamepad.lists.FlxGamepadAnalogStateList";
flixel_input_gamepad_lists_FlxGamepadAnalogStateList.prototype = {
gamepad: null
,status: null
,get_LEFT_STICK: function() {
return this.checkXY(19);
}
,get_LEFT_STICK_X: function() {
var stick = this.gamepad.mapping.getAnalogStick(19);
if(stick == null) {
return false;
} else {
var button = this.gamepad.buttons[stick.x];
if(button != null) {
return button.hasState(this.status);
} else {
return false;
}
}
}
,get_LEFT_STICK_Y: function() {
var stick = this.gamepad.mapping.getAnalogStick(19);
if(stick == null) {
return false;
} else {
var button = this.gamepad.buttons[stick.y];
if(button != null) {
return button.hasState(this.status);
} else {
return false;
}
}
}
,get_RIGHT_STICK: function() {
return this.checkXY(20);
}
,get_RIGHT_STICK_X: function() {
var stick = this.gamepad.mapping.getAnalogStick(20);
if(stick == null) {
return false;
} else {
var button = this.gamepad.buttons[stick.x];
if(button != null) {
return button.hasState(this.status);
} else {
return false;
}
}
}
,get_RIGHT_STICK_Y: function() {
var stick = this.gamepad.mapping.getAnalogStick(20);
if(stick == null) {
return false;
} else {
var button = this.gamepad.buttons[stick.y];
if(button != null) {
return button.hasState(this.status);
} else {
return false;
}
}
}
,checkXY: function(id) {
var stick = this.gamepad.mapping.getAnalogStick(id);
if(stick == null) {
return false;
}
var button = this.gamepad.buttons[stick.x];
var xVal = button != null && button.hasState(this.status);
var button = this.gamepad.buttons[stick.y];
var yVal = button != null && button.hasState(this.status);
if(xVal && yVal) {
return true;
}
if(xVal) {
var button = this.gamepad.buttons[stick.y];
var yReleased = button != null && button.hasState(0);
var button = this.gamepad.buttons[stick.y];
var yJustReleased = button != null && button.hasState(-1);
if(yReleased || yJustReleased) {
return true;
}
}
if(yVal) {
var button = this.gamepad.buttons[stick.x];
var xReleased = button != null && button.hasState(0);
var button = this.gamepad.buttons[stick.x];
var xJustReleased = button != null && button.hasState(-1);
if(xReleased || xJustReleased) {
return true;
}
}
return false;
}
,checkX: function(id) {
var stick = this.gamepad.mapping.getAnalogStick(id);
if(stick == null) {
return false;
}
var button = this.gamepad.buttons[stick.x];
if(button != null) {
return button.hasState(this.status);
} else {
return false;
}
}
,checkY: function(id) {
var stick = this.gamepad.mapping.getAnalogStick(id);
if(stick == null) {
return false;
}
var button = this.gamepad.buttons[stick.y];
if(button != null) {
return button.hasState(this.status);
} else {
return false;
}
}
,checkRaw: function(RawID,Status) {
var button = this.gamepad.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
,__class__: flixel_input_gamepad_lists_FlxGamepadAnalogStateList
,__properties__: {get_RIGHT_STICK_Y:"get_RIGHT_STICK_Y",get_RIGHT_STICK_X:"get_RIGHT_STICK_X",get_RIGHT_STICK:"get_RIGHT_STICK",get_LEFT_STICK_Y:"get_LEFT_STICK_Y",get_LEFT_STICK_X:"get_LEFT_STICK_X",get_LEFT_STICK:"get_LEFT_STICK"}
};
var flixel_input_gamepad_lists_FlxGamepadAnalogValueList = function(gamepad) {
this.gamepad = gamepad;
};
$hxClasses["flixel.input.gamepad.lists.FlxGamepadAnalogValueList"] = flixel_input_gamepad_lists_FlxGamepadAnalogValueList;
flixel_input_gamepad_lists_FlxGamepadAnalogValueList.__name__ = "flixel.input.gamepad.lists.FlxGamepadAnalogValueList";
flixel_input_gamepad_lists_FlxGamepadAnalogValueList.prototype = {
gamepad: null
,get_LEFT_STICK_X: function() {
var _this = this.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19));
}
,get_LEFT_STICK_Y: function() {
var _this = this.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(19));
}
,get_RIGHT_STICK_X: function() {
var _this = this.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20));
}
,get_RIGHT_STICK_Y: function() {
var _this = this.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(20));
}
,get_LEFT_TRIGGER: function() {
return this.gamepad.getAxis(17);
}
,get_RIGHT_TRIGGER: function() {
return this.gamepad.getAxis(18);
}
,get_POINTER_X: function() {
return this.gamepad.getAxis(28);
}
,get_POINTER_Y: function() {
return this.gamepad.getAxis(29);
}
,getAxis: function(id) {
return this.gamepad.getAxis(id);
}
,getXAxis: function(id) {
var _this = this.gamepad;
return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(id));
}
,getYAxis: function(id) {
var _this = this.gamepad;
return _this.getYAxisRaw(_this.mapping.getAnalogStick(id));
}
,__class__: flixel_input_gamepad_lists_FlxGamepadAnalogValueList
,__properties__: {get_POINTER_Y:"get_POINTER_Y",get_POINTER_X:"get_POINTER_X",get_RIGHT_TRIGGER:"get_RIGHT_TRIGGER",get_LEFT_TRIGGER:"get_LEFT_TRIGGER",get_RIGHT_STICK_Y:"get_RIGHT_STICK_Y",get_RIGHT_STICK_X:"get_RIGHT_STICK_X",get_LEFT_STICK_Y:"get_LEFT_STICK_Y",get_LEFT_STICK_X:"get_LEFT_STICK_X"}
};
var flixel_input_gamepad_lists_FlxGamepadButtonList = function(status,gamepad) {
flixel_input_gamepad_lists_FlxBaseGamepadList.call(this,status,gamepad);
};
$hxClasses["flixel.input.gamepad.lists.FlxGamepadButtonList"] = flixel_input_gamepad_lists_FlxGamepadButtonList;
flixel_input_gamepad_lists_FlxGamepadButtonList.__name__ = "flixel.input.gamepad.lists.FlxGamepadButtonList";
flixel_input_gamepad_lists_FlxGamepadButtonList.__super__ = flixel_input_gamepad_lists_FlxBaseGamepadList;
flixel_input_gamepad_lists_FlxGamepadButtonList.prototype = $extend(flixel_input_gamepad_lists_FlxBaseGamepadList.prototype,{
get_A: function() {
var id = 0;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_B: function() {
var id = 1;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_X: function() {
var id = 2;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_Y: function() {
var id = 3;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_SHOULDER: function() {
var id = 4;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_SHOULDER: function() {
var id = 5;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_BACK: function() {
var id = 6;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_START: function() {
var id = 7;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_STICK_CLICK: function() {
var id = 8;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_STICK_CLICK: function() {
var id = 9;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_GUIDE: function() {
var id = 10;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_DPAD_UP: function() {
var id = 11;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_DPAD_DOWN: function() {
var id = 12;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_DPAD_LEFT: function() {
var id = 13;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_DPAD_RIGHT: function() {
var id = 14;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_TRIGGER_BUTTON: function() {
var id = 15;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_TRIGGER_BUTTON: function() {
var id = 16;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_TRIGGER: function() {
var id = 17;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_TRIGGER: function() {
var id = 18;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_ANALOG_STICK: function() {
var id = 19;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_ANALOG_STICK: function() {
var id = 20;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_DPAD: function() {
var id = 21;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_TILT_PITCH: function() {
var id = 26;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_TILT_ROLL: function() {
var id = 27;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_POINTER_X: function() {
var id = 28;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_POINTER_Y: function() {
var id = 29;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_EXTRA_0: function() {
var id = 30;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_EXTRA_1: function() {
var id = 31;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_EXTRA_2: function() {
var id = 32;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_EXTRA_3: function() {
var id = 33;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_STICK_DIGITAL_UP: function() {
var id = 34;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_STICK_DIGITAL_RIGHT: function() {
var id = 35;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_STICK_DIGITAL_DOWN: function() {
var id = 36;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_LEFT_STICK_DIGITAL_LEFT: function() {
var id = 37;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_STICK_DIGITAL_UP: function() {
var id = 38;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_STICK_DIGITAL_RIGHT: function() {
var id = 39;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_STICK_DIGITAL_DOWN: function() {
var id = 40;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,get_RIGHT_STICK_DIGITAL_LEFT: function() {
var id = 41;
var _this = this.gamepad;
var Status = this.status;
switch(id) {
case -2:
return _this.anyButton(Status);
case -1:
return !_this.anyButton(Status);
default:
var RawID = _this.mapping.getRawID(id);
var button = _this.buttons[RawID];
if(button != null) {
return button.hasState(Status);
} else {
return false;
}
}
}
,__class__: flixel_input_gamepad_lists_FlxGamepadButtonList
,__properties__: $extend(flixel_input_gamepad_lists_FlxBaseGamepadList.prototype.__properties__,{get_RIGHT_STICK_DIGITAL_LEFT:"get_RIGHT_STICK_DIGITAL_LEFT",get_RIGHT_STICK_DIGITAL_DOWN:"get_RIGHT_STICK_DIGITAL_DOWN",get_RIGHT_STICK_DIGITAL_RIGHT:"get_RIGHT_STICK_DIGITAL_RIGHT",get_RIGHT_STICK_DIGITAL_UP:"get_RIGHT_STICK_DIGITAL_UP",get_LEFT_STICK_DIGITAL_LEFT:"get_LEFT_STICK_DIGITAL_LEFT",get_LEFT_STICK_DIGITAL_DOWN:"get_LEFT_STICK_DIGITAL_DOWN",get_LEFT_STICK_DIGITAL_RIGHT:"get_LEFT_STICK_DIGITAL_RIGHT",get_LEFT_STICK_DIGITAL_UP:"get_LEFT_STICK_DIGITAL_UP",get_EXTRA_3:"get_EXTRA_3",get_EXTRA_2:"get_EXTRA_2",get_EXTRA_1:"get_EXTRA_1",get_EXTRA_0:"get_EXTRA_0",get_POINTER_Y:"get_POINTER_Y",get_POINTER_X:"get_POINTER_X",get_TILT_ROLL:"get_TILT_ROLL",get_TILT_PITCH:"get_TILT_PITCH",get_DPAD:"get_DPAD",get_RIGHT_ANALOG_STICK:"get_RIGHT_ANALOG_STICK",get_LEFT_ANALOG_STICK:"get_LEFT_ANALOG_STICK",get_RIGHT_TRIGGER:"get_RIGHT_TRIGGER",get_LEFT_TRIGGER:"get_LEFT_TRIGGER",get_RIGHT_TRIGGER_BUTTON:"get_RIGHT_TRIGGER_BUTTON",get_LEFT_TRIGGER_BUTTON:"get_LEFT_TRIGGER_BUTTON",get_DPAD_RIGHT:"get_DPAD_RIGHT",get_DPAD_LEFT:"get_DPAD_LEFT",get_DPAD_DOWN:"get_DPAD_DOWN",get_DPAD_UP:"get_DPAD_UP",get_GUIDE:"get_GUIDE",get_RIGHT_STICK_CLICK:"get_RIGHT_STICK_CLICK",get_LEFT_STICK_CLICK:"get_LEFT_STICK_CLICK",get_START:"get_START",get_BACK:"get_BACK",get_RIGHT_SHOULDER:"get_RIGHT_SHOULDER",get_LEFT_SHOULDER:"get_LEFT_SHOULDER",get_Y:"get_Y",get_X:"get_X",get_B:"get_B",get_A:"get_A"})
});
var flixel_input_gamepad_lists_FlxGamepadMotionValueList = function(gamepad) {
this.gamepad = gamepad;
};
$hxClasses["flixel.input.gamepad.lists.FlxGamepadMotionValueList"] = flixel_input_gamepad_lists_FlxGamepadMotionValueList;
flixel_input_gamepad_lists_FlxGamepadMotionValueList.__name__ = "flixel.input.gamepad.lists.FlxGamepadMotionValueList";
flixel_input_gamepad_lists_FlxGamepadMotionValueList.prototype = {
gamepad: null
,get_TILT_PITCH: function() {
if(!this.gamepad.mapping.supportsMotion) {
return 0;
} else {
return this.gamepad.getAxis(26);
}
}
,get_TILT_ROLL: function() {
if(!this.gamepad.mapping.supportsMotion) {
return 0;
} else {
return this.gamepad.getAxis(27);
}
}
,getAxis: function(id) {
if(!this.gamepad.mapping.supportsMotion) {
return 0;
}
return this.gamepad.getAxis(id);
}
,get_isSupported: function() {
return this.gamepad.mapping.supportsMotion;
}
,__class__: flixel_input_gamepad_lists_FlxGamepadMotionValueList
,__properties__: {get_TILT_ROLL:"get_TILT_ROLL",get_TILT_PITCH:"get_TILT_PITCH",get_isSupported:"get_isSupported"}
};
var flixel_input_gamepad_lists_FlxGamepadPointerValueList = function(gamepad) {
this.gamepad = gamepad;
};
$hxClasses["flixel.input.gamepad.lists.FlxGamepadPointerValueList"] = flixel_input_gamepad_lists_FlxGamepadPointerValueList;
flixel_input_gamepad_lists_FlxGamepadPointerValueList.__name__ = "flixel.input.gamepad.lists.FlxGamepadPointerValueList";
flixel_input_gamepad_lists_FlxGamepadPointerValueList.prototype = {
gamepad: null
,get_X: function() {
if(!this.gamepad.mapping.supportsPointer) {
return 0;
} else {
return this.gamepad.getAxis(28);
}
}
,get_Y: function() {
if(!this.gamepad.mapping.supportsPointer) {
return 0;
} else {
return this.gamepad.getAxis(29);
}
}
,getAxis: function(id) {
if(!this.gamepad.mapping.supportsPointer) {
return 0;
}
return this.gamepad.getAxis(id);
}
,get_isSupported: function() {
return this.gamepad.mapping.supportsPointer;
}
,__class__: flixel_input_gamepad_lists_FlxGamepadPointerValueList
,__properties__: {get_Y:"get_Y",get_X:"get_X",get_isSupported:"get_isSupported"}
};
var flixel_input_gamepad_mappings_FlxGamepadMapping = function(attachment) {
this.attachment = flixel_input_gamepad_FlxGamepadAttachment.NONE;
this.supportsPointer = false;
this.supportsMotion = false;
if(attachment != null) {
this.set_attachment(attachment);
}
this.initValues();
};
$hxClasses["flixel.input.gamepad.mappings.FlxGamepadMapping"] = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_FlxGamepadMapping.__name__ = "flixel.input.gamepad.mappings.FlxGamepadMapping";
flixel_input_gamepad_mappings_FlxGamepadMapping.prototype = {
supportsMotion: null
,supportsPointer: null
,leftStick: null
,rightStick: null
,attachment: null
,manufacturer: null
,initValues: function() {
}
,getAnalogStick: function(ID) {
switch(ID) {
case 19:
return this.leftStick;
case 20:
return this.rightStick;
default:
return null;
}
}
,getID: function(rawID) {
return -1;
}
,getRawID: function(ID) {
return -1;
}
,isAxisFlipped: function(axisID) {
return false;
}
,isAxisForMotion: function(ID) {
return false;
}
,set_attachment: function(attachment) {
return this.attachment = attachment;
}
,getInputLabel: function(id) {
if(this.getRawID(id) == -1) {
return null;
}
switch(id) {
case 0:
return "a";
case 1:
return "b";
case 2:
return "x";
case 3:
return "y";
case 4:
return "lb";
case 5:
return "rb";
case 6:
return "back";
case 7:
return "start";
case 8:
return "ls-click";
case 9:
return "rs-click";
case 10:
return "guide";
case 11:
return "up";
case 12:
return "down";
case 13:
return "left";
case 14:
return "right";
case 15:
return "l2-click";
case 16:
return "r2-click";
case 17:
return "lt";
case 18:
return "rt";
case 19:
return "ls";
case 20:
return "rs";
case 21:
return "dpad";
case 34:
return "ls-up";
case 35:
return "ls-right";
case 36:
return "ls-down";
case 37:
return "ls-left";
case 38:
return "rs-up";
case 39:
return "rs-right";
case 40:
return "rs-down";
case 41:
return "rs-left";
default:
return null;
}
}
,__class__: flixel_input_gamepad_mappings_FlxGamepadMapping
,__properties__: {set_attachment:"set_attachment"}
};
var flixel_input_gamepad_mappings_Manufacturer = $hxEnums["flixel.input.gamepad.mappings.Manufacturer"] = { __ename__ : "flixel.input.gamepad.mappings.Manufacturer", __constructs__ : ["GooglePepper","AdobeWindows","Unknown"]
,GooglePepper: {_hx_index:0,__enum__:"flixel.input.gamepad.mappings.Manufacturer",toString:$estr}
,AdobeWindows: {_hx_index:1,__enum__:"flixel.input.gamepad.mappings.Manufacturer",toString:$estr}
,Unknown: {_hx_index:2,__enum__:"flixel.input.gamepad.mappings.Manufacturer",toString:$estr}
};
flixel_input_gamepad_mappings_Manufacturer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:MemberName"]}};
var flixel_input_gamepad_mappings_LogitechMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.LogitechMapping"] = flixel_input_gamepad_mappings_LogitechMapping;
flixel_input_gamepad_mappings_LogitechMapping.__name__ = "flixel.input.gamepad.mappings.LogitechMapping";
flixel_input_gamepad_mappings_LogitechMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_LogitechMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK;
this.rightStick = flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK;
}
,getID: function(rawID) {
switch(rawID) {
case -5:
return 10;
case 0:
return 2;
case 1:
return 0;
case 2:
return 1;
case 3:
return 3;
case 4:
return 4;
case 5:
return 5;
case 6:
return 17;
case 7:
return 18;
case 8:
return 6;
case 9:
return 7;
case 10:
return 8;
case 11:
return 9;
case 16:
return 11;
case 17:
return 12;
case 18:
return 13;
case 19:
return 14;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getRawID: function(ID) {
switch(ID) {
case 0:
return 1;
case 1:
return 2;
case 2:
return 0;
case 3:
return 3;
case 4:
return 4;
case 5:
return 5;
case 6:
return 8;
case 7:
return 9;
case 8:
return 10;
case 9:
return 11;
case 10:
return -5;
case 11:
return 16;
case 12:
return 17;
case 13:
return 18;
case 14:
return 19;
case 17:
return 6;
case 18:
return 7;
case 34:
return flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getInputLabel: function(id) {
switch(id) {
case 0:
return "2";
case 1:
return "3";
case 2:
return "1";
case 3:
return "4";
case 4:
return "5";
case 5:
return "6";
case 6:
return "9";
case 7:
return "10";
case 10:
return "logitech";
case 17:
return "7";
case 18:
return "8";
default:
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
}
,__class__: flixel_input_gamepad_mappings_LogitechMapping
});
var flixel_input_gamepad_mappings_MFiMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.MFiMapping"] = flixel_input_gamepad_mappings_MFiMapping;
flixel_input_gamepad_mappings_MFiMapping.__name__ = "flixel.input.gamepad.mappings.MFiMapping";
flixel_input_gamepad_mappings_MFiMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_MFiMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK;
this.rightStick = flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK;
}
,getID: function(rawID) {
switch(rawID) {
case 6:
return 0;
case 7:
return 1;
case 8:
return 2;
case 9:
return 3;
case 10:
return 6;
case 11:
return 10;
case 12:
return 7;
case 13:
return 8;
case 14:
return 9;
case 15:
return 4;
case 16:
return 5;
case 17:
return 11;
case 18:
return 12;
case 19:
return 13;
case 20:
return 14;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getRawID: function(ID) {
switch(ID) {
case 0:
return 6;
case 1:
return 7;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 5:
return 16;
case 6:
return 10;
case 7:
return 12;
case 8:
return 13;
case 9:
return 14;
case 10:
return 11;
case 11:
return 17;
case 12:
return 18;
case 13:
return 19;
case 14:
return 20;
case 17:
return 4;
case 18:
return 5;
case 34:
return flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,__class__: flixel_input_gamepad_mappings_MFiMapping
});
var flixel_input_gamepad_mappings_MayflashWiiRemoteMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.MayflashWiiRemoteMapping"] = flixel_input_gamepad_mappings_MayflashWiiRemoteMapping;
flixel_input_gamepad_mappings_MayflashWiiRemoteMapping.__name__ = "flixel.input.gamepad.mappings.MayflashWiiRemoteMapping";
flixel_input_gamepad_mappings_MayflashWiiRemoteMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_MayflashWiiRemoteMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.supportsPointer = true;
}
,getID: function(rawID) {
switch(this.attachment._hx_index) {
case 0:
return this.getIDNunchuk(rawID);
case 1:
return this.getIDClassicController(rawID);
case 2:
return this.getIDDefault(rawID);
}
}
,getIDClassicController: function(rawID) {
switch(rawID) {
case 4:
return 11;
case 5:
return 12;
case 6:
return 13;
case 7:
return 14;
case 8:
return 2;
case 9:
return 3;
case 10:
return 0;
case 11:
return 1;
case 12:
return 17;
case 13:
return 18;
case 14:
return 4;
case 15:
return 5;
case 16:
return 6;
case 17:
return 7;
case 19:
return 10;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getIDNunchuk: function(rawID) {
switch(rawID) {
case 4:
return 11;
case 5:
return 12;
case 6:
return 13;
case 7:
return 14;
case 8:
return 2;
case 9:
return 3;
case 10:
return 0;
case 11:
return 1;
case 12:
return 6;
case 13:
return 7;
case 14:
return 17;
case 15:
return 4;
case 19:
return 10;
default:
var tmp = rawID == flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawUp;
var tmp = rawID == flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawDown;
var tmp = rawID == flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawLeft;
var tmp = rawID == flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawRight;
return -1;
}
}
,getIDDefault: function(rawID) {
switch(rawID) {
case 8:
return 2;
case 9:
return 3;
case 10:
return 0;
case 11:
return 1;
case 12:
return 6;
case 13:
return 7;
case 19:
return 10;
case 22:
return 11;
case 23:
return 12;
case 24:
return 13;
case 25:
return 14;
default:
return -1;
}
}
,getRawID: function(ID) {
switch(this.attachment._hx_index) {
case 0:
return this.getRawNunchuk(ID);
case 1:
return this.getRawClassicController(ID);
case 2:
return this.getRawDefault(ID);
}
}
,getRawClassicController: function(ID) {
switch(ID) {
case 0:
return 10;
case 1:
return 11;
case 2:
return 8;
case 3:
return 9;
case 4:
return 14;
case 5:
return 15;
case 6:
return 16;
case 7:
return 17;
case 10:
return 19;
case 11:
return 4;
case 12:
return 5;
case 13:
return 6;
case 14:
return 7;
case 17:
return 12;
case 18:
return 13;
case 30:
return -1;
case 31:
return -1;
case 34:
return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK.rawLeft;
default:
return this.getRawDefault(ID);
}
}
,getRawNunchuk: function(ID) {
switch(ID) {
case 0:
return 10;
case 1:
return 11;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 6:
return 12;
case 7:
return 13;
case 10:
return 19;
case 11:
return 4;
case 12:
return 5;
case 13:
return 6;
case 14:
return 7;
case 17:
return 14;
case 28:
return 2;
case 29:
return 3;
case 34:
return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getRawDefault: function(ID) {
switch(ID) {
case 0:
return 10;
case 1:
return 11;
case 2:
return 8;
case 3:
return 9;
case 6:
return 12;
case 7:
return 13;
case 10:
return 19;
case 11:
return 22;
case 12:
return 23;
case 13:
return 24;
case 14:
return 25;
default:
return -1;
}
}
,set_attachment: function(attachment) {
var tmp;
switch(attachment._hx_index) {
case 0:case 1:
tmp = flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK;
break;
case 2:
tmp = flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD;
break;
}
this.leftStick = tmp;
this.rightStick = attachment._hx_index == 1 ? flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK : null;
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.set_attachment.call(this,attachment);
}
,getInputLabel: function(id) {
var label = flixel_input_gamepad_mappings_WiiRemoteMapping.getWiiInputLabel(id,this.attachment);
if(label == null) {
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
return label;
}
,__class__: flixel_input_gamepad_mappings_MayflashWiiRemoteMapping
});
var flixel_input_gamepad_mappings_OUYAMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.OUYAMapping"] = flixel_input_gamepad_mappings_OUYAMapping;
flixel_input_gamepad_mappings_OUYAMapping.__name__ = "flixel.input.gamepad.mappings.OUYAMapping";
flixel_input_gamepad_mappings_OUYAMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_OUYAMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK;
this.rightStick = flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK;
}
,getID: function(rawID) {
switch(rawID) {
case 4:
return 17;
case 5:
return 18;
case 6:
return 0;
case 7:
return 1;
case 8:
return 2;
case 9:
return 3;
case 13:
return 8;
case 14:
return 9;
case 15:
return 4;
case 16:
return 5;
case 17:
return 11;
case 18:
return 12;
case 19:
return 13;
case 20:
return 14;
case 16777234:
return 10;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getRawID: function(ID) {
switch(ID) {
case 0:
return 6;
case 1:
return 7;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 5:
return 16;
case 8:
return 13;
case 9:
return 14;
case 10:
return 16777234;
case 11:
return 17;
case 12:
return 18;
case 13:
return 19;
case 14:
return 20;
case 17:
return 4;
case 18:
return 5;
case 34:
return flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getInputLabel: function(id) {
switch(id) {
case 0:
return "o";
case 1:
return "a";
case 2:
return "u";
case 3:
return "y";
case 10:
return "home";
default:
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
}
,__class__: flixel_input_gamepad_mappings_OUYAMapping
});
var flixel_input_gamepad_mappings_PS4Mapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.PS4Mapping"] = flixel_input_gamepad_mappings_PS4Mapping;
flixel_input_gamepad_mappings_PS4Mapping.__name__ = "flixel.input.gamepad.mappings.PS4Mapping";
flixel_input_gamepad_mappings_PS4Mapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_PS4Mapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK;
this.rightStick = flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK;
this.supportsMotion = true;
this.supportsPointer = true;
}
,getID: function(rawID) {
switch(rawID) {
case 6:
return 0;
case 7:
return 1;
case 8:
return 2;
case 9:
return 3;
case 10:
return 6;
case 11:
return 10;
case 12:
return 7;
case 13:
return 8;
case 14:
return 9;
case 15:
return 4;
case 16:
return 5;
case 17:
return 11;
case 18:
return 12;
case 19:
return 13;
case 20:
return 14;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getRawID: function(ID) {
switch(ID) {
case 0:
return 6;
case 1:
return 7;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 5:
return 16;
case 6:
return 10;
case 7:
return 12;
case 8:
return 13;
case 9:
return 14;
case 10:
return 11;
case 11:
return 17;
case 12:
return 18;
case 13:
return 19;
case 14:
return 20;
case 17:
return 4;
case 18:
return 5;
case 34:
return flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getInputLabel: function(id) {
switch(id) {
case 0:
return "x";
case 1:
return "circle";
case 2:
return "square";
case 3:
return "triangle";
case 4:
return "l1";
case 5:
return "r1";
case 6:
return "share";
case 7:
return "options";
case 10:
return "ps";
case 17:
return "l2";
case 18:
return "r2";
default:
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
}
,__class__: flixel_input_gamepad_mappings_PS4Mapping
});
var flixel_input_gamepad_mappings_PSVitaMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.PSVitaMapping"] = flixel_input_gamepad_mappings_PSVitaMapping;
flixel_input_gamepad_mappings_PSVitaMapping.__name__ = "flixel.input.gamepad.mappings.PSVitaMapping";
flixel_input_gamepad_mappings_PSVitaMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_PSVitaMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK;
this.rightStick = flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK;
}
,getID: function(rawID) {
switch(rawID) {
case 6:
return 0;
case 7:
return 1;
case 8:
return 2;
case 9:
return 3;
case 10:
return 6;
case 12:
return 7;
case 15:
return 4;
case 16:
return 5;
case 17:
return 11;
case 18:
return 12;
case 19:
return 13;
case 20:
return 14;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getRawID: function(ID) {
switch(ID) {
case 0:
return 6;
case 1:
return 7;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 5:
return 16;
case 6:
return 10;
case 7:
return 12;
case 11:
return 17;
case 12:
return 18;
case 13:
return 19;
case 14:
return 20;
case 34:
return flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getInputLabel: function(id) {
switch(id) {
case 0:
return "x";
case 1:
return "circle";
case 2:
return "square";
case 3:
return "triangle";
case 4:
return "l1";
case 5:
return "r1";
case 6:
return "select";
case 17:
return "l2";
case 18:
return "r2";
default:
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
}
,isAxisFlipped: function(axisID) {
if(axisID != flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.y) {
return axisID == flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.y;
} else {
return true;
}
}
,__class__: flixel_input_gamepad_mappings_PSVitaMapping
});
var flixel_input_gamepad_mappings_SwitchJoyconLeftMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.SwitchJoyconLeftMapping"] = flixel_input_gamepad_mappings_SwitchJoyconLeftMapping;
flixel_input_gamepad_mappings_SwitchJoyconLeftMapping.__name__ = "flixel.input.gamepad.mappings.SwitchJoyconLeftMapping";
flixel_input_gamepad_mappings_SwitchJoyconLeftMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_SwitchJoyconLeftMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK;
this.supportsMotion = true;
this.supportsPointer = false;
}
,getID: function(rawID) {
switch(rawID) {
case 4:
return 17;
case 6:
return 0;
case 7:
return 1;
case 8:
return 2;
case 9:
return 3;
case 10:
return 30;
case 12:
return 7;
case 13:
return 8;
case 15:
return 4;
case 16:
return 5;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
return -1;
}
}
}
}
}
}
,getRawID: function(id) {
switch(id) {
case 0:
return 6;
case 1:
return 7;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 5:
return 16;
case 7:
return 12;
case 8:
return 13;
case 17:
return 4;
case 30:
return 10;
case 34:
return flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getInputLabel: function(id) {
switch(id) {
case 0:
return "down";
case 1:
return "right";
case 2:
return "left";
case 3:
return "up";
case 4:
return "sl";
case 5:
return "sr";
case 7:
return "minus";
case 17:
return "zl";
case 30:
return "l";
default:
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
}
,__class__: flixel_input_gamepad_mappings_SwitchJoyconLeftMapping
});
var flixel_input_gamepad_mappings_SwitchJoyconRightMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.SwitchJoyconRightMapping"] = flixel_input_gamepad_mappings_SwitchJoyconRightMapping;
flixel_input_gamepad_mappings_SwitchJoyconRightMapping.__name__ = "flixel.input.gamepad.mappings.SwitchJoyconRightMapping";
flixel_input_gamepad_mappings_SwitchJoyconRightMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_SwitchJoyconRightMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK;
this.supportsMotion = true;
this.supportsPointer = false;
}
,getID: function(rawID) {
switch(rawID) {
case 5:
return 18;
case 6:
return 0;
case 7:
return 1;
case 8:
return 2;
case 9:
return 3;
case 10:
return 30;
case 11:
return 10;
case 12:
return 7;
case 13:
return 8;
case 15:
return 4;
case 16:
return 5;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
return -1;
}
}
}
}
}
}
,getRawID: function(ID) {
switch(ID) {
case 0:
return 6;
case 1:
return 7;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 5:
return 16;
case 7:
return 12;
case 8:
return 13;
case 10:
return 11;
case 18:
return 5;
case 30:
return 10;
case 34:
return flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getInputLabel: function(id) {
switch(id) {
case 0:
return "a";
case 1:
return "x";
case 2:
return "b";
case 3:
return "y";
case 4:
return "sl";
case 5:
return "sr";
case 7:
return "plus";
case 10:
return "home";
case 18:
return "zr";
case 30:
return "r";
default:
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
}
,__class__: flixel_input_gamepad_mappings_SwitchJoyconRightMapping
});
var flixel_input_gamepad_mappings_SwitchProMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.SwitchProMapping"] = flixel_input_gamepad_mappings_SwitchProMapping;
flixel_input_gamepad_mappings_SwitchProMapping.__name__ = "flixel.input.gamepad.mappings.SwitchProMapping";
flixel_input_gamepad_mappings_SwitchProMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_SwitchProMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK;
this.rightStick = flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK;
this.supportsMotion = true;
this.supportsPointer = false;
}
,getID: function(rawID) {
switch(rawID) {
case 4:
return 17;
case 5:
return 18;
case 6:
return 0;
case 7:
return 1;
case 8:
return 2;
case 9:
return 3;
case 10:
return 6;
case 11:
return 10;
case 12:
return 7;
case 13:
return 8;
case 14:
return 9;
case 15:
return 4;
case 16:
return 5;
case 17:
return 11;
case 18:
return 12;
case 19:
return 13;
case 20:
return 14;
case 21:
return 30;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getRawID: function(ID) {
switch(ID) {
case 0:
return 6;
case 1:
return 7;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 5:
return 16;
case 6:
return 10;
case 7:
return 12;
case 8:
return 13;
case 9:
return 14;
case 10:
return 11;
case 11:
return 17;
case 12:
return 18;
case 13:
return 19;
case 14:
return 20;
case 17:
return 4;
case 18:
return 5;
case 30:
return 21;
case 34:
return flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getInputLabel: function(id) {
switch(id) {
case 0:
return "b";
case 1:
return "a";
case 2:
return "y";
case 3:
return "x";
case 4:
return "l";
case 5:
return "r";
case 6:
return "minus";
case 7:
return "plus";
case 10:
return "home";
case 17:
return "zl";
case 18:
return "zr";
case 30:
return "capture";
default:
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
}
,__class__: flixel_input_gamepad_mappings_SwitchProMapping
});
var flixel_input_gamepad_mappings_WiiRemoteMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.WiiRemoteMapping"] = flixel_input_gamepad_mappings_WiiRemoteMapping;
flixel_input_gamepad_mappings_WiiRemoteMapping.__name__ = "flixel.input.gamepad.mappings.WiiRemoteMapping";
flixel_input_gamepad_mappings_WiiRemoteMapping.getWiiInputLabel = function(id,attachment) {
switch(id) {
case 6:
return "minus";
case 7:
return "plus";
case 10:
return "home";
default:
}
switch(attachment._hx_index) {
case 0:
switch(id) {
case 2:
return "1";
case 3:
return "2";
case 4:
return "c";
case 17:
return "z";
default:
return null;
}
break;
case 1:
switch(id) {
case 0:
return "b";
case 1:
return "a";
case 2:
return "y";
case 3:
return "x";
case 4:
return "zl";
case 5:
return "zr";
case 17:
return "l";
case 18:
return "r";
case 30:
return "1";
case 31:
return "2";
default:
return null;
}
break;
case 2:
switch(id) {
case 2:
return "1";
case 3:
return "2";
case 6:
return "minus";
case 7:
return "plus";
case 10:
return "home";
default:
return null;
}
break;
}
};
flixel_input_gamepad_mappings_WiiRemoteMapping.getLabelClassicController = function(ID) {
switch(ID) {
case 0:
return "b";
case 1:
return "a";
case 2:
return "y";
case 3:
return "x";
case 4:
return "zl";
case 5:
return "zr";
case 17:
return "l";
case 18:
return "r";
case 30:
return "1";
case 31:
return "2";
default:
return null;
}
};
flixel_input_gamepad_mappings_WiiRemoteMapping.getLabelNunchuk = function(ID) {
switch(ID) {
case 2:
return "1";
case 3:
return "2";
case 4:
return "c";
case 17:
return "z";
default:
return null;
}
};
flixel_input_gamepad_mappings_WiiRemoteMapping.getLabelDefault = function(ID) {
switch(ID) {
case 2:
return "1";
case 3:
return "2";
case 6:
return "minus";
case 7:
return "plus";
case 10:
return "home";
default:
return null;
}
};
flixel_input_gamepad_mappings_WiiRemoteMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_WiiRemoteMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.supportsMotion = true;
this.supportsPointer = false;
}
,getID: function(rawID) {
switch(this.attachment._hx_index) {
case 0:
return this.getIDNunchuk(rawID);
case 1:
return this.getIDClassicController(rawID);
case 2:
return this.getIDDefault(rawID);
}
}
,getIDClassicController: function(rawID) {
switch(rawID) {
case 5:
return 11;
case 6:
return 12;
case 7:
return 13;
case 8:
return 14;
case 9:
return 1;
case 10:
return 0;
case 11:
return 2;
case 12:
return 3;
case 13:
return 17;
case 14:
return 18;
case 15:
return 4;
case 16:
return 5;
case 17:
return 7;
case 18:
return 6;
case 19:
return 10;
case 20:
return 30;
case 21:
return 31;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getIDNunchuk: function(rawID) {
switch(rawID) {
case 5:
return 11;
case 6:
return 12;
case 7:
return 13;
case 8:
return 14;
case 9:
return 0;
case 10:
return 1;
case 11:
return 4;
case 12:
return 17;
case 13:
return 2;
case 14:
return 3;
case 15:
return 7;
case 16:
return 6;
case 17:
return 10;
default:
var tmp = rawID == flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawUp;
var tmp = rawID == flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawDown;
var tmp = rawID == flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawLeft;
var tmp = rawID == flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawRight;
return -1;
}
}
,getIDDefault: function(rawID) {
switch(rawID) {
case 9:
return 2;
case 10:
return 3;
case 11:
return 0;
case 12:
return 1;
case 13:
return 7;
case 14:
return 6;
case 15:
return 10;
case 22:
return 11;
case 23:
return 12;
case 24:
return 13;
case 25:
return 14;
default:
return -1;
}
}
,getRawID: function(ID) {
switch(this.attachment._hx_index) {
case 0:
return this.getRawNunchuk(ID);
case 1:
return this.getRawClassicController(ID);
case 2:
return this.getRawDefault(ID);
}
}
,getRawClassicController: function(ID) {
switch(ID) {
case 0:
return 10;
case 1:
return 9;
case 2:
return 11;
case 3:
return 12;
case 4:
return 15;
case 5:
return 16;
case 6:
return 18;
case 7:
return 17;
case 10:
return 19;
case 11:
return 5;
case 12:
return 6;
case 13:
return 7;
case 14:
return 8;
case 17:
return 13;
case 18:
return 14;
case 30:
return 20;
case 31:
return 21;
case 34:
return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getRawNunchuk: function(ID) {
switch(ID) {
case 0:
return 9;
case 1:
return 10;
case 2:
return 13;
case 3:
return 14;
case 4:
return 11;
case 6:
return 16;
case 7:
return 15;
case 10:
return 17;
case 11:
return 5;
case 12:
return 6;
case 13:
return 7;
case 14:
return 8;
case 17:
return 12;
case 26:
return 3;
case 27:
return 2;
case 34:
return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,getRawDefault: function(ID) {
switch(ID) {
case 0:
return 11;
case 1:
return 12;
case 2:
return 9;
case 3:
return 10;
case 6:
return 14;
case 7:
return 13;
case 10:
return 15;
case 11:
return 22;
case 12:
return 23;
case 13:
return 24;
case 14:
return 25;
case 26:
return 2;
case 27:
return 3;
default:
return -1;
}
}
,isAxisForMotion: function(ID) {
if(this.attachment == flixel_input_gamepad_FlxGamepadAttachment.NONE) {
if(ID == 2 || ID == 3) {
return true;
}
} else if(this.attachment == flixel_input_gamepad_FlxGamepadAttachment.WII_NUNCHUCK) {
if(ID == 3 || ID == 2) {
return true;
}
}
return false;
}
,isAxisFlipped: function(axisID) {
return axisID == 4;
}
,set_attachment: function(attachment) {
var tmp;
switch(attachment._hx_index) {
case 0:case 1:
tmp = flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK;
break;
case 2:
tmp = flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD;
break;
}
this.leftStick = tmp;
this.rightStick = attachment._hx_index == 1 ? flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK : null;
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.set_attachment.call(this,attachment);
}
,getInputLabel: function(id) {
var label = flixel_input_gamepad_mappings_WiiRemoteMapping.getWiiInputLabel(id,this.attachment);
if(label == null) {
return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id);
}
return label;
}
,__class__: flixel_input_gamepad_mappings_WiiRemoteMapping
});
var flixel_input_gamepad_mappings_XInputMapping = function(attachment) {
flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment);
};
$hxClasses["flixel.input.gamepad.mappings.XInputMapping"] = flixel_input_gamepad_mappings_XInputMapping;
flixel_input_gamepad_mappings_XInputMapping.__name__ = "flixel.input.gamepad.mappings.XInputMapping";
flixel_input_gamepad_mappings_XInputMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping;
flixel_input_gamepad_mappings_XInputMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{
initValues: function() {
this.leftStick = flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK;
this.rightStick = flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK;
}
,getID: function(rawID) {
switch(rawID) {
case -1:
return 10;
case 4:
return 17;
case 5:
return 18;
case 6:
return 0;
case 7:
return 1;
case 8:
return 2;
case 9:
return 3;
case 10:
return 6;
case 12:
return 7;
case 13:
return 8;
case 14:
return 9;
case 15:
return 4;
case 16:
return 5;
case 17:
return 11;
case 18:
return 12;
case 19:
return 13;
case 20:
return 14;
default:
var id = rawID;
if(id == this.leftStick.rawUp) {
return 34;
} else {
var id = rawID;
if(id == this.leftStick.rawDown) {
return 36;
} else {
var id = rawID;
if(id == this.leftStick.rawLeft) {
return 37;
} else {
var id = rawID;
if(id == this.leftStick.rawRight) {
return 35;
} else {
var id = rawID;
if(id == this.rightStick.rawUp) {
return 38;
} else {
var id = rawID;
if(id == this.rightStick.rawDown) {
return 40;
} else {
var id = rawID;
if(id == this.rightStick.rawLeft) {
return 41;
} else {
var id = rawID;
if(id == this.rightStick.rawRight) {
return 39;
} else {
return -1;
}
}
}
}
}
}
}
}
}
}
,getRawID: function(ID) {
switch(ID) {
case 0:
return 6;
case 1:
return 7;
case 2:
return 8;
case 3:
return 9;
case 4:
return 15;
case 5:
return 16;
case 6:
return 10;
case 7:
return 12;
case 8:
return 13;
case 9:
return 14;
case 10:
return -1;
case 11:
return 17;
case 12:
return 18;
case 13:
return 19;
case 14:
return 20;
case 17:
return 4;
case 18:
return 5;
case 34:
return flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK.rawUp;
case 35:
return flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK.rawRight;
case 36:
return flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK.rawDown;
case 37:
return flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK.rawLeft;
case 38:
return flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK.rawUp;
case 39:
return flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK.rawRight;
case 40:
return flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK.rawDown;
case 41:
return flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK.rawLeft;
default:
return -1;
}
}
,__class__: flixel_input_gamepad_mappings_XInputMapping
});
var flixel_input_keyboard_FlxKey = {};
flixel_input_keyboard_FlxKey.fromString = function(s) {
s = s.toUpperCase();
if(Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s)) {
return flixel_input_keyboard_FlxKey.fromStringMap.h[s];
} else {
return -1;
}
};
flixel_input_keyboard_FlxKey.toString = function(this1) {
return flixel_input_keyboard_FlxKey.toStringMap.h[this1];
};
var flixel_input_keyboard_FlxKeyList = function(status,keyManager) {
flixel_input_FlxBaseKeyList.call(this,status,keyManager);
};
$hxClasses["flixel.input.keyboard.FlxKeyList"] = flixel_input_keyboard_FlxKeyList;
flixel_input_keyboard_FlxKeyList.__name__ = "flixel.input.keyboard.FlxKeyList";
flixel_input_keyboard_FlxKeyList.__super__ = flixel_input_FlxBaseKeyList;
flixel_input_keyboard_FlxKeyList.prototype = $extend(flixel_input_FlxBaseKeyList.prototype,{
get_A: function() {
return this.keyManager.checkStatus(65,this.status);
}
,get_B: function() {
return this.keyManager.checkStatus(66,this.status);
}
,get_C: function() {
return this.keyManager.checkStatus(67,this.status);
}
,get_D: function() {
return this.keyManager.checkStatus(68,this.status);
}
,get_E: function() {
return this.keyManager.checkStatus(69,this.status);
}
,get_F: function() {
return this.keyManager.checkStatus(70,this.status);
}
,get_G: function() {
return this.keyManager.checkStatus(71,this.status);
}
,get_H: function() {
return this.keyManager.checkStatus(72,this.status);
}
,get_I: function() {
return this.keyManager.checkStatus(73,this.status);
}
,get_J: function() {
return this.keyManager.checkStatus(74,this.status);
}
,get_K: function() {
return this.keyManager.checkStatus(75,this.status);
}
,get_L: function() {
return this.keyManager.checkStatus(76,this.status);
}
,get_M: function() {
return this.keyManager.checkStatus(77,this.status);
}
,get_N: function() {
return this.keyManager.checkStatus(78,this.status);
}
,get_O: function() {
return this.keyManager.checkStatus(79,this.status);
}
,get_P: function() {
return this.keyManager.checkStatus(80,this.status);
}
,get_Q: function() {
return this.keyManager.checkStatus(81,this.status);
}
,get_R: function() {
return this.keyManager.checkStatus(82,this.status);
}
,get_S: function() {
return this.keyManager.checkStatus(83,this.status);
}
,get_T: function() {
return this.keyManager.checkStatus(84,this.status);
}
,get_U: function() {
return this.keyManager.checkStatus(85,this.status);
}
,get_V: function() {
return this.keyManager.checkStatus(86,this.status);
}
,get_W: function() {
return this.keyManager.checkStatus(87,this.status);
}
,get_X: function() {
return this.keyManager.checkStatus(88,this.status);
}
,get_Y: function() {
return this.keyManager.checkStatus(89,this.status);
}
,get_Z: function() {
return this.keyManager.checkStatus(90,this.status);
}
,get_ZERO: function() {
return this.keyManager.checkStatus(48,this.status);
}
,get_ONE: function() {
return this.keyManager.checkStatus(49,this.status);
}
,get_TWO: function() {
return this.keyManager.checkStatus(50,this.status);
}
,get_THREE: function() {
return this.keyManager.checkStatus(51,this.status);
}
,get_FOUR: function() {
return this.keyManager.checkStatus(52,this.status);
}
,get_FIVE: function() {
return this.keyManager.checkStatus(53,this.status);
}
,get_SIX: function() {
return this.keyManager.checkStatus(54,this.status);
}
,get_SEVEN: function() {
return this.keyManager.checkStatus(55,this.status);
}
,get_EIGHT: function() {
return this.keyManager.checkStatus(56,this.status);
}
,get_NINE: function() {
return this.keyManager.checkStatus(57,this.status);
}
,get_PAGEUP: function() {
return this.keyManager.checkStatus(33,this.status);
}
,get_PAGEDOWN: function() {
return this.keyManager.checkStatus(34,this.status);
}
,get_HOME: function() {
return this.keyManager.checkStatus(36,this.status);
}
,get_END: function() {
return this.keyManager.checkStatus(35,this.status);
}
,get_INSERT: function() {
return this.keyManager.checkStatus(45,this.status);
}
,get_ESCAPE: function() {
return this.keyManager.checkStatus(27,this.status);
}
,get_MINUS: function() {
return this.keyManager.checkStatus(189,this.status);
}
,get_PLUS: function() {
return this.keyManager.checkStatus(187,this.status);
}
,get_DELETE: function() {
return this.keyManager.checkStatus(46,this.status);
}
,get_BACKSPACE: function() {
return this.keyManager.checkStatus(8,this.status);
}
,get_LBRACKET: function() {
return this.keyManager.checkStatus(219,this.status);
}
,get_RBRACKET: function() {
return this.keyManager.checkStatus(221,this.status);
}
,get_BACKSLASH: function() {
return this.keyManager.checkStatus(220,this.status);
}
,get_CAPSLOCK: function() {
return this.keyManager.checkStatus(20,this.status);
}
,get_SEMICOLON: function() {
return this.keyManager.checkStatus(186,this.status);
}
,get_QUOTE: function() {
return this.keyManager.checkStatus(222,this.status);
}
,get_ENTER: function() {
return this.keyManager.checkStatus(13,this.status);
}
,get_SHIFT: function() {
return this.keyManager.checkStatus(16,this.status);
}
,get_COMMA: function() {
return this.keyManager.checkStatus(188,this.status);
}
,get_PERIOD: function() {
return this.keyManager.checkStatus(190,this.status);
}
,get_SLASH: function() {
return this.keyManager.checkStatus(191,this.status);
}
,get_GRAVEACCENT: function() {
return this.keyManager.checkStatus(192,this.status);
}
,get_CONTROL: function() {
return this.keyManager.checkStatus(17,this.status);
}
,get_ALT: function() {
return this.keyManager.checkStatus(18,this.status);
}
,get_SPACE: function() {
return this.keyManager.checkStatus(32,this.status);
}
,get_UP: function() {
return this.keyManager.checkStatus(38,this.status);
}
,get_DOWN: function() {
return this.keyManager.checkStatus(40,this.status);
}
,get_LEFT: function() {
return this.keyManager.checkStatus(37,this.status);
}
,get_RIGHT: function() {
return this.keyManager.checkStatus(39,this.status);
}
,get_TAB: function() {
return this.keyManager.checkStatus(9,this.status);
}
,get_PRINTSCREEN: function() {
return this.keyManager.checkStatus(301,this.status);
}
,get_F1: function() {
return this.keyManager.checkStatus(112,this.status);
}
,get_F2: function() {
return this.keyManager.checkStatus(113,this.status);
}
,get_F3: function() {
return this.keyManager.checkStatus(114,this.status);
}
,get_F4: function() {
return this.keyManager.checkStatus(115,this.status);
}
,get_F5: function() {
return this.keyManager.checkStatus(116,this.status);
}
,get_F6: function() {
return this.keyManager.checkStatus(117,this.status);
}
,get_F7: function() {
return this.keyManager.checkStatus(118,this.status);
}
,get_F8: function() {
return this.keyManager.checkStatus(119,this.status);
}
,get_F9: function() {
return this.keyManager.checkStatus(120,this.status);
}
,get_F10: function() {
return this.keyManager.checkStatus(121,this.status);
}
,get_F11: function() {
return this.keyManager.checkStatus(122,this.status);
}
,get_F12: function() {
return this.keyManager.checkStatus(123,this.status);
}
,get_NUMPADONE: function() {
return this.keyManager.checkStatus(97,this.status);
}
,get_NUMPADTWO: function() {
return this.keyManager.checkStatus(98,this.status);
}
,get_NUMPADTHREE: function() {
return this.keyManager.checkStatus(99,this.status);
}
,get_NUMPADFOUR: function() {
return this.keyManager.checkStatus(100,this.status);
}
,get_NUMPADFIVE: function() {
return this.keyManager.checkStatus(101,this.status);
}
,get_NUMPADSIX: function() {
return this.keyManager.checkStatus(102,this.status);
}
,get_NUMPADSEVEN: function() {
return this.keyManager.checkStatus(103,this.status);
}
,get_NUMPADEIGHT: function() {
return this.keyManager.checkStatus(104,this.status);
}
,get_NUMPADNINE: function() {
return this.keyManager.checkStatus(105,this.status);
}
,get_NUMPADZERO: function() {
return this.keyManager.checkStatus(96,this.status);
}
,get_NUMPADMINUS: function() {
return this.keyManager.checkStatus(109,this.status);
}
,get_NUMPADPLUS: function() {
return this.keyManager.checkStatus(107,this.status);
}
,get_NUMPADPERIOD: function() {
return this.keyManager.checkStatus(110,this.status);
}
,get_NUMPADMULTIPLY: function() {
return this.keyManager.checkStatus(106,this.status);
}
,__class__: flixel_input_keyboard_FlxKeyList
,__properties__: $extend(flixel_input_FlxBaseKeyList.prototype.__properties__,{get_NUMPADMULTIPLY:"get_NUMPADMULTIPLY",get_NUMPADPERIOD:"get_NUMPADPERIOD",get_NUMPADPLUS:"get_NUMPADPLUS",get_NUMPADMINUS:"get_NUMPADMINUS",get_NUMPADZERO:"get_NUMPADZERO",get_NUMPADNINE:"get_NUMPADNINE",get_NUMPADEIGHT:"get_NUMPADEIGHT",get_NUMPADSEVEN:"get_NUMPADSEVEN",get_NUMPADSIX:"get_NUMPADSIX",get_NUMPADFIVE:"get_NUMPADFIVE",get_NUMPADFOUR:"get_NUMPADFOUR",get_NUMPADTHREE:"get_NUMPADTHREE",get_NUMPADTWO:"get_NUMPADTWO",get_NUMPADONE:"get_NUMPADONE",get_F12:"get_F12",get_F11:"get_F11",get_F10:"get_F10",get_F9:"get_F9",get_F8:"get_F8",get_F7:"get_F7",get_F6:"get_F6",get_F5:"get_F5",get_F4:"get_F4",get_F3:"get_F3",get_F2:"get_F2",get_F1:"get_F1",get_PRINTSCREEN:"get_PRINTSCREEN",get_TAB:"get_TAB",get_RIGHT:"get_RIGHT",get_LEFT:"get_LEFT",get_DOWN:"get_DOWN",get_UP:"get_UP",get_SPACE:"get_SPACE",get_ALT:"get_ALT",get_CONTROL:"get_CONTROL",get_GRAVEACCENT:"get_GRAVEACCENT",get_SLASH:"get_SLASH",get_PERIOD:"get_PERIOD",get_COMMA:"get_COMMA",get_SHIFT:"get_SHIFT",get_ENTER:"get_ENTER",get_QUOTE:"get_QUOTE",get_SEMICOLON:"get_SEMICOLON",get_CAPSLOCK:"get_CAPSLOCK",get_BACKSLASH:"get_BACKSLASH",get_RBRACKET:"get_RBRACKET",get_LBRACKET:"get_LBRACKET",get_BACKSPACE:"get_BACKSPACE",get_DELETE:"get_DELETE",get_PLUS:"get_PLUS",get_MINUS:"get_MINUS",get_ESCAPE:"get_ESCAPE",get_INSERT:"get_INSERT",get_END:"get_END",get_HOME:"get_HOME",get_PAGEDOWN:"get_PAGEDOWN",get_PAGEUP:"get_PAGEUP",get_NINE:"get_NINE",get_EIGHT:"get_EIGHT",get_SEVEN:"get_SEVEN",get_SIX:"get_SIX",get_FIVE:"get_FIVE",get_FOUR:"get_FOUR",get_THREE:"get_THREE",get_TWO:"get_TWO",get_ONE:"get_ONE",get_ZERO:"get_ZERO",get_Z:"get_Z",get_Y:"get_Y",get_X:"get_X",get_W:"get_W",get_V:"get_V",get_U:"get_U",get_T:"get_T",get_S:"get_S",get_R:"get_R",get_Q:"get_Q",get_P:"get_P",get_O:"get_O",get_N:"get_N",get_M:"get_M",get_L:"get_L",get_K:"get_K",get_J:"get_J",get_I:"get_I",get_H:"get_H",get_G:"get_G",get_F:"get_F",get_E:"get_E",get_D:"get_D",get_C:"get_C",get_B:"get_B",get_A:"get_A"})
});
var flixel_input_keyboard_FlxKeyboard = function() {
flixel_input_FlxKeyManager.call(this,function(status,keyManager) {
return new flixel_input_keyboard_FlxKeyList(status,keyManager);
});
this.preventDefaultKeys = [38,40,37,39,32,9];
var code = haxe_ds_StringMap.valueIterator(flixel_input_keyboard_FlxKey.fromStringMap.h);
while(code.hasNext()) {
var code1 = code.next();
if(code1 != -2 && code1 != -1) {
var input = new flixel_input_FlxInput(code1);
this._keyListArray.push(input);
this._keyListMap.h[code1] = input;
}
}
};
$hxClasses["flixel.input.keyboard.FlxKeyboard"] = flixel_input_keyboard_FlxKeyboard;
flixel_input_keyboard_FlxKeyboard.__name__ = "flixel.input.keyboard.FlxKeyboard";
flixel_input_keyboard_FlxKeyboard.__super__ = flixel_input_FlxKeyManager;
flixel_input_keyboard_FlxKeyboard.prototype = $extend(flixel_input_FlxKeyManager.prototype,{
onKeyUp: function(event) {
flixel_input_FlxKeyManager.prototype.onKeyUp.call(this,event);
}
,onKeyDown: function(event) {
flixel_input_FlxKeyManager.prototype.onKeyDown.call(this,event);
}
,resolveKeyCode: function(e) {
return e.keyCode;
}
,record: function() {
var data = null;
var _g = 0;
var _g1 = this._keyListArray;
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
if(key == null || (key.current == 0 || key.current == -1)) {
continue;
}
if(data == null) {
data = [];
}
data.push(new flixel_system_replay_CodeValuePair(key.ID,key.current));
}
return data;
}
,playback: function(Record) {
var i = 0;
var l = Record.length;
while(i < l) {
var o = Record[i++];
var o2 = this._keyListMap.h[o.code];
o2.current = o.value;
}
}
,__class__: flixel_input_keyboard_FlxKeyboard
});
var flixel_input_mouse__$FlxMouse_GraphicCursor = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_input_mouse__$FlxMouse_GraphicCursor.preload != null) {
this.__fromImage(flixel_input_mouse__$FlxMouse_GraphicCursor.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_input_mouse__$FlxMouse_GraphicCursor.resourceName),flixel_input_mouse__$FlxMouse_GraphicCursor.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_input_mouse__$FlxMouse_GraphicCursor.preload == null) {
flixel_input_mouse__$FlxMouse_GraphicCursor.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.input.mouse._FlxMouse.GraphicCursor"] = flixel_input_mouse__$FlxMouse_GraphicCursor;
flixel_input_mouse__$FlxMouse_GraphicCursor.__name__ = "flixel.input.mouse._FlxMouse.GraphicCursor";
flixel_input_mouse__$FlxMouse_GraphicCursor.preload = null;
flixel_input_mouse__$FlxMouse_GraphicCursor.__super__ = openfl_display_BitmapData;
flixel_input_mouse__$FlxMouse_GraphicCursor.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_input_mouse__$FlxMouse_GraphicCursor
});
var flixel_input_mouse_FlxMouseButton = function(ID) {
this.justPressedTimeInTicks = -1;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.justPressedPosition = point;
flixel_input_FlxInput.call(this,ID);
};
$hxClasses["flixel.input.mouse.FlxMouseButton"] = flixel_input_mouse_FlxMouseButton;
flixel_input_mouse_FlxMouseButton.__name__ = "flixel.input.mouse.FlxMouseButton";
flixel_input_mouse_FlxMouseButton.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_input_mouse_FlxMouseButton.getByID = function(id) {
switch(id) {
case -3:
return flixel_FlxG.mouse._rightButton;
case -2:
return flixel_FlxG.mouse._middleButton;
case -1:
return flixel_FlxG.mouse._leftButton;
}
};
flixel_input_mouse_FlxMouseButton.__super__ = flixel_input_FlxInput;
flixel_input_mouse_FlxMouseButton.prototype = $extend(flixel_input_FlxInput.prototype,{
justPressedPosition: null
,justPressedTimeInTicks: null
,update: function() {
flixel_input_FlxInput.prototype.update.call(this);
if(this.current == 2) {
this.justPressedPosition.set(flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY);
this.justPressedTimeInTicks = flixel_FlxG.game.ticks;
} else if(this.current == -1) {
flixel_FlxG.swipes.push(new flixel_input_FlxSwipe(this.ID,this.justPressedPosition,flixel_FlxG.mouse.getScreenPosition(),this.justPressedTimeInTicks));
}
}
,destroy: function() {
this.justPressedPosition = flixel_util_FlxDestroyUtil.put(this.justPressedPosition);
}
,onDown: function(_) {
if(flixel_FlxG.mouse.enabled) {
this.press();
}
}
,onUp: function(_) {
if(flixel_FlxG.mouse.enabled) {
this.release();
}
}
,__class__: flixel_input_mouse_FlxMouseButton
});
var flixel_input_touch_FlxTouch = function(x,y,pointID) {
if(pointID == null) {
pointID = 0;
}
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
this.justPressedTimeInTicks = -1;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
this.justPressedPosition = point;
this.flashPoint = new openfl_geom_Point();
flixel_input_FlxPointer.call(this);
this.input = new flixel_input_FlxInput(pointID);
this.setXY(x,y);
};
$hxClasses["flixel.input.touch.FlxTouch"] = flixel_input_touch_FlxTouch;
flixel_input_touch_FlxTouch.__name__ = "flixel.input.touch.FlxTouch";
flixel_input_touch_FlxTouch.__interfaces__ = [flixel_input_IFlxInput,flixel_util_IFlxDestroyable];
flixel_input_touch_FlxTouch.__super__ = flixel_input_FlxPointer;
flixel_input_touch_FlxTouch.prototype = $extend(flixel_input_FlxPointer.prototype,{
input: null
,flashPoint: null
,justPressedPosition: null
,justPressedTimeInTicks: null
,destroy: function() {
this.input = null;
this.justPressedPosition = flixel_util_FlxDestroyUtil.put(this.justPressedPosition);
this.flashPoint = null;
}
,recycle: function(x,y,pointID) {
this.setXY(x,y);
this.input.ID = pointID;
this.input.reset();
}
,update: function() {
this.input.update();
if(this.input.current == 2) {
this.justPressedPosition.set(this.screenX,this.screenY);
this.justPressedTimeInTicks = flixel_FlxG.game.ticks;
} else if(this.input.current == -1) {
flixel_FlxG.swipes.push(new flixel_input_FlxSwipe(this.input.ID,this.justPressedPosition,this.getScreenPosition(),this.justPressedTimeInTicks));
}
}
,setXY: function(X,Y) {
this.flashPoint.setTo(X,Y);
this.flashPoint = flixel_FlxG.game.globalToLocal(this.flashPoint);
this._globalScreenX = this.flashPoint.x / flixel_FlxG.scaleMode.scale.x | 0;
this._globalScreenY = this.flashPoint.y / flixel_FlxG.scaleMode.scale.y | 0;
this.updatePositions();
}
,get_touchPointID: function() {
return this.input.ID;
}
,get_justReleased: function() {
return this.input.current == -1;
}
,get_released: function() {
var _this = this.input;
if(_this.current != 0) {
return _this.current == -1;
} else {
return true;
}
}
,get_pressed: function() {
var _this = this.input;
if(_this.current != 1) {
return _this.current == 2;
} else {
return true;
}
}
,get_justPressed: function() {
return this.input.current == 2;
}
,__class__: flixel_input_touch_FlxTouch
,__properties__: {get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",get_touchPointID:"get_touchPointID"}
});
var flixel_input_touch_FlxTouchManager = function() {
this.list = [];
this._inactiveTouches = [];
this._touchesCache = new haxe_ds_IntMap();
flixel_input_touch_FlxTouchManager.maxTouchPoints = openfl_ui_Multitouch.maxTouchPoints;
openfl_ui_Multitouch.inputMode = 2;
openfl_Lib.get_current().stage.addEventListener("touchBegin",$bind(this,this.handleTouchBegin));
openfl_Lib.get_current().stage.addEventListener("touchEnd",$bind(this,this.handleTouchEnd));
openfl_Lib.get_current().stage.addEventListener("touchMove",$bind(this,this.handleTouchMove));
};
$hxClasses["flixel.input.touch.FlxTouchManager"] = flixel_input_touch_FlxTouchManager;
flixel_input_touch_FlxTouchManager.__name__ = "flixel.input.touch.FlxTouchManager";
flixel_input_touch_FlxTouchManager.__interfaces__ = [flixel_input_IFlxInputManager];
flixel_input_touch_FlxTouchManager.prototype = {
list: null
,_inactiveTouches: null
,_touchesCache: null
,getByID: function(TouchPointID) {
return this._touchesCache.h[TouchPointID];
}
,getFirst: function() {
if(this.list[0] != null) {
return this.list[0];
} else {
return null;
}
}
,destroy: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var touch = _g1[_g];
++_g;
touch.destroy();
}
this.list = null;
var _g = 0;
var _g1 = this._inactiveTouches;
while(_g < _g1.length) {
var touch = _g1[_g];
++_g;
touch.destroy();
}
this._inactiveTouches = null;
this._touchesCache = null;
}
,justStarted: function(TouchArray) {
if(TouchArray == null) {
TouchArray = [];
}
var touchLen = TouchArray.length;
if(touchLen > 0) {
TouchArray.splice(0,touchLen);
}
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var touch = _g1[_g];
++_g;
if(touch.input.current == 2) {
TouchArray.push(touch);
}
}
return TouchArray;
}
,justReleased: function(TouchArray) {
if(TouchArray == null) {
TouchArray = [];
}
var touchLen = TouchArray.length;
if(touchLen > 0) {
TouchArray.splice(0,touchLen);
}
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var touch = _g1[_g];
++_g;
if(touch.input.current == -1) {
TouchArray.push(touch);
}
}
return TouchArray;
}
,reset: function() {
var key = this._touchesCache.keys();
while(key.hasNext()) {
var key1 = key.next();
this._touchesCache.remove(key1);
}
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var touch = _g1[_g];
++_g;
touch.input.reset();
this._inactiveTouches.push(touch);
}
this.list.splice(0,this.list.length);
}
,handleTouchBegin: function(FlashEvent) {
var touch = this._touchesCache.h[FlashEvent.touchPointID];
if(touch != null) {
touch.setXY(FlashEvent.stageX | 0,FlashEvent.stageY | 0);
} else {
touch = this.recycle(FlashEvent.stageX | 0,FlashEvent.stageY | 0,FlashEvent.touchPointID);
}
touch.input.press();
}
,handleTouchEnd: function(FlashEvent) {
var touch = this._touchesCache.h[FlashEvent.touchPointID];
if(touch != null) {
touch.input.release();
}
}
,handleTouchMove: function(FlashEvent) {
var touch = this._touchesCache.h[FlashEvent.touchPointID];
if(touch != null) {
touch.setXY(FlashEvent.stageX | 0,FlashEvent.stageY | 0);
}
}
,add: function(Touch1) {
this.list.push(Touch1);
this._touchesCache.h[Touch1.input.ID] = Touch1;
return Touch1;
}
,recycle: function(X,Y,PointID) {
if(this._inactiveTouches.length > 0) {
var touch = this._inactiveTouches.pop();
touch.recycle(X,Y,PointID);
return this.add(touch);
}
return this.add(new flixel_input_touch_FlxTouch(X,Y,PointID));
}
,update: function() {
var i = this.list.length - 1;
var touch;
while(i >= 0) {
touch = this.list[i];
var _this = touch.input;
if((_this.current == 0 || _this.current == -1) && touch.input.current != -1) {
touch.input.reset();
this._touchesCache.remove(touch.input.ID);
this.list.splice(i,1);
this._inactiveTouches.push(touch);
} else {
touch.update();
}
--i;
}
}
,onFocus: function() {
}
,onFocusLost: function() {
this.reset();
}
,__class__: flixel_input_touch_FlxTouchManager
};
var flixel_math_FlxAngle = function() { };
$hxClasses["flixel.math.FlxAngle"] = flixel_math_FlxAngle;
flixel_math_FlxAngle.__name__ = "flixel.math.FlxAngle";
flixel_math_FlxAngle.__properties__ = {get_TO_RAD:"get_TO_RAD",get_TO_DEG:"get_TO_DEG"};
flixel_math_FlxAngle.wrapAngle = function(angle) {
if(angle > 180) {
angle = flixel_math_FlxAngle.wrapAngle(angle - 360);
} else if(angle < -180) {
angle = flixel_math_FlxAngle.wrapAngle(angle + 360);
}
return angle;
};
flixel_math_FlxAngle.asDegrees = function(radians) {
return radians * (180 / Math.PI);
};
flixel_math_FlxAngle.asRadians = function(degrees) {
return degrees * (Math.PI / 180);
};
flixel_math_FlxAngle.angleBetween = function(SpriteA,SpriteB,AsDegrees) {
if(AsDegrees == null) {
AsDegrees = false;
}
var dx = SpriteB.x + SpriteB.origin.x - (SpriteA.x + SpriteA.origin.x);
var dy = SpriteB.y + SpriteB.origin.y - (SpriteA.y + SpriteA.origin.y);
if(AsDegrees) {
return Math.atan2(dy,dx) * (180 / Math.PI);
} else {
return Math.atan2(dy,dx);
}
};
flixel_math_FlxAngle.angleBetweenPoint = function(Sprite,Target,AsDegrees) {
if(AsDegrees == null) {
AsDegrees = false;
}
var dx = Target.x - (Sprite.x + Sprite.origin.x);
var dy = Target.y - (Sprite.y + Sprite.origin.y);
if(Target._weak) {
Target.put();
}
if(AsDegrees) {
return Math.atan2(dy,dx) * (180 / Math.PI);
} else {
return Math.atan2(dy,dx);
}
};
flixel_math_FlxAngle.angleBetweenMouse = function(Object1,AsDegrees) {
if(AsDegrees == null) {
AsDegrees = false;
}
if(Object1 == null) {
return 0;
}
var p = Object1.getScreenPosition();
var dx = flixel_FlxG.mouse.screenX - p.x;
var dy = flixel_FlxG.mouse.screenY - p.y;
p.put();
if(AsDegrees) {
return Math.atan2(dy,dx) * (180 / Math.PI);
} else {
return Math.atan2(dy,dx);
}
};
flixel_math_FlxAngle.angleBetweenTouch = function(Object1,Touch1,AsDegrees) {
if(AsDegrees == null) {
AsDegrees = false;
}
var p = Object1.getScreenPosition();
var dx = Touch1.screenX - p.x;
var dy = Touch1.screenY - p.y;
p.put();
if(AsDegrees) {
return Math.atan2(dy,dx) * (180 / Math.PI);
} else {
return Math.atan2(dy,dx);
}
};
flixel_math_FlxAngle.angleFromFacing = function(FacingBitmask,AsDegrees) {
if(AsDegrees == null) {
AsDegrees = false;
}
var degrees;
switch(FacingBitmask) {
case 1:
degrees = 180;
break;
case 16:
degrees = 0;
break;
case 256:
degrees = -90;
break;
case 4096:
degrees = 90;
break;
default:
var f = FacingBitmask;
if(f == 257) {
degrees = -135;
} else {
var f = FacingBitmask;
if(f == 272) {
degrees = -45;
} else {
var f = FacingBitmask;
if(f == 4097) {
degrees = 135;
} else {
var f = FacingBitmask;
degrees = f == 4112 ? 45 : 0;
}
}
}
}
if(AsDegrees) {
return degrees;
} else {
return degrees * (Math.PI / 180);
}
};
flixel_math_FlxAngle.getCartesianCoords = function(Radius,Angle,point) {
var p = point;
if(p == null) {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
p = point;
}
p.set_x(Radius * Math.cos(Angle * (Math.PI / 180)));
p.set_y(Radius * Math.sin(Angle * (Math.PI / 180)));
return p;
};
flixel_math_FlxAngle.getPolarCoords = function(X,Y,point) {
var p = point;
if(p == null) {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
p = point;
}
p.set_x(Math.sqrt(X * X + Y * Y));
p.set_y(Math.atan2(Y,X) * (180 / Math.PI));
return p;
};
flixel_math_FlxAngle.get_TO_DEG = function() {
return 180 / Math.PI;
};
flixel_math_FlxAngle.get_TO_RAD = function() {
return Math.PI / 180;
};
var flixel_math_FlxMath = function() { };
$hxClasses["flixel.math.FlxMath"] = flixel_math_FlxMath;
flixel_math_FlxMath.__name__ = "flixel.math.FlxMath";
flixel_math_FlxMath.roundDecimal = function(Value,Precision) {
var mult = 1;
var _g = 0;
var _g1 = Precision;
while(_g < _g1) {
var i = _g++;
mult *= 10;
}
return Math.round(Value * mult) / mult;
};
flixel_math_FlxMath.bound = function(Value,Min,Max) {
var lowerBound = Min != null && Value < Min ? Min : Value;
if(Max != null && lowerBound > Max) {
return Max;
} else {
return lowerBound;
}
};
flixel_math_FlxMath.lerp = function(a,b,ratio) {
return a + ratio * (b - a);
};
flixel_math_FlxMath.inBounds = function(Value,Min,Max) {
if(Min == null || Value >= Min) {
if(Max != null) {
return Value <= Max;
} else {
return true;
}
} else {
return false;
}
};
flixel_math_FlxMath.isOdd = function(n) {
return ((n | 0) & 1) != 0;
};
flixel_math_FlxMath.isEven = function(n) {
return ((n | 0) & 1) == 0;
};
flixel_math_FlxMath.numericComparison = function(a,b) {
if(b > a) {
return -1;
} else if(a > b) {
return 1;
}
return 0;
};
flixel_math_FlxMath.pointInCoordinates = function(pointX,pointY,rectX,rectY,rectWidth,rectHeight) {
if(pointX >= rectX && pointX <= rectX + rectWidth) {
if(pointY >= rectY && pointY <= rectY + rectHeight) {
return true;
}
}
return false;
};
flixel_math_FlxMath.pointInFlxRect = function(pointX,pointY,rect) {
if(pointX >= rect.x && pointX <= rect.x + rect.width && pointY >= rect.y) {
return pointY <= rect.y + rect.height;
} else {
return false;
}
};
flixel_math_FlxMath.mouseInFlxRect = function(useWorldCoords,rect) {
if(rect == null) {
return true;
}
if(useWorldCoords) {
return flixel_math_FlxMath.pointInFlxRect(Math.floor(flixel_FlxG.mouse.x),Math.floor(flixel_FlxG.mouse.y),rect);
} else {
return flixel_math_FlxMath.pointInFlxRect(flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY,rect);
}
};
flixel_math_FlxMath.pointInRectangle = function(pointX,pointY,rect) {
if(pointX >= rect.x && pointX <= rect.get_right() && pointY >= rect.y) {
return pointY <= rect.get_bottom();
} else {
return false;
}
};
flixel_math_FlxMath.maxAdd = function(value,amount,max,min) {
if(min == null) {
min = 0;
}
value += amount;
if(value > max) {
value = max;
} else if(value <= min) {
value = min;
}
return value;
};
flixel_math_FlxMath.wrap = function(value,min,max) {
var range = max - min + 1;
if(value < min) {
value += range * ((min - value) / range + 1 | 0);
}
return min + (value - min) % range;
};
flixel_math_FlxMath.remapToRange = function(value,start1,stop1,start2,stop2) {
return start2 + (value - start1) * ((stop2 - start2) / (stop1 - start1));
};
flixel_math_FlxMath.dotProduct = function(ax,ay,bx,by) {
return ax * bx + ay * by;
};
flixel_math_FlxMath.vectorLength = function(dx,dy) {
return Math.sqrt(dx * dx + dy * dy);
};
flixel_math_FlxMath.distanceBetween = function(SpriteA,SpriteB) {
var dx = SpriteA.x + SpriteA.origin.x - (SpriteB.x + SpriteB.origin.x);
var dy = SpriteA.y + SpriteA.origin.y - (SpriteB.y + SpriteB.origin.y);
return Math.sqrt(dx * dx + dy * dy) | 0;
};
flixel_math_FlxMath.isDistanceWithin = function(SpriteA,SpriteB,Distance,IncludeEqual) {
if(IncludeEqual == null) {
IncludeEqual = false;
}
var dx = SpriteA.x + SpriteA.origin.x - (SpriteB.x + SpriteB.origin.x);
var dy = SpriteA.y + SpriteA.origin.y - (SpriteB.y + SpriteB.origin.y);
if(IncludeEqual) {
return dx * dx + dy * dy <= Distance * Distance;
} else {
return dx * dx + dy * dy < Distance * Distance;
}
};
flixel_math_FlxMath.distanceToPoint = function(Sprite,Target) {
var dx = Sprite.x + Sprite.origin.x - Target.x;
var dy = Sprite.y + Sprite.origin.y - Target.y;
if(Target._weak) {
Target.put();
}
return Math.sqrt(dx * dx + dy * dy) | 0;
};
flixel_math_FlxMath.isDistanceToPointWithin = function(Sprite,Target,Distance,IncludeEqual) {
if(IncludeEqual == null) {
IncludeEqual = false;
}
var dx = Sprite.x + Sprite.origin.x - Target.x;
var dy = Sprite.y + Sprite.origin.y - Target.y;
if(Target._weak) {
Target.put();
}
if(IncludeEqual) {
return dx * dx + dy * dy <= Distance * Distance;
} else {
return dx * dx + dy * dy < Distance * Distance;
}
};
flixel_math_FlxMath.distanceToMouse = function(Sprite) {
var dx = Sprite.x + Sprite.origin.x - flixel_FlxG.mouse.screenX;
var dy = Sprite.y + Sprite.origin.y - flixel_FlxG.mouse.screenY;
return Math.sqrt(dx * dx + dy * dy) | 0;
};
flixel_math_FlxMath.isDistanceToMouseWithin = function(Sprite,Distance,IncludeEqual) {
if(IncludeEqual == null) {
IncludeEqual = false;
}
var dx = Sprite.x + Sprite.origin.x - flixel_FlxG.mouse.screenX;
var dy = Sprite.y + Sprite.origin.y - flixel_FlxG.mouse.screenY;
if(IncludeEqual) {
return dx * dx + dy * dy <= Distance * Distance;
} else {
return dx * dx + dy * dy < Distance * Distance;
}
};
flixel_math_FlxMath.distanceToTouch = function(Sprite,Touch1) {
var dx = Sprite.x + Sprite.origin.x - Touch1.screenX;
var dy = Sprite.y + Sprite.origin.y - Touch1.screenY;
return Math.sqrt(dx * dx + dy * dy) | 0;
};
flixel_math_FlxMath.isDistanceToTouchWithin = function(Sprite,Touch1,Distance,IncludeEqual) {
if(IncludeEqual == null) {
IncludeEqual = false;
}
var dx = Sprite.x + Sprite.origin.x - Touch1.screenX;
var dy = Sprite.y + Sprite.origin.y - Touch1.screenY;
if(IncludeEqual) {
return dx * dx + dy * dy <= Distance * Distance;
} else {
return dx * dx + dy * dy < Distance * Distance;
}
};
flixel_math_FlxMath.getDecimals = function(n) {
var helperArray = (n == null ? "null" : "" + n).split(".");
var decimals = 0;
if(helperArray.length > 1) {
decimals = helperArray[1].length;
}
return decimals;
};
flixel_math_FlxMath.equal = function(aValueA,aValueB,aDiff) {
if(aDiff == null) {
aDiff = 0.0000001;
}
return Math.abs(aValueA - aValueB) <= aDiff;
};
flixel_math_FlxMath.signOf = function(n) {
if(n < 0) {
return -1;
} else {
return 1;
}
};
flixel_math_FlxMath.sameSign = function(a,b) {
return (a < 0 ? -1 : 1) == (b < 0 ? -1 : 1);
};
flixel_math_FlxMath.fastSin = function(n) {
n *= 0.3183098862;
if(n > 1) {
n -= Math.ceil(n) >> 1 << 1;
} else if(n < -1) {
n += Math.ceil(-n) >> 1 << 1;
}
if(n > 0) {
return n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6)));
} else {
return n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6)));
}
};
flixel_math_FlxMath.fastCos = function(n) {
var n1 = n + 1.570796327;
n1 *= 0.3183098862;
if(n1 > 1) {
n1 -= Math.ceil(n1) >> 1 << 1;
} else if(n1 < -1) {
n1 += Math.ceil(-n1) >> 1 << 1;
}
if(n1 > 0) {
return n1 * (3.1 + n1 * (0.5 + n1 * (-7.2 + n1 * 3.6)));
} else {
return n1 * (3.1 - n1 * (0.5 + n1 * (7.2 + n1 * 3.6)));
}
};
flixel_math_FlxMath.sinh = function(n) {
return (Math.exp(n) - Math.exp(-n)) / 2;
};
flixel_math_FlxMath.maxInt = function(a,b) {
if(a > b) {
return a;
} else {
return b;
}
};
flixel_math_FlxMath.minInt = function(a,b) {
if(a > b) {
return b;
} else {
return a;
}
};
flixel_math_FlxMath.absInt = function(n) {
if(n > 0) {
return n;
} else {
return -n;
}
};
var flixel_math_FlxMatrix = function(a,b,c,d,tx,ty) {
openfl_geom_Matrix.call(this,a,b,c,d,tx,ty);
};
$hxClasses["flixel.math.FlxMatrix"] = flixel_math_FlxMatrix;
flixel_math_FlxMatrix.__name__ = "flixel.math.FlxMatrix";
flixel_math_FlxMatrix.__super__ = openfl_geom_Matrix;
flixel_math_FlxMatrix.prototype = $extend(openfl_geom_Matrix.prototype,{
rotateWithTrig: function(cos,sin) {
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;
return this;
}
,rotateBy180: function() {
this.setTo(-this.a,-this.b,-this.c,-this.d,-this.tx,-this.ty);
return this;
}
,rotateByPositive90: function() {
this.setTo(-this.b,this.a,-this.d,this.c,-this.ty,this.tx);
return this;
}
,rotateByNegative90: function() {
this.setTo(this.b,-this.a,this.d,-this.c,this.ty,-this.tx);
return this;
}
,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;
}
,__class__: flixel_math_FlxMatrix
});
var flixel_math_FlxCallbackPoint = function(setXCallback,setYCallback,setXYCallback) {
flixel_math_FlxPoint.call(this);
this._setXCallback = setXCallback;
this._setYCallback = setXYCallback;
this._setXYCallback = setXYCallback;
if(this._setXCallback != null) {
if(this._setYCallback == null) {
this._setYCallback = setXCallback;
}
if(this._setXYCallback == null) {
this._setXYCallback = setXCallback;
}
}
};
$hxClasses["flixel.math.FlxCallbackPoint"] = flixel_math_FlxCallbackPoint;
flixel_math_FlxCallbackPoint.__name__ = "flixel.math.FlxCallbackPoint";
flixel_math_FlxCallbackPoint.__super__ = flixel_math_FlxPoint;
flixel_math_FlxCallbackPoint.prototype = $extend(flixel_math_FlxPoint.prototype,{
_setXCallback: null
,_setYCallback: null
,_setXYCallback: null
,set: function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
flixel_math_FlxPoint.prototype.set.call(this,X,Y);
if(this._setXYCallback != null) {
this._setXYCallback(this);
}
return this;
}
,set_x: function(Value) {
flixel_math_FlxPoint.prototype.set_x.call(this,Value);
if(this._setXCallback != null) {
this._setXCallback(this);
}
return Value;
}
,set_y: function(Value) {
flixel_math_FlxPoint.prototype.set_y.call(this,Value);
if(this._setYCallback != null) {
this._setYCallback(this);
}
return Value;
}
,destroy: function() {
flixel_math_FlxPoint.prototype.destroy.call(this);
this._setXCallback = null;
this._setYCallback = null;
this._setXYCallback = null;
}
,put: function() {
}
,__class__: flixel_math_FlxCallbackPoint
});
var flixel_math_FlxVector = {};
flixel_math_FlxVector.__properties__ = {get_ly:"get_ly",get_lx:"get_lx",get_ry:"get_ry",get_rx:"get_rx",set_radians:"set_radians",get_radians:"get_radians",set_degrees:"set_degrees",get_degrees:"get_degrees",get_lengthSquared:"get_lengthSquared",set_length:"set_length",get_length:"get_length",get_dy:"get_dy",get_dx:"get_dx",set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x",get_pool:"get_pool"};
flixel_math_FlxVector.get = function(x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
return point;
};
flixel_math_FlxVector.weak = function(x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
return point1;
};
flixel_math_FlxVector._new = function(x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var this1 = new flixel_math_FlxPoint(x,y);
return this1;
};
flixel_math_FlxVector.set = function(this1,x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
return this1.set(x,y);
};
flixel_math_FlxVector.add = function(this1,x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = this1;
_g.set_x(_g.x + X);
var _g = this1;
_g.set_y(_g.y + Y);
return this1;
};
flixel_math_FlxVector.addPoint = function(this1,point) {
return this1.addPoint(point);
};
flixel_math_FlxVector.subtract = function(this1,x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = this1;
_g.set_x(_g.x - X);
var _g = this1;
_g.set_y(_g.y - Y);
return this1;
};
flixel_math_FlxVector.subtractPoint = function(this1,point) {
return this1.subtractPoint(point);
};
flixel_math_FlxVector.scale = function(this1,k) {
return this1.scale(k);
};
flixel_math_FlxVector.scaleNew = function(this1,k) {
return flixel_math_FlxVector.clone(this1).scale(k);
};
flixel_math_FlxVector.addNew = function(this1,v) {
return flixel_math_FlxVector.clone(this1).addPoint(v);
};
flixel_math_FlxVector.subtractNew = function(this1,v) {
return flixel_math_FlxVector.clone(this1).subtractPoint(v);
};
flixel_math_FlxVector.copyFrom = function(this1,point) {
this1.set_x(point.x);
this1.set_y(point.y);
if(point._weak) {
point.put();
}
return this1;
};
flixel_math_FlxVector.copyFromFlash = function(this1,flashPoint) {
this1.set_x(flashPoint.x);
this1.set_y(flashPoint.y);
return this1;
};
flixel_math_FlxVector.floor = function(this1) {
this1.set_x(Math.floor(this1.x));
this1.set_y(Math.floor(this1.y));
return this1;
};
flixel_math_FlxVector.ceil = function(this1) {
this1.set_x(Math.ceil(this1.x));
this1.set_y(Math.ceil(this1.y));
return this1;
};
flixel_math_FlxVector.round = function(this1) {
this1.set_x(Math.round(this1.x));
this1.set_y(Math.round(this1.y));
return this1;
};
flixel_math_FlxVector.rotate = function(this1,pivot,angle) {
return this1.rotate(pivot,angle);
};
flixel_math_FlxVector.transform = function(this1,matrix) {
var x1 = this1.x * matrix.a + this1.y * matrix.c + matrix.tx;
var y1 = this1.x * matrix.b + this1.y * matrix.d + matrix.ty;
return this1.set(x1,y1);
};
flixel_math_FlxVector.dotProduct = function(this1,v) {
var dp = this1.x * v.x + this1.y * v.y;
if(v._weak) {
v.put();
}
return dp;
};
flixel_math_FlxVector.dotProductWeak = function(this1,v) {
return this1.x * v.x + this1.y * v.y;
};
flixel_math_FlxVector.dotProdWithNormalizing = function(this1,v) {
var normalized = flixel_math_FlxVector.normalize(flixel_math_FlxVector.clone(v,flixel_math_FlxVector._vector1));
if(v._weak) {
v.put();
}
return this1.x * normalized.x + this1.y * normalized.y;
};
flixel_math_FlxVector.isPerpendicular = function(this1,v) {
var dp = this1.x * v.x + this1.y * v.y;
if(v._weak) {
v.put();
}
return Math.abs(dp) < 9.9999999999999984e-015;
};
flixel_math_FlxVector.crossProductLength = function(this1,v) {
var cp = this1.x * v.y - this1.y * v.x;
if(v._weak) {
v.put();
}
return cp;
};
flixel_math_FlxVector.crossProductLengthWeak = function(this1,v) {
return this1.x * v.y - this1.y * v.x;
};
flixel_math_FlxVector.isParallel = function(this1,v) {
var p = Math.abs(this1.x * v.y - this1.y * v.x) < 9.9999999999999984e-015;
if(v._weak) {
v.put();
}
return p;
};
flixel_math_FlxVector.isParallelWeak = function(this1,v) {
return Math.abs(this1.x * v.y - this1.y * v.x) < 9.9999999999999984e-015;
};
flixel_math_FlxVector.isZero = function(this1) {
if(Math.abs(this1.x) < 0.0000001) {
return Math.abs(this1.y) < 0.0000001;
} else {
return false;
}
};
flixel_math_FlxVector.zero = function(this1) {
this1.set_x(this1.set_y(0));
return this1;
};
flixel_math_FlxVector.normalize = function(this1) {
if(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001) {
return this1;
}
return this1.scale(1 / Math.sqrt(this1.x * this1.x + this1.y * this1.y));
};
flixel_math_FlxVector.isNormalized = function(this1) {
return Math.abs(this1.x * this1.x + this1.y * this1.y - 1) < 9.9999999999999984e-015;
};
flixel_math_FlxVector.rotateByRadians = function(this1,rads) {
var s = Math.sin(rads);
var c = Math.cos(rads);
var tempX = this1.x;
this1.set_x(tempX * c - this1.y * s);
this1.set_y(tempX * s + this1.y * c);
return this1;
};
flixel_math_FlxVector.rotateByDegrees = function(this1,degs) {
var rads = degs * (Math.PI / 180);
var s = Math.sin(rads);
var c = Math.cos(rads);
var tempX = this1.x;
this1.set_x(tempX * c - this1.y * s);
this1.set_y(tempX * s + this1.y * c);
return this1;
};
flixel_math_FlxVector.rotateWithTrig = function(this1,sin,cos) {
var tempX = this1.x;
this1.set_x(tempX * cos - this1.y * sin);
this1.set_y(tempX * sin + this1.y * cos);
return this1;
};
flixel_math_FlxVector.rightNormal = function(this1,vec) {
if(vec == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
vec = point;
}
var x = -this1.y;
var y = this1.x;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
vec.set(x,y);
return vec;
};
flixel_math_FlxVector.leftNormal = function(this1,vec) {
if(vec == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
vec = point;
}
var x = this1.y;
var y = -this1.x;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
vec.set(x,y);
return vec;
};
flixel_math_FlxVector.negate = function(this1) {
var _g = this1;
_g.set_x(_g.x * -1);
var _g = this1;
_g.set_y(_g.y * -1);
return this1;
};
flixel_math_FlxVector.negateNew = function(this1) {
var this2 = flixel_math_FlxVector.clone(this1);
var _g = this2;
_g.set_x(_g.x * -1);
var _g = this2;
_g.set_y(_g.y * -1);
return this2;
};
flixel_math_FlxVector.projectTo = function(this1,v,proj) {
var dp = this1.x * v.x + this1.y * v.y;
var lenSq = v.x * v.x + v.y * v.y;
if(proj == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
proj = point;
}
var x = dp * v.x / lenSq;
var y = dp * v.y / lenSq;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
proj.set(x,y);
if(v._weak) {
v.put();
}
return proj;
};
flixel_math_FlxVector.projectToNormalized = function(this1,v,proj) {
var proj1 = proj;
var dp = this1.x * v.x + this1.y * v.y;
if(proj1 == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
proj1 = point;
}
var x = dp * v.x;
var y = dp * v.y;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
proj = proj1.set(x,y);
if(v._weak) {
v.put();
}
return proj;
};
flixel_math_FlxVector.projectToNormalizedWeak = function(this1,v,proj) {
var dp = this1.x * v.x + this1.y * v.y;
if(proj == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
proj = point;
}
var x = dp * v.x;
var y = dp * v.y;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
return proj.set(x,y);
};
flixel_math_FlxVector.perpProduct = function(this1,v) {
var pp = this1.y * v.x + -this1.x * v.y;
if(v._weak) {
v.put();
}
return pp;
};
flixel_math_FlxVector.perpProductWeak = function(this1,v) {
return this1.y * v.x + -this1.x * v.y;
};
flixel_math_FlxVector.ratio = function(this1,a,b,v) {
var r;
if(Math.abs(this1.x * v.y - this1.y * v.x) < 9.9999999999999984e-015) {
r = NaN;
} else if(this1.x * this1.x + this1.y * this1.y < 9.9999999999999984e-015 || v.x * v.x + v.y * v.y < 9.9999999999999984e-015) {
r = NaN;
} else {
flixel_math_FlxVector._vector1 = flixel_math_FlxVector.clone(b,flixel_math_FlxVector._vector1);
var _this = flixel_math_FlxVector._vector1;
var _g = _this;
_g.set_x(_g.x - a.x);
var _g = _this;
_g.set_y(_g.y - a.y);
var this2 = flixel_math_FlxVector._vector1;
r = (this2.y * v.x + -this2.x * v.y) / (this1.y * v.x + -this1.x * v.y);
}
if(a._weak) {
a.put();
}
if(b._weak) {
b.put();
}
if(v._weak) {
v.put();
}
return r;
};
flixel_math_FlxVector.ratioWeak = function(this1,a,b,v) {
if(Math.abs(this1.x * v.y - this1.y * v.x) < 9.9999999999999984e-015) {
return NaN;
}
if(this1.x * this1.x + this1.y * this1.y < 9.9999999999999984e-015 || v.x * v.x + v.y * v.y < 9.9999999999999984e-015) {
return NaN;
}
flixel_math_FlxVector._vector1 = flixel_math_FlxVector.clone(b,flixel_math_FlxVector._vector1);
var _this = flixel_math_FlxVector._vector1;
var _g = _this;
_g.set_x(_g.x - a.x);
var _g = _this;
_g.set_y(_g.y - a.y);
var this2 = flixel_math_FlxVector._vector1;
return (this2.y * v.x + -this2.x * v.y) / (this1.y * v.x + -this1.x * v.y);
};
flixel_math_FlxVector.findIntersection = function(this1,a,b,v,intersection) {
var t;
if(Math.abs(this1.x * v.y - this1.y * v.x) < 9.9999999999999984e-015) {
t = NaN;
} else if(this1.x * this1.x + this1.y * this1.y < 9.9999999999999984e-015 || v.x * v.x + v.y * v.y < 9.9999999999999984e-015) {
t = NaN;
} else {
flixel_math_FlxVector._vector1 = flixel_math_FlxVector.clone(b,flixel_math_FlxVector._vector1);
var _this = flixel_math_FlxVector._vector1;
var _g = _this;
_g.set_x(_g.x - a.x);
var _g = _this;
_g.set_y(_g.y - a.y);
var this2 = flixel_math_FlxVector._vector1;
t = (this2.y * v.x + -this2.x * v.y) / (this1.y * v.x + -this1.x * v.y);
}
if(intersection == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
intersection = point;
}
if(isNaN(t)) {
var x = NaN;
var y = NaN;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
intersection.set(x,y);
} else {
var x = a.x + t * this1.x;
var y = a.y + t * this1.y;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
intersection.set(x,y);
}
if(a._weak) {
a.put();
}
if(b._weak) {
b.put();
}
if(v._weak) {
v.put();
}
return intersection;
};
flixel_math_FlxVector.findIntersectionInBounds = function(this1,a,b,v,intersection) {
if(intersection == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
intersection = point;
}
var t1;
if(Math.abs(this1.x * v.y - this1.y * v.x) < 9.9999999999999984e-015) {
t1 = NaN;
} else if(this1.x * this1.x + this1.y * this1.y < 9.9999999999999984e-015 || v.x * v.x + v.y * v.y < 9.9999999999999984e-015) {
t1 = NaN;
} else {
flixel_math_FlxVector._vector1 = flixel_math_FlxVector.clone(b,flixel_math_FlxVector._vector1);
var _this = flixel_math_FlxVector._vector1;
var _g = _this;
_g.set_x(_g.x - a.x);
var _g = _this;
_g.set_y(_g.y - a.y);
var this2 = flixel_math_FlxVector._vector1;
t1 = (this2.y * v.x + -this2.x * v.y) / (this1.y * v.x + -this1.x * v.y);
}
var t2;
if(Math.abs(v.x * this1.y - v.y * this1.x) < 9.9999999999999984e-015) {
t2 = NaN;
} else if(v.x * v.x + v.y * v.y < 9.9999999999999984e-015 || this1.x * this1.x + this1.y * this1.y < 9.9999999999999984e-015) {
t2 = NaN;
} else {
flixel_math_FlxVector._vector1 = flixel_math_FlxVector.clone(a,flixel_math_FlxVector._vector1);
var _this = flixel_math_FlxVector._vector1;
var _g = _this;
_g.set_x(_g.x - b.x);
var _g = _this;
_g.set_y(_g.y - b.y);
var this2 = flixel_math_FlxVector._vector1;
t2 = (this2.y * this1.x + -this2.x * this1.y) / (v.y * this1.x + -v.x * this1.y);
}
if(!isNaN(t1) && !isNaN(t2) && t1 > 0 && t1 <= 1 && t2 > 0 && t2 <= 1) {
var x = a.x + t1 * this1.x;
var y = a.y + t1 * this1.y;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
intersection.set(x,y);
} else {
var x = NaN;
var y = NaN;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
intersection.set(x,y);
}
if(a._weak) {
a.put();
}
if(b._weak) {
b.put();
}
if(v._weak) {
v.put();
}
return intersection;
};
flixel_math_FlxVector.truncate = function(this1,max) {
var l = Math.min(max,Math.sqrt(this1.x * this1.x + this1.y * this1.y));
if(!(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001)) {
var a = flixel_math_FlxVector.get_radians(this1);
this1.set_x(l * Math.cos(a));
this1.set_y(l * Math.sin(a));
}
return this1;
};
flixel_math_FlxVector.radiansBetween = function(this1,v) {
var rads = Math.acos((this1.x * v.x + this1.y * v.y) / (Math.sqrt(this1.x * this1.x + this1.y * this1.y) * Math.sqrt(v.x * v.x + v.y * v.y)));
if(v._weak) {
v.put();
}
return rads;
};
flixel_math_FlxVector.degreesBetween = function(this1,v) {
var rads = Math.acos((this1.x * v.x + this1.y * v.y) / (Math.sqrt(this1.x * this1.x + this1.y * this1.y) * Math.sqrt(v.x * v.x + v.y * v.y)));
if(v._weak) {
v.put();
}
return rads * (180 / Math.PI);
};
flixel_math_FlxVector.sign = function(this1,a,b) {
var signFl = (a.x - this1.x) * (b.y - this1.y) - (a.y - this1.y) * (b.x - this1.x);
if(a._weak) {
a.put();
}
if(b._weak) {
b.put();
}
if(signFl == 0) {
return 0;
}
return Math.round(signFl / Math.abs(signFl));
};
flixel_math_FlxVector.dist = function(this1,v) {
var dx = v.x - this1.x;
var dy = v.y - this1.y;
if(v._weak) {
v.put();
}
return Math.sqrt(dx * dx + dy * dy);
};
flixel_math_FlxVector.distSquared = function(this1,v) {
var dx = v.x - this1.x;
var dy = v.y - this1.y;
if(v._weak) {
v.put();
}
return dx * dx + dy * dy;
};
flixel_math_FlxVector.bounce = function(this1,normal,bounceCoeff) {
if(bounceCoeff == null) {
bounceCoeff = 1;
}
var d = (1 + bounceCoeff) * (this1.x * normal.x + this1.y * normal.y);
var _g = this1;
_g.set_x(_g.x - d * normal.x);
var _g = this1;
_g.set_y(_g.y - d * normal.y);
if(normal._weak) {
normal.put();
}
return this1;
};
flixel_math_FlxVector.bounceWithFriction = function(this1,normal,bounceCoeff,friction) {
if(friction == null) {
friction = 0;
}
if(bounceCoeff == null) {
bounceCoeff = 1;
}
var v = flixel_math_FlxVector.rightNormal(normal,flixel_math_FlxVector._vector3);
var proj = flixel_math_FlxVector._vector1;
var dp = this1.x * v.x + this1.y * v.y;
if(proj == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
proj = point;
}
var x = dp * v.x;
var y = dp * v.y;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var p1 = proj.set(x,y);
var proj = flixel_math_FlxVector._vector2;
var dp = this1.x * normal.x + this1.y * normal.y;
if(proj == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
proj = point;
}
var x = dp * normal.x;
var y = dp * normal.y;
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
var p2 = proj.set(x,y);
var bounceX = -p2.x;
var bounceY = -p2.y;
var frictionX = p1.x;
var frictionY = p1.y;
this1.set_x(bounceX * bounceCoeff + frictionX * friction);
this1.set_y(bounceY * bounceCoeff + frictionY * friction);
if(normal._weak) {
normal.put();
}
return this1;
};
flixel_math_FlxVector.isValid = function(this1) {
var tmp;
var tmp1;
var f = this1.x;
if(!isNaN(f)) {
var f = this1.y;
tmp1 = !isNaN(f);
} else {
tmp1 = false;
}
if(tmp1) {
var f = this1.x;
tmp = isFinite(f);
} else {
tmp = false;
}
if(tmp) {
var f = this1.y;
return isFinite(f);
} else {
return false;
}
};
flixel_math_FlxVector.clone = function(this1,vec) {
if(vec == null) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
vec = point;
}
vec.set_x(this1.x);
vec.set_y(this1.y);
return vec;
};
flixel_math_FlxVector.get_x = function(this1) {
return this1.x;
};
flixel_math_FlxVector.set_x = function(this1,x) {
return this1.set_x(x);
};
flixel_math_FlxVector.get_y = function(this1) {
return this1.y;
};
flixel_math_FlxVector.set_y = function(this1,y) {
return this1.set_y(y);
};
flixel_math_FlxVector.get_dx = function(this1) {
if(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001) {
return 0;
}
return this1.x / Math.sqrt(this1.x * this1.x + this1.y * this1.y);
};
flixel_math_FlxVector.get_dy = function(this1) {
if(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001) {
return 0;
}
return this1.y / Math.sqrt(this1.x * this1.x + this1.y * this1.y);
};
flixel_math_FlxVector.get_length = function(this1) {
return Math.sqrt(this1.x * this1.x + this1.y * this1.y);
};
flixel_math_FlxVector.set_length = function(this1,l) {
if(!(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001)) {
var a = flixel_math_FlxVector.get_radians(this1);
this1.set_x(l * Math.cos(a));
this1.set_y(l * Math.sin(a));
}
return l;
};
flixel_math_FlxVector.get_lengthSquared = function(this1) {
return this1.x * this1.x + this1.y * this1.y;
};
flixel_math_FlxVector.get_degrees = function(this1) {
return flixel_math_FlxVector.get_radians(this1) * (180 / Math.PI);
};
flixel_math_FlxVector.set_degrees = function(this1,degs) {
var rads = degs * (Math.PI / 180);
var len = Math.sqrt(this1.x * this1.x + this1.y * this1.y);
this1.set_x(len * Math.cos(rads));
this1.set_y(len * Math.sin(rads));
return degs;
};
flixel_math_FlxVector.get_radians = function(this1) {
if(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001) {
return 0;
}
return Math.atan2(this1.y,this1.x);
};
flixel_math_FlxVector.set_radians = function(this1,rads) {
var len = Math.sqrt(this1.x * this1.x + this1.y * this1.y);
this1.set_x(len * Math.cos(rads));
this1.set_y(len * Math.sin(rads));
return rads;
};
flixel_math_FlxVector.get_rx = function(this1) {
return -this1.y;
};
flixel_math_FlxVector.get_ry = function(this1) {
return this1.x;
};
flixel_math_FlxVector.get_lx = function(this1) {
return this1.y;
};
flixel_math_FlxVector.get_ly = function(this1) {
return -this1.x;
};
flixel_math_FlxVector.get_pool = function() {
return flixel_math_FlxPoint.get_pool();
};
var flixel_math_FlxVelocity = function() { };
$hxClasses["flixel.math.FlxVelocity"] = flixel_math_FlxVelocity;
flixel_math_FlxVelocity.__name__ = "flixel.math.FlxVelocity";
flixel_math_FlxVelocity.moveTowardsObject = function(Source,Dest,Speed,MaxTime) {
if(MaxTime == null) {
MaxTime = 0;
}
if(Speed == null) {
Speed = 60;
}
var a = flixel_math_FlxAngle.angleBetween(Source,Dest);
if(MaxTime > 0) {
var dx = Source.x + Source.origin.x - (Dest.x + Dest.origin.x);
var dy = Source.y + Source.origin.y - (Dest.y + Dest.origin.y);
var d = Math.sqrt(dx * dx + dy * dy) | 0;
Speed = d / (MaxTime / 1000) | 0;
}
Source.velocity.set_x(Math.cos(a) * Speed);
Source.velocity.set_y(Math.sin(a) * Speed);
};
flixel_math_FlxVelocity.accelerateTowardsObject = function(Source,Dest,Acceleration,MaxSpeed) {
var a = flixel_math_FlxAngle.angleBetween(Source,Dest);
var sinA = Math.sin(a);
var cosA = Math.cos(a);
Source.velocity.set(0,0);
Source.acceleration.set(cosA * Acceleration,sinA * Acceleration);
Source.maxVelocity.set(Math.abs(cosA * MaxSpeed),Math.abs(sinA * MaxSpeed));
};
flixel_math_FlxVelocity.moveTowardsMouse = function(Source,Speed,MaxTime) {
if(MaxTime == null) {
MaxTime = 0;
}
if(Speed == null) {
Speed = 60;
}
var a = flixel_math_FlxAngle.angleBetweenMouse(Source);
if(MaxTime > 0) {
var dx = Source.x + Source.origin.x - flixel_FlxG.mouse.screenX;
var dy = Source.y + Source.origin.y - flixel_FlxG.mouse.screenY;
var d = Math.sqrt(dx * dx + dy * dy) | 0;
Speed = d / (MaxTime / 1000) | 0;
}
Source.velocity.set_x(Math.cos(a) * Speed);
Source.velocity.set_y(Math.sin(a) * Speed);
};
flixel_math_FlxVelocity.moveTowardsTouch = function(Source,Touch1,Speed,MaxTime) {
if(MaxTime == null) {
MaxTime = 0;
}
if(Speed == null) {
Speed = 60;
}
var a = flixel_math_FlxAngle.angleBetweenTouch(Source,Touch1);
if(MaxTime > 0) {
var dx = Source.x + Source.origin.x - Touch1.screenX;
var dy = Source.y + Source.origin.y - Touch1.screenY;
var d = Math.sqrt(dx * dx + dy * dy) | 0;
Speed = d / (MaxTime / 1000) | 0;
}
Source.velocity.set_x(Math.cos(a) * Speed);
Source.velocity.set_y(Math.sin(a) * Speed);
};
flixel_math_FlxVelocity.accelerateTowardsMouse = function(Source,Acceleration,MaxSpeed) {
var a = flixel_math_FlxAngle.angleBetweenMouse(Source);
var sinA = Math.sin(a);
var cosA = Math.cos(a);
Source.velocity.set(0,0);
Source.acceleration.set(cosA * Acceleration,sinA * Acceleration);
Source.maxVelocity.set(Math.abs(cosA * MaxSpeed),Math.abs(sinA * MaxSpeed));
};
flixel_math_FlxVelocity.accelerateTowardsTouch = function(Source,Touch1,Acceleration,MaxSpeed) {
var a = flixel_math_FlxAngle.angleBetweenTouch(Source,Touch1);
var sinA = Math.sin(a);
var cosA = Math.cos(a);
Source.velocity.set(0,0);
Source.acceleration.set(cosA * Acceleration,sinA * Acceleration);
Source.maxVelocity.set(Math.abs(cosA * MaxSpeed),Math.abs(sinA * MaxSpeed));
};
flixel_math_FlxVelocity.moveTowardsPoint = function(Source,Target,Speed,MaxTime) {
if(MaxTime == null) {
MaxTime = 0;
}
if(Speed == null) {
Speed = 60;
}
var a = flixel_math_FlxAngle.angleBetweenPoint(Source,Target);
if(MaxTime > 0) {
var dx = Source.x + Source.origin.x - Target.x;
var dy = Source.y + Source.origin.y - Target.y;
if(Target._weak) {
Target.put();
}
var d = Math.sqrt(dx * dx + dy * dy) | 0;
Speed = d / (MaxTime / 1000) | 0;
}
Source.velocity.set_x(Math.cos(a) * Speed);
Source.velocity.set_y(Math.sin(a) * Speed);
if(Target._weak) {
Target.put();
}
};
flixel_math_FlxVelocity.accelerateTowardsPoint = function(Source,Target,Acceleration,MaxSpeed) {
var a = flixel_math_FlxAngle.angleBetweenPoint(Source,Target);
var sinA = Math.sin(a);
var cosA = Math.cos(a);
Source.velocity.set(0,0);
Source.acceleration.set(cosA * Acceleration,sinA * Acceleration);
Source.maxVelocity.set(Math.abs(cosA * MaxSpeed),Math.abs(sinA * MaxSpeed));
if(Target._weak) {
Target.put();
}
};
flixel_math_FlxVelocity.velocityFromAngle = function(Angle,Speed) {
var a = Angle * (Math.PI / 180);
var X = Math.cos(a) * Speed;
var Y = Math.sin(a) * Speed;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
return point;
};
flixel_math_FlxVelocity.velocityFromFacing = function(Parent,Speed) {
var a = flixel_math_FlxAngle.angleFromFacing(Parent.facing);
var X = Math.cos(a) * Speed;
var Y = Math.sin(a) * Speed;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
return point;
};
flixel_math_FlxVelocity.computeVelocity = function(Velocity,Acceleration,Drag,Max,Elapsed) {
if(Acceleration != 0) {
Velocity += Acceleration * Elapsed;
} else if(Drag != 0) {
var drag = Drag * Elapsed;
if(Velocity - drag > 0) {
Velocity -= drag;
} else if(Velocity + drag < 0) {
Velocity += drag;
} else {
Velocity = 0;
}
}
if(Velocity != 0 && Max != 0) {
if(Velocity > Max) {
Velocity = Max;
} else if(Velocity < -Max) {
Velocity = -Max;
}
}
return Velocity;
};
flixel_math_FlxVelocity.accelerateFromAngle = function(source,radians,acceleration,maxSpeed,resetVelocity) {
if(resetVelocity == null) {
resetVelocity = true;
}
var sinA = Math.sin(radians);
var cosA = Math.cos(radians);
if(resetVelocity) {
source.velocity.set(0,0);
}
source.acceleration.set(cosA * acceleration,sinA * acceleration);
source.maxVelocity.set(Math.abs(cosA * maxSpeed),Math.abs(sinA * maxSpeed));
};
var flixel_system_GraphicLogo = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_GraphicLogo.preload != null) {
this.__fromImage(flixel_system_GraphicLogo.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_GraphicLogo.resourceName),flixel_system_GraphicLogo.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_GraphicLogo.preload == null) {
flixel_system_GraphicLogo.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.GraphicLogo"] = flixel_system_GraphicLogo;
flixel_system_GraphicLogo.__name__ = "flixel.system.GraphicLogo";
flixel_system_GraphicLogo.preload = null;
flixel_system_GraphicLogo.__super__ = openfl_display_BitmapData;
flixel_system_GraphicLogo.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_GraphicLogo
});
var flixel_system_GraphicVirtualInput = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_GraphicVirtualInput.preload != null) {
this.__fromImage(flixel_system_GraphicVirtualInput.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_GraphicVirtualInput.resourceName),flixel_system_GraphicVirtualInput.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_GraphicVirtualInput.preload == null) {
flixel_system_GraphicVirtualInput.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.GraphicVirtualInput"] = flixel_system_GraphicVirtualInput;
flixel_system_GraphicVirtualInput.__name__ = "flixel.system.GraphicVirtualInput";
flixel_system_GraphicVirtualInput.preload = null;
flixel_system_GraphicVirtualInput.__super__ = openfl_display_BitmapData;
flixel_system_GraphicVirtualInput.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_GraphicVirtualInput
});
var haxe_io_Bytes = function(data) {
this.length = data.byteLength;
this.b = new Uint8Array(data);
this.b.bufferValue = data;
data.hxBytes = this;
data.bytes = this.b;
};
$hxClasses["haxe.io.Bytes"] = haxe_io_Bytes;
haxe_io_Bytes.__name__ = "haxe.io.Bytes";
haxe_io_Bytes.alloc = function(length) {
return new haxe_io_Bytes(new ArrayBuffer(length));
};
haxe_io_Bytes.ofString = function(s,encoding) {
var a = [];
var i = 0;
while(i < s.length) {
var c = s.charCodeAt(i++);
if(55296 <= c && c <= 56319) {
c = c - 55232 << 10 | s.charCodeAt(i++) & 1023;
}
if(c <= 127) {
a.push(c);
} else if(c <= 2047) {
a.push(192 | c >> 6);
a.push(128 | c & 63);
} else if(c <= 65535) {
a.push(224 | c >> 12);
a.push(128 | c >> 6 & 63);
a.push(128 | c & 63);
} else {
a.push(240 | c >> 18);
a.push(128 | c >> 12 & 63);
a.push(128 | c >> 6 & 63);
a.push(128 | c & 63);
}
}
return new haxe_io_Bytes(new Uint8Array(a).buffer);
};
haxe_io_Bytes.ofData = function(b) {
var hb = b.hxBytes;
if(hb != null) {
return hb;
}
return new haxe_io_Bytes(b);
};
haxe_io_Bytes.ofHex = function(s) {
if((s.length & 1) != 0) {
throw haxe_Exception.thrown("Not a hex string (odd number of digits)");
}
var a = [];
var i = 0;
var len = s.length >> 1;
while(i < len) {
var high = s.charCodeAt(i * 2);
var low = s.charCodeAt(i * 2 + 1);
high = (high & 15) + ((high & 64) >> 6) * 9;
low = (low & 15) + ((low & 64) >> 6) * 9;
a.push((high << 4 | low) & 255);
++i;
}
return new haxe_io_Bytes(new Uint8Array(a).buffer);
};
haxe_io_Bytes.fastGet = function(b,pos) {
return b.bytes[pos];
};
haxe_io_Bytes.prototype = {
length: null
,b: null
,data: null
,get: function(pos) {
return this.b[pos];
}
,set: function(pos,v) {
this.b[pos] = v & 255;
}
,blit: function(pos,src,srcpos,len) {
if(pos < 0 || srcpos < 0 || len < 0 || pos + len > this.length || srcpos + len > src.length) {
throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds);
}
if(srcpos == 0 && len == src.b.byteLength) {
this.b.set(src.b,pos);
} else {
this.b.set(src.b.subarray(srcpos,srcpos + len),pos);
}
}
,fill: function(pos,len,value) {
var _g = 0;
var _g1 = len;
while(_g < _g1) {
var i = _g++;
this.b[pos++] = value & 255;
}
}
,sub: function(pos,len) {
if(pos < 0 || len < 0 || pos + len > this.length) {
throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds);
}
return new haxe_io_Bytes(this.b.buffer.slice(pos + this.b.byteOffset,pos + this.b.byteOffset + len));
}
,compare: function(other) {
var b1 = this.b;
var b2 = other.b;
var len = this.length < other.length ? this.length : other.length;
var _g = 0;
var _g1 = len;
while(_g < _g1) {
var i = _g++;
if(b1[i] != b2[i]) {
return b1[i] - b2[i];
}
}
return this.length - other.length;
}
,initData: function() {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
}
,getDouble: function(pos) {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
return this.data.getFloat64(pos,true);
}
,getFloat: function(pos) {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
return this.data.getFloat32(pos,true);
}
,setDouble: function(pos,v) {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
this.data.setFloat64(pos,v,true);
}
,setFloat: function(pos,v) {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
this.data.setFloat32(pos,v,true);
}
,getUInt16: function(pos) {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
return this.data.getUint16(pos,true);
}
,setUInt16: function(pos,v) {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
this.data.setUint16(pos,v,true);
}
,getInt32: function(pos) {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
return this.data.getInt32(pos,true);
}
,setInt32: function(pos,v) {
if(this.data == null) {
this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength);
}
this.data.setInt32(pos,v,true);
}
,getInt64: function(pos) {
var this1 = new haxe__$Int64__$_$_$Int64(this.getInt32(pos + 4),this.getInt32(pos));
return this1;
}
,setInt64: function(pos,v) {
this.setInt32(pos,v.low);
this.setInt32(pos + 4,v.high);
}
,getString: function(pos,len,encoding) {
if(pos < 0 || len < 0 || pos + len > this.length) {
throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds);
}
var s = "";
var b = this.b;
var fcc = _$String_String_$Impl_$.fromCharCode;
var i = pos;
var max = pos + len;
while(i < max) {
var c = b[i++];
if(c < 128) {
if(c == 0) {
break;
}
s += fcc(c);
} else if(c < 224) {
s += fcc((c & 63) << 6 | b[i++] & 127);
} else if(c < 240) {
var c2 = b[i++];
s += fcc((c & 31) << 12 | (c2 & 127) << 6 | b[i++] & 127);
} else {
var c21 = b[i++];
var c3 = b[i++];
var u = (c & 15) << 18 | (c21 & 127) << 12 | (c3 & 127) << 6 | b[i++] & 127;
s += fcc((u >> 10) + 55232);
s += fcc(u & 1023 | 56320);
}
}
return s;
}
,readString: function(pos,len) {
return this.getString(pos,len);
}
,toString: function() {
return this.getString(0,this.length);
}
,toHex: function() {
var s_b = "";
var chars = [];
var str = "0123456789abcdef";
var _g = 0;
var _g1 = str.length;
while(_g < _g1) {
var i = _g++;
chars.push(HxOverrides.cca(str,i));
}
var _g = 0;
var _g1 = this.length;
while(_g < _g1) {
var i = _g++;
var c = this.b[i];
s_b += String.fromCodePoint(chars[c >> 4]);
s_b += String.fromCodePoint(chars[c & 15]);
}
return s_b;
}
,getData: function() {
return this.b.bufferValue;
}
,__class__: haxe_io_Bytes
};
var openfl_utils_IDataOutput = function() { };
$hxClasses["openfl.utils.IDataOutput"] = openfl_utils_IDataOutput;
openfl_utils_IDataOutput.__name__ = "openfl.utils.IDataOutput";
openfl_utils_IDataOutput.__isInterface__ = true;
openfl_utils_IDataOutput.prototype = {
get_endian: null
,set_endian: null
,objectEncoding: null
,writeBoolean: null
,writeByte: null
,writeBytes: null
,writeDouble: null
,writeFloat: null
,writeInt: null
,writeMultiByte: null
,writeObject: null
,writeShort: null
,writeUnsignedInt: null
,writeUTF: null
,writeUTFBytes: null
,__class__: openfl_utils_IDataOutput
,__properties__: {set_endian:"set_endian",get_endian:"get_endian"}
};
var openfl_utils_IDataInput = function() { };
$hxClasses["openfl.utils.IDataInput"] = openfl_utils_IDataInput;
openfl_utils_IDataInput.__name__ = "openfl.utils.IDataInput";
openfl_utils_IDataInput.__isInterface__ = true;
openfl_utils_IDataInput.prototype = {
get_bytesAvailable: null
,get_endian: null
,set_endian: null
,objectEncoding: null
,readBoolean: null
,readByte: null
,readBytes: null
,readDouble: null
,readFloat: null
,readInt: null
,readMultiByte: null
,readObject: null
,readShort: null
,readUnsignedByte: null
,readUnsignedInt: null
,readUnsignedShort: null
,readUTF: null
,readUTFBytes: null
,__class__: openfl_utils_IDataInput
,__properties__: {set_endian:"set_endian",get_endian:"get_endian",get_bytesAvailable:"get_bytesAvailable"}
};
var openfl_utils_ByteArrayData = function(length) {
if(length == null) {
length = 0;
}
var bytes = new haxe_io_Bytes(new ArrayBuffer(length));
haxe_io_Bytes.call(this,bytes.b.buffer);
this.__length = length;
if(openfl_utils_ByteArrayData.__defaultEndian == null) {
if(lime_system_System.get_endianness() == lime_system_Endian.LITTLE_ENDIAN) {
openfl_utils_ByteArrayData.__defaultEndian = 1;
} else {
openfl_utils_ByteArrayData.__defaultEndian = 0;
}
}
this.__endian = openfl_utils_ByteArrayData.__defaultEndian;
this.objectEncoding = openfl_utils_ByteArrayData.defaultObjectEncoding;
this.position = 0;
};
$hxClasses["openfl.utils.ByteArrayData"] = openfl_utils_ByteArrayData;
openfl_utils_ByteArrayData.__name__ = "openfl.utils.ByteArrayData";
openfl_utils_ByteArrayData.__interfaces__ = [openfl_utils_IDataOutput,openfl_utils_IDataInput];
openfl_utils_ByteArrayData.__properties__ = {set_defaultEndian:"set_defaultEndian",get_defaultEndian:"get_defaultEndian"};
openfl_utils_ByteArrayData.fromBytes = function(bytes) {
var result = new openfl_utils_ByteArrayData();
result.__fromBytes(bytes);
return result;
};
openfl_utils_ByteArrayData.get_defaultEndian = function() {
if(openfl_utils_ByteArrayData.__defaultEndian == null) {
if(lime_system_System.get_endianness() == lime_system_Endian.LITTLE_ENDIAN) {
openfl_utils_ByteArrayData.__defaultEndian = 1;
} else {
openfl_utils_ByteArrayData.__defaultEndian = 0;
}
}
return openfl_utils_ByteArrayData.__defaultEndian;
};
openfl_utils_ByteArrayData.set_defaultEndian = function(value) {
return openfl_utils_ByteArrayData.__defaultEndian = value;
};
openfl_utils_ByteArrayData.__super__ = haxe_io_Bytes;
openfl_utils_ByteArrayData.prototype = $extend(haxe_io_Bytes.prototype,{
objectEncoding: null
,position: null
,__endian: null
,__length: null
,clear: function() {
this.length = 0;
this.position = 0;
}
,compress: function(algorithm) {
if(algorithm == null) {
algorithm = 2;
}
if(this.__length > this.length) {
var cacheLength = this.length;
this.length = this.__length;
var data = new haxe_io_Bytes(new ArrayBuffer(cacheLength));
data.blit(0,this,0,cacheLength);
this.b = data.b;
this.__length = data.length;
this.data = data.data;
this.length = cacheLength;
}
var limeBytes = this;
var bytes;
switch(algorithm) {
case 0:
bytes = lime_utils_Bytes.compress(limeBytes,lime_utils_CompressionAlgorithm.DEFLATE);
break;
case 1:
bytes = lime_utils_Bytes.compress(limeBytes,lime_utils_CompressionAlgorithm.LZMA);
break;
default:
bytes = lime_utils_Bytes.compress(limeBytes,lime_utils_CompressionAlgorithm.ZLIB);
}
if(bytes != null) {
this.b = bytes.b;
this.__length = bytes.length;
this.data = bytes.data;
this.length = this.__length;
this.position = this.length;
}
}
,deflate: function() {
this.compress(0);
}
,inflate: function() {
this.uncompress(0);
}
,readBoolean: function() {
if(this.position < this.length) {
return this.b[this.position++] != 0;
} else {
throw haxe_Exception.thrown(new openfl_errors_EOFError());
}
}
,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.length - this.position;
}
if(this.position + length > this.length) {
throw haxe_Exception.thrown(new openfl_errors_EOFError());
}
if(bytes.length < offset + length) {
bytes.__resize(offset + length);
}
bytes.blit(offset,this,this.position,length);
this.position += length;
}
,readDouble: function() {
if(this.__endian == 1) {
if(this.position + 8 > this.length) {
throw haxe_Exception.thrown(new openfl_errors_EOFError());
}
this.position += 8;
return this.getDouble(this.position - 8);
} else {
var ch1 = this.readInt();
var ch2 = this.readInt();
return haxe_io_FPHelper.i64ToDouble(ch2,ch1);
}
}
,readFloat: function() {
if(this.__endian == 1) {
if(this.position + 4 > this.length) {
throw haxe_Exception.thrown(new openfl_errors_EOFError());
}
this.position += 4;
return this.getFloat(this.position - 4);
} else {
return haxe_io_FPHelper.i32ToFloat(this.readInt());
}
}
,readInt: function() {
var ch1 = this.readUnsignedByte();
var ch2 = this.readUnsignedByte();
var ch3 = this.readUnsignedByte();
var ch4 = this.readUnsignedByte();
if(this.__endian == 1) {
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);
}
,readObject: function() {
switch(this.objectEncoding) {
case 10:
var data = this.readUTF();
return haxe_Unserializer.run(data);
case 12:
var data = this.readUTF();
return JSON.parse(data);
default:
return null;
}
}
,readShort: function() {
var ch1 = this.readUnsignedByte();
var ch2 = this.readUnsignedByte();
var value;
if(this.__endian == 1) {
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.length) {
return this.b[this.position++];
} else {
throw haxe_Exception.thrown(new openfl_errors_EOFError());
}
}
,readUnsignedInt: function() {
var ch1 = this.readUnsignedByte();
var ch2 = this.readUnsignedByte();
var ch3 = this.readUnsignedByte();
var ch4 = this.readUnsignedByte();
if(this.__endian == 1) {
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.__endian == 1) {
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.length) {
throw haxe_Exception.thrown(new openfl_errors_EOFError());
}
this.position += length;
return this.getString(this.position - length,length);
}
,uncompress: function(algorithm) {
if(algorithm == null) {
algorithm = 2;
}
if(this.__length > this.length) {
var cacheLength = this.length;
this.length = this.__length;
var data = new haxe_io_Bytes(new ArrayBuffer(cacheLength));
data.blit(0,this,0,cacheLength);
this.b = data.b;
this.__length = data.length;
this.data = data.data;
this.length = cacheLength;
}
var limeBytes = this;
var bytes;
switch(algorithm) {
case 0:
bytes = lime_utils_Bytes.decompress(limeBytes,lime_utils_CompressionAlgorithm.DEFLATE);
break;
case 1:
bytes = lime_utils_Bytes.decompress(limeBytes,lime_utils_CompressionAlgorithm.LZMA);
break;
default:
bytes = lime_utils_Bytes.decompress(limeBytes,lime_utils_CompressionAlgorithm.ZLIB);
}
if(bytes != null) {
this.b = bytes.b;
this.__length = bytes.length;
this.data = bytes.data;
this.length = this.__length;
}
this.position = 0;
}
,writeBoolean: function(value) {
this.writeByte(value ? 1 : 0);
}
,writeByte: function(value) {
this.__resize(this.position + 1);
this.b[this.position++] = value & 255 & 255;
}
,writeBytes: function(bytes,offset,length) {
if(length == null) {
length = 0;
}
if(offset == null) {
offset = 0;
}
if(openfl_utils_ByteArray.get_length(bytes) == 0) {
return;
}
if(length == 0) {
length = openfl_utils_ByteArray.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.doubleToI64(value);
if(this.__endian == 1) {
this.writeInt(int64.low);
this.writeInt(int64.high);
} else {
this.writeInt(int64.high);
this.writeInt(int64.low);
}
}
,writeFloat: function(value) {
if(this.__endian == 1) {
this.__resize(this.position + 4);
this.setFloat(this.position,value);
this.position += 4;
} else {
var int = haxe_io_FPHelper.floatToI32(value);
this.writeInt(int);
}
}
,writeInt: function(value) {
this.__resize(this.position + 4);
if(this.__endian == 1) {
this.b[this.position++] = value & 255 & 255;
this.b[this.position++] = value >> 8 & 255 & 255;
this.b[this.position++] = value >> 16 & 255 & 255;
this.b[this.position++] = value >> 24 & 255 & 255;
} else {
this.b[this.position++] = value >> 24 & 255 & 255;
this.b[this.position++] = value >> 16 & 255 & 255;
this.b[this.position++] = value >> 8 & 255 & 255;
this.b[this.position++] = value & 255 & 255;
}
}
,writeMultiByte: function(value,charSet) {
this.writeUTFBytes(value);
}
,writeObject: function(object) {
switch(this.objectEncoding) {
case 10:
var value = haxe_Serializer.run(object);
this.writeUTF(value);
break;
case 12:
var value = JSON.stringify(object);
this.writeUTF(value);
break;
default:
return;
}
}
,writeShort: function(value) {
this.__resize(this.position + 2);
if(this.__endian == 1) {
this.b[this.position++] = value & 255;
this.b[this.position++] = value >> 8 & 255;
} else {
this.b[this.position++] = value >> 8 & 255;
this.b[this.position++] = value & 255;
}
}
,writeUnsignedInt: function(value) {
this.writeInt(value);
}
,writeUTF: function(value) {
var bytes = haxe_io_Bytes.ofString(value);
this.writeShort(bytes.length);
this.writeBytes(openfl_utils_ByteArray.fromBytes(bytes));
}
,writeUTFBytes: function(value) {
var bytes = haxe_io_Bytes.ofString(value);
this.writeBytes(openfl_utils_ByteArray.fromBytes(bytes));
}
,__fromBytes: function(bytes) {
this.b = bytes.b;
this.__length = bytes.length;
this.data = bytes.data;
this.length = bytes.length;
}
,__resize: function(size) {
if(size > this.__length) {
var bytes = new haxe_io_Bytes(new ArrayBuffer((size + 1) * 3 >> 1));
if(this.__length > 0) {
var cacheLength = this.length;
this.length = this.__length;
bytes.blit(0,this,0,this.__length);
this.length = cacheLength;
}
this.b = bytes.b;
this.__length = bytes.length;
this.data = bytes.data;
}
if(this.length < size) {
this.length = size;
}
}
,__setData: function(bytes) {
this.b = bytes.b;
this.__length = bytes.length;
this.data = bytes.data;
}
,get_bytesAvailable: function() {
return this.length - this.position;
}
,get_endian: function() {
return this.__endian;
}
,set_endian: function(value) {
return this.__endian = value;
}
,__class__: openfl_utils_ByteArrayData
,__properties__: {set_endian:"set_endian",get_endian:"get_endian",get_bytesAvailable:"get_bytesAvailable"}
});
var flixel_system_VirtualInputData = function(length) {
if(length == null) {
length = 0;
}
openfl_utils_ByteArrayData.call(this);
var bytes = haxe_Resource.getBytes(flixel_system_VirtualInputData.resourceName);
this.__fromBytes(bytes);
};
$hxClasses["flixel.system.VirtualInputData"] = flixel_system_VirtualInputData;
flixel_system_VirtualInputData.__name__ = "flixel.system.VirtualInputData";
flixel_system_VirtualInputData.__super__ = openfl_utils_ByteArrayData;
flixel_system_VirtualInputData.prototype = $extend(openfl_utils_ByteArrayData.prototype,{
__class__: flixel_system_VirtualInputData
});
var flixel_system_FlxAssets = function() { };
$hxClasses["flixel.system.FlxAssets"] = flixel_system_FlxAssets;
flixel_system_FlxAssets.__name__ = "flixel.system.FlxAssets";
flixel_system_FlxAssets.drawLogo = function(graph) {
graph.beginFill(47394);
graph.moveTo(50,13);
graph.lineTo(51,13);
graph.lineTo(87,50);
graph.lineTo(87,51);
graph.lineTo(51,87);
graph.lineTo(50,87);
graph.lineTo(13,51);
graph.lineTo(13,50);
graph.lineTo(50,13);
graph.endFill();
graph.beginFill(16761138);
graph.moveTo(0,0);
graph.lineTo(25,0);
graph.lineTo(50,13);
graph.lineTo(13,50);
graph.lineTo(0,25);
graph.lineTo(0,0);
graph.endFill();
graph.beginFill(16066382);
graph.moveTo(100,0);
graph.lineTo(75,0);
graph.lineTo(51,13);
graph.lineTo(87,50);
graph.lineTo(100,25);
graph.lineTo(100,0);
graph.endFill();
graph.beginFill(3555839);
graph.moveTo(0,100);
graph.lineTo(25,100);
graph.lineTo(50,87);
graph.lineTo(13,51);
graph.lineTo(0,75);
graph.lineTo(0,100);
graph.endFill();
graph.beginFill(314875);
graph.moveTo(100,100);
graph.lineTo(75,100);
graph.lineTo(51,87);
graph.lineTo(87,51);
graph.lineTo(100,75);
graph.lineTo(100,100);
graph.endFill();
};
flixel_system_FlxAssets.getBitmapData = function(id) {
if(openfl_utils_Assets.exists(id)) {
return openfl_utils_Assets.getBitmapData(id,false);
}
return null;
};
flixel_system_FlxAssets.getBitmapFromClass = function(source) {
return Type.createInstance(source,[0,0]);
};
flixel_system_FlxAssets.resolveBitmapData = function(Graphic) {
if(((Graphic) instanceof openfl_display_BitmapData)) {
return Graphic;
} else if(js_Boot.__instanceof(Graphic,Class)) {
return Type.createInstance(Graphic,[0,0]);
} else if(typeof(Graphic) == "string") {
if(openfl_utils_Assets.exists(Graphic)) {
return openfl_utils_Assets.getBitmapData(Graphic,false);
} else {
return null;
}
}
return null;
};
flixel_system_FlxAssets.resolveKey = function(Graphic,Key) {
if(Key != null) {
return Key;
}
if(((Graphic) instanceof openfl_display_BitmapData)) {
return Key;
} else if(js_Boot.__instanceof(Graphic,Class)) {
var _this = flixel_FlxG.bitmap;
return Graphic.__name__;
} else if(typeof(Graphic) == "string") {
return Graphic;
}
return null;
};
flixel_system_FlxAssets.getSound = function(id) {
var extension = "";
extension = ".ogg";
return openfl_utils_Assets.getSound(id + extension);
};
flixel_system_FlxAssets.getVirtualInputFrames = function() {
var bitmapData = new flixel_system_GraphicVirtualInput(0,0);
Reflect.setProperty(bitmapData,"width",399);
Reflect.setProperty(bitmapData,"height",183);
var graphic = flixel_graphics_FlxGraphic.fromBitmapData(bitmapData);
return flixel_graphics_frames_FlxAtlasFrames.fromSpriteSheetPacker(graphic,Std.string(new flixel_system_VirtualInputData()));
};
var flixel_system_FlxBGSprite = function() {
flixel_FlxSprite.call(this);
this.makeGraphic(1,1,-1,true,flixel_FlxG.bitmap.getUniqueKey("bg_graphic_"));
this.scrollFactor.set();
};
$hxClasses["flixel.system.FlxBGSprite"] = flixel_system_FlxBGSprite;
flixel_system_FlxBGSprite.__name__ = "flixel.system.FlxBGSprite";
flixel_system_FlxBGSprite.__super__ = flixel_FlxSprite;
flixel_system_FlxBGSprite.prototype = $extend(flixel_FlxSprite.prototype,{
draw: function() {
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
if(!camera.visible || !camera.exists) {
continue;
}
this._matrix.identity();
this._matrix.scale(camera.viewWidth,camera.viewHeight);
camera.drawPixels(this.frame,null,this._matrix,this.colorTransform);
}
}
,__class__: flixel_system_FlxBGSprite
});
var flixel_system__$FlxBasePreloader_DefaultPreloader = function() {
openfl_display_Sprite.call(this);
this.addEventListener("addedToStage",$bind(this,this.onAddedToStage));
};
$hxClasses["flixel.system._FlxBasePreloader.DefaultPreloader"] = flixel_system__$FlxBasePreloader_DefaultPreloader;
flixel_system__$FlxBasePreloader_DefaultPreloader.__name__ = "flixel.system._FlxBasePreloader.DefaultPreloader";
flixel_system__$FlxBasePreloader_DefaultPreloader.__super__ = openfl_display_Sprite;
flixel_system__$FlxBasePreloader_DefaultPreloader.prototype = $extend(openfl_display_Sprite.prototype,{
onAddedToStage: function(_) {
this.removeEventListener("addedToStage",$bind(this,this.onAddedToStage));
this.onInit();
this.onUpdate(this.get_loaderInfo().bytesLoaded,this.get_loaderInfo().bytesTotal);
this.addEventListener("progress",$bind(this,this.onProgress));
this.addEventListener("complete",$bind(this,this.onComplete));
}
,onComplete: function(event) {
event.preventDefault();
this.removeEventListener("progress",$bind(this,this.onProgress));
this.removeEventListener("complete",$bind(this,this.onComplete));
this.onLoaded();
}
,onProgress: function(event) {
this.onUpdate(event.bytesLoaded | 0,event.bytesTotal | 0);
}
,onInit: function() {
}
,onLoaded: function() {
this.dispatchEvent(new openfl_events_Event("unload"));
}
,onUpdate: function(bytesLoaded,bytesTotal) {
var percentLoaded = 0.0;
if(bytesTotal > 0) {
percentLoaded = bytesLoaded / bytesTotal;
if(percentLoaded > 1) {
percentLoaded = 1;
}
}
}
,__class__: flixel_system__$FlxBasePreloader_DefaultPreloader
});
var flixel_system_FlxBasePreloader = function(MinDisplayTime,AllowedURLs) {
if(MinDisplayTime == null) {
MinDisplayTime = 0;
}
this._destroyed = false;
this._urlChecked = false;
this._loaded = false;
this._percent = 0;
this.siteLockBodyText = "It appears the website you are using is hosting an unauthorized copy of this game. " + "Storage or redistribution of this content, without the express permission of the " + "developer or other copyright holder, is prohibited under copyright law.\n\n" + "Thank you for your interest in this game! Please support the developer by " + "visiting the following website to play the game:";
this.siteLockTitleText = "Sorry.";
this.siteLockURLIndex = 0;
this.minDisplayTime = 0;
flixel_system__$FlxBasePreloader_DefaultPreloader.call(this);
this.minDisplayTime = MinDisplayTime;
if(AllowedURLs != null) {
this.allowedURLs = AllowedURLs;
} else {
this.allowedURLs = [];
}
this._startTime = new Date().getTime();
};
$hxClasses["flixel.system.FlxBasePreloader"] = flixel_system_FlxBasePreloader;
flixel_system_FlxBasePreloader.__name__ = "flixel.system.FlxBasePreloader";
flixel_system_FlxBasePreloader.__super__ = flixel_system__$FlxBasePreloader_DefaultPreloader;
flixel_system_FlxBasePreloader.prototype = $extend(flixel_system__$FlxBasePreloader_DefaultPreloader.prototype,{
minDisplayTime: null
,allowedURLs: null
,siteLockURLIndex: null
,siteLockTitleText: null
,siteLockBodyText: null
,_percent: null
,_width: null
,_height: null
,_loaded: null
,_urlChecked: null
,_destroyed: null
,_startTime: null
,create: function() {
}
,onInit: function() {
flixel_system__$FlxBasePreloader_DefaultPreloader.prototype.onInit.call(this);
openfl_Lib.get_current().stage.set_scaleMode(2);
openfl_Lib.get_current().stage.align = 6;
this.create();
this.addEventListener("enterFrame",$bind(this,this.onEnterFrame));
this.checkSiteLock();
}
,onUpdate: function(bytesLoaded,bytesTotal) {
this._percent = bytesTotal != 0 ? bytesLoaded / bytesTotal : 0;
}
,onEnterFrame: function(E) {
var time = new Date().getTime() - this._startTime;
var min = this.minDisplayTime * 1000;
var percent = this._percent;
if(min > 0 && this._percent > time / min) {
percent = time / min;
}
if(!this._destroyed) {
this.update(percent);
}
if(this._loaded && (min <= 0 || time / min >= 1)) {
this.removeEventListener("enterFrame",$bind(this,this.onEnterFrame));
flixel_system__$FlxBasePreloader_DefaultPreloader.prototype.onLoaded.call(this);
this.destroy();
this._destroyed = true;
}
}
,destroy: function() {
}
,update: function(Percent) {
}
,onLoaded: function() {
this._loaded = true;
this._percent = 1;
}
,createBitmap: function(bitmapDataClass,onLoad) {
var bmp = new openfl_display_Bitmap();
bmp.set_bitmapData(Type.createInstance(bitmapDataClass,[0,0,true,-1,function(_) {
onLoad(bmp);
}]));
return bmp;
}
,loadBitmapData: function(bitmapDataClass,onLoad) {
return Type.createInstance(bitmapDataClass,[0,0,true,-1,onLoad]);
}
,checkSiteLock: function() {
if(this._urlChecked) {
return;
}
if(!this.isHostUrlAllowed()) {
this.removeChildren();
this.removeEventListener("enterFrame",$bind(this,this.onEnterFrame));
this.createSiteLockFailureScreen();
} else {
this._urlChecked = true;
}
}
,createSiteLockFailureScreen: function() {
this.addChild(this.createSiteLockFailureBackground(16777215,15066597));
this.addChild(this.createSiteLockFailureIcon(15066597,0.9));
this.addChild(this.createSiteLockFailureText(30));
}
,createSiteLockFailureBackground: function(innerColor,outerColor) {
var shape = new openfl_display_Shape();
var graphics = shape.get_graphics();
graphics.clear();
var fillMatrix = new openfl_geom_Matrix();
fillMatrix.createGradientBox(1,1,0,-0.5,-0.5);
var scaling = Math.max(this.stage.stageWidth,this.stage.stageHeight);
fillMatrix.scale(scaling,scaling);
fillMatrix.translate(0.5 * this.stage.stageWidth,0.5 * this.stage.stageHeight);
graphics.beginGradientFill(1,[innerColor,outerColor],[1,1],[0,255],fillMatrix);
graphics.drawRect(0,0,this.stage.stageWidth,this.stage.stageHeight);
graphics.endFill();
return shape;
}
,createSiteLockFailureIcon: function(color,scale) {
var shape = new openfl_display_Shape();
var graphics = shape.get_graphics();
graphics.clear();
graphics.beginFill(color);
var array = [1,6,2,2,2,6,6,2,2,2,6,1,6,2,6,2,6,2,6,1,6,6,2,2,2,6,6];
var vector = openfl_Vector.toIntVector(null);
var _g = 0;
var _g1 = array.length;
while(_g < _g1) {
var i = _g++;
vector.set(i,array[i]);
}
var tmp = vector;
var array = [120.0,0,164,0,200,35,200,79,200,130,160,130,160,79,160,57,142,40,120,40,97,40,79,57,79,79,80,130,40,130,40,79,40,35,75,0,120,0,220,140,231,140,240,148,240,160,240,300,240,311,231,320,220,320,20,320,8,320,0,311,0,300,0,160,0,148,8,140,20,140,120,190,108,190,100,198,100,210,100,217,104,223,110,227,110,270,130,270,130,227,135,223,140,217,140,210,140,198,131,190,120,190];
var vector = openfl_Vector.toFloatVector(null);
var _g = 0;
var _g1 = array.length;
while(_g < _g1) {
var i = _g++;
vector.set(i,array[i]);
}
graphics.drawPath(tmp,vector,1);
graphics.endFill();
var transformMatrix = new openfl_geom_Matrix();
transformMatrix.translate(-0.5 * shape.get_width(),-0.5 * shape.get_height());
var scaling = scale * Math.min(this.stage.stageWidth / shape.get_width(),this.stage.stageHeight / shape.get_height());
transformMatrix.scale(scaling,scaling);
transformMatrix.translate(0.5 * this.stage.stageWidth,0.5 * this.stage.stageHeight);
shape.get_transform().set_matrix(transformMatrix);
return shape;
}
,createSiteLockFailureText: function(margin) {
var sprite = new openfl_display_Sprite();
var bounds = new openfl_geom_Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight);
bounds.inflate(-margin,-margin);
var titleText = new openfl_text_TextField();
var titleTextFormat = new openfl_text_TextFormat("_sans",33,3355443,true);
titleTextFormat.align = 3;
titleText.set_defaultTextFormat(titleTextFormat);
titleText.set_selectable(false);
titleText.set_width(bounds.width);
titleText.set_text(this.siteLockTitleText);
var bodyText = new openfl_text_TextField();
var bodyTextFormat = new openfl_text_TextFormat("_sans",22,3355443);
bodyTextFormat.align = 2;
bodyText.set_defaultTextFormat(bodyTextFormat);
bodyText.set_multiline(true);
bodyText.set_wordWrap(true);
bodyText.set_selectable(false);
bodyText.set_width(bounds.width);
bodyText.set_text(this.siteLockBodyText);
var hyperlinkText = new openfl_text_TextField();
var hyperlinkTextFormat = new openfl_text_TextFormat("_sans",22,7247820,true,false,true);
hyperlinkTextFormat.align = 0;
hyperlinkTextFormat.url = this.allowedURLs[this.siteLockURLIndex];
hyperlinkText.set_defaultTextFormat(hyperlinkTextFormat);
hyperlinkText.set_selectable(true);
hyperlinkText.set_width(bounds.width);
hyperlinkText.set_text(this.allowedURLs[this.siteLockURLIndex]);
this.adjustSiteLockTextFields(titleText,bodyText,hyperlinkText);
var gutterSize = 4;
titleText.set_height(titleText.get_textHeight() + gutterSize);
bodyText.set_height(bodyText.get_textHeight() + gutterSize);
hyperlinkText.set_height(hyperlinkText.get_textHeight() + gutterSize);
titleText.set_x(bodyText.set_x(hyperlinkText.set_x(bounds.get_left())));
titleText.set_y(bounds.get_top());
bodyText.set_y(titleText.get_y() + 2.0 * titleText.get_height());
hyperlinkText.set_y(bodyText.get_y() + bodyText.get_height() + hyperlinkText.get_height());
sprite.addChild(titleText);
sprite.addChild(bodyText);
sprite.addChild(hyperlinkText);
return sprite;
}
,adjustSiteLockTextFields: function(titleText,bodyText,hyperlinkText) {
}
,goToMyURL: function(e) {
if(this.allowedURLs[this.siteLockURLIndex] != "localhost") {
var URL1 = this.allowedURLs[this.siteLockURLIndex];
var prefix = "";
if(!new EReg("^https?://","").match(URL1)) {
prefix = "http://";
}
openfl_Lib.getURL(new openfl_net_URLRequest(prefix + URL1),"_blank");
} else {
openfl_Lib.getURL(new openfl_net_URLRequest(this.allowedURLs[this.siteLockURLIndex]));
}
}
,isHostUrlAllowed: function() {
if(this.allowedURLs.length == 0) {
return true;
}
var homeURL = $global.location.href;
var homeDomain = flixel_util_FlxStringUtil.getDomain(homeURL);
var _g = 0;
var _g1 = this.allowedURLs;
while(_g < _g1.length) {
var allowedURL = _g1[_g];
++_g;
var allowedDomain = flixel_util_FlxStringUtil.getDomain(allowedURL);
if(allowedDomain == homeDomain) {
return true;
}
}
return false;
}
,__class__: flixel_system_FlxBasePreloader
});
var flixel_system_FlxLinkedList = function() {
this.exists = true;
};
$hxClasses["flixel.system.FlxLinkedList"] = flixel_system_FlxLinkedList;
flixel_system_FlxLinkedList.__name__ = "flixel.system.FlxLinkedList";
flixel_system_FlxLinkedList.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_system_FlxLinkedList._cachedListsHead = null;
flixel_system_FlxLinkedList.recycle = function() {
if(flixel_system_FlxLinkedList._cachedListsHead != null) {
var cachedList = flixel_system_FlxLinkedList._cachedListsHead;
flixel_system_FlxLinkedList._cachedListsHead = flixel_system_FlxLinkedList._cachedListsHead.next;
flixel_system_FlxLinkedList._NUM_CACHED_FLX_LIST--;
cachedList.exists = true;
cachedList.next = null;
return cachedList;
} else {
return new flixel_system_FlxLinkedList();
}
};
flixel_system_FlxLinkedList.clearCache = function() {
while(flixel_system_FlxLinkedList._cachedListsHead != null) {
var node = flixel_system_FlxLinkedList._cachedListsHead;
flixel_system_FlxLinkedList._cachedListsHead = flixel_system_FlxLinkedList._cachedListsHead.next;
node.object = null;
node.next = null;
}
flixel_system_FlxLinkedList._NUM_CACHED_FLX_LIST = 0;
};
flixel_system_FlxLinkedList.prototype = {
object: null
,next: null
,exists: null
,destroy: function() {
if(!this.exists) {
return;
}
this.object = null;
if(this.next != null) {
this.next.destroy();
}
this.exists = false;
this.next = flixel_system_FlxLinkedList._cachedListsHead;
flixel_system_FlxLinkedList._cachedListsHead = this;
flixel_system_FlxLinkedList._NUM_CACHED_FLX_LIST++;
}
,__class__: flixel_system_FlxLinkedList
};
var flixel_system__$FlxPreloader_GraphicLogoLight = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system__$FlxPreloader_GraphicLogoLight.preload != null) {
this.__fromImage(flixel_system__$FlxPreloader_GraphicLogoLight.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system__$FlxPreloader_GraphicLogoLight.resourceName),flixel_system__$FlxPreloader_GraphicLogoLight.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system__$FlxPreloader_GraphicLogoLight.preload == null) {
flixel_system__$FlxPreloader_GraphicLogoLight.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system._FlxPreloader.GraphicLogoLight"] = flixel_system__$FlxPreloader_GraphicLogoLight;
flixel_system__$FlxPreloader_GraphicLogoLight.__name__ = "flixel.system._FlxPreloader.GraphicLogoLight";
flixel_system__$FlxPreloader_GraphicLogoLight.preload = null;
flixel_system__$FlxPreloader_GraphicLogoLight.__super__ = openfl_display_BitmapData;
flixel_system__$FlxPreloader_GraphicLogoLight.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system__$FlxPreloader_GraphicLogoLight
});
var flixel_system__$FlxPreloader_GraphicLogoCorners = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system__$FlxPreloader_GraphicLogoCorners.preload != null) {
this.__fromImage(flixel_system__$FlxPreloader_GraphicLogoCorners.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system__$FlxPreloader_GraphicLogoCorners.resourceName),flixel_system__$FlxPreloader_GraphicLogoCorners.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system__$FlxPreloader_GraphicLogoCorners.preload == null) {
flixel_system__$FlxPreloader_GraphicLogoCorners.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system._FlxPreloader.GraphicLogoCorners"] = flixel_system__$FlxPreloader_GraphicLogoCorners;
flixel_system__$FlxPreloader_GraphicLogoCorners.__name__ = "flixel.system._FlxPreloader.GraphicLogoCorners";
flixel_system__$FlxPreloader_GraphicLogoCorners.preload = null;
flixel_system__$FlxPreloader_GraphicLogoCorners.__super__ = openfl_display_BitmapData;
flixel_system__$FlxPreloader_GraphicLogoCorners.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system__$FlxPreloader_GraphicLogoCorners
});
var flixel_system_FlxPreloader = function(MinDisplayTime,AllowedURLs) {
if(MinDisplayTime == null) {
MinDisplayTime = 0;
}
flixel_system_FlxBasePreloader.call(this,MinDisplayTime,AllowedURLs);
};
$hxClasses["flixel.system.FlxPreloader"] = flixel_system_FlxPreloader;
flixel_system_FlxPreloader.__name__ = "flixel.system.FlxPreloader";
flixel_system_FlxPreloader.__super__ = flixel_system_FlxBasePreloader;
flixel_system_FlxPreloader.prototype = $extend(flixel_system_FlxBasePreloader.prototype,{
_buffer: null
,_bmpBar: null
,_text: null
,_logo: null
,_logoGlow: null
,create: function() {
var _gthis = this;
this._buffer = new openfl_display_Sprite();
this._buffer.set_scaleX(this._buffer.set_scaleY(2));
this.addChild(this._buffer);
this._width = openfl_Lib.get_current().stage.stageWidth / this._buffer.get_scaleX() | 0;
this._height = openfl_Lib.get_current().stage.stageHeight / this._buffer.get_scaleY() | 0;
this._buffer.addChild(new openfl_display_Bitmap(new openfl_display_BitmapData(this._width,this._height,false,13406)));
var logoLight = this.createBitmap(flixel_system__$FlxPreloader_GraphicLogoLight,function(logoLight) {
logoLight.set_width(logoLight.set_height(_gthis._height));
logoLight.set_x((_gthis._width - logoLight.get_width()) / 2);
});
logoLight.smoothing = true;
this._buffer.addChild(logoLight);
this._bmpBar = new openfl_display_Bitmap(new openfl_display_BitmapData(1,7,false,6253311));
this._bmpBar.set_x(4);
this._bmpBar.set_y(this._height - 11);
this._buffer.addChild(this._bmpBar);
this._text = new openfl_text_TextField();
this._text.set_defaultTextFormat(new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEFAULT,8,6253311));
this._text.set_embedFonts(true);
this._text.set_selectable(false);
this._text.set_multiline(false);
this._text.set_x(2);
this._text.set_y(this._bmpBar.get_y() - 11);
this._text.set_width(200);
this._buffer.addChild(this._text);
this._logo = new openfl_display_Sprite();
flixel_system_FlxAssets.drawLogo(this._logo.get_graphics());
this._logo.set_scaleX(this._logo.set_scaleY(this._height / 8 * 0.04));
this._logo.set_x((this._width - this._logo.get_width()) / 2);
this._logo.set_y((this._height - this._logo.get_height()) / 2);
this._buffer.addChild(this._logo);
this._logoGlow = new openfl_display_Sprite();
flixel_system_FlxAssets.drawLogo(this._logoGlow.get_graphics());
this._logoGlow.set_blendMode(12);
this._logoGlow.set_scaleX(this._logoGlow.set_scaleY(this._height / 8 * 0.04));
this._logoGlow.set_x((this._width - this._logoGlow.get_width()) / 2);
this._logoGlow.set_y((this._height - this._logoGlow.get_height()) / 2);
this._buffer.addChild(this._logoGlow);
var corners = this.createBitmap(flixel_system__$FlxPreloader_GraphicLogoCorners,function(corners) {
corners.set_width(_gthis._width);
corners.set_height(_gthis.get_height());
});
corners.smoothing = true;
this._buffer.addChild(corners);
var bitmap = new openfl_display_Bitmap(new openfl_display_BitmapData(this._width,this._height,false,16777215));
var i = 0;
var j = 0;
while(i < this._height) {
j = 0;
while(j < this._width) bitmap.get_bitmapData().setPixel(j++,i,0);
i += 2;
}
bitmap.set_blendMode(11);
bitmap.set_alpha(0.25);
this._buffer.addChild(bitmap);
flixel_system_FlxBasePreloader.prototype.create.call(this);
}
,destroy: function() {
if(this._buffer != null) {
this.removeChild(this._buffer);
}
this._buffer = null;
this._bmpBar = null;
this._text = null;
this._logo = null;
this._logoGlow = null;
flixel_system_FlxBasePreloader.prototype.destroy.call(this);
}
,update: function(Percent) {
this._bmpBar.set_scaleX(Percent * (this._width - 8));
this._text.set_text(Std.string(flixel_FlxG.VERSION) + " " + (Percent * 100 | 0) + "%");
if(Percent < 0.1) {
this._logoGlow.set_alpha(0);
this._logo.set_alpha(0);
} else if(Percent < 0.15) {
this._logoGlow.set_alpha(Math.random());
this._logo.set_alpha(0);
} else if(Percent < 0.2) {
this._logoGlow.set_alpha(0);
this._logo.set_alpha(0);
} else if(Percent < 0.25) {
this._logoGlow.set_alpha(0);
this._logo.set_alpha(Math.random());
} else if(Percent < 0.7) {
this._logoGlow.set_alpha((Percent - 0.45) / 0.45);
this._logo.set_alpha(1);
} else if(Percent > 0.8 && Percent < 0.9) {
this._logoGlow.set_alpha(1 - (Percent - 0.8) / 0.1);
this._logo.set_alpha(0);
} else if(Percent > 0.9) {
this._buffer.set_alpha(1 - (Percent - 0.9) / 0.1);
}
}
,__class__: flixel_system_FlxPreloader
});
var flixel_system_FlxQuadTree = function(X,Y,Width,Height,Parent) {
flixel_math_FlxRect.call(this);
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
this.x = X1;
this.y = Y1;
this.width = Width1;
this.height = Height1;
this.reset(X,Y,Width,Height,Parent);
};
$hxClasses["flixel.system.FlxQuadTree"] = flixel_system_FlxQuadTree;
flixel_system_FlxQuadTree.__name__ = "flixel.system.FlxQuadTree";
flixel_system_FlxQuadTree.divisions = null;
flixel_system_FlxQuadTree._min = null;
flixel_system_FlxQuadTree._object = null;
flixel_system_FlxQuadTree._objectLeftEdge = null;
flixel_system_FlxQuadTree._objectTopEdge = null;
flixel_system_FlxQuadTree._objectRightEdge = null;
flixel_system_FlxQuadTree._objectBottomEdge = null;
flixel_system_FlxQuadTree._list = null;
flixel_system_FlxQuadTree._useBothLists = null;
flixel_system_FlxQuadTree._processingCallback = null;
flixel_system_FlxQuadTree._notifyCallback = null;
flixel_system_FlxQuadTree._iterator = null;
flixel_system_FlxQuadTree._objectHullX = null;
flixel_system_FlxQuadTree._objectHullY = null;
flixel_system_FlxQuadTree._objectHullWidth = null;
flixel_system_FlxQuadTree._objectHullHeight = null;
flixel_system_FlxQuadTree._checkObjectHullX = null;
flixel_system_FlxQuadTree._checkObjectHullY = null;
flixel_system_FlxQuadTree._checkObjectHullWidth = null;
flixel_system_FlxQuadTree._checkObjectHullHeight = null;
flixel_system_FlxQuadTree._cachedTreesHead = null;
flixel_system_FlxQuadTree.recycle = function(X,Y,Width,Height,Parent) {
if(flixel_system_FlxQuadTree._cachedTreesHead != null) {
var cachedTree = flixel_system_FlxQuadTree._cachedTreesHead;
flixel_system_FlxQuadTree._cachedTreesHead = flixel_system_FlxQuadTree._cachedTreesHead.next;
flixel_system_FlxQuadTree._NUM_CACHED_QUAD_TREES--;
cachedTree.reset(X,Y,Width,Height,Parent);
return cachedTree;
} else {
return new flixel_system_FlxQuadTree(X,Y,Width,Height,Parent);
}
};
flixel_system_FlxQuadTree.clearCache = function() {
while(flixel_system_FlxQuadTree._cachedTreesHead != null) {
var node = flixel_system_FlxQuadTree._cachedTreesHead;
flixel_system_FlxQuadTree._cachedTreesHead = flixel_system_FlxQuadTree._cachedTreesHead.next;
node.next = null;
}
flixel_system_FlxQuadTree._NUM_CACHED_QUAD_TREES = 0;
};
flixel_system_FlxQuadTree.__super__ = flixel_math_FlxRect;
flixel_system_FlxQuadTree.prototype = $extend(flixel_math_FlxRect.prototype,{
exists: null
,_canSubdivide: null
,_headA: null
,_tailA: null
,_headB: null
,_tailB: null
,_northWestTree: null
,_northEastTree: null
,_southEastTree: null
,_southWestTree: null
,_leftEdge: null
,_rightEdge: null
,_topEdge: null
,_bottomEdge: null
,_halfWidth: null
,_halfHeight: null
,_midpointX: null
,_midpointY: null
,next: null
,reset: function(X,Y,Width,Height,Parent) {
this.exists = true;
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
this.x = X1;
this.y = Y1;
this.width = Width1;
this.height = Height1;
this._headA = this._tailA = flixel_system_FlxLinkedList.recycle();
this._headB = this._tailB = flixel_system_FlxLinkedList.recycle();
if(Parent != null) {
var iterator;
var ot;
if(Parent._headA.object != null) {
iterator = Parent._headA;
while(iterator != null) {
if(this._tailA.object != null) {
ot = this._tailA;
this._tailA = flixel_system_FlxLinkedList.recycle();
ot.next = this._tailA;
}
this._tailA.object = iterator.object;
iterator = iterator.next;
}
}
if(Parent._headB.object != null) {
iterator = Parent._headB;
while(iterator != null) {
if(this._tailB.object != null) {
ot = this._tailB;
this._tailB = flixel_system_FlxLinkedList.recycle();
ot.next = this._tailB;
}
this._tailB.object = iterator.object;
iterator = iterator.next;
}
}
} else {
flixel_system_FlxQuadTree._min = Math.floor((this.width + this.height) / (2 * flixel_system_FlxQuadTree.divisions));
}
this._canSubdivide = this.width > flixel_system_FlxQuadTree._min || this.height > flixel_system_FlxQuadTree._min;
this._northWestTree = null;
this._northEastTree = null;
this._southEastTree = null;
this._southWestTree = null;
this._leftEdge = this.x;
this._rightEdge = this.x + this.width;
this._halfWidth = this.width / 2;
this._midpointX = this._leftEdge + this._halfWidth;
this._topEdge = this.y;
this._bottomEdge = this.y + this.height;
this._halfHeight = this.height / 2;
this._midpointY = this._topEdge + this._halfHeight;
}
,destroy: function() {
this._headA = flixel_util_FlxDestroyUtil.destroy(this._headA);
this._headB = flixel_util_FlxDestroyUtil.destroy(this._headB);
this._tailA = flixel_util_FlxDestroyUtil.destroy(this._tailA);
this._tailB = flixel_util_FlxDestroyUtil.destroy(this._tailB);
this._northWestTree = flixel_util_FlxDestroyUtil.destroy(this._northWestTree);
this._northEastTree = flixel_util_FlxDestroyUtil.destroy(this._northEastTree);
this._southWestTree = flixel_util_FlxDestroyUtil.destroy(this._southWestTree);
this._southEastTree = flixel_util_FlxDestroyUtil.destroy(this._southEastTree);
flixel_system_FlxQuadTree._object = null;
flixel_system_FlxQuadTree._processingCallback = null;
flixel_system_FlxQuadTree._notifyCallback = null;
this.exists = false;
this.next = flixel_system_FlxQuadTree._cachedTreesHead;
flixel_system_FlxQuadTree._cachedTreesHead = this;
flixel_system_FlxQuadTree._NUM_CACHED_QUAD_TREES++;
flixel_math_FlxRect.prototype.destroy.call(this);
}
,load: function(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,ProcessCallback) {
this.add(ObjectOrGroup1,0);
if(ObjectOrGroup2 != null) {
this.add(ObjectOrGroup2,1);
flixel_system_FlxQuadTree._useBothLists = true;
} else {
flixel_system_FlxQuadTree._useBothLists = false;
}
flixel_system_FlxQuadTree._notifyCallback = NotifyCallback;
flixel_system_FlxQuadTree._processingCallback = ProcessCallback;
}
,add: function(ObjectOrGroup,list) {
flixel_system_FlxQuadTree._list = list;
var group = flixel_group_FlxTypedGroup.resolveGroup(ObjectOrGroup);
if(group != null) {
var i = 0;
var basic;
var members = group.members;
var l = group.length;
while(i < l) {
basic = members[i++];
if(basic != null && basic.exists) {
group = flixel_group_FlxTypedGroup.resolveGroup(basic);
if(group != null) {
this.add(group,list);
} else {
flixel_system_FlxQuadTree._object = basic;
if(flixel_system_FlxQuadTree._object.exists && flixel_system_FlxQuadTree._object.allowCollisions != 0) {
flixel_system_FlxQuadTree._objectLeftEdge = flixel_system_FlxQuadTree._object.x;
flixel_system_FlxQuadTree._objectTopEdge = flixel_system_FlxQuadTree._object.y;
flixel_system_FlxQuadTree._objectRightEdge = flixel_system_FlxQuadTree._object.x + flixel_system_FlxQuadTree._object.get_width();
flixel_system_FlxQuadTree._objectBottomEdge = flixel_system_FlxQuadTree._object.y + flixel_system_FlxQuadTree._object.get_height();
this.addObject();
}
}
}
}
} else {
flixel_system_FlxQuadTree._object = ObjectOrGroup;
if(flixel_system_FlxQuadTree._object.exists && flixel_system_FlxQuadTree._object.allowCollisions != 0) {
flixel_system_FlxQuadTree._objectLeftEdge = flixel_system_FlxQuadTree._object.x;
flixel_system_FlxQuadTree._objectTopEdge = flixel_system_FlxQuadTree._object.y;
flixel_system_FlxQuadTree._objectRightEdge = flixel_system_FlxQuadTree._object.x + flixel_system_FlxQuadTree._object.get_width();
flixel_system_FlxQuadTree._objectBottomEdge = flixel_system_FlxQuadTree._object.y + flixel_system_FlxQuadTree._object.get_height();
this.addObject();
}
}
}
,addObject: function() {
if(!this._canSubdivide || this._leftEdge >= flixel_system_FlxQuadTree._objectLeftEdge && this._rightEdge <= flixel_system_FlxQuadTree._objectRightEdge && this._topEdge >= flixel_system_FlxQuadTree._objectTopEdge && this._bottomEdge <= flixel_system_FlxQuadTree._objectBottomEdge) {
this.addToList();
return;
}
if(flixel_system_FlxQuadTree._objectLeftEdge > this._leftEdge && flixel_system_FlxQuadTree._objectRightEdge < this._midpointX) {
if(flixel_system_FlxQuadTree._objectTopEdge > this._topEdge && flixel_system_FlxQuadTree._objectBottomEdge < this._midpointY) {
if(this._northWestTree == null) {
this._northWestTree = flixel_system_FlxQuadTree.recycle(this._leftEdge,this._topEdge,this._halfWidth,this._halfHeight,this);
}
this._northWestTree.addObject();
return;
}
if(flixel_system_FlxQuadTree._objectTopEdge > this._midpointY && flixel_system_FlxQuadTree._objectBottomEdge < this._bottomEdge) {
if(this._southWestTree == null) {
this._southWestTree = flixel_system_FlxQuadTree.recycle(this._leftEdge,this._midpointY,this._halfWidth,this._halfHeight,this);
}
this._southWestTree.addObject();
return;
}
}
if(flixel_system_FlxQuadTree._objectLeftEdge > this._midpointX && flixel_system_FlxQuadTree._objectRightEdge < this._rightEdge) {
if(flixel_system_FlxQuadTree._objectTopEdge > this._topEdge && flixel_system_FlxQuadTree._objectBottomEdge < this._midpointY) {
if(this._northEastTree == null) {
this._northEastTree = flixel_system_FlxQuadTree.recycle(this._midpointX,this._topEdge,this._halfWidth,this._halfHeight,this);
}
this._northEastTree.addObject();
return;
}
if(flixel_system_FlxQuadTree._objectTopEdge > this._midpointY && flixel_system_FlxQuadTree._objectBottomEdge < this._bottomEdge) {
if(this._southEastTree == null) {
this._southEastTree = flixel_system_FlxQuadTree.recycle(this._midpointX,this._midpointY,this._halfWidth,this._halfHeight,this);
}
this._southEastTree.addObject();
return;
}
}
if(flixel_system_FlxQuadTree._objectRightEdge > this._leftEdge && flixel_system_FlxQuadTree._objectLeftEdge < this._midpointX && flixel_system_FlxQuadTree._objectBottomEdge > this._topEdge && flixel_system_FlxQuadTree._objectTopEdge < this._midpointY) {
if(this._northWestTree == null) {
this._northWestTree = flixel_system_FlxQuadTree.recycle(this._leftEdge,this._topEdge,this._halfWidth,this._halfHeight,this);
}
this._northWestTree.addObject();
}
if(flixel_system_FlxQuadTree._objectRightEdge > this._midpointX && flixel_system_FlxQuadTree._objectLeftEdge < this._rightEdge && flixel_system_FlxQuadTree._objectBottomEdge > this._topEdge && flixel_system_FlxQuadTree._objectTopEdge < this._midpointY) {
if(this._northEastTree == null) {
this._northEastTree = flixel_system_FlxQuadTree.recycle(this._midpointX,this._topEdge,this._halfWidth,this._halfHeight,this);
}
this._northEastTree.addObject();
}
if(flixel_system_FlxQuadTree._objectRightEdge > this._midpointX && flixel_system_FlxQuadTree._objectLeftEdge < this._rightEdge && flixel_system_FlxQuadTree._objectBottomEdge > this._midpointY && flixel_system_FlxQuadTree._objectTopEdge < this._bottomEdge) {
if(this._southEastTree == null) {
this._southEastTree = flixel_system_FlxQuadTree.recycle(this._midpointX,this._midpointY,this._halfWidth,this._halfHeight,this);
}
this._southEastTree.addObject();
}
if(flixel_system_FlxQuadTree._objectRightEdge > this._leftEdge && flixel_system_FlxQuadTree._objectLeftEdge < this._midpointX && flixel_system_FlxQuadTree._objectBottomEdge > this._midpointY && flixel_system_FlxQuadTree._objectTopEdge < this._bottomEdge) {
if(this._southWestTree == null) {
this._southWestTree = flixel_system_FlxQuadTree.recycle(this._leftEdge,this._midpointY,this._halfWidth,this._halfHeight,this);
}
this._southWestTree.addObject();
}
}
,addToList: function() {
var ot;
if(flixel_system_FlxQuadTree._list == 0) {
if(this._tailA.object != null) {
ot = this._tailA;
this._tailA = flixel_system_FlxLinkedList.recycle();
ot.next = this._tailA;
}
this._tailA.object = flixel_system_FlxQuadTree._object;
} else {
if(this._tailB.object != null) {
ot = this._tailB;
this._tailB = flixel_system_FlxLinkedList.recycle();
ot.next = this._tailB;
}
this._tailB.object = flixel_system_FlxQuadTree._object;
}
if(!this._canSubdivide) {
return;
}
if(this._northWestTree != null) {
this._northWestTree.addToList();
}
if(this._northEastTree != null) {
this._northEastTree.addToList();
}
if(this._southEastTree != null) {
this._southEastTree.addToList();
}
if(this._southWestTree != null) {
this._southWestTree.addToList();
}
}
,execute: function() {
var overlapProcessed = false;
if(this._headA.object != null) {
var iterator = this._headA;
while(iterator != null) {
flixel_system_FlxQuadTree._object = iterator.object;
if(flixel_system_FlxQuadTree._useBothLists) {
flixel_system_FlxQuadTree._iterator = this._headB;
} else {
flixel_system_FlxQuadTree._iterator = iterator.next;
}
if(flixel_system_FlxQuadTree._object != null && flixel_system_FlxQuadTree._object.exists && flixel_system_FlxQuadTree._object.allowCollisions > 0 && flixel_system_FlxQuadTree._iterator != null && flixel_system_FlxQuadTree._iterator.object != null && this.overlapNode()) {
overlapProcessed = true;
}
iterator = iterator.next;
}
}
if(this._northWestTree != null && this._northWestTree.execute()) {
overlapProcessed = true;
}
if(this._northEastTree != null && this._northEastTree.execute()) {
overlapProcessed = true;
}
if(this._southEastTree != null && this._southEastTree.execute()) {
overlapProcessed = true;
}
if(this._southWestTree != null && this._southWestTree.execute()) {
overlapProcessed = true;
}
return overlapProcessed;
}
,overlapNode: function() {
flixel_system_FlxQuadTree._objectHullX = flixel_system_FlxQuadTree._object.x < flixel_system_FlxQuadTree._object.last.x ? flixel_system_FlxQuadTree._object.x : flixel_system_FlxQuadTree._object.last.x;
flixel_system_FlxQuadTree._objectHullY = flixel_system_FlxQuadTree._object.y < flixel_system_FlxQuadTree._object.last.y ? flixel_system_FlxQuadTree._object.y : flixel_system_FlxQuadTree._object.last.y;
flixel_system_FlxQuadTree._objectHullWidth = flixel_system_FlxQuadTree._object.x - flixel_system_FlxQuadTree._object.last.x;
flixel_system_FlxQuadTree._objectHullWidth = flixel_system_FlxQuadTree._object.get_width() + (flixel_system_FlxQuadTree._objectHullWidth > 0 ? flixel_system_FlxQuadTree._objectHullWidth : -flixel_system_FlxQuadTree._objectHullWidth);
flixel_system_FlxQuadTree._objectHullHeight = flixel_system_FlxQuadTree._object.y - flixel_system_FlxQuadTree._object.last.y;
flixel_system_FlxQuadTree._objectHullHeight = flixel_system_FlxQuadTree._object.get_height() + (flixel_system_FlxQuadTree._objectHullHeight > 0 ? flixel_system_FlxQuadTree._objectHullHeight : -flixel_system_FlxQuadTree._objectHullHeight);
var overlapProcessed = false;
var checkObject;
while(flixel_system_FlxQuadTree._iterator != null) {
checkObject = flixel_system_FlxQuadTree._iterator.object;
if(flixel_system_FlxQuadTree._object == checkObject || !checkObject.exists || checkObject.allowCollisions <= 0) {
flixel_system_FlxQuadTree._iterator = flixel_system_FlxQuadTree._iterator.next;
continue;
}
flixel_system_FlxQuadTree._checkObjectHullX = checkObject.x < checkObject.last.x ? checkObject.x : checkObject.last.x;
flixel_system_FlxQuadTree._checkObjectHullY = checkObject.y < checkObject.last.y ? checkObject.y : checkObject.last.y;
flixel_system_FlxQuadTree._checkObjectHullWidth = checkObject.x - checkObject.last.x;
flixel_system_FlxQuadTree._checkObjectHullWidth = checkObject.get_width() + (flixel_system_FlxQuadTree._checkObjectHullWidth > 0 ? flixel_system_FlxQuadTree._checkObjectHullWidth : -flixel_system_FlxQuadTree._checkObjectHullWidth);
flixel_system_FlxQuadTree._checkObjectHullHeight = checkObject.y - checkObject.last.y;
flixel_system_FlxQuadTree._checkObjectHullHeight = checkObject.get_height() + (flixel_system_FlxQuadTree._checkObjectHullHeight > 0 ? flixel_system_FlxQuadTree._checkObjectHullHeight : -flixel_system_FlxQuadTree._checkObjectHullHeight);
if(flixel_system_FlxQuadTree._objectHullX + flixel_system_FlxQuadTree._objectHullWidth > flixel_system_FlxQuadTree._checkObjectHullX && flixel_system_FlxQuadTree._objectHullX < flixel_system_FlxQuadTree._checkObjectHullX + flixel_system_FlxQuadTree._checkObjectHullWidth && flixel_system_FlxQuadTree._objectHullY + flixel_system_FlxQuadTree._objectHullHeight > flixel_system_FlxQuadTree._checkObjectHullY && flixel_system_FlxQuadTree._objectHullY < flixel_system_FlxQuadTree._checkObjectHullY + flixel_system_FlxQuadTree._checkObjectHullHeight) {
if(flixel_system_FlxQuadTree._processingCallback == null || flixel_system_FlxQuadTree._processingCallback(flixel_system_FlxQuadTree._object,checkObject)) {
overlapProcessed = true;
if(flixel_system_FlxQuadTree._notifyCallback != null) {
flixel_system_FlxQuadTree._notifyCallback(flixel_system_FlxQuadTree._object,checkObject);
}
}
}
if(flixel_system_FlxQuadTree._iterator != null) {
flixel_system_FlxQuadTree._iterator = flixel_system_FlxQuadTree._iterator.next;
}
}
return overlapProcessed;
}
,__class__: flixel_system_FlxQuadTree
});
var flixel_system_FlxSound = function() {
this._alreadyPaused = false;
this._volumeAdjust = 1.0;
this._length = 0;
this._time = 0;
this.loopTime = 0;
flixel_FlxBasic.call(this);
this.reset();
};
$hxClasses["flixel.system.FlxSound"] = flixel_system_FlxSound;
flixel_system_FlxSound.__name__ = "flixel.system.FlxSound";
flixel_system_FlxSound.__super__ = flixel_FlxBasic;
flixel_system_FlxSound.prototype = $extend(flixel_FlxBasic.prototype,{
x: null
,y: null
,persist: null
,name: null
,artist: null
,amplitude: null
,amplitudeLeft: null
,amplitudeRight: null
,autoDestroy: null
,onComplete: null
,group: null
,looped: null
,loopTime: null
,endTime: null
,fadeTween: null
,_sound: null
,_channel: null
,_transform: null
,_paused: null
,_volume: null
,_time: null
,_length: null
,_volumeAdjust: null
,_target: null
,_radius: null
,_proximityPan: null
,_alreadyPaused: null
,reset: function() {
this.destroy();
this.x = 0;
this.y = 0;
this._time = 0;
this._paused = false;
this._volume = 1.0;
this._volumeAdjust = 1.0;
this.looped = false;
this.loopTime = 0.0;
this.endTime = 0.0;
this._target = null;
this._radius = 0;
this._proximityPan = false;
this.set_visible(false);
this.amplitude = 0;
this.amplitudeLeft = 0;
this.amplitudeRight = 0;
this.autoDestroy = false;
if(this._transform == null) {
this._transform = new openfl_media_SoundTransform();
}
this._transform.pan = 0;
}
,destroy: function() {
this._transform = null;
this.set_exists(false);
this.set_active(false);
this._target = null;
this.name = null;
this.artist = null;
if(this._channel != null) {
this._channel.removeEventListener("soundComplete",$bind(this,this.stopped));
this._channel.stop();
this._channel = null;
}
if(this._sound != null) {
this._sound.removeEventListener("id3",$bind(this,this.gotID3));
this._sound = null;
}
this.onComplete = null;
flixel_FlxBasic.prototype.destroy.call(this);
}
,update: function(elapsed) {
if(this._channel == null) {
return;
}
this._time = this._channel.get_position();
var radialMultiplier = 1.0;
if(this._target != null) {
var targetPosition = this._target.getPosition();
var X = this.x;
var Y = this.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
radialMultiplier = targetPosition.distanceTo(point1) / this._radius;
targetPosition.put();
var lowerBound = radialMultiplier < 0 ? 0 : radialMultiplier;
radialMultiplier = 1 - (lowerBound > 1 ? 1 : lowerBound);
if(this._proximityPan) {
var d = (this.x - this._target.x) / this._radius;
var lowerBound = d < -1 ? -1 : d;
this._transform.pan = lowerBound > 1 ? 1 : lowerBound;
}
}
this._volumeAdjust = radialMultiplier;
this.updateTransform();
if(this._transform.volume > 0) {
this.amplitudeLeft = this._channel.leftPeak / this._transform.volume;
this.amplitudeRight = this._channel.rightPeak / this._transform.volume;
this.amplitude = (this.amplitudeLeft + this.amplitudeRight) * 0.5;
} else {
this.amplitudeLeft = 0;
this.amplitudeRight = 0;
this.amplitude = 0;
}
if(this.endTime != null && this._time >= this.endTime) {
this.stopped();
}
}
,kill: function() {
flixel_FlxBasic.prototype.kill.call(this);
this.cleanup(false);
}
,loadEmbedded: function(EmbeddedSound,Looped,AutoDestroy,OnComplete) {
if(AutoDestroy == null) {
AutoDestroy = false;
}
if(Looped == null) {
Looped = false;
}
if(EmbeddedSound == null) {
return this;
}
this.cleanup(true);
if(((EmbeddedSound) instanceof openfl_media_Sound)) {
this._sound = EmbeddedSound;
} else if(js_Boot.__instanceof(EmbeddedSound,Class)) {
this._sound = Type.createInstance(EmbeddedSound,[]);
} else if(typeof(EmbeddedSound) == "string") {
if(openfl_utils_Assets.exists(EmbeddedSound,"SOUND") || openfl_utils_Assets.exists(EmbeddedSound,"MUSIC")) {
this._sound = openfl_utils_Assets.getSound(EmbeddedSound);
}
}
return this.init(Looped,AutoDestroy,OnComplete);
}
,loadStream: function(SoundURL,Looped,AutoDestroy,OnComplete) {
if(AutoDestroy == null) {
AutoDestroy = false;
}
if(Looped == null) {
Looped = false;
}
this.cleanup(true);
this._sound = new openfl_media_Sound();
this._sound.addEventListener("id3",$bind(this,this.gotID3));
this._sound.load(new openfl_net_URLRequest(SoundURL));
return this.init(Looped,AutoDestroy,OnComplete);
}
,init: function(Looped,AutoDestroy,OnComplete) {
if(AutoDestroy == null) {
AutoDestroy = false;
}
if(Looped == null) {
Looped = false;
}
this.looped = Looped;
this.autoDestroy = AutoDestroy;
this.updateTransform();
this.set_exists(true);
this.onComplete = OnComplete;
this._length = this._sound == null ? 0 : this._sound.get_length();
this.endTime = this._length;
return this;
}
,proximity: function(X,Y,TargetObject,Radius,Pan) {
if(Pan == null) {
Pan = true;
}
this.x = X;
this.y = Y;
this._target = TargetObject;
this._radius = Radius;
this._proximityPan = Pan;
return this;
}
,play: function(ForceRestart,StartTime,EndTime) {
if(StartTime == null) {
StartTime = 0.0;
}
if(ForceRestart == null) {
ForceRestart = false;
}
if(!this.exists) {
return this;
}
if(ForceRestart) {
this.cleanup(false,true);
} else if(this._channel != null) {
return this;
}
if(this._paused) {
this.resume();
} else {
this.startSound(StartTime);
}
this.endTime = EndTime;
return this;
}
,resume: function() {
if(this._paused) {
this.startSound(this._time);
}
return this;
}
,pause: function() {
if(this._channel == null) {
return this;
}
this._time = this._channel.get_position();
this._paused = true;
this.cleanup(false,false);
return this;
}
,stop: function() {
this.cleanup(this.autoDestroy,true);
return this;
}
,fadeOut: function(Duration,To,onComplete) {
if(To == null) {
To = 0;
}
if(Duration == null) {
Duration = 1;
}
if(this.fadeTween != null) {
this.fadeTween.cancel();
}
this.fadeTween = flixel_tweens_FlxTween.num(this._volume,To,Duration,{ onComplete : onComplete},$bind(this,this.volumeTween));
return this;
}
,fadeIn: function(Duration,From,To,onComplete) {
if(To == null) {
To = 1;
}
if(From == null) {
From = 0;
}
if(Duration == null) {
Duration = 1;
}
if(this._channel == null) {
this.play();
}
if(this.fadeTween != null) {
this.fadeTween.cancel();
}
this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : onComplete},$bind(this,this.volumeTween));
return this;
}
,volumeTween: function(f) {
this.set_volume(f);
}
,getActualVolume: function() {
return this._volume * this._volumeAdjust;
}
,setPosition: function(X,Y) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.x = X;
this.y = Y;
}
,updateTransform: function() {
this._transform.volume = (flixel_FlxG.sound.muted ? 0 : 1) * flixel_FlxG.sound.volume * (this.group != null ? this.group.volume : 1) * this._volume * this._volumeAdjust;
if(this._channel != null) {
this._channel.set_soundTransform(this._transform);
}
}
,startSound: function(StartTime) {
if(this._sound == null) {
return;
}
this._time = StartTime;
this._paused = false;
this._channel = this._sound.play(this._time,0,this._transform);
if(this._channel != null) {
this._channel.addEventListener("soundComplete",$bind(this,this.stopped));
this.set_active(true);
} else {
this.set_exists(false);
this.set_active(false);
}
}
,stopped: function(_) {
if(this.onComplete != null) {
this.onComplete();
}
if(this.looped) {
this.cleanup(false);
this.play(false,this.loopTime,this.endTime);
} else {
this.cleanup(this.autoDestroy);
}
}
,cleanup: function(destroySound,resetPosition) {
if(resetPosition == null) {
resetPosition = true;
}
if(destroySound) {
this.reset();
return;
}
if(this._channel != null) {
this._channel.removeEventListener("soundComplete",$bind(this,this.stopped));
this._channel.stop();
this._channel = null;
}
this.set_active(false);
if(resetPosition) {
this._time = 0;
this._paused = false;
}
}
,gotID3: function(_) {
this.name = this._sound.get_id3().songName;
this.artist = this._sound.get_id3().artist;
this._sound.removeEventListener("id3",$bind(this,this.gotID3));
}
,onFocus: function() {
if(!this._alreadyPaused) {
this.resume();
}
}
,onFocusLost: function() {
this._alreadyPaused = this._paused;
this.pause();
}
,set_group: function(group) {
if(this.group != group) {
var oldGroup = this.group;
this.group = group;
if(oldGroup != null) {
oldGroup.remove(this);
}
if(group != null) {
group.add(this);
}
this.updateTransform();
}
return group;
}
,get_playing: function() {
return this._channel != null;
}
,get_volume: function() {
return this._volume;
}
,set_volume: function(Volume) {
var lowerBound = Volume < 0 ? 0 : Volume;
this._volume = lowerBound > 1 ? 1 : lowerBound;
this.updateTransform();
return Volume;
}
,get_pan: function() {
return this._transform.pan;
}
,set_pan: function(pan) {
return this._transform.pan = pan;
}
,get_time: function() {
return this._time;
}
,set_time: function(time) {
if(this._channel != null) {
this.cleanup(false,true);
this.startSound(time);
}
return this._time = time;
}
,get_length: function() {
return this._length;
}
,toString: function() {
var value = this._channel != null;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "playing";
_this.value = value;
var value = this._time;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "time";
_this1.value = value;
var value = this._length;
var _this2 = flixel_util_LabelValuePair._pool.get();
_this2.label = "length";
_this2.value = value;
var value = this._volume;
var _this3 = flixel_util_LabelValuePair._pool.get();
_this3.label = "volume";
_this3.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]);
}
,__class__: flixel_system_FlxSound
,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{set_group:"set_group",get_length:"get_length",set_time:"set_time",get_time:"get_time",set_volume:"set_volume",get_volume:"get_volume",get_playing:"get_playing",set_pan:"set_pan",get_pan:"get_pan"})
});
var flixel_system_FlxSoundGroup = function(volume) {
if(volume == null) {
volume = 1;
}
this.sounds = [];
this.set_volume(volume);
};
$hxClasses["flixel.system.FlxSoundGroup"] = flixel_system_FlxSoundGroup;
flixel_system_FlxSoundGroup.__name__ = "flixel.system.FlxSoundGroup";
flixel_system_FlxSoundGroup.prototype = {
sounds: null
,volume: null
,add: function(sound) {
if(this.sounds.indexOf(sound) < 0) {
this.sounds.push(sound);
sound.set_group(this);
return true;
}
return false;
}
,remove: function(sound) {
if(this.sounds.indexOf(sound) >= 0) {
sound.set_group(null);
return HxOverrides.remove(this.sounds,sound);
}
return false;
}
,pause: function() {
var _g = 0;
var _g1 = this.sounds;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
sound.pause();
}
}
,resume: function() {
var _g = 0;
var _g1 = this.sounds;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
sound.resume();
}
}
,set_volume: function(volume) {
this.volume = volume;
var _g = 0;
var _g1 = this.sounds;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
sound.updateTransform();
}
return volume;
}
,__class__: flixel_system_FlxSoundGroup
,__properties__: {set_volume:"set_volume"}
};
var flixel_system_FlxSplash = function(MaxSize) {
this._curPart = 0;
flixel_FlxState.call(this,MaxSize);
};
$hxClasses["flixel.system.FlxSplash"] = flixel_system_FlxSplash;
flixel_system_FlxSplash.__name__ = "flixel.system.FlxSplash";
flixel_system_FlxSplash.nextState = null;
flixel_system_FlxSplash.__super__ = flixel_FlxState;
flixel_system_FlxSplash.prototype = $extend(flixel_FlxState.prototype,{
_sprite: null
,_gfx: null
,_text: null
,_times: null
,_colors: null
,_functions: null
,_curPart: null
,_cachedBgColor: null
,_cachedTimestep: null
,_cachedAutoPause: null
,create: function() {
this._cachedBgColor = flixel_FlxG.cameras.get_bgColor();
flixel_FlxG.cameras.set_bgColor(-16777216);
this._cachedTimestep = flixel_FlxG.fixedTimestep;
flixel_FlxG.fixedTimestep = false;
this._cachedAutoPause = flixel_FlxG.autoPause;
flixel_FlxG.autoPause = false;
flixel_FlxG.keys.enabled = false;
this._times = [0.041,0.184,0.334,0.495,0.636];
this._colors = [47394,16761138,16066382,3555839,314875];
this._functions = [$bind(this,this.drawGreen),$bind(this,this.drawYellow),$bind(this,this.drawRed),$bind(this,this.drawBlue),$bind(this,this.drawLightBlue)];
var _g = 0;
var _g1 = this._times;
while(_g < _g1.length) {
var time = _g1[_g];
++_g;
new flixel_util_FlxTimer().start(time,$bind(this,this.timerCallback));
}
var stageWidth = openfl_Lib.get_current().stage.stageWidth;
var stageHeight = openfl_Lib.get_current().stage.stageHeight;
this._sprite = new openfl_display_Sprite();
openfl_Lib.get_current().stage.addChild(this._sprite);
this._gfx = this._sprite.get_graphics();
this._text = new openfl_text_TextField();
this._text.set_selectable(false);
this._text.set_embedFonts(true);
var dtf = new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEFAULT,16,16777215);
dtf.align = 0;
this._text.set_defaultTextFormat(dtf);
this._text.set_text("HaxeFlixel");
openfl_Lib.get_current().stage.addChild(this._text);
this.onResize(stageWidth,stageHeight);
if(!flixel_system_FlxSplash.muted) {
var extension = "";
extension = ".ogg";
flixel_FlxG.sound.load(openfl_utils_Assets.getSound("flixel/sounds/flixel" + extension)).play();
}
}
,destroy: function() {
this._sprite = null;
this._gfx = null;
this._text = null;
this._times = null;
this._colors = null;
this._functions = null;
flixel_FlxState.prototype.destroy.call(this);
}
,onResize: function(Width,Height) {
flixel_FlxState.prototype.onResize.call(this,Width,Height);
this._sprite.set_x(Width / 2);
this._sprite.set_y(Height / 2 - 20 * flixel_FlxG.game.get_scaleY());
this._text.set_width(Width / flixel_FlxG.game.get_scaleX());
this._text.set_x(0);
this._text.set_y(this._sprite.get_y() + 80 * flixel_FlxG.game.get_scaleY());
this._sprite.set_scaleX(this._text.set_scaleX(flixel_FlxG.game.get_scaleX()));
this._sprite.set_scaleY(this._text.set_scaleY(flixel_FlxG.game.get_scaleY()));
}
,timerCallback: function(Timer) {
this._functions[this._curPart]();
this._text.set_textColor(this._colors[this._curPart]);
this._text.set_text("HaxeFlixel");
this._curPart++;
if(this._curPart == 5) {
flixel_tweens_FlxTween.tween(this._sprite,{ alpha : 0},3.0,{ ease : flixel_tweens_FlxEase.quadOut, onComplete : $bind(this,this.onComplete)});
flixel_tweens_FlxTween.tween(this._text,{ alpha : 0},3.0,{ ease : flixel_tweens_FlxEase.quadOut});
}
}
,drawGreen: function() {
this._gfx.beginFill(47394);
this._gfx.moveTo(0,-37);
this._gfx.lineTo(1,-37);
this._gfx.lineTo(37,0);
this._gfx.lineTo(37,1);
this._gfx.lineTo(1,37);
this._gfx.lineTo(0,37);
this._gfx.lineTo(-37,1);
this._gfx.lineTo(-37,0);
this._gfx.lineTo(0,-37);
this._gfx.endFill();
}
,drawYellow: function() {
this._gfx.beginFill(16761138);
this._gfx.moveTo(-50,-50);
this._gfx.lineTo(-25,-50);
this._gfx.lineTo(0,-37);
this._gfx.lineTo(-37,0);
this._gfx.lineTo(-50,-25);
this._gfx.lineTo(-50,-50);
this._gfx.endFill();
}
,drawRed: function() {
this._gfx.beginFill(16066382);
this._gfx.moveTo(50,-50);
this._gfx.lineTo(25,-50);
this._gfx.lineTo(1,-37);
this._gfx.lineTo(37,0);
this._gfx.lineTo(50,-25);
this._gfx.lineTo(50,-50);
this._gfx.endFill();
}
,drawBlue: function() {
this._gfx.beginFill(3555839);
this._gfx.moveTo(-50,50);
this._gfx.lineTo(-25,50);
this._gfx.lineTo(0,37);
this._gfx.lineTo(-37,1);
this._gfx.lineTo(-50,25);
this._gfx.lineTo(-50,50);
this._gfx.endFill();
}
,drawLightBlue: function() {
this._gfx.beginFill(314875);
this._gfx.moveTo(50,50);
this._gfx.lineTo(25,50);
this._gfx.lineTo(1,37);
this._gfx.lineTo(37,1);
this._gfx.lineTo(50,25);
this._gfx.lineTo(50,50);
this._gfx.endFill();
}
,onComplete: function(Tween) {
flixel_FlxG.cameras.set_bgColor(this._cachedBgColor);
flixel_FlxG.fixedTimestep = this._cachedTimestep;
flixel_FlxG.autoPause = this._cachedAutoPause;
flixel_FlxG.keys.enabled = true;
openfl_Lib.get_current().stage.removeChild(this._sprite);
openfl_Lib.get_current().stage.removeChild(this._text);
var nextState = Type.createInstance(flixel_system_FlxSplash.nextState,[]);
if(flixel_FlxG.game._state.switchTo(nextState)) {
flixel_FlxG.game._requestedState = nextState;
}
flixel_FlxG.game._gameJustStarted = true;
}
,__class__: flixel_system_FlxSplash
});
var flixel_system_debug_DebuggerUtil = function() { };
$hxClasses["flixel.system.debug.DebuggerUtil"] = flixel_system_debug_DebuggerUtil;
flixel_system_debug_DebuggerUtil.__name__ = "flixel.system.debug.DebuggerUtil";
flixel_system_debug_DebuggerUtil.createTextField = function(X,Y,Color,Size) {
if(Size == null) {
Size = 12;
}
if(Color == null) {
Color = -1;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
return flixel_system_debug_DebuggerUtil.initTextField(new openfl_text_TextField(),X,Y,Color,Size);
};
flixel_system_debug_DebuggerUtil.initTextField = function(tf,X,Y,Color,Size) {
if(Size == null) {
Size = 12;
}
if(Color == null) {
Color = -1;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
tf.set_x(X);
tf.set_y(Y);
tf.set_multiline(false);
tf.set_wordWrap(false);
tf.set_embedFonts(true);
tf.set_selectable(false);
tf.set_defaultTextFormat(new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEBUGGER,Size,Color & 16777215));
tf.set_alpha((Color >> 24 & 255) / 255);
tf.set_autoSize(1);
return tf;
};
flixel_system_debug_DebuggerUtil.fixSize = function(bitmapData) {
Reflect.setProperty(bitmapData,"width",11);
Reflect.setProperty(bitmapData,"height",11);
return bitmapData;
};
var flixel_system_debug__$FlxDebugger_GraphicFlixel = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug__$FlxDebugger_GraphicFlixel.preload != null) {
this.__fromImage(flixel_system_debug__$FlxDebugger_GraphicFlixel.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug__$FlxDebugger_GraphicFlixel.resourceName),flixel_system_debug__$FlxDebugger_GraphicFlixel.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug__$FlxDebugger_GraphicFlixel.preload == null) {
flixel_system_debug__$FlxDebugger_GraphicFlixel.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug._FlxDebugger.GraphicFlixel"] = flixel_system_debug__$FlxDebugger_GraphicFlixel;
flixel_system_debug__$FlxDebugger_GraphicFlixel.__name__ = "flixel.system.debug._FlxDebugger.GraphicFlixel";
flixel_system_debug__$FlxDebugger_GraphicFlixel.preload = null;
flixel_system_debug__$FlxDebugger_GraphicFlixel.__super__ = openfl_display_BitmapData;
flixel_system_debug__$FlxDebugger_GraphicFlixel.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug__$FlxDebugger_GraphicFlixel
});
var flixel_system_debug__$FlxDebugger_GraphicDrawDebug = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload != null) {
this.__fromImage(flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug__$FlxDebugger_GraphicDrawDebug.resourceName),flixel_system_debug__$FlxDebugger_GraphicDrawDebug.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload == null) {
flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug._FlxDebugger.GraphicDrawDebug"] = flixel_system_debug__$FlxDebugger_GraphicDrawDebug;
flixel_system_debug__$FlxDebugger_GraphicDrawDebug.__name__ = "flixel.system.debug._FlxDebugger.GraphicDrawDebug";
flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload = null;
flixel_system_debug__$FlxDebugger_GraphicDrawDebug.__super__ = openfl_display_BitmapData;
flixel_system_debug__$FlxDebugger_GraphicDrawDebug.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug__$FlxDebugger_GraphicDrawDebug
});
var flixel_system_debug_GraphicLog = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicLog.preload != null) {
this.__fromImage(flixel_system_debug_GraphicLog.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicLog.resourceName),flixel_system_debug_GraphicLog.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicLog.preload == null) {
flixel_system_debug_GraphicLog.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicLog"] = flixel_system_debug_GraphicLog;
flixel_system_debug_GraphicLog.__name__ = "flixel.system.debug.GraphicLog";
flixel_system_debug_GraphicLog.preload = null;
flixel_system_debug_GraphicLog.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicLog.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicLog
});
var flixel_system_debug_GraphicStats = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicStats.preload != null) {
this.__fromImage(flixel_system_debug_GraphicStats.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicStats.resourceName),flixel_system_debug_GraphicStats.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicStats.preload == null) {
flixel_system_debug_GraphicStats.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicStats"] = flixel_system_debug_GraphicStats;
flixel_system_debug_GraphicStats.__name__ = "flixel.system.debug.GraphicStats";
flixel_system_debug_GraphicStats.preload = null;
flixel_system_debug_GraphicStats.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicStats.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicStats
});
var flixel_system_debug_GraphicWatch = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicWatch.preload != null) {
this.__fromImage(flixel_system_debug_GraphicWatch.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicWatch.resourceName),flixel_system_debug_GraphicWatch.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicWatch.preload == null) {
flixel_system_debug_GraphicWatch.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicWatch"] = flixel_system_debug_GraphicWatch;
flixel_system_debug_GraphicWatch.__name__ = "flixel.system.debug.GraphicWatch";
flixel_system_debug_GraphicWatch.preload = null;
flixel_system_debug_GraphicWatch.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicWatch.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicWatch
});
var flixel_system_debug_GraphicBitmapLog = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicBitmapLog.preload != null) {
this.__fromImage(flixel_system_debug_GraphicBitmapLog.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicBitmapLog.resourceName),flixel_system_debug_GraphicBitmapLog.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicBitmapLog.preload == null) {
flixel_system_debug_GraphicBitmapLog.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicBitmapLog"] = flixel_system_debug_GraphicBitmapLog;
flixel_system_debug_GraphicBitmapLog.__name__ = "flixel.system.debug.GraphicBitmapLog";
flixel_system_debug_GraphicBitmapLog.preload = null;
flixel_system_debug_GraphicBitmapLog.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicBitmapLog.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicBitmapLog
});
var flixel_system_debug_GraphicConsole = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicConsole.preload != null) {
this.__fromImage(flixel_system_debug_GraphicConsole.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicConsole.resourceName),flixel_system_debug_GraphicConsole.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicConsole.preload == null) {
flixel_system_debug_GraphicConsole.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicConsole"] = flixel_system_debug_GraphicConsole;
flixel_system_debug_GraphicConsole.__name__ = "flixel.system.debug.GraphicConsole";
flixel_system_debug_GraphicConsole.preload = null;
flixel_system_debug_GraphicConsole.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicConsole.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicConsole
});
var flixel_system_debug_GraphicArrowLeft = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicArrowLeft.preload != null) {
this.__fromImage(flixel_system_debug_GraphicArrowLeft.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicArrowLeft.resourceName),flixel_system_debug_GraphicArrowLeft.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicArrowLeft.preload == null) {
flixel_system_debug_GraphicArrowLeft.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicArrowLeft"] = flixel_system_debug_GraphicArrowLeft;
flixel_system_debug_GraphicArrowLeft.__name__ = "flixel.system.debug.GraphicArrowLeft";
flixel_system_debug_GraphicArrowLeft.preload = null;
flixel_system_debug_GraphicArrowLeft.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicArrowLeft.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicArrowLeft
});
var flixel_system_debug_GraphicArrowRight = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicArrowRight.preload != null) {
this.__fromImage(flixel_system_debug_GraphicArrowRight.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicArrowRight.resourceName),flixel_system_debug_GraphicArrowRight.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicArrowRight.preload == null) {
flixel_system_debug_GraphicArrowRight.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicArrowRight"] = flixel_system_debug_GraphicArrowRight;
flixel_system_debug_GraphicArrowRight.__name__ = "flixel.system.debug.GraphicArrowRight";
flixel_system_debug_GraphicArrowRight.preload = null;
flixel_system_debug_GraphicArrowRight.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicArrowRight.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicArrowRight
});
var flixel_system_debug_GraphicCloseButton = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicCloseButton.preload != null) {
this.__fromImage(flixel_system_debug_GraphicCloseButton.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicCloseButton.resourceName),flixel_system_debug_GraphicCloseButton.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicCloseButton.preload == null) {
flixel_system_debug_GraphicCloseButton.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicCloseButton"] = flixel_system_debug_GraphicCloseButton;
flixel_system_debug_GraphicCloseButton.__name__ = "flixel.system.debug.GraphicCloseButton";
flixel_system_debug_GraphicCloseButton.preload = null;
flixel_system_debug_GraphicCloseButton.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicCloseButton.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicCloseButton
});
var flixel_system_debug_GraphicInteractive = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_GraphicInteractive.preload != null) {
this.__fromImage(flixel_system_debug_GraphicInteractive.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicInteractive.resourceName),flixel_system_debug_GraphicInteractive.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_GraphicInteractive.preload == null) {
flixel_system_debug_GraphicInteractive.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.GraphicInteractive"] = flixel_system_debug_GraphicInteractive;
flixel_system_debug_GraphicInteractive.__name__ = "flixel.system.debug.GraphicInteractive";
flixel_system_debug_GraphicInteractive.preload = null;
flixel_system_debug_GraphicInteractive.__super__ = openfl_display_BitmapData;
flixel_system_debug_GraphicInteractive.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_GraphicInteractive
});
var flixel_system_debug_FlxDebugger = function() {
openfl_display_Sprite.call(this);
};
$hxClasses["flixel.system.debug.FlxDebugger"] = flixel_system_debug_FlxDebugger;
flixel_system_debug_FlxDebugger.__name__ = "flixel.system.debug.FlxDebugger";
flixel_system_debug_FlxDebugger.__super__ = openfl_display_Sprite;
flixel_system_debug_FlxDebugger.prototype = $extend(openfl_display_Sprite.prototype,{
__class__: flixel_system_debug_FlxDebugger
});
var flixel_system_debug_FlxDebuggerLayout = $hxEnums["flixel.system.debug.FlxDebuggerLayout"] = { __ename__ : "flixel.system.debug.FlxDebuggerLayout", __constructs__ : ["STANDARD","MICRO","BIG","TOP","LEFT","RIGHT"]
,STANDARD: {_hx_index:0,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr}
,MICRO: {_hx_index:1,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr}
,BIG: {_hx_index:2,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr}
,TOP: {_hx_index:3,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr}
,LEFT: {_hx_index:4,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr}
,RIGHT: {_hx_index:5,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr}
};
var flixel_system_debug_Tooltip = function() { };
$hxClasses["flixel.system.debug.Tooltip"] = flixel_system_debug_Tooltip;
flixel_system_debug_Tooltip.__name__ = "flixel.system.debug.Tooltip";
flixel_system_debug_Tooltip._container = null;
flixel_system_debug_Tooltip.init = function(container) {
flixel_system_debug_Tooltip._container = container;
};
flixel_system_debug_Tooltip.add = function(element,text) {
var tooltip = new flixel_system_debug_TooltipOverlay(element,text);
flixel_system_debug_Tooltip._container.addChild(tooltip);
flixel_system_debug_Tooltip._tooltips.push(tooltip);
return tooltip;
};
flixel_system_debug_Tooltip.remove = function(element) {
var removed = false;
var _g = 0;
var _g1 = flixel_system_debug_Tooltip._tooltips.length;
while(_g < _g1) {
var i = _g++;
if(flixel_system_debug_Tooltip._tooltips[i] != null && flixel_system_debug_Tooltip._tooltips[i].owner == element) {
var tooltip = flixel_system_debug_Tooltip._tooltips.splice(i,1)[0];
tooltip.destroy();
removed = true;
break;
}
}
return removed;
};
var flixel_system_debug_TooltipOverlay = function(target,text,width,height) {
if(height == null) {
height = 0;
}
if(width == null) {
width = 0;
}
openfl_display_Sprite.call(this);
this.owner = target;
this.maxSize = new openfl_geom_Point(width,height);
this._shadow = new openfl_display_Bitmap(new openfl_display_BitmapData(1,2,true,-16777216));
this._background = new openfl_display_Bitmap(new openfl_display_BitmapData(1,1,true,-12961222));
this.textField = flixel_system_debug_DebuggerUtil.createTextField(2,1);
this.textField.set_alpha(0.8);
this.textField.set_text(text);
this.textField.set_wordWrap(true);
this.addChild(this._shadow);
this.addChild(this._background);
this.addChild(this.textField);
this.updateSize();
this.setVisible(false);
if(this.owner != null) {
this.owner.addEventListener("mouseOver",$bind(this,this.handleMouseEvents));
this.owner.addEventListener("mouseOut",$bind(this,this.handleMouseEvents));
}
};
$hxClasses["flixel.system.debug.TooltipOverlay"] = flixel_system_debug_TooltipOverlay;
flixel_system_debug_TooltipOverlay.__name__ = "flixel.system.debug.TooltipOverlay";
flixel_system_debug_TooltipOverlay.__super__ = openfl_display_Sprite;
flixel_system_debug_TooltipOverlay.prototype = $extend(openfl_display_Sprite.prototype,{
_width: null
,_height: null
,_background: null
,_shadow: null
,textField: null
,owner: null
,maxSize: null
,destroy: function() {
this._shadow = flixel_util_FlxDestroyUtil.removeChild(this,this._shadow);
this._background = flixel_util_FlxDestroyUtil.removeChild(this,this._background);
this.textField = flixel_util_FlxDestroyUtil.removeChild(this,this.textField);
this.maxSize = null;
if(this.owner != null) {
this.owner.removeEventListener("mouseOver",$bind(this,this.handleMouseEvents));
this.owner.removeEventListener("mouseOut",$bind(this,this.handleMouseEvents));
}
this.owner = null;
}
,resize: function(Width,Height) {
this.maxSize.x = Math.abs(Width) | 0;
this.maxSize.y = Math.abs(Height) | 0;
this.updateSize();
}
,reposition: function(X,Y) {
this.set_x(X);
this.set_y(Y);
this.ensureOnScreen();
}
,setVisible: function(Value) {
this.set_visible(Value);
if(this.get_visible()) {
this.parent.addChild(this);
this.ensureOnScreen();
}
}
,setText: function(Text1) {
this.textField.set_text(Text1);
this.updateSize();
this.ensureOnScreen();
}
,toggleVisible: function() {
this.setVisible(!this.get_visible());
}
,putOnTop: function() {
this.parent.addChild(this);
}
,update: function() {
}
,updateSize: function() {
this._width = ((this.maxSize.x <= 0 ? this.textField.get_textWidth() : Math.abs(this.maxSize.x)) | 0) + 8;
this._height = ((this.maxSize.y <= 0 ? this.textField.get_textHeight() : Math.abs(this.maxSize.y)) | 0) + 8;
this._background.set_scaleX(this._width);
this._background.set_scaleY(this._height);
this._shadow.set_scaleX(this._width);
this._shadow.set_y(this._height);
this.textField.set_width(this._width);
}
,ensureOnScreen: function() {
this.set_x(this.get_x() < 0 ? 0 : this.get_x());
this.set_y(this.get_y() < 0 ? 0 : this.get_y());
var offsetX = this.get_x() + this.get_width() >= openfl_Lib.get_current().stage.stageWidth ? openfl_Lib.get_current().stage.stageWidth - (this.get_x() + this.get_width()) : 0;
var offsetY = this.get_y() + this.get_height() >= openfl_Lib.get_current().stage.stageHeight ? openfl_Lib.get_current().stage.stageHeight - (this.get_y() + this.get_height()) : 0;
var _g = this;
_g.set_x(_g.get_x() + offsetX);
var _g = this;
_g.set_y(_g.get_y() + offsetY);
}
,handleMouseEvents: function(event) {
if(event.type == "mouseOver" && !this.get_visible()) {
this.set_x(event.stageX + 10);
this.set_y(event.stageY + 10);
this.setVisible(true);
} else if(event.type == "mouseOut") {
this.setVisible(false);
}
}
,__class__: flixel_system_debug_TooltipOverlay
});
var flixel_system_debug__$Window_GraphicWindowHandle = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug__$Window_GraphicWindowHandle.preload != null) {
this.__fromImage(flixel_system_debug__$Window_GraphicWindowHandle.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug__$Window_GraphicWindowHandle.resourceName),flixel_system_debug__$Window_GraphicWindowHandle.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug__$Window_GraphicWindowHandle.preload == null) {
flixel_system_debug__$Window_GraphicWindowHandle.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug._Window.GraphicWindowHandle"] = flixel_system_debug__$Window_GraphicWindowHandle;
flixel_system_debug__$Window_GraphicWindowHandle.__name__ = "flixel.system.debug._Window.GraphicWindowHandle";
flixel_system_debug__$Window_GraphicWindowHandle.preload = null;
flixel_system_debug__$Window_GraphicWindowHandle.__super__ = openfl_display_BitmapData;
flixel_system_debug__$Window_GraphicWindowHandle.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug__$Window_GraphicWindowHandle
});
var flixel_system_debug_Window = function(Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop) {
if(AlwaysOnTop == null) {
AlwaysOnTop = true;
}
if(Closable == null) {
Closable = false;
}
if(Resizable == null) {
Resizable = true;
}
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
openfl_display_Sprite.call(this);
this.minSize = new openfl_geom_Point(50,30);
this._width = Math.abs(Width) | 0;
this._height = Math.abs(Height) | 0;
this.updateBounds(Bounds);
this._drag = new openfl_geom_Point();
this._resizable = Resizable;
this._closable = Closable;
this._alwaysOnTop = AlwaysOnTop;
this._shadow = new openfl_display_Bitmap(new openfl_display_BitmapData(1,2,true,-16777216));
this._background = new openfl_display_Bitmap(new openfl_display_BitmapData(1,1,true,-580952225));
this._header = new openfl_display_Bitmap(new openfl_display_BitmapData(1,15,true,-1157627904));
this._background.set_y(this._header.get_height());
this._title = flixel_system_debug_DebuggerUtil.createTextField(2,-1);
this._title.set_alpha(0.8);
this._title.set_text(Title);
this.addChild(this._shadow);
this.addChild(this._background);
this.addChild(this._header);
this.addChild(this._title);
if(Icon != null) {
flixel_system_debug_DebuggerUtil.fixSize(Icon);
this._icon = new openfl_display_Bitmap(Icon);
this._icon.set_x(5);
this._icon.set_y(2);
this._icon.set_alpha(0.8);
this._title.set_x(this._icon.get_x() + this._icon.get_width() + 2);
this.addChild(this._icon);
}
if(this._resizable) {
this._handle = new openfl_display_Bitmap(flixel_system_debug_DebuggerUtil.fixSize(new flixel_system_debug__$Window_GraphicWindowHandle(0,0)));
this.addChild(this._handle);
}
if(Closable) {
this._closeButton = new flixel_system_ui_FlxSystemButton(new flixel_system_debug_GraphicCloseButton(0,0),$bind(this,this.close));
this._closeButton.set_alpha(0.8);
this.addChild(this._closeButton);
} else {
this._id = flixel_system_debug_Window.WINDOW_AMOUNT;
this.loadSaveData();
flixel_system_debug_Window.WINDOW_AMOUNT++;
}
if(this._width != 0 || this._height != 0) {
this.updateSize();
}
this.bound();
this.addEventListener("enterFrame",$bind(this,this.init));
};
$hxClasses["flixel.system.debug.Window"] = flixel_system_debug_Window;
flixel_system_debug_Window.__name__ = "flixel.system.debug.Window";
flixel_system_debug_Window.__super__ = openfl_display_Sprite;
flixel_system_debug_Window.prototype = $extend(openfl_display_Sprite.prototype,{
minSize: null
,maxSize: null
,toggleButton: null
,_width: null
,_height: null
,_bounds: null
,_background: null
,_header: null
,_shadow: null
,_title: null
,_handle: null
,_icon: null
,_closeButton: null
,_overHeader: null
,_overHandle: null
,_drag: null
,_dragging: null
,_resizing: null
,_resizable: null
,_closable: null
,_alwaysOnTop: null
,_id: null
,destroy: function() {
this.minSize = null;
this.maxSize = null;
this._bounds = null;
if(this._shadow != null) {
this.removeChild(this._shadow);
}
this._shadow = null;
if(this._background != null) {
this.removeChild(this._background);
}
this._background = null;
if(this._header != null) {
this.removeChild(this._header);
}
this._header = null;
if(this._title != null) {
this.removeChild(this._title);
}
this._title = null;
if(this._handle != null) {
this.removeChild(this._handle);
}
this._handle = null;
this._drag = null;
this._closeButton = flixel_util_FlxDestroyUtil.destroy(this._closeButton);
var stage = openfl_Lib.get_current().stage;
if(stage.hasEventListener("mouseMove")) {
stage.removeEventListener("mouseMove",$bind(this,this.onMouseMove));
}
if(this.hasEventListener("mouseDown")) {
this.removeEventListener("mouseDown",$bind(this,this.onMouseDown));
}
if(stage.hasEventListener("mouseUp")) {
stage.removeEventListener("mouseUp",$bind(this,this.onMouseUp));
}
}
,resize: function(Width,Height) {
this._width = Math.abs(Width) | 0;
this._height = Math.abs(Height) | 0;
this.updateSize();
}
,reposition: function(X,Y) {
this.set_x(X);
this.set_y(Y);
this.bound();
}
,updateBounds: function(Bounds) {
this._bounds = Bounds;
if(this._bounds != null) {
this.maxSize = new openfl_geom_Point(this._bounds.width,this._bounds.height);
} else {
this.maxSize = new openfl_geom_Point(1.79e+308,1.79e+308);
}
}
,setVisible: function(Value) {
this.set_visible(Value);
if(!this._closable) {
flixel_FlxG.save.data.windowSettings[this._id] = this.get_visible();
flixel_FlxG.save.flush();
}
if(this.toggleButton != null) {
this.toggleButton.set_toggled(!this.get_visible());
}
if(this.get_visible() && this._alwaysOnTop) {
this.parent.addChild(this);
}
}
,toggleVisible: function() {
this.setVisible(!this.get_visible());
}
,putOnTop: function() {
this.parent.addChild(this);
}
,loadSaveData: function() {
if(flixel_FlxG.save.data.windowSettings != null) {
this.set_visible(flixel_FlxG.save.data.windowSettings[this._id]);
} else {
this.initSaveData();
this.loadSaveData();
}
}
,initSaveData: function() {
var settings = [];
settings[0] = true;
settings[1] = true;
settings[2] = true;
settings[3] = true;
settings[4] = true;
settings[5] = true;
settings[6] = true;
settings[7] = true;
settings[8] = true;
settings[9] = true;
flixel_FlxG.save.data.windowSettings = settings;
flixel_FlxG.save.flush();
}
,update: function() {
}
,init: function(E) {
if(this.stage == null) {
return;
}
this.removeEventListener("enterFrame",$bind(this,this.init));
this.stage.addEventListener("mouseMove",$bind(this,this.onMouseMove));
this.stage.addEventListener("mouseUp",$bind(this,this.onMouseUp));
this.addEventListener("mouseDown",$bind(this,this.onMouseDown));
}
,onMouseMove: function(E) {
var mouseX = this.get_mouseX() < 0 ? 0 : this.get_mouseX();
var mouseY = this.get_mouseY() < 0 ? 0 : this.get_mouseY();
if(!this.parent.get_visible()) {
this._overHandle = this._overHeader = false;
return;
}
if(this._dragging) {
this._overHeader = true;
this.reposition(this.parent.get_mouseX() - this._drag.x,this.parent.get_mouseY() - this._drag.y);
} else if(this._resizing) {
this._overHandle = true;
this.resize(mouseX - this._drag.x,mouseY - this._drag.y);
} else if(mouseX >= 0 && mouseX <= this._width && mouseY >= 0 && mouseY <= this._height) {
this._overHeader = mouseX <= this._header.get_width() && mouseY <= this._header.get_height();
if(this._resizable) {
this._overHandle = mouseX >= this._width - this._handle.get_width() && mouseY >= this._height - this._handle.get_height();
}
} else {
this._overHandle = this._overHeader = false;
}
}
,onMouseDown: function(E) {
if(this._overHeader) {
if(this._alwaysOnTop) {
this.parent.addChild(this);
}
this._dragging = true;
this._drag.x = this.get_mouseX();
this._drag.y = this.get_mouseY();
} else if(this._overHandle) {
if(this._alwaysOnTop) {
this.parent.addChild(this);
}
this._resizing = true;
var tmp = this._width;
var tmp1 = this.get_mouseX();
this._drag.x = tmp - tmp1;
var tmp = this._height;
var tmp1 = this.get_mouseY();
this._drag.y = tmp - tmp1;
}
}
,onMouseUp: function(E) {
this._dragging = false;
this._resizing = false;
}
,bound: function() {
if(this._bounds != null) {
var Value = this.get_x();
var Min = this._bounds.get_left();
var Max = this._bounds.get_right() - this._width;
var lowerBound = Min != null && Value < Min ? Min : Value;
this.set_x(Max != null && lowerBound > Max ? Max : lowerBound);
var Value = this.get_y();
var Min = this._bounds.get_top();
var Max = this._bounds.get_bottom() - this._height;
var lowerBound = Min != null && Value < Min ? Min : Value;
this.set_y(Max != null && lowerBound > Max ? Max : lowerBound);
}
}
,updateSize: function() {
var Value = this._width;
var Min = this.minSize.x;
var Max = this.maxSize.x;
var lowerBound = Min != null && Value < Min ? Min : Value;
this._width = (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
var Value = this._height;
var Min = this.minSize.y;
var Max = this.maxSize.y;
var lowerBound = Min != null && Value < Min ? Min : Value;
this._height = (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
this._header.set_scaleX(this._width);
this._background.set_scaleX(this._width);
this._background.set_scaleY(this._height - this._header.get_height());
this._shadow.set_scaleX(this._width);
this._shadow.set_y(this._height);
this._title.set_width(this._width - 4);
if(this._resizable) {
this._handle.set_x(this._width - this._handle.get_width());
this._handle.set_y(this._height - this._handle.get_height());
}
if(this._closeButton != null) {
this._closeButton.set_x(this._width - this._closeButton.get_width() - 3);
this._closeButton.set_y(3);
}
}
,close: function() {
this.destroy();
}
,__class__: flixel_system_debug_Window
});
var flixel_system_debug_completion_CompletionList = function(capacity) {
this.upperVisibleIndex = 0;
this.lowerVisibleIndex = 0;
this.selectedIndex = 0;
this.entries = [];
openfl_display_Sprite.call(this);
this.set_visible(false);
this.upperVisibleIndex = capacity - 1;
this.actualHeight = capacity * 20;
this.createPopupEntries(capacity);
this.createScrollBar();
this.updateSelectedItem();
openfl_Lib.get_current().stage.addEventListener("keyDown",$bind(this,this.onKeyDown));
};
$hxClasses["flixel.system.debug.completion.CompletionList"] = flixel_system_debug_completion_CompletionList;
flixel_system_debug_completion_CompletionList.__name__ = "flixel.system.debug.completion.CompletionList";
flixel_system_debug_completion_CompletionList.__super__ = openfl_display_Sprite;
flixel_system_debug_completion_CompletionList.prototype = $extend(openfl_display_Sprite.prototype,{
completed: null
,selectionChanged: null
,closed: null
,filter: null
,items: null
,entries: null
,originalItems: null
,selectedIndex: null
,lowerVisibleIndex: null
,upperVisibleIndex: null
,scrollBar: null
,actualHeight: null
,show: function(x,items) {
this.set_visible(true);
this.set_x(x);
this.originalItems = items;
this.set_filter("");
this.updateEntries();
}
,setY: function(y) {
this.set_y(y - this.actualHeight);
}
,close: function() {
this.set_visible(false);
this.set_filter(null);
if(this.closed != null) {
this.closed();
}
}
,createPopupEntries: function(amount) {
var _g = 0;
var _g1 = amount;
while(_g < _g1) {
var i = _g++;
var entry = new flixel_system_debug_completion_CompletionListEntry();
this.entries.push(entry);
this.addChild(entry);
entry.set_y(20 * i);
}
}
,createScrollBar: function() {
this.scrollBar = new flixel_system_debug_completion_CompletionListScrollBar(150,0,5,this.actualHeight);
this.addChild(this.scrollBar);
}
,onKeyDown: function(e) {
if(!this.get_visible()) {
return;
}
switch(e.keyCode) {
case 13:
if(this.completed != null) {
this.completed(this.items[this.selectedIndex]);
}
this.close();
return;
case 27:
this.close();
return;
case 38:
this.updateIndices(-1);
break;
case 40:
this.updateIndices(1);
break;
}
this.updateEntries();
}
,updateIndices: function(modifier) {
this.selectedIndex = this.bound(this.selectedIndex + modifier);
var Value = this.selectedIndex;
var Min = this.lowerVisibleIndex;
var Max = this.upperVisibleIndex;
if((Min == null || Value >= Min) && (Max == null || Value <= Max)) {
return;
}
this.lowerVisibleIndex = this.bound(this.lowerVisibleIndex + modifier);
this.upperVisibleIndex = this.bound(this.upperVisibleIndex + modifier);
var range = this.upperVisibleIndex - this.lowerVisibleIndex;
if(range == this.items.length) {
return;
}
if(this.lowerVisibleIndex == 0) {
this.upperVisibleIndex = this.entries.length - 1;
} else if(this.upperVisibleIndex == this.items.length - 1) {
this.lowerVisibleIndex = this.items.length - this.entries.length;
}
}
,bound: function(index) {
var Max = this.items.length - 1;
var lowerBound = index < 0 ? 0 : index;
return (Max != null && lowerBound > Max ? Max : lowerBound) | 0;
}
,updateEntries: function() {
this.updateLabels();
this.updateSelectedItem();
this.scrollBar.updateHandle(this.lowerVisibleIndex,this.items.length,this.entries.length);
}
,updateLabels: function() {
var _g = 0;
var _g1 = this.entries.length;
while(_g < _g1) {
var i = _g++;
var selectedItem = this.items[this.lowerVisibleIndex + i];
if(selectedItem == null) {
selectedItem = "";
}
this.entries[i].setItem(selectedItem);
}
}
,updateSelectedItem: function() {
var _g = 0;
var _g1 = this.entries;
while(_g < _g1.length) {
var entry = _g1[_g];
++_g;
entry.set_selected(false);
}
this.entries[this.selectedIndex - this.lowerVisibleIndex].set_selected(true);
if(this.selectionChanged != null) {
this.selectionChanged(this.items[this.selectedIndex]);
}
}
,setItems: function(items) {
if(items == null) {
return;
}
if(items.length == 0) {
this.close();
}
this.items = items;
this.selectedIndex = 0;
this.lowerVisibleIndex = 0;
this.upperVisibleIndex = this.entries.length - 1;
this.updateEntries();
}
,filterItems: function(filter) {
if(filter == null) {
filter = "";
}
var _g = [];
var _g1 = 0;
var _g2 = this.originalItems;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
if(v.toLowerCase().indexOf(filter.toLowerCase()) != -1) {
_g.push(v);
}
}
return this.sortItems(filter,_g);
}
,sortItems: function(filter,items) {
var _gthis = this;
if(filter == "") {
return items;
}
items.sort(function(a,b) {
var valueA = _gthis.startsWithExt(a,filter);
var valueB = _gthis.startsWithExt(b,filter);
if(valueA > valueB) {
return -valueA;
}
if(valueB > valueA) {
return valueB;
}
if(valueA == valueB) {
return a.length - b.length | 0;
}
return 0;
});
return items;
}
,startsWithExt: function(s,start) {
if(StringTools.startsWith(s,start)) {
return 2;
}
var _this_r = new RegExp("^[_]+","".split("u").join(""));
if(StringTools.startsWith(s.replace(_this_r,""),start)) {
return 1;
}
return 0;
}
,set_filter: function(filter) {
if(filter == this.filter) {
return filter;
}
this.setItems(this.filterItems(filter));
return this.filter = filter;
}
,__class__: flixel_system_debug_completion_CompletionList
,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_filter:"set_filter"})
});
var flixel_system_debug_completion_CompletionListEntry = function() {
this.selected = false;
openfl_display_Sprite.call(this);
this.initBitmapDatas();
this.addChild(this.background = new openfl_display_Bitmap());
this.background.set_bitmapData(flixel_system_debug_completion_CompletionListEntry.normalBitmapData);
this.label = flixel_system_debug_DebuggerUtil.createTextField();
this.label.set_x(4);
this.addChild(this.label);
};
$hxClasses["flixel.system.debug.completion.CompletionListEntry"] = flixel_system_debug_completion_CompletionListEntry;
flixel_system_debug_completion_CompletionListEntry.__name__ = "flixel.system.debug.completion.CompletionListEntry";
flixel_system_debug_completion_CompletionListEntry.normalBitmapData = null;
flixel_system_debug_completion_CompletionListEntry.highlightBitmapData = null;
flixel_system_debug_completion_CompletionListEntry.__super__ = openfl_display_Sprite;
flixel_system_debug_completion_CompletionListEntry.prototype = $extend(openfl_display_Sprite.prototype,{
selected: null
,background: null
,label: null
,initBitmapDatas: function() {
if(flixel_system_debug_completion_CompletionListEntry.normalBitmapData == null) {
flixel_system_debug_completion_CompletionListEntry.normalBitmapData = new openfl_display_BitmapData(150,20,true,-10526881);
}
if(flixel_system_debug_completion_CompletionListEntry.highlightBitmapData == null) {
flixel_system_debug_completion_CompletionListEntry.highlightBitmapData = new openfl_display_BitmapData(150,20,true,-9605779);
}
}
,setItem: function(item) {
this.label.set_text(item);
if(this.label.get_width() > 150) {
this.label.set_width(150);
this.label.set_autoSize(2);
}
}
,set_selected: function(selected) {
if(selected == this.selected) {
return selected;
}
this.background.set_bitmapData(selected ? flixel_system_debug_completion_CompletionListEntry.highlightBitmapData : flixel_system_debug_completion_CompletionListEntry.normalBitmapData);
return this.selected = selected;
}
,__class__: flixel_system_debug_completion_CompletionListEntry
,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_selected:"set_selected"})
});
var flixel_system_debug_completion_CompletionListScrollBar = function(x,y,width,height) {
openfl_display_Sprite.call(this);
this.set_x(x);
this.set_y(y);
this.addChild(new openfl_display_Bitmap(new openfl_display_BitmapData(width,height,true,-12303292)));
this.handle = new openfl_display_Bitmap(new openfl_display_BitmapData(width,1,true,-14540254));
this.addChild(this.handle);
};
$hxClasses["flixel.system.debug.completion.CompletionListScrollBar"] = flixel_system_debug_completion_CompletionListScrollBar;
flixel_system_debug_completion_CompletionListScrollBar.__name__ = "flixel.system.debug.completion.CompletionListScrollBar";
flixel_system_debug_completion_CompletionListScrollBar.__super__ = openfl_display_Sprite;
flixel_system_debug_completion_CompletionListScrollBar.prototype = $extend(openfl_display_Sprite.prototype,{
handle: null
,updateHandle: function(lower,items,entries) {
this.handle.set_scaleY(Math.min(this.get_height() / items * entries,this.get_height()));
this.handle.set_y(this.get_height() / items * lower);
var tmp = this.handle;
var Value = this.handle.get_y();
var Max = this.get_height() - this.handle.get_scaleY();
var lowerBound = Value < 0 ? 0 : Value;
tmp.set_y(Max != null && lowerBound > Max ? Max : lowerBound);
}
,__class__: flixel_system_debug_completion_CompletionListScrollBar
});
var flixel_system_debug_console_ConsoleUtil = function() { };
$hxClasses["flixel.system.debug.console.ConsoleUtil"] = flixel_system_debug_console_ConsoleUtil;
flixel_system_debug_console_ConsoleUtil.__name__ = "flixel.system.debug.console.ConsoleUtil";
flixel_system_debug_console_ConsoleUtil.parser = null;
flixel_system_debug_console_ConsoleUtil.interp = null;
flixel_system_debug_console_ConsoleUtil.init = function() {
flixel_system_debug_console_ConsoleUtil.parser = new hscript_Parser();
flixel_system_debug_console_ConsoleUtil.parser.allowJSON = true;
flixel_system_debug_console_ConsoleUtil.parser.allowTypes = true;
flixel_system_debug_console_ConsoleUtil.interp = new flixel_system_debug_console__$ConsoleUtil_Interp();
};
flixel_system_debug_console_ConsoleUtil.parseCommand = function(Input) {
if(StringTools.endsWith(Input,";")) {
Input = HxOverrides.substr(Input,0,-1);
}
return flixel_system_debug_console_ConsoleUtil.parser.parseString(Input);
};
flixel_system_debug_console_ConsoleUtil.runCommand = function(Input) {
return flixel_system_debug_console_ConsoleUtil.interp.expr(flixel_system_debug_console_ConsoleUtil.parseCommand(Input));
};
flixel_system_debug_console_ConsoleUtil.runExpr = function(expr) {
return flixel_system_debug_console_ConsoleUtil.interp.expr(expr);
};
flixel_system_debug_console_ConsoleUtil.registerObject = function(ObjectAlias,AnyObject) {
if(AnyObject == null || Reflect.isObject(AnyObject)) {
flixel_system_debug_console_ConsoleUtil.interp.variables.h[ObjectAlias] = AnyObject;
}
};
flixel_system_debug_console_ConsoleUtil.registerFunction = function(FunctionAlias,Function1) {
if(Reflect.isFunction(Function1)) {
flixel_system_debug_console_ConsoleUtil.interp.variables.h[FunctionAlias] = Function1;
}
};
flixel_system_debug_console_ConsoleUtil.getFields = function(Object1) {
var fields = [];
if(js_Boot.__instanceof(Object1,Class)) {
fields = Type.getClassFields(Object1);
} else if(js_Boot.__instanceof(Object1,Enum)) {
fields = Object1.__constructs__.slice();
} else if(Reflect.isObject(Object1)) {
fields = Type.getInstanceFields(js_Boot.getClass(Object1));
}
HxOverrides.remove(fields,"__constructs__");
var filteredFields = [];
var _g = 0;
while(_g < fields.length) {
var field = fields[_g];
++_g;
if(StringTools.startsWith(field,"get_") || StringTools.startsWith(field,"set_")) {
var name = HxOverrides.substr(field,4,null);
if(fields.indexOf(name) == -1 && filteredFields.indexOf(name) == -1) {
filteredFields.push(name);
}
} else {
filteredFields.push(field);
}
}
return flixel_system_debug_console_ConsoleUtil.sortFields(filteredFields);
};
flixel_system_debug_console_ConsoleUtil.sortFields = function(fields) {
var underscoreList = [];
var _g = [];
var _g1 = 0;
var _g2 = fields;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
var fields1;
if(StringTools.startsWith(v,"_")) {
underscoreList.push(v);
fields1 = false;
} else {
fields1 = true;
}
if(fields1) {
_g.push(v);
}
}
fields = _g;
flixel_util_FlxStringUtil.sortAlphabetically(fields);
flixel_util_FlxStringUtil.sortAlphabetically(underscoreList);
return fields.concat(underscoreList);
};
flixel_system_debug_console_ConsoleUtil.log = function(Text1) {
flixel_FlxG.log.advanced([Text1],flixel_system_debug_log_LogStyle.CONSOLE);
};
var hscript_Interp = function() {
this.locals = new haxe_ds_StringMap();
this.declared = [];
this.resetVariables();
this.initOps();
};
$hxClasses["hscript.Interp"] = hscript_Interp;
hscript_Interp.__name__ = "hscript.Interp";
hscript_Interp.prototype = {
variables: null
,locals: null
,binops: null
,depth: null
,inTry: null
,declared: null
,returnValue: null
,resetVariables: function() {
var _gthis = this;
this.variables = new haxe_ds_StringMap();
this.variables.h["null"] = null;
this.variables.h["true"] = true;
this.variables.h["false"] = false;
var this1 = this.variables;
var value = Reflect.makeVarArgs(function(el) {
var inf = _gthis.posInfos();
var v = el.shift();
if(el.length > 0) {
inf.customParams = el;
}
haxe_Log.trace(Std.string(v),inf);
});
this1.h["trace"] = value;
}
,posInfos: function() {
return { fileName : "hscript", lineNumber : 0};
}
,initOps: function() {
var me = this;
this.binops = new haxe_ds_StringMap();
this.binops.h["+"] = function(e1,e2) {
return me.expr(e1) + me.expr(e2);
};
this.binops.h["-"] = function(e1,e2) {
return me.expr(e1) - me.expr(e2);
};
this.binops.h["*"] = function(e1,e2) {
return me.expr(e1) * me.expr(e2);
};
this.binops.h["/"] = function(e1,e2) {
return me.expr(e1) / me.expr(e2);
};
this.binops.h["%"] = function(e1,e2) {
return me.expr(e1) % me.expr(e2);
};
this.binops.h["&"] = function(e1,e2) {
return me.expr(e1) & me.expr(e2);
};
this.binops.h["|"] = function(e1,e2) {
return me.expr(e1) | me.expr(e2);
};
this.binops.h["^"] = function(e1,e2) {
return me.expr(e1) ^ me.expr(e2);
};
this.binops.h["<<"] = function(e1,e2) {
return me.expr(e1) << me.expr(e2);
};
this.binops.h[">>"] = function(e1,e2) {
return me.expr(e1) >> me.expr(e2);
};
this.binops.h[">>>"] = function(e1,e2) {
return me.expr(e1) >>> me.expr(e2);
};
this.binops.h["=="] = function(e1,e2) {
return me.expr(e1) == me.expr(e2);
};
this.binops.h["!="] = function(e1,e2) {
return me.expr(e1) != me.expr(e2);
};
this.binops.h[">="] = function(e1,e2) {
return me.expr(e1) >= me.expr(e2);
};
this.binops.h["<="] = function(e1,e2) {
return me.expr(e1) <= me.expr(e2);
};
this.binops.h[">"] = function(e1,e2) {
return me.expr(e1) > me.expr(e2);
};
this.binops.h["<"] = function(e1,e2) {
return me.expr(e1) < me.expr(e2);
};
this.binops.h["||"] = function(e1,e2) {
if(me.expr(e1) != true) {
return me.expr(e2) == true;
} else {
return true;
}
};
this.binops.h["&&"] = function(e1,e2) {
if(me.expr(e1) == true) {
return me.expr(e2) == true;
} else {
return false;
}
};
this.binops.h["="] = $bind(this,this.assign);
this.binops.h["..."] = function(e1,e2) {
return new IntIterator(me.expr(e1),me.expr(e2));
};
this.assignOp("+=",function(v1,v2) {
return v1 + v2;
});
this.assignOp("-=",function(v1,v2) {
return v1 - v2;
});
this.assignOp("*=",function(v1,v2) {
return v1 * v2;
});
this.assignOp("/=",function(v1,v2) {
return v1 / v2;
});
this.assignOp("%=",function(v1,v2) {
return v1 % v2;
});
this.assignOp("&=",function(v1,v2) {
return v1 & v2;
});
this.assignOp("|=",function(v1,v2) {
return v1 | v2;
});
this.assignOp("^=",function(v1,v2) {
return v1 ^ v2;
});
this.assignOp("<<=",function(v1,v2) {
return v1 << v2;
});
this.assignOp(">>=",function(v1,v2) {
return v1 >> v2;
});
this.assignOp(">>>=",function(v1,v2) {
return v1 >>> v2;
});
}
,assign: function(e1,e2) {
var v = this.expr(e2);
switch(e1._hx_index) {
case 1:
var id = e1.v;
var l = this.locals.h[id];
if(l == null) {
this.variables.h[id] = v;
} else {
l.r = v;
}
break;
case 5:
var f = e1.f;
var e = e1.e;
v = this.set(this.expr(e),f,v);
break;
case 16:
var index = e1.index;
var e = e1.e;
var arr = this.expr(e);
var index1 = this.expr(index);
if(js_Boot.__implements(arr,haxe_IMap)) {
(js_Boot.__cast(arr , haxe_IMap)).set(index1,v);
} else {
arr[index1] = v;
}
break;
default:
var e = hscript_Error.EInvalidOp("=");
throw haxe_Exception.thrown(e);
}
return v;
}
,assignOp: function(op,fop) {
var me = this;
this.binops.h[op] = function(e1,e2) {
return me.evalAssignOp(op,fop,e1,e2);
};
}
,evalAssignOp: function(op,fop,e1,e2) {
var v;
switch(e1._hx_index) {
case 1:
var id = e1.v;
var l = this.locals.h[id];
v = fop(this.expr(e1),this.expr(e2));
if(l == null) {
this.variables.h[id] = v;
} else {
l.r = v;
}
break;
case 5:
var f = e1.f;
var e = e1.e;
var obj = this.expr(e);
v = fop(this.get(obj,f),this.expr(e2));
v = this.set(obj,f,v);
break;
case 16:
var index = e1.index;
var e = e1.e;
var arr = this.expr(e);
var index1 = this.expr(index);
if(js_Boot.__implements(arr,haxe_IMap)) {
v = fop((js_Boot.__cast(arr , haxe_IMap)).get(index1),this.expr(e2));
(js_Boot.__cast(arr , haxe_IMap)).set(index1,v);
} else {
v = fop(arr[index1],this.expr(e2));
arr[index1] = v;
}
break;
default:
var e = hscript_Error.EInvalidOp(op);
throw haxe_Exception.thrown(e);
}
return v;
}
,increment: function(e,prefix,delta) {
switch(e._hx_index) {
case 1:
var id = e.v;
var l = this.locals.h[id];
var v = l == null ? this.variables.h[id] : l.r;
if(prefix) {
v += delta;
if(l == null) {
this.variables.h[id] = v;
} else {
l.r = v;
}
} else if(l == null) {
this.variables.h[id] = v + delta;
} else {
l.r = v + delta;
}
return v;
case 5:
var f = e.f;
var e1 = e.e;
var obj = this.expr(e1);
var v = this.get(obj,f);
if(prefix) {
v += delta;
this.set(obj,f,v);
} else {
this.set(obj,f,v + delta);
}
return v;
case 16:
var index = e.index;
var e1 = e.e;
var arr = this.expr(e1);
var index1 = this.expr(index);
if(js_Boot.__implements(arr,haxe_IMap)) {
var v = (js_Boot.__cast(arr , haxe_IMap)).get(index1);
if(prefix) {
v += delta;
(js_Boot.__cast(arr , haxe_IMap)).set(index1,v);
} else {
(js_Boot.__cast(arr , haxe_IMap)).set(index1,v + delta);
}
return v;
} else {
var v = arr[index1];
if(prefix) {
v += delta;
arr[index1] = v;
} else {
arr[index1] = v + delta;
}
return v;
}
break;
default:
var e = hscript_Error.EInvalidOp(delta > 0 ? "++" : "--");
throw haxe_Exception.thrown(e);
}
}
,execute: function(expr) {
this.depth = 0;
this.locals = new haxe_ds_StringMap();
this.declared = [];
return this.exprReturn(expr);
}
,exprReturn: function(e) {
try {
return this.expr(e);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var _g1 = haxe_Exception.caught(_g).unwrap();
if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) {
var e = _g1;
switch(e._hx_index) {
case 0:
throw haxe_Exception.thrown("Invalid break");
case 1:
throw haxe_Exception.thrown("Invalid continue");
case 2:
var v = this.returnValue;
this.returnValue = null;
return v;
}
} else {
throw _g;
}
}
}
,duplicate: function(h) {
var h2 = new haxe_ds_StringMap();
var k = haxe_ds_StringMap.keysIterator(h.h);
while(k.hasNext()) {
var k1 = k.next();
h2.h[k1] = h.h[k1];
}
return h2;
}
,restore: function(old) {
while(this.declared.length > old) {
var d = this.declared.pop();
this.locals.h[d.n] = d.old;
}
}
,error: function(e,rethrow) {
if(rethrow == null) {
rethrow = false;
}
if(rethrow) {
throw haxe_Exception.thrown(e);
} else {
throw haxe_Exception.thrown(e);
}
}
,rethrow: function(e) {
throw haxe_Exception.thrown(e);
}
,resolve: function(id) {
var l = this.locals.h[id];
if(l != null) {
return l.r;
}
var v = this.variables.h[id];
if(v == null && !Object.prototype.hasOwnProperty.call(this.variables.h,id)) {
var e = hscript_Error.EUnknownVariable(id);
throw haxe_Exception.thrown(e);
}
return v;
}
,expr: function(e) {
var _gthis = this;
switch(e._hx_index) {
case 0:
var c = e.c;
switch(c._hx_index) {
case 0:
var v = c.v;
return v;
case 1:
var f = c.f;
return f;
case 2:
var s = c.s;
return s;
}
break;
case 1:
var id = e.v;
return this.resolve(id);
case 2:
var _g = e.t;
var e1 = e.e;
var n = e.n;
this.declared.push({ n : n, old : this.locals.h[n]});
var this1 = this.locals;
var value = e1 == null ? null : this.expr(e1);
this1.h[n] = { r : value};
return null;
case 3:
var e1 = e.e;
return this.expr(e1);
case 4:
var exprs = e.e;
var old = this.declared.length;
var v = null;
var _g = 0;
while(_g < exprs.length) {
var e1 = exprs[_g];
++_g;
v = this.expr(e1);
}
this.restore(old);
return v;
case 5:
var f = e.f;
var e1 = e.e;
return this.get(this.expr(e1),f);
case 6:
var e2 = e.e2;
var e1 = e.e1;
var op = e.op;
var fop = this.binops.h[op];
if(fop == null) {
var e3 = hscript_Error.EInvalidOp(op);
throw haxe_Exception.thrown(e3);
}
return fop(e1,e2);
case 7:
var e1 = e.e;
var prefix = e.prefix;
var op = e.op;
switch(op) {
case "!":
return this.expr(e1) != true;
case "++":
return this.increment(e1,prefix,1);
case "-":
return -this.expr(e1);
case "--":
return this.increment(e1,prefix,-1);
case "~":
return ~this.expr(e1);
default:
var e1 = hscript_Error.EInvalidOp(op);
throw haxe_Exception.thrown(e1);
}
break;
case 8:
var params = e.params;
var e1 = e.e;
var args = [];
var _g = 0;
while(_g < params.length) {
var p = params[_g];
++_g;
args.push(this.expr(p));
}
if(e1._hx_index == 5) {
var f = e1.f;
var e2 = e1.e;
var obj = this.expr(e2);
if(obj == null) {
var e2 = hscript_Error.EInvalidAccess(f);
throw haxe_Exception.thrown(e2);
}
return this.fcall(obj,f,args);
} else {
return this.call(null,this.expr(e1),args);
}
break;
case 9:
var e2 = e.e2;
var e1 = e.e1;
var econd = e.cond;
if(this.expr(econd) == true) {
return this.expr(e1);
} else if(e2 == null) {
return null;
} else {
return this.expr(e2);
}
break;
case 10:
var e1 = e.e;
var econd = e.cond;
this.whileLoop(econd,e1);
return null;
case 11:
var e1 = e.e;
var it = e.it;
var v = e.v;
this.forLoop(v,it,e1);
return null;
case 12:
throw haxe_Exception.thrown(hscript__$Interp_Stop.SBreak);
case 13:
throw haxe_Exception.thrown(hscript__$Interp_Stop.SContinue);
case 14:
var _g = e.ret;
var name = e.name;
var fexpr = e.e;
var params = e.args;
var capturedLocals = this.duplicate(this.locals);
var me = this;
var hasOpt = false;
var minParams = 0;
var _g = 0;
while(_g < params.length) {
var p = params[_g];
++_g;
if(p.opt) {
hasOpt = true;
} else {
minParams += 1;
}
}
var f = function(args) {
if((args == null ? 0 : args.length) != params.length) {
if(args.length < minParams) {
var str = "Invalid number of parameters. Got " + args.length + ", required " + minParams;
if(name != null) {
str += " for function '" + name + "'";
}
var e = hscript_Error.ECustom(str);
throw haxe_Exception.thrown(e);
}
var args2 = [];
var extraParams = args.length - minParams;
var pos = 0;
var _g = 0;
while(_g < params.length) {
var p = params[_g];
++_g;
if(p.opt) {
if(extraParams > 0) {
args2.push(args[pos++]);
--extraParams;
} else {
args2.push(null);
}
} else {
args2.push(args[pos++]);
}
}
args = args2;
}
var old = me.locals;
var depth = me.depth;
me.depth++;
me.locals = me.duplicate(capturedLocals);
var _g = 0;
var _g1 = params.length;
while(_g < _g1) {
var i = _g++;
me.locals.h[params[i].name] = { r : args[i]};
}
var r = null;
if(_gthis.inTry) {
try {
r = me.exprReturn(fexpr);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
me.locals = old;
me.depth = depth;
throw haxe_Exception.thrown(e);
}
} else {
r = me.exprReturn(fexpr);
}
me.locals = old;
me.depth = depth;
return r;
};
var f1 = Reflect.makeVarArgs(f);
if(name != null) {
if(this.depth == 0) {
this.variables.h[name] = f1;
} else {
this.declared.push({ n : name, old : this.locals.h[name]});
var ref = { r : f1};
this.locals.h[name] = ref;
capturedLocals.h[name] = ref;
}
}
return f1;
case 15:
var e1 = e.e;
this.returnValue = e1 == null ? null : this.expr(e1);
throw haxe_Exception.thrown(hscript__$Interp_Stop.SReturn);
case 16:
var index = e.index;
var e1 = e.e;
var arr = this.expr(e1);
var index1 = this.expr(index);
if(js_Boot.__implements(arr,haxe_IMap)) {
return (js_Boot.__cast(arr , haxe_IMap)).get(index1);
} else {
return arr[index1];
}
break;
case 17:
var arr = e.e;
var tmp;
if(arr.length > 0) {
var _g = arr[0];
if(_g._hx_index == 6) {
var _g1 = _g.e2;
var _g1 = _g.e1;
tmp = _g.op == "=>";
} else {
tmp = false;
}
} else {
tmp = false;
}
if(tmp) {
var isAllString = true;
var isAllInt = true;
var isAllObject = true;
var isAllEnum = true;
var keys = [];
var values = [];
var _g = 0;
while(_g < arr.length) {
var e1 = arr[_g];
++_g;
if(e1._hx_index == 6) {
if(e1.op == "=>") {
var eValue = e1.e2;
var eKey = e1.e1;
var key = this.expr(eKey);
var value = this.expr(eValue);
isAllString = isAllString && typeof(key) == "string";
isAllInt = isAllInt && (typeof(key) == "number" && ((key | 0) === key));
isAllObject = isAllObject && Reflect.isObject(key);
isAllEnum = isAllEnum && Reflect.isEnumValue(key);
keys.push(key);
values.push(value);
} else {
throw haxe_Exception.thrown("=> expected");
}
} else {
throw haxe_Exception.thrown("=> expected");
}
}
var map;
if(isAllInt) {
map = new haxe_ds_IntMap();
} else if(isAllString) {
map = new haxe_ds_StringMap();
} else if(isAllEnum) {
map = new haxe_ds_EnumValueMap();
} else if(isAllObject) {
map = new haxe_ds_ObjectMap();
} else {
throw haxe_Exception.thrown("Inconsistent key types");
}
var _g = 0;
var _g1 = keys.length;
while(_g < _g1) {
var n = _g++;
(js_Boot.__cast(map , haxe_IMap)).set(keys[n],values[n]);
}
return map;
} else {
var a = [];
var _g = 0;
while(_g < arr.length) {
var e1 = arr[_g];
++_g;
a.push(this.expr(e1));
}
return a;
}
break;
case 18:
var params1 = e.params;
var cl = e.cl;
var a = [];
var _g = 0;
while(_g < params1.length) {
var e1 = params1[_g];
++_g;
a.push(this.expr(e1));
}
return this.cnew(cl,a);
case 19:
var e1 = e.e;
throw haxe_Exception.thrown(this.expr(e1));
case 20:
var _g = e.t;
var ecatch = e.ecatch;
var n = e.v;
var e1 = e.e;
var old = this.declared.length;
var oldTry = this.inTry;
try {
this.inTry = true;
var v = this.expr(e1);
this.restore(old);
this.inTry = oldTry;
return v;
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var _g1 = haxe_Exception.caught(_g).unwrap();
if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) {
var err = _g1;
this.inTry = oldTry;
throw haxe_Exception.thrown(err);
} else {
var err = _g1;
this.restore(old);
this.inTry = oldTry;
this.declared.push({ n : n, old : this.locals.h[n]});
this.locals.h[n] = { r : err};
var v = this.expr(ecatch);
this.restore(old);
return v;
}
}
break;
case 21:
var fl = e.fl;
var o = { };
var _g = 0;
while(_g < fl.length) {
var f = fl[_g];
++_g;
this.set(o,f.name,this.expr(f.e));
}
return o;
case 22:
var e2 = e.e2;
var e1 = e.e1;
var econd = e.cond;
if(this.expr(econd) == true) {
return this.expr(e1);
} else {
return this.expr(e2);
}
break;
case 23:
var def = e.defaultExpr;
var cases = e.cases;
var e1 = e.e;
var val = this.expr(e1);
var match = false;
var _g = 0;
while(_g < cases.length) {
var c = cases[_g];
++_g;
var _g1 = 0;
var _g2 = c.values;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
if(this.expr(v) == val) {
match = true;
break;
}
}
if(match) {
val = this.expr(c.expr);
break;
}
}
if(!match) {
val = def == null ? null : this.expr(def);
}
return val;
case 24:
var e1 = e.e;
var econd = e.cond;
this.doWhileLoop(econd,e1);
return null;
case 25:
var _g = e.args;
var _g = e.name;
var e1 = e.e;
return this.expr(e1);
case 26:
var _g = e.t;
var e1 = e.e;
return this.expr(e1);
}
}
,doWhileLoop: function(econd,e) {
var old = this.declared.length;
_hx_loop1: while(true) {
try {
this.expr(e);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var _g1 = haxe_Exception.caught(_g).unwrap();
if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) {
var err = _g1;
switch(err._hx_index) {
case 0:
break _hx_loop1;
case 1:
break;
case 2:
throw haxe_Exception.thrown(err);
}
} else {
throw _g;
}
}
if(!(this.expr(econd) == true)) {
break;
}
}
this.restore(old);
}
,whileLoop: function(econd,e) {
var old = this.declared.length;
_hx_loop1: while(this.expr(econd) == true) try {
this.expr(e);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var _g1 = haxe_Exception.caught(_g).unwrap();
if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) {
var err = _g1;
switch(err._hx_index) {
case 0:
break _hx_loop1;
case 1:
break;
case 2:
throw haxe_Exception.thrown(err);
}
} else {
throw _g;
}
}
this.restore(old);
}
,makeIterator: function(v) {
try {
v = $getIterator(v);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
if(v.hasNext == null || v.next == null) {
var e = hscript_Error.EInvalidIterator(v);
throw haxe_Exception.thrown(e);
}
return v;
}
,forLoop: function(n,it,e) {
var old = this.declared.length;
this.declared.push({ n : n, old : this.locals.h[n]});
var it1 = this.makeIterator(this.expr(it));
_hx_loop1: while(it1.hasNext()) {
var this1 = this.locals;
var value = { r : it1.next()};
this1.h[n] = value;
try {
this.expr(e);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var _g1 = haxe_Exception.caught(_g).unwrap();
if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) {
var err = _g1;
switch(err._hx_index) {
case 0:
break _hx_loop1;
case 1:
break;
case 2:
throw haxe_Exception.thrown(err);
}
} else {
throw _g;
}
}
}
this.restore(old);
}
,isMap: function(o) {
return js_Boot.__implements(o,haxe_IMap);
}
,getMapValue: function(map,key) {
return (js_Boot.__cast(map , haxe_IMap)).get(key);
}
,setMapValue: function(map,key,value) {
(js_Boot.__cast(map , haxe_IMap)).set(key,value);
}
,get: function(o,f) {
if(o == null) {
var e = hscript_Error.EInvalidAccess(f);
throw haxe_Exception.thrown(e);
}
return Reflect.getProperty(o,f);
}
,set: function(o,f,v) {
if(o == null) {
var e = hscript_Error.EInvalidAccess(f);
throw haxe_Exception.thrown(e);
}
Reflect.setProperty(o,f,v);
return v;
}
,fcall: function(o,f,args) {
return this.call(o,this.get(o,f),args);
}
,call: function(o,f,args) {
return f.apply(o,args);
}
,cnew: function(cl,args) {
var c = $hxClasses[cl];
if(c == null) {
c = this.resolve(cl);
}
return Type.createInstance(c,args);
}
,__class__: hscript_Interp
};
var flixel_system_debug_console__$ConsoleUtil_Interp = function() {
hscript_Interp.call(this);
};
$hxClasses["flixel.system.debug.console._ConsoleUtil.Interp"] = flixel_system_debug_console__$ConsoleUtil_Interp;
flixel_system_debug_console__$ConsoleUtil_Interp.__name__ = "flixel.system.debug.console._ConsoleUtil.Interp";
flixel_system_debug_console__$ConsoleUtil_Interp.__super__ = hscript_Interp;
flixel_system_debug_console__$ConsoleUtil_Interp.prototype = $extend(hscript_Interp.prototype,{
getGlobals: function() {
return this.toArray(haxe_ds_StringMap.keysIterator(this.locals.h)).concat(this.toArray(haxe_ds_StringMap.keysIterator(this.variables.h)));
}
,toArray: function(iterator) {
var array = [];
var element = iterator;
while(element.hasNext()) {
var element1 = element.next();
array.push(element1);
}
return array;
}
,get: function(o,f) {
if(o == null) {
var e = hscript_Error.EInvalidAccess(f);
throw haxe_Exception.thrown(e);
}
return Reflect.getProperty(o,f);
}
,set: function(o,f,v) {
if(o == null) {
var e = hscript_Error.EInvalidAccess(f);
throw haxe_Exception.thrown(e);
}
Reflect.setProperty(o,f,v);
return v;
}
,__class__: flixel_system_debug_console__$ConsoleUtil_Interp
});
var flixel_system_debug_interaction_Interaction = function(container) {
this._flixelPointer = new flixel_input_FlxPointer();
this._debuggerInteraction = false;
this._keysUp = new haxe_ds_IntMap();
this._keysDown = new haxe_ds_IntMap();
this._turn = 2;
this._tools = [];
this.shouldDrawItemsSelection = true;
this.pointerPressed = false;
this.pointerJustReleased = false;
this.pointerJustPressed = false;
this.flixelPointer = new flixel_math_FlxPoint();
this.selectedItems = new flixel_group_FlxTypedGroup();
flixel_system_debug_Window.call(this,"Tools",new flixel_system_debug_GraphicInteractive(0,0),40,25,false);
this.reposition(2,100);
this._container = container;
this._customCursor = new openfl_display_Sprite();
this._customCursor.mouseEnabled = false;
this._container.addChild(this._customCursor);
this.addTool(new flixel_system_debug_interaction_tools_Pointer());
this.addTool(new flixel_system_debug_interaction_tools_Mover());
this.addTool(new flixel_system_debug_interaction_tools_Eraser());
this.addTool(new flixel_system_debug_interaction_tools_Transform());
flixel_FlxG.signals.postDraw.add($bind(this,this.postDraw));
flixel_FlxG.debugger.visibilityChanged.add($bind(this,this.handleDebuggerVisibilityChanged));
openfl_Lib.get_current().stage.addEventListener("mouseMove",$bind(this,this.updateMouse));
openfl_Lib.get_current().stage.addEventListener("mouseDown",$bind(this,this.handleMouseClick));
openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.handleMouseClick));
openfl_Lib.get_current().stage.addEventListener("keyDown",$bind(this,this.handleKeyEvent));
openfl_Lib.get_current().stage.addEventListener("keyUp",$bind(this,this.handleKeyEvent));
this._container.addEventListener("mouseOver",$bind(this,this.handleMouseInDebugger));
this._container.addEventListener("mouseOut",$bind(this,this.handleMouseInDebugger));
};
$hxClasses["flixel.system.debug.interaction.Interaction"] = flixel_system_debug_interaction_Interaction;
flixel_system_debug_interaction_Interaction.__name__ = "flixel.system.debug.interaction.Interaction";
flixel_system_debug_interaction_Interaction.__super__ = flixel_system_debug_Window;
flixel_system_debug_interaction_Interaction.prototype = $extend(flixel_system_debug_Window.prototype,{
activeTool: null
,selectedItems: null
,flixelPointer: null
,pointerJustPressed: null
,pointerJustReleased: null
,pointerPressed: null
,shouldDrawItemsSelection: null
,_container: null
,_customCursor: null
,_tools: null
,_turn: null
,_keysDown: null
,_keysUp: null
,_wasMouseVisible: null
,_wasUsingSystemCursor: null
,_debuggerInteraction: null
,_flixelPointer: null
,handleDebuggerVisibilityChanged: function() {
if(flixel_FlxG.debugger.visible) {
this.saveSystemCursorInfo();
} else {
this.restoreSystemCursor();
}
}
,updateMouse: function(event) {
if(event.stageX == null || event.stageY == null) {
return;
}
var offsetX = 0.0;
var offsetY = 0.0;
if(this.activeTool != null) {
var cursorIcon = this.activeTool.cursor;
if(cursorIcon != null) {
offsetX = cursorIcon.width / flixel_FlxG.scaleMode.scale.x / 2;
offsetY = cursorIcon.height / flixel_FlxG.scaleMode.scale.y / 2;
}
}
this._customCursor.set_x(event.stageX + offsetX);
this._customCursor.set_y(event.stageY + offsetY);
var _this = this._flixelPointer;
_this._globalScreenX = event.stageX / flixel_FlxG.scaleMode.scale.x | 0;
_this._globalScreenY = event.stageY / flixel_FlxG.scaleMode.scale.y | 0;
_this.updatePositions();
this.flixelPointer.set_x(this._flixelPointer.x + offsetX);
this.flixelPointer.set_y(this._flixelPointer.y + offsetY);
}
,handleMouseClick: function(event) {
if(event.type == "mouseDown" && this.belongsToDebugger(event.target)) {
return;
}
this.pointerJustPressed = event.type == "mouseDown";
this.pointerJustReleased = event.type == "mouseUp";
if(this.pointerJustPressed) {
this.pointerPressed = true;
} else if(this.pointerJustReleased) {
this.pointerPressed = false;
}
}
,belongsToDebugger: function(object) {
if(object == null) {
return false;
} else if(((object) instanceof flixel_system_debug_FlxDebugger)) {
return true;
}
return this.belongsToDebugger(object.parent);
}
,handleMouseInDebugger: function(event) {
if(!this.isActive()) {
return;
}
if(event.type == "mouseOver") {
this._debuggerInteraction = true;
} else if(event.type == "mouseOut") {
this._debuggerInteraction = false;
}
event.stopPropagation();
}
,handleKeyEvent: function(event) {
if(event.type == "keyDown") {
this._keysDown.h[event.keyCode] = true;
} else if(event.type == "keyUp") {
this._keysDown.h[event.keyCode] = false;
this._keysUp.h[event.keyCode] = this._turn;
}
}
,countToolsWithUIButton: function() {
var count = 0;
var _g = 0;
var _g1 = this._tools;
while(_g < _g1.length) {
var tool = _g1[_g];
++_g;
if(tool.button != null) {
++count;
}
}
return count;
}
,addTool: function(tool) {
tool.init(this);
this._tools.push(tool);
var button = tool.button;
if(button == null) {
return;
}
var buttonsPerLine = 2;
var buttons = this.countToolsWithUIButton();
var lines = Math.ceil(buttons / buttonsPerLine) | 0;
var slot = buttons / lines | 0;
button.set_x(-15 + slot * 25);
button.set_y(20 * lines);
this.addChild(button);
this.resize(25 * Math.min(buttons,buttonsPerLine) + 10,25 * lines + 10);
}
,destroy: function() {
flixel_FlxG.signals.postDraw.remove($bind(this,this.postDraw));
flixel_FlxG.debugger.visibilityChanged.remove($bind(this,this.handleDebuggerVisibilityChanged));
openfl_Lib.get_current().stage.removeEventListener("mouseMove",$bind(this,this.updateMouse));
openfl_Lib.get_current().stage.removeEventListener("mouseDown",$bind(this,this.handleMouseClick));
openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.handleMouseClick));
openfl_Lib.get_current().stage.removeEventListener("keyDown",$bind(this,this.handleKeyEvent));
openfl_Lib.get_current().stage.removeEventListener("keyUp",$bind(this,this.handleKeyEvent));
if(this._container != null) {
this._container.removeEventListener("mouseOver",$bind(this,this.handleMouseInDebugger));
this._container.removeEventListener("mouseOut",$bind(this,this.handleMouseInDebugger));
}
if(this._customCursor != null) {
this._customCursor.parent.removeChild(this._customCursor);
this._customCursor = null;
}
this._tools = flixel_util_FlxDestroyUtil.destroyArray(this._tools);
this.selectedItems = flixel_util_FlxDestroyUtil.destroy(this.selectedItems);
this.flixelPointer = flixel_util_FlxDestroyUtil.destroy(this.flixelPointer);
this._keysDown = null;
this._keysUp = null;
}
,isActive: function() {
if(flixel_FlxG.debugger.visible) {
return this.get_visible();
} else {
return false;
}
}
,update: function() {
if(!this.isActive()) {
return;
}
this.updateCustomCursors();
var _g = 0;
var _g1 = this._tools;
while(_g < _g1.length) {
var tool = _g1[_g];
++_g;
tool.update();
}
this.pointerJustPressed = false;
this.pointerJustReleased = false;
this._turn++;
}
,postDraw: function() {
if(!this.isActive()) {
return;
}
var _g = 0;
var _g1 = this._tools;
while(_g < _g1.length) {
var tool = _g1[_g];
++_g;
tool.draw();
}
if(this.shouldDrawItemsSelection) {
this.drawItemsSelection();
}
}
,getDebugGraphics: function() {
if(flixel_FlxG.renderBlit) {
flixel_util_FlxSpriteUtil.flashGfx.clear();
return flixel_util_FlxSpriteUtil.flashGfx;
}
return null;
}
,drawItemsSelection: function() {
var gfx = this.getDebugGraphics();
if(gfx == null) {
return;
}
var member = new flixel_group_FlxTypedGroupIterator(this.selectedItems.members,null);
while(member.hasNext()) {
var member1 = member.next();
if(member1 != null && member1.scrollFactor != null && member1.isOnScreen()) {
gfx.lineStyle(0.9,16711680);
gfx.drawRect(member1.x - flixel_FlxG.camera.scroll.x,member1.y - flixel_FlxG.camera.scroll.y,member1.get_width(),member1.get_height());
}
}
if(flixel_FlxG.renderBlit) {
flixel_FlxG.camera.buffer.draw(flixel_util_FlxSpriteUtil.flashGfxSprite);
}
}
,getTool: function(className) {
var _g = 0;
var _g1 = this._tools;
while(_g < _g1.length) {
var tool = _g1[_g];
++_g;
if(js_Boot.__instanceof(tool,className)) {
return tool;
}
}
return null;
}
,toggleVisible: function() {
flixel_system_debug_Window.prototype.toggleVisible.call(this);
if(!this.get_visible()) {
this.setActiveTool(null);
this.restoreSystemCursor();
}
}
,registerCustomCursor: function(name,icon) {
if(icon == null) {
return;
}
var sprite = new openfl_display_Sprite();
sprite.set_visible(false);
sprite.set_name(name);
sprite.addChild(new openfl_display_Bitmap(icon));
this._customCursor.addChild(sprite);
}
,updateCustomCursors: function() {
if(this.activeTool != null && !this._debuggerInteraction) {
if(this.activeTool.cursor != null) {
var cursorInUse = this.activeTool.cursorInUse == "" ? this.activeTool.getName() : this.activeTool.cursorInUse;
var _g = 0;
var _g1 = this._customCursor.get_numChildren();
while(_g < _g1) {
var i = _g++;
var sprite = this._customCursor.getChildAt(i);
sprite.set_visible(sprite.get_name() == cursorInUse);
}
if(flixel_FlxG.mouse.visible) {
flixel_FlxG.mouse.set_visible(false);
}
} else {
flixel_FlxG.mouse.set_useSystemCursor(true);
}
} else {
flixel_FlxG.mouse.set_useSystemCursor(true);
}
}
,saveSystemCursorInfo: function() {
this._wasMouseVisible = flixel_FlxG.mouse.visible;
this._wasUsingSystemCursor = flixel_FlxG.mouse.useSystemCursor;
}
,restoreSystemCursor: function() {
flixel_FlxG.mouse.set_useSystemCursor(this._wasUsingSystemCursor);
flixel_FlxG.mouse.set_visible(this._wasMouseVisible);
this._customCursor.set_visible(false);
}
,setActiveTool: function(value) {
if(this.activeTool != null) {
this.activeTool.deactivate();
this.activeTool.button.set_toggled(true);
}
if(this.activeTool == value) {
value = null;
}
this.activeTool = value;
if(this.activeTool != null) {
this.setToolsCursorVisibility(true);
this.activeTool.button.set_toggled(false);
this.activeTool.activate();
this.updateCustomCursors();
} else {
this.setSystemCursorVisibility(true);
}
flixel_FlxG.mouse.enabled = !this.isInUse();
}
,setSystemCursorVisibility: function(status) {
flixel_FlxG.mouse.set_useSystemCursor(status);
this._customCursor.set_visible(!status);
}
,setToolsCursorVisibility: function(status) {
flixel_FlxG.mouse.set_useSystemCursor(false);
this._customCursor.set_visible(status);
if(status) {
return;
}
var _g = 0;
var _g1 = this._customCursor.get_numChildren();
while(_g < _g1) {
var i = _g++;
this._customCursor.getChildAt(i).set_visible(false);
}
}
,clearSelection: function() {
this.selectedItems.clear();
}
,keyPressed: function(key) {
return this._keysDown.h[key];
}
,keyJustPressed: function(key) {
var value = this._keysUp.h[key] == null ? 0 : this._keysUp.h[key];
return this._turn - value == 1;
}
,isInUse: function() {
if(flixel_FlxG.debugger.visible && this.get_visible()) {
return this.activeTool != null;
} else {
return false;
}
}
,findItemsWithinState: function(items,state,area) {
this.findItemsWithinArea(items,state.members,area);
if(state.subState != null) {
this.findItemsWithinState(items,state.subState,area);
}
}
,findItemsWithinArea: function(items,members,area) {
var i = members.length;
while(i-- > 0) {
var member = members[i];
if(member == null || !member.visible || !member.exists) {
continue;
}
var group = flixel_group_FlxTypedGroup.resolveGroup(member);
if(group != null) {
this.findItemsWithinArea(items,group.members,area);
} else {
var tmp;
if(((member) instanceof flixel_FlxSprite)) {
var Rect = (js_Boot.__cast(member , flixel_FlxSprite)).getHitbox();
var result = Rect.x + Rect.width > area.x && Rect.x < area.x + area.width && Rect.y + Rect.height > area.y && Rect.y < area.y + area.height;
if(Rect._weak) {
if(!Rect._inPool) {
Rect._inPool = true;
Rect._weak = false;
flixel_math_FlxRect._pool.putUnsafe(Rect);
}
}
tmp = result;
} else {
tmp = false;
}
if(tmp) {
items.push(member);
}
}
}
}
,__class__: flixel_system_debug_interaction_Interaction
});
var flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.resourceName),flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload == null) {
flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools._Eraser.GraphicEraserTool"] = flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool;
flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.__name__ = "flixel.system.debug.interaction.tools._Eraser.GraphicEraserTool";
flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload = null;
flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool
});
var flixel_system_debug_interaction_tools_Tool = function() {
this._name = "(Unknown tool)";
this.cursorInUse = "";
openfl_display_Sprite.call(this);
};
$hxClasses["flixel.system.debug.interaction.tools.Tool"] = flixel_system_debug_interaction_tools_Tool;
flixel_system_debug_interaction_tools_Tool.__name__ = "flixel.system.debug.interaction.tools.Tool";
flixel_system_debug_interaction_tools_Tool.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_system_debug_interaction_tools_Tool.__super__ = openfl_display_Sprite;
flixel_system_debug_interaction_tools_Tool.prototype = $extend(openfl_display_Sprite.prototype,{
button: null
,cursor: null
,cursorInUse: null
,_name: null
,_shortcut: null
,_brain: null
,init: function(brain) {
this._brain = brain;
return this;
}
,update: function() {
}
,draw: function() {
}
,activate: function() {
}
,deactivate: function() {
}
,destroy: function() {
}
,isActive: function() {
if(this._brain.activeTool == this) {
return this._brain.get_visible();
} else {
return false;
}
}
,setButton: function(Icon) {
this.button = new flixel_system_ui_FlxSystemButton(Type.createInstance(Icon,[0,0]),$bind(this,this.onButtonClicked),true);
this.button.set_toggled(true);
var tooltip = this._name;
if(this._shortcut != null) {
tooltip += " (" + this._shortcut + ")";
}
flixel_system_debug_Tooltip.add(this.button,tooltip);
}
,setCursor: function(Icon) {
this.cursor = Icon;
this._brain.registerCustomCursor(this._name,this.cursor);
}
,setCursorInUse: function(customCursorName) {
this.cursorInUse = customCursorName;
}
,useDefaultCursor: function() {
if(this.cursorInUse != "") {
this.cursorInUse = "";
}
}
,onButtonClicked: function() {
this._brain.setActiveTool(this);
}
,getName: function() {
return this._name;
}
,__class__: flixel_system_debug_interaction_tools_Tool
});
var flixel_system_debug_interaction_tools_Eraser = function() {
flixel_system_debug_interaction_tools_Tool.call(this);
};
$hxClasses["flixel.system.debug.interaction.tools.Eraser"] = flixel_system_debug_interaction_tools_Eraser;
flixel_system_debug_interaction_tools_Eraser.__name__ = "flixel.system.debug.interaction.tools.Eraser";
flixel_system_debug_interaction_tools_Eraser.__super__ = flixel_system_debug_interaction_tools_Tool;
flixel_system_debug_interaction_tools_Eraser.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{
init: function(Brain) {
flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,Brain);
this._name = "Eraser";
return this;
}
,update: function() {
if(this._brain.keyJustPressed(46)) {
this.doDeletion(this._brain.keyPressed(16));
}
}
,activate: function() {
this.doDeletion(this._brain.keyPressed(16));
this._brain.setActiveTool(null);
}
,doDeletion: function(remove) {
var selectedItems = this._brain.selectedItems;
if(selectedItems != null) {
this.findAndDelete(selectedItems,remove);
selectedItems.clear();
}
}
,findAndDelete: function(items,remove) {
if(remove == null) {
remove = false;
}
var member = new flixel_group_FlxTypedGroupIterator(items.members,null);
while(member.hasNext()) {
var member1 = member.next();
if(member1 == null) {
continue;
}
if(!((member1) instanceof flixel_group_FlxTypedGroup)) {
member1.kill();
if(remove) {
this.removeFromMemory(member1,flixel_FlxG.game._state);
}
}
}
}
,removeFromMemory: function(item,parentGroup) {
var _g = 0;
var _g1 = parentGroup.members;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(member == null) {
continue;
}
if(((member) instanceof flixel_group_FlxTypedGroup)) {
this.removeFromMemory(item,member);
} else if(member == item) {
parentGroup.remove(member);
}
}
}
,__class__: flixel_system_debug_interaction_tools_Eraser
});
var flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.resourceName),flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload == null) {
flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools._Mover.GraphicMoverTool"] = flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool;
flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.__name__ = "flixel.system.debug.interaction.tools._Mover.GraphicMoverTool";
flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload = null;
flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool
});
var flixel_system_debug_interaction_tools_Mover = function() {
this._dragging = false;
flixel_system_debug_interaction_tools_Tool.call(this);
};
$hxClasses["flixel.system.debug.interaction.tools.Mover"] = flixel_system_debug_interaction_tools_Mover;
flixel_system_debug_interaction_tools_Mover.__name__ = "flixel.system.debug.interaction.tools.Mover";
flixel_system_debug_interaction_tools_Mover.__super__ = flixel_system_debug_interaction_tools_Tool;
flixel_system_debug_interaction_tools_Mover.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{
_dragging: null
,_lastCursorPosition: null
,init: function(brain) {
flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,brain);
this._lastCursorPosition = new flixel_math_FlxPoint(brain.flixelPointer.x,brain.flixelPointer.x);
this._name = "Mover";
this._shortcut = "Shift";
this.setButton(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool);
this.setCursor(new flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool(0,0));
return this;
}
,update: function() {
if(!this.isActive() && !this._brain.keyPressed(16)) {
return;
}
if(this._brain.pointerPressed && !this._dragging) {
this.startDragging();
} else if(this._brain.pointerPressed && this._dragging) {
this.doDragging();
} else if(this._brain.pointerJustReleased) {
this.stopDragging();
}
this._lastCursorPosition.set_x(this._brain.flixelPointer.x);
this._lastCursorPosition.set_y(this._brain.flixelPointer.y);
}
,stopDragging: function() {
this._dragging = false;
}
,startDragging: function() {
if(this._dragging) {
return;
}
this._dragging = true;
if(!this.isActive() && ((this._brain.activeTool) instanceof flixel_system_debug_interaction_tools_Pointer)) {
this._brain.activeTool.cancelSelection();
}
}
,doDragging: function() {
var dx = this._brain.flixelPointer.x - this._lastCursorPosition.x;
var dy = this._brain.flixelPointer.y - this._lastCursorPosition.y;
var _g = 0;
var _g1 = this._brain.selectedItems.members;
while(_g < _g1.length) {
var member = _g1[_g];
++_g;
if(!((member) instanceof flixel_FlxObject)) {
continue;
}
var object = member;
if(object != null) {
var _g2 = object;
_g2.set_x(_g2.x + dx);
var _g3 = object;
_g3.set_y(_g3.y + dy);
}
}
}
,__class__: flixel_system_debug_interaction_tools_Mover
});
var flixel_system_debug_interaction_tools_GraphicCursorCross = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools_GraphicCursorCross.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools_GraphicCursorCross.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools_GraphicCursorCross.resourceName),flixel_system_debug_interaction_tools_GraphicCursorCross.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools_GraphicCursorCross.preload == null) {
flixel_system_debug_interaction_tools_GraphicCursorCross.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools.GraphicCursorCross"] = flixel_system_debug_interaction_tools_GraphicCursorCross;
flixel_system_debug_interaction_tools_GraphicCursorCross.__name__ = "flixel.system.debug.interaction.tools.GraphicCursorCross";
flixel_system_debug_interaction_tools_GraphicCursorCross.preload = null;
flixel_system_debug_interaction_tools_GraphicCursorCross.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools_GraphicCursorCross.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools_GraphicCursorCross
});
var flixel_system_debug_interaction_tools_Pointer = function() {
this._itemsInSelectionArea = [];
this._selectionArea = new flixel_math_FlxRect();
this._selectionCancelled = false;
this._selectionHappening = false;
this._selectionEndPoint = new flixel_math_FlxPoint();
this._selectionStartPoint = new flixel_math_FlxPoint();
flixel_system_debug_interaction_tools_Tool.call(this);
};
$hxClasses["flixel.system.debug.interaction.tools.Pointer"] = flixel_system_debug_interaction_tools_Pointer;
flixel_system_debug_interaction_tools_Pointer.__name__ = "flixel.system.debug.interaction.tools.Pointer";
flixel_system_debug_interaction_tools_Pointer.__super__ = flixel_system_debug_interaction_tools_Tool;
flixel_system_debug_interaction_tools_Pointer.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{
_selectionStartPoint: null
,_selectionEndPoint: null
,_selectionHappening: null
,_selectionCancelled: null
,_selectionArea: null
,_itemsInSelectionArea: null
,init: function(brain) {
flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,brain);
this._name = "Pointer";
this.setButton(flixel_system_debug_interaction_tools_GraphicCursorCross);
this.setCursor(new flixel_system_debug_interaction_tools_GraphicCursorCross(0,0));
return this;
}
,update: function() {
if(!this.isActive()) {
return;
}
if(this._brain.pointerJustPressed && !this._selectionHappening) {
this.startSelection();
}
if(this._selectionHappening) {
this._selectionEndPoint.set(this._brain.flixelPointer.x,this._brain.flixelPointer.y);
this.calculateSelectionArea();
}
if(!this._brain.pointerJustReleased) {
return;
}
if(this._selectionHappening) {
this.stopSelection();
}
if(this._itemsInSelectionArea.length > 0) {
this.handleItemAddition(this._itemsInSelectionArea);
} else if(!this._brain.keyPressed(17) && !this._selectionCancelled) {
this._brain.clearSelection();
}
}
,calculateSelectionArea: function() {
this._selectionArea.x = this._selectionStartPoint.x;
this._selectionArea.y = this._selectionStartPoint.y;
this._selectionArea.width = this._selectionEndPoint.x - this._selectionArea.x;
this._selectionArea.height = this._selectionEndPoint.y - this._selectionArea.y;
if(this._selectionArea.width < 0) {
this._selectionArea.width *= -1;
this._selectionArea.x -= this._selectionArea.width;
}
if(this._selectionArea.height < 0) {
this._selectionArea.height *= -1;
this._selectionArea.y -= this._selectionArea.height;
}
}
,startSelection: function() {
this._selectionHappening = true;
this._selectionCancelled = false;
this._selectionStartPoint.set(this._brain.flixelPointer.x,this._brain.flixelPointer.y);
flixel_util_FlxArrayUtil.clearArray(this._itemsInSelectionArea);
this.updateConsoleSelection();
}
,cancelSelection: function() {
if(!this._selectionHappening) {
return;
}
this._selectionCancelled = true;
this.stopSelection(false);
}
,stopSelection: function(findItems) {
if(findItems == null) {
findItems = true;
}
if(!this._selectionHappening) {
return;
}
this._selectionEndPoint.set(this._brain.flixelPointer.x,this._brain.flixelPointer.y);
this.calculateSelectionArea();
if(findItems) {
this._brain.findItemsWithinState(this._itemsInSelectionArea,flixel_FlxG.game._state,this._selectionArea);
this.updateConsoleSelection();
}
this._selectionHappening = false;
var _this = this._selectionArea;
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
}
,updateConsoleSelection: function() {
}
,handleItemAddition: function(itemsInSelectionArea) {
var adding = this._brain.keyPressed(17);
var selectedItems = this._brain.selectedItems;
if(itemsInSelectionArea.length == 0) {
return;
}
if(!adding) {
this._brain.clearSelection();
}
var _g = 0;
while(_g < itemsInSelectionArea.length) {
var item = itemsInSelectionArea[_g];
++_g;
if(selectedItems.members.indexOf(item) != -1 && adding) {
selectedItems.remove(item);
} else {
selectedItems.add(item);
}
}
}
,draw: function() {
var gfx = this._brain.getDebugGraphics();
if(gfx == null) {
return;
}
if(this._selectionHappening) {
gfx.lineStyle(0.9,12255232);
gfx.drawRect(this._selectionArea.x - flixel_FlxG.camera.scroll.x,this._selectionArea.y - flixel_FlxG.camera.scroll.y,this._selectionArea.width,this._selectionArea.height);
}
if(flixel_FlxG.renderBlit) {
flixel_FlxG.camera.buffer.draw(flixel_util_FlxSpriteUtil.flashGfxSprite);
}
}
,__class__: flixel_system_debug_interaction_tools_Pointer
});
var flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload == null) {
flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformTool"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformTool";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload = null;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool
});
var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload == null) {
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorDefault"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorDefault";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload = null;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault
});
var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload == null) {
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleY"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleY";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload = null;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY
});
var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload == null) {
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleX"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleX";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload = null;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX
});
var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload == null) {
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleXY"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleXY";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload = null;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY
});
var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload != null) {
this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload == null) {
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorRotate"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorRotate";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload = null;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.__super__ = openfl_display_BitmapData;
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate
});
var flixel_system_debug_interaction_tools_Transform = function() {
this._mouseCursor = new flixel_math_FlxPoint();
this._targetArea = new flixel_math_FlxRect();
this._markers = [];
this._actionScaleDirection = new flixel_math_FlxPoint();
this._actionStartPoint = new flixel_math_FlxPoint();
this._actionTargetStartScale = new flixel_math_FlxPoint();
flixel_system_debug_interaction_tools_Tool.call(this);
};
$hxClasses["flixel.system.debug.interaction.tools.Transform"] = flixel_system_debug_interaction_tools_Transform;
flixel_system_debug_interaction_tools_Transform.__name__ = "flixel.system.debug.interaction.tools.Transform";
flixel_system_debug_interaction_tools_Transform.__super__ = flixel_system_debug_interaction_tools_Tool;
flixel_system_debug_interaction_tools_Transform.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{
_actionTargetStartScale: null
,_actionTargetStartAngle: null
,_actionStartPoint: null
,_actionHappening: null
,_actionMarker: null
,_actionScaleDirection: null
,_tooltip: null
,_markers: null
,_target: null
,_targetArea: null
,_mouseCursor: null
,init: function(brain) {
var _gthis = this;
flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,brain);
this._name = "Transform";
this.setButton(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool);
this.setCursor(new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault(0,0));
brain.registerCustomCursor("transformRotate",new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate(0,0));
brain.registerCustomCursor("transformScaleX",new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX(0,0));
brain.registerCustomCursor("transformScaleY",new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY(0,0));
brain.registerCustomCursor("transformScaleXY",new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY(0,0));
this._tooltip = flixel_system_debug_Tooltip.add(null,"");
this._tooltip.textField.set_wordWrap(false);
this._markers.push(new flixel_math_FlxPoint());
this._markers.push(new flixel_math_FlxPoint());
this._markers.push(new flixel_math_FlxPoint());
this._markers.push(new flixel_math_FlxPoint());
this.stopAction();
flixel_FlxG.signals.preStateSwitch.add(function() {
_gthis._target = null;
});
return this;
}
,updateTargetArea: function() {
if(this._target == null) {
var _this = this._targetArea;
_this.x = 0;
_this.y = 0;
var _this = this._targetArea;
_this.width = 0;
_this.height = 0;
} else {
var _this = this._targetArea;
_this.x = this._target.x - flixel_FlxG.camera.scroll.x;
_this.y = this._target.y - flixel_FlxG.camera.scroll.y;
var _this = this._targetArea;
var Width = this._target.get_width();
var Height = this._target.get_height();
_this.width = Width;
_this.height = Height;
}
}
,startAction: function(whichMarker) {
if(this._actionHappening) {
return;
}
this._actionHappening = true;
this._actionMarker = whichMarker;
this._actionStartPoint.set(this._brain.flixelPointer.x - flixel_FlxG.camera.scroll.x,this._brain.flixelPointer.y - flixel_FlxG.camera.scroll.y);
this._actionTargetStartAngle = flixel_math_FlxAngle.angleBetweenPoint(this._target,this._markers[0],true);
this._actionTargetStartScale.set(this._target.scale.x,this._target.scale.y);
}
,stopAction: function() {
this._actionHappening = false;
this._actionMarker = -1;
this._tooltip.setVisible(false);
}
,getCursorNameByMarker: function(marker) {
switch(marker) {
case 0:
return "transformRotate";
case 1:
return "transformScaleX";
case 2:
return "transformScaleXY";
case 3:
return "transformScaleY";
default:
return "";
}
}
,handleInteractionsWithMarkersUI: function() {
if(this._actionHappening) {
return;
}
var cursorName = "";
var _g = 0;
var _g1 = this._markers.length;
while(_g < _g1) {
var i = _g++;
if(this._mouseCursor.distanceTo(this._markers[i]) <= 5.0) {
cursorName = this.getCursorNameByMarker(i);
if(this._brain.pointerJustPressed) {
this.startAction(i);
break;
}
}
}
if(cursorName != "") {
this.setCursorInUse(cursorName);
} else {
this.useDefaultCursor();
}
}
,formatFloat: function(number) {
var value = flixel_math_FlxMath.roundDecimal(number,flixel_FlxG.debugger.precision);
if(value == null) {
return "null";
} else {
return "" + value;
}
}
,showTooltip: function(text) {
if(!this._tooltip.get_visible()) {
this._tooltip.setVisible(true);
}
this._tooltip.set_x(this._target.x - flixel_FlxG.camera.scroll.x);
this._tooltip.set_y(this._target.y - flixel_FlxG.camera.scroll.y);
this._tooltip.setText(text);
}
,updateScaleActionDirection: function() {
var deltaX = this._mouseCursor.x - this._actionStartPoint.x;
var deltaY = this._mouseCursor.y - this._actionStartPoint.y;
this._actionScaleDirection.set_x(deltaX >= 0 ? 1 : -1);
this._actionScaleDirection.set_y(deltaY >= 0 ? 1 : -1);
}
,updateScaleAction: function() {
this.updateScaleActionDirection();
var deltaX = this._actionScaleDirection.x * Math.abs(this._mouseCursor.x - this._actionStartPoint.x) / 10.0;
var deltaY = this._actionScaleDirection.y * Math.abs(this._mouseCursor.y - this._actionStartPoint.y) / 10.0;
if(this._actionMarker == 1 || this._actionMarker == 2) {
this._target.scale.set_x(this._actionTargetStartScale.x + deltaX);
}
if(this._actionMarker == 2 || this._actionMarker == 3) {
this._target.scale.set_y(this._actionTargetStartScale.y + deltaY);
}
this._target.updateHitbox();
var _this = this._target;
_this.origin.set(_this.frameWidth * 0.5,_this.frameHeight * 0.5);
this.showTooltip("w: " + this.formatFloat(this._target.get_width()) + "\nh: " + this.formatFloat(this._target.get_height()));
}
,updateRotateAction: function() {
this._target.set_angle(flixel_math_FlxAngle.angleBetweenPoint(this._target,this._brain.flixelPointer,true) - this._actionTargetStartAngle);
this.showTooltip("deg: " + this.formatFloat(this._target.angle) + "\nrad: " + this.formatFloat(this._target.angle * (Math.PI / 180)));
}
,updateAction: function() {
if(!this._actionHappening || this._actionMarker < 0) {
return;
}
if(this._actionMarker == 0) {
this.updateRotateAction();
} else {
this.updateScaleAction();
}
}
,updateMarkersPosition: function() {
var topLeftX = this._targetArea.x - 5.0;
var topLeftY = this._targetArea.y - 5.0;
var width = this._targetArea.width + 10.;
var height = this._targetArea.height + 10.;
this._markers[0].set(topLeftX,topLeftY);
this._markers[1].set(topLeftX + width,topLeftY);
this._markers[2].set(topLeftX + width,topLeftY + height);
this._markers[3].set(topLeftX,topLeftY + height);
if(this._target.angle != 0) {
this.updateMarkersRotation(width,height);
}
}
,updateMarkersRotation: function(outlineWidth,outlineHeight) {
var rotationAngleRad = this._target.angle * (Math.PI / 180);
var originX = this._markers[0].x + outlineWidth / 2;
var originY = this._markers[0].y + outlineHeight / 2;
var n = rotationAngleRad + 1.570796327;
n *= 0.3183098862;
if(n > 1) {
n -= Math.ceil(n) >> 1 << 1;
} else if(n < -1) {
n += Math.ceil(-n) >> 1 << 1;
}
var cos = n > 0 ? n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))) : n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6)));
var n = rotationAngleRad;
n *= 0.3183098862;
if(n > 1) {
n -= Math.ceil(n) >> 1 << 1;
} else if(n < -1) {
n += Math.ceil(-n) >> 1 << 1;
}
var sin = n > 0 ? n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))) : n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6)));
var _g = 0;
var _g1 = this._markers;
while(_g < _g1.length) {
var marker = _g1[_g];
++_g;
var rotatedX = (marker.x - originX) * cos - (marker.y - originY) * sin;
var rotatedY = (marker.x - originX) * sin + (marker.y - originY) * cos;
marker.set(rotatedX + originX,rotatedY + originY);
}
}
,update: function() {
if(!this.isActive() || this._target == null) {
return;
}
this._mouseCursor.set_x(this._brain.flixelPointer.x - flixel_FlxG.camera.scroll.x);
this._mouseCursor.set_y(this._brain.flixelPointer.y - flixel_FlxG.camera.scroll.y);
this.updateTargetArea();
this.updateMarkersPosition();
this.handleInteractionsWithMarkersUI();
if(this._actionHappening) {
this.updateAction();
if(this._brain.pointerJustReleased) {
this.stopAction();
}
}
}
,drawTargetAreaOutline: function(gfx) {
gfx.lineStyle(0.9,-65281,1.0,false,2,2);
gfx.moveTo(this._markers[0].x,this._markers[0].y);
var _g = 0;
var _g1 = this._markers.length;
while(_g < _g1) {
var i = _g++;
gfx.lineTo(this._markers[i].x,this._markers[i].y);
}
gfx.lineTo(this._markers[0].x,this._markers[0].y);
}
,drawMarkers: function(gfx) {
gfx.lineStyle(0.9,-65281,1.0,false,2,2);
gfx.beginFill(-65281);
var _g = 0;
var _g1 = this._markers.length;
while(_g < _g1) {
var i = _g++;
if(i == 0) {
gfx.drawCircle(this._markers[i].x,this._markers[i].y,2.7);
} else {
gfx.drawRect(this._markers[i].x - 1.5,this._markers[i].y - 1.5,3.0,3.0);
}
}
gfx.endFill();
}
,draw: function() {
var gfx = this._brain.getDebugGraphics();
if(gfx == null || this._target == null || !this.isActive()) {
return;
}
this.drawTargetAreaOutline(gfx);
this.drawMarkers(gfx);
if(flixel_FlxG.renderBlit) {
flixel_FlxG.camera.buffer.draw(flixel_util_FlxSpriteUtil.flashGfxSprite);
}
}
,activate: function() {
this._target = null;
if(this._brain.selectedItems.length == 0) {
return;
}
var member = new flixel_group_FlxTypedGroupIterator(this._brain.selectedItems.members,null);
while(member.hasNext()) {
var member1 = member.next();
if(member1 != null && member1.scrollFactor != null && member1.isOnScreen()) {
this._target = member1;
break;
}
}
this._brain.shouldDrawItemsSelection = false;
}
,deactivate: function() {
this._brain.shouldDrawItemsSelection = true;
}
,__class__: flixel_system_debug_interaction_tools_Transform
});
var flixel_system_debug_log_LogStyle = function(Prefix,Color,Size,Bold,Italic,Underlined,ErrorSound,OpenConsole,CallbackFunction) {
if(OpenConsole == null) {
OpenConsole = false;
}
if(Underlined == null) {
Underlined = false;
}
if(Italic == null) {
Italic = false;
}
if(Bold == null) {
Bold = false;
}
if(Size == null) {
Size = 12;
}
if(Color == null) {
Color = "FFFFFF";
}
if(Prefix == null) {
Prefix = "";
}
this.prefix = Prefix;
this.color = Color;
this.size = Size;
this.bold = Bold;
this.italic = Italic;
this.underlined = Underlined;
this.errorSound = ErrorSound;
this.openConsole = OpenConsole;
this.callbackFunction = CallbackFunction;
};
$hxClasses["flixel.system.debug.log.LogStyle"] = flixel_system_debug_log_LogStyle;
flixel_system_debug_log_LogStyle.__name__ = "flixel.system.debug.log.LogStyle";
flixel_system_debug_log_LogStyle.prototype = {
prefix: null
,color: null
,size: null
,bold: null
,italic: null
,underlined: null
,errorSound: null
,openConsole: null
,callbackFunction: null
,__class__: flixel_system_debug_log_LogStyle
};
var flixel_system_debug_stats__$Stats_GraphicMinimizeButton = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload != null) {
this.__fromImage(flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_stats__$Stats_GraphicMinimizeButton.resourceName),flixel_system_debug_stats__$Stats_GraphicMinimizeButton.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload == null) {
flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.stats._Stats.GraphicMinimizeButton"] = flixel_system_debug_stats__$Stats_GraphicMinimizeButton;
flixel_system_debug_stats__$Stats_GraphicMinimizeButton.__name__ = "flixel.system.debug.stats._Stats.GraphicMinimizeButton";
flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload = null;
flixel_system_debug_stats__$Stats_GraphicMinimizeButton.__super__ = openfl_display_BitmapData;
flixel_system_debug_stats__$Stats_GraphicMinimizeButton.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_stats__$Stats_GraphicMinimizeButton
});
var flixel_system_debug_stats__$Stats_GraphicMaximizeButton = function(width,height,transparent,fillRGBA,onload) {
if(fillRGBA == null) {
fillRGBA = -1;
}
if(transparent == null) {
transparent = true;
}
openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA);
if(flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload != null) {
this.__fromImage(flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload);
} else {
var _gthis = this;
lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_stats__$Stats_GraphicMaximizeButton.resourceName),flixel_system_debug_stats__$Stats_GraphicMaximizeButton.resourceType).then(function(image) {
_gthis.__fromImage(image);
return lime_app_Future.withValue(_gthis);
}).onComplete(function(b) {
if(flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload == null) {
flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload = b.image;
}
if(onload != null && Reflect.isFunction(onload)) {
onload(b);
}
});
}
};
$hxClasses["flixel.system.debug.stats._Stats.GraphicMaximizeButton"] = flixel_system_debug_stats__$Stats_GraphicMaximizeButton;
flixel_system_debug_stats__$Stats_GraphicMaximizeButton.__name__ = "flixel.system.debug.stats._Stats.GraphicMaximizeButton";
flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload = null;
flixel_system_debug_stats__$Stats_GraphicMaximizeButton.__super__ = openfl_display_BitmapData;
flixel_system_debug_stats__$Stats_GraphicMaximizeButton.prototype = $extend(openfl_display_BitmapData.prototype,{
__class__: flixel_system_debug_stats__$Stats_GraphicMaximizeButton
});
var flixel_system_debug_watch_Watch = function(Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop) {
flixel_system_debug_Window.call(this,Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop);
};
$hxClasses["flixel.system.debug.watch.Watch"] = flixel_system_debug_watch_Watch;
flixel_system_debug_watch_Watch.__name__ = "flixel.system.debug.watch.Watch";
flixel_system_debug_watch_Watch.__super__ = flixel_system_debug_Window;
flixel_system_debug_watch_Watch.prototype = $extend(flixel_system_debug_Window.prototype,{
__class__: flixel_system_debug_watch_Watch
});
var flixel_system_debug_watch_Tracker = function(Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop) {
flixel_system_debug_watch_Watch.call(this,Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop);
};
$hxClasses["flixel.system.debug.watch.Tracker"] = flixel_system_debug_watch_Tracker;
flixel_system_debug_watch_Tracker.__name__ = "flixel.system.debug.watch.Tracker";
flixel_system_debug_watch_Tracker.__super__ = flixel_system_debug_watch_Watch;
flixel_system_debug_watch_Tracker.prototype = $extend(flixel_system_debug_watch_Watch.prototype,{
__class__: flixel_system_debug_watch_Tracker
});
var flixel_system_debug_watch_TrackerProfile = function(ObjectClass,Variables,Extensions) {
this.objectClass = ObjectClass;
this.variables = Variables;
this.extensions = Extensions;
};
$hxClasses["flixel.system.debug.watch.TrackerProfile"] = flixel_system_debug_watch_TrackerProfile;
flixel_system_debug_watch_TrackerProfile.__name__ = "flixel.system.debug.watch.TrackerProfile";
flixel_system_debug_watch_TrackerProfile.prototype = {
objectClass: null
,variables: null
,extensions: null
,toString: function() {
var value = this.variables;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "variables";
_this.value = value;
var value = this.extensions;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "extensions";
_this1.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1]);
}
,__class__: flixel_system_debug_watch_TrackerProfile
};
var flixel_system_frontEnds_FlxBrowser = $hxEnums["flixel.system.frontEnds.FlxBrowser"] = { __ename__ : "flixel.system.frontEnds.FlxBrowser", __constructs__ : ["INTERNET_EXPLORER","CHROME","FIREFOX","SAFARI","OPERA","UNKNOWN"]
,INTERNET_EXPLORER: {_hx_index:0,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr}
,CHROME: {_hx_index:1,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr}
,FIREFOX: {_hx_index:2,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr}
,SAFARI: {_hx_index:3,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr}
,OPERA: {_hx_index:4,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr}
,UNKNOWN: {_hx_index:5,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr}
};
var flixel_system_frontEnds_FlxPlatform = $hxEnums["flixel.system.frontEnds.FlxPlatform"] = { __ename__ : "flixel.system.frontEnds.FlxPlatform", __constructs__ : ["WINDOWS","LINUX","MAC","ANDROID","BLACKBERRY","WINDOWS_PHONE","IOS","UNKNOWN"]
,WINDOWS: {_hx_index:0,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}
,LINUX: {_hx_index:1,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}
,MAC: {_hx_index:2,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}
,ANDROID: {_hx_index:3,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}
,BLACKBERRY: {_hx_index:4,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}
,WINDOWS_PHONE: {_hx_index:5,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}
,IOS: ($_=function(device) { return {_hx_index:6,device:device,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}; },$_.__params__ = ["device"],$_)
,UNKNOWN: {_hx_index:7,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}
};
var flixel_system_frontEnds_FlxIOSDevice = $hxEnums["flixel.system.frontEnds.FlxIOSDevice"] = { __ename__ : "flixel.system.frontEnds.FlxIOSDevice", __constructs__ : ["IPHONE","IPAD","IPOD"]
,IPHONE: {_hx_index:0,__enum__:"flixel.system.frontEnds.FlxIOSDevice",toString:$estr}
,IPAD: {_hx_index:1,__enum__:"flixel.system.frontEnds.FlxIOSDevice",toString:$estr}
,IPOD: {_hx_index:2,__enum__:"flixel.system.frontEnds.FlxIOSDevice",toString:$estr}
};
var flixel_system_frontEnds_PluginFrontEnd = function() {
this.list = [];
this.add_flixel_util_FlxTimerManager(flixel_util_FlxTimer.globalManager = new flixel_util_FlxTimerManager());
this.add_flixel_tweens_FlxTweenManager(flixel_tweens_FlxTween.globalManager = new flixel_tweens_FlxTweenManager());
};
$hxClasses["flixel.system.frontEnds.PluginFrontEnd"] = flixel_system_frontEnds_PluginFrontEnd;
flixel_system_frontEnds_PluginFrontEnd.__name__ = "flixel.system.frontEnds.PluginFrontEnd";
flixel_system_frontEnds_PluginFrontEnd.prototype = {
add_flixel_tweens_FlxTweenManager: function(Plugin1) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var plugin = _g1[_g];
++_g;
if(flixel_util_FlxStringUtil.getClassName(Plugin1,true) == flixel_util_FlxStringUtil.getClassName(plugin,true)) {
return Plugin1;
}
}
this.list.push(Plugin1);
return Plugin1;
}
,add_flixel_util_FlxTimerManager: function(Plugin1) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var plugin = _g1[_g];
++_g;
if(flixel_util_FlxStringUtil.getClassName(Plugin1,true) == flixel_util_FlxStringUtil.getClassName(plugin,true)) {
return Plugin1;
}
}
this.list.push(Plugin1);
return Plugin1;
}
,list: null
,get: function(ClassType) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var plugin = _g1[_g];
++_g;
if(js_Boot.__instanceof(plugin,ClassType)) {
return plugin;
}
}
return null;
}
,remove: function(Plugin1) {
var i = this.list.length - 1;
while(i >= 0) {
if(this.list[i] == Plugin1) {
this.list.splice(i,1);
return Plugin1;
}
--i;
}
return Plugin1;
}
,removeType: function(ClassType) {
var results = false;
var i = this.list.length - 1;
while(i >= 0) {
if(js_Boot.__instanceof(this.list[i],ClassType)) {
this.list.splice(i,1);
results = true;
}
--i;
}
return results;
}
,update: function(elapsed) {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var plugin = _g1[_g];
++_g;
if(plugin.exists && plugin.active) {
plugin.update(elapsed);
}
}
}
,draw: function() {
var _g = 0;
var _g1 = this.list;
while(_g < _g1.length) {
var plugin = _g1[_g];
++_g;
if(plugin.exists && plugin.visible) {
plugin.draw();
}
}
}
,__class__: flixel_system_frontEnds_PluginFrontEnd
};
var flixel_system_frontEnds_SoundFrontEnd = function() {
this.volume = 1;
this.list = new flixel_group_FlxTypedGroup();
this.defaultSoundGroup = new flixel_system_FlxSoundGroup();
this.defaultMusicGroup = new flixel_system_FlxSoundGroup();
this.soundTrayEnabled = true;
this.muteKeys = [48,96];
this.volumeDownKeys = [189,109];
this.volumeUpKeys = [187,107];
this.muted = false;
this.loadSavedPrefs();
};
$hxClasses["flixel.system.frontEnds.SoundFrontEnd"] = flixel_system_frontEnds_SoundFrontEnd;
flixel_system_frontEnds_SoundFrontEnd.__name__ = "flixel.system.frontEnds.SoundFrontEnd";
flixel_system_frontEnds_SoundFrontEnd.prototype = {
music: null
,muted: null
,volumeHandler: null
,volumeUpKeys: null
,volumeDownKeys: null
,muteKeys: null
,soundTrayEnabled: null
,defaultMusicGroup: null
,defaultSoundGroup: null
,list: null
,volume: null
,playMusic: function(Music,Volume,Looped,Group) {
if(Looped == null) {
Looped = true;
}
if(Volume == null) {
Volume = 1;
}
if(this.music == null) {
this.music = new flixel_system_FlxSound();
} else if(this.music.active) {
var _this = this.music;
_this.cleanup(_this.autoDestroy,true);
}
this.music.loadEmbedded(Music,Looped);
this.music.set_volume(Volume);
this.music.persist = true;
this.music.set_group(Group == null ? this.defaultMusicGroup : Group);
this.music.play();
}
,load: function(EmbeddedSound,Volume,Looped,Group,AutoDestroy,AutoPlay,URL1,OnComplete) {
if(AutoPlay == null) {
AutoPlay = false;
}
if(AutoDestroy == null) {
AutoDestroy = false;
}
if(Looped == null) {
Looped = false;
}
if(Volume == null) {
Volume = 1;
}
if(EmbeddedSound == null && URL1 == null) {
return null;
}
var sound = this.list.recycle(flixel_system_FlxSound);
if(EmbeddedSound != null) {
sound.loadEmbedded(EmbeddedSound,Looped,AutoDestroy,OnComplete);
} else {
sound.loadStream(URL1,Looped,AutoDestroy,OnComplete);
}
sound.set_volume(Volume);
if(AutoPlay) {
sound.play();
}
sound.set_group(Group == null ? this.defaultSoundGroup : Group);
return sound;
}
,cache: function(EmbeddedSound) {
if(openfl_utils_Assets.exists(EmbeddedSound,"SOUND") || openfl_utils_Assets.exists(EmbeddedSound,"MUSIC")) {
return openfl_utils_Assets.getSound(EmbeddedSound,true);
}
return null;
}
,cacheAll: function() {
var _g = 0;
var _g1 = openfl_utils_Assets.list("SOUND");
while(_g < _g1.length) {
var id = _g1[_g];
++_g;
if(openfl_utils_Assets.exists(id,"SOUND") || openfl_utils_Assets.exists(id,"MUSIC")) {
openfl_utils_Assets.getSound(id,true);
}
}
}
,play: function(EmbeddedSound,Volume,Looped,Group,AutoDestroy,OnComplete) {
if(AutoDestroy == null) {
AutoDestroy = true;
}
if(Looped == null) {
Looped = false;
}
if(Volume == null) {
Volume = 1;
}
if(typeof(EmbeddedSound) == "string") {
EmbeddedSound = openfl_utils_Assets.exists(EmbeddedSound,"SOUND") || openfl_utils_Assets.exists(EmbeddedSound,"MUSIC") ? openfl_utils_Assets.getSound(EmbeddedSound,true) : null;
}
var sound = this.list.recycle(flixel_system_FlxSound).loadEmbedded(EmbeddedSound,Looped,AutoDestroy,OnComplete);
sound.set_volume(Volume);
sound.set_group(Group == null ? this.defaultSoundGroup : Group);
return sound.play();
}
,stream: function(URL1,Volume,Looped,Group,AutoDestroy,OnComplete) {
if(AutoDestroy == null) {
AutoDestroy = true;
}
if(Looped == null) {
Looped = false;
}
if(Volume == null) {
Volume = 1;
}
return this.load(null,Volume,Looped,null,AutoDestroy,true,URL1,OnComplete);
}
,pause: function() {
if(this.music != null && this.music.exists && this.music.active) {
this.music.pause();
}
var _g = 0;
var _g1 = this.list.members;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
if(sound != null && sound.exists && sound.active) {
sound.pause();
}
}
}
,resume: function() {
if(this.music != null && this.music.exists) {
this.music.resume();
}
var _g = 0;
var _g1 = this.list.members;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
if(sound != null && sound.exists) {
sound.resume();
}
}
}
,destroy: function(ForceDestroy) {
if(ForceDestroy == null) {
ForceDestroy = false;
}
if(this.music != null && (ForceDestroy || !this.music.persist)) {
this.destroySound(this.music);
this.music = null;
}
var _g = 0;
var _g1 = this.list.members;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
if(sound != null && (ForceDestroy || !sound.persist)) {
this.destroySound(sound);
}
}
}
,destroySound: function(sound) {
this.defaultMusicGroup.remove(sound);
this.defaultSoundGroup.remove(sound);
sound.destroy();
}
,toggleMuted: function() {
this.muted = !this.muted;
if(this.volumeHandler != null) {
this.volumeHandler(this.muted ? 0 : this.volume);
}
this.showSoundTray();
}
,changeVolume: function(Amount) {
this.muted = false;
var _g = this;
_g.set_volume(_g.volume + Amount);
this.showSoundTray();
}
,showSoundTray: function() {
if(flixel_FlxG.game.soundTray != null && this.soundTrayEnabled) {
flixel_FlxG.game.soundTray.show();
}
}
,update: function(elapsed) {
if(this.music != null && this.music.active) {
this.music.update(elapsed);
}
if(this.list != null && this.list.active) {
this.list.update(elapsed);
}
if(flixel_FlxG.keys.checkKeyArrayState(this.muteKeys,-1)) {
this.toggleMuted();
} else if(flixel_FlxG.keys.checkKeyArrayState(this.volumeUpKeys,-1)) {
this.changeVolume(0.1);
} else if(flixel_FlxG.keys.checkKeyArrayState(this.volumeDownKeys,-1)) {
this.changeVolume(-0.1);
}
}
,onFocusLost: function() {
if(this.music != null) {
this.music.onFocusLost();
}
var _g = 0;
var _g1 = this.list.members;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
if(sound != null) {
sound.onFocusLost();
}
}
}
,onFocus: function() {
if(this.music != null) {
this.music.onFocus();
}
var _g = 0;
var _g1 = this.list.members;
while(_g < _g1.length) {
var sound = _g1[_g];
++_g;
if(sound != null) {
sound.onFocus();
}
}
}
,loadSavedPrefs: function() {
if(flixel_FlxG.save.data.volume != null) {
this.set_volume(flixel_FlxG.save.data.volume);
}
if(flixel_FlxG.save.data.mute != null) {
this.muted = flixel_FlxG.save.data.mute;
}
}
,set_volume: function(Volume) {
var lowerBound = Volume < 0 ? 0 : Volume;
Volume = lowerBound > 1 ? 1 : lowerBound;
if(this.volumeHandler != null) {
var param = this.muted ? 0 : Volume;
this.volumeHandler(param);
}
return this.volume = Volume;
}
,__class__: flixel_system_frontEnds_SoundFrontEnd
,__properties__: {set_volume:"set_volume"}
};
var flixel_system_frontEnds_VCRFrontEnd = function() {
this.stepRequested = false;
this.paused = false;
};
$hxClasses["flixel.system.frontEnds.VCRFrontEnd"] = flixel_system_frontEnds_VCRFrontEnd;
flixel_system_frontEnds_VCRFrontEnd.__name__ = "flixel.system.frontEnds.VCRFrontEnd";
flixel_system_frontEnds_VCRFrontEnd.prototype = {
paused: null
,stepRequested: null
,pause: function() {
if(!this.paused) {
if(!flixel_FlxG.mouse.useSystemCursor) {
openfl_ui_Mouse.show();
}
this.paused = true;
}
}
,resume: function() {
if(this.paused) {
if(!flixel_FlxG.mouse.useSystemCursor) {
openfl_ui_Mouse.hide();
}
this.paused = false;
}
}
,__class__: flixel_system_frontEnds_VCRFrontEnd
};
var flixel_system_macros_FlxMacroUtil = function() { };
$hxClasses["flixel.system.macros.FlxMacroUtil"] = flixel_system_macros_FlxMacroUtil;
flixel_system_macros_FlxMacroUtil.__name__ = "flixel.system.macros.FlxMacroUtil";
var flixel_system_replay_CodeValuePair = function(code,value) {
this.code = code;
this.value = value;
};
$hxClasses["flixel.system.replay.CodeValuePair"] = flixel_system_replay_CodeValuePair;
flixel_system_replay_CodeValuePair.__name__ = "flixel.system.replay.CodeValuePair";
flixel_system_replay_CodeValuePair.prototype = {
code: null
,value: null
,__class__: flixel_system_replay_CodeValuePair
};
var flixel_system_replay_MouseRecord = function(x,y,button,wheel) {
this.x = x;
this.y = y;
this.button = button;
this.wheel = wheel;
};
$hxClasses["flixel.system.replay.MouseRecord"] = flixel_system_replay_MouseRecord;
flixel_system_replay_MouseRecord.__name__ = "flixel.system.replay.MouseRecord";
flixel_system_replay_MouseRecord.prototype = {
x: null
,y: null
,button: null
,wheel: null
,__class__: flixel_system_replay_MouseRecord
};
var flixel_system_ui_FlxSoundTray = function() {
this._defaultScale = 2.0;
this._width = 80;
openfl_display_Sprite.call(this);
this.set_visible(false);
this.set_scaleX(this._defaultScale);
this.set_scaleY(this._defaultScale);
var tmp = new openfl_display_Bitmap(new openfl_display_BitmapData(this._width,30,true,2130706432));
this.screenCenter();
this.addChild(tmp);
var text = new openfl_text_TextField();
text.set_width(tmp.get_width());
text.set_height(tmp.get_height());
text.set_multiline(true);
text.set_wordWrap(true);
text.set_selectable(false);
var dtf = new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEFAULT,10,16777215);
dtf.align = 0;
text.set_defaultTextFormat(dtf);
this.addChild(text);
text.set_text("VOLUME");
text.set_y(16);
var bx = 10;
var by = 14;
this._bars = [];
var _g = 0;
while(_g < 10) {
var i = _g++;
tmp = new openfl_display_Bitmap(new openfl_display_BitmapData(4,i + 1,false,-1));
tmp.set_x(bx);
tmp.set_y(by);
this.addChild(tmp);
this._bars.push(tmp);
bx += 6;
--by;
}
this.set_y(-this.get_height());
this.set_visible(false);
};
$hxClasses["flixel.system.ui.FlxSoundTray"] = flixel_system_ui_FlxSoundTray;
flixel_system_ui_FlxSoundTray.__name__ = "flixel.system.ui.FlxSoundTray";
flixel_system_ui_FlxSoundTray.__super__ = openfl_display_Sprite;
flixel_system_ui_FlxSoundTray.prototype = $extend(openfl_display_Sprite.prototype,{
active: null
,_timer: null
,_bars: null
,_width: null
,_defaultScale: null
,update: function(MS) {
if(this._timer > 0) {
this._timer -= MS / 1000;
} else if(this.get_y() > -this.get_height()) {
var _g = this;
_g.set_y(_g.get_y() - MS / 1000 * flixel_FlxG.height * 2);
if(this.get_y() <= -this.get_height()) {
this.set_visible(false);
this.active = false;
flixel_FlxG.save.data.mute = flixel_FlxG.sound.muted;
flixel_FlxG.save.data.volume = flixel_FlxG.sound.volume;
flixel_FlxG.save.flush();
}
}
}
,show: function(Silent) {
if(Silent == null) {
Silent = false;
}
if(!Silent) {
var extension = "";
extension = ".ogg";
var sound = openfl_utils_Assets.getSound("flixel/sounds/beep" + extension);
if(sound != null) {
flixel_FlxG.sound.load(sound).play();
}
}
this._timer = 1;
this.set_y(0);
this.set_visible(true);
this.active = true;
var globalVolume = Math.round(flixel_FlxG.sound.volume * 10);
if(flixel_FlxG.sound.muted) {
globalVolume = 0;
}
var _g = 0;
var _g1 = this._bars.length;
while(_g < _g1) {
var i = _g++;
if(i < globalVolume) {
this._bars[i].set_alpha(1);
} else {
this._bars[i].set_alpha(0.5);
}
}
}
,screenCenter: function() {
this.set_scaleX(this._defaultScale);
this.set_scaleY(this._defaultScale);
this.set_x(0.5 * (openfl_Lib.get_current().stage.stageWidth - this._width * this._defaultScale) - flixel_FlxG.game.get_x());
}
,__class__: flixel_system_ui_FlxSoundTray
});
var flixel_system_ui_FlxSystemButton = function(Icon,UpHandler,ToggleMode) {
if(ToggleMode == null) {
ToggleMode = false;
}
this._mouseDown = false;
this.toggled = false;
this.toggleMode = false;
this.enabled = true;
openfl_display_Sprite.call(this);
if(Icon != null) {
this.changeIcon(Icon);
}
this.upHandler = UpHandler;
this.toggleMode = ToggleMode;
this.addEventListener("mouseUp",$bind(this,this.onMouseUp));
this.addEventListener("mouseDown",$bind(this,this.onMouseDown));
this.addEventListener("mouseOut",$bind(this,this.onMouseOut));
this.addEventListener("mouseOver",$bind(this,this.onMouseOver));
};
$hxClasses["flixel.system.ui.FlxSystemButton"] = flixel_system_ui_FlxSystemButton;
flixel_system_ui_FlxSystemButton.__name__ = "flixel.system.ui.FlxSystemButton";
flixel_system_ui_FlxSystemButton.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_system_ui_FlxSystemButton.__super__ = openfl_display_Sprite;
flixel_system_ui_FlxSystemButton.prototype = $extend(openfl_display_Sprite.prototype,{
upHandler: null
,enabled: null
,toggleMode: null
,toggled: null
,_icon: null
,_mouseDown: null
,changeIcon: function(Icon) {
if(this._icon != null) {
this.removeChild(this._icon);
}
flixel_system_debug_DebuggerUtil.fixSize(Icon);
this._icon = new openfl_display_Bitmap(Icon);
this.addChild(this._icon);
}
,destroy: function() {
this.removeEventListener("mouseUp",$bind(this,this.onMouseUp));
this.removeEventListener("mouseDown",$bind(this,this.onMouseDown));
this.removeEventListener("mouseOut",$bind(this,this.onMouseOut));
this.removeEventListener("mouseOver",$bind(this,this.onMouseOver));
this._icon = null;
this.upHandler = null;
}
,onMouseUp: function(_) {
if(this.enabled && this._mouseDown) {
this.set_toggled(!this.toggled);
this._mouseDown = false;
if(this.upHandler != null) {
this.upHandler();
}
}
}
,onMouseDown: function(_) {
this._mouseDown = true;
}
,onMouseOver: function(_) {
if(this.enabled) {
var _g = this;
_g.set_alpha(_g.get_alpha() - 0.2);
}
}
,onMouseOut: function(_) {
if(this.enabled) {
var _g = this;
_g.set_alpha(_g.get_alpha() + 0.2);
}
}
,set_toggled: function(Value) {
if(this.toggleMode) {
this.set_alpha(Value ? 0.3 : 1);
}
return this.toggled = Value;
}
,__class__: flixel_system_ui_FlxSystemButton
,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_toggled:"set_toggled"})
});
var flixel_text_FlxTextFormat = function(FontColor,Bold,Italic,BorderColor) {
this.format = new openfl_text_TextFormat(null,null,FontColor,Bold,Italic);
this.borderColor = BorderColor == null ? 0 : BorderColor;
};
$hxClasses["flixel.text.FlxTextFormat"] = flixel_text_FlxTextFormat;
flixel_text_FlxTextFormat.__name__ = "flixel.text.FlxTextFormat";
flixel_text_FlxTextFormat.prototype = {
borderColor: null
,format: null
,__class__: flixel_text_FlxTextFormat
};
var flixel_text__$FlxText_FlxTextFormatRange = function(format,start,end) {
this.range = new flixel_util_helpers_FlxRange(start,end);
this.format = format;
};
$hxClasses["flixel.text._FlxText.FlxTextFormatRange"] = flixel_text__$FlxText_FlxTextFormatRange;
flixel_text__$FlxText_FlxTextFormatRange.__name__ = "flixel.text._FlxText.FlxTextFormatRange";
flixel_text__$FlxText_FlxTextFormatRange.prototype = {
range: null
,format: null
,__class__: flixel_text__$FlxText_FlxTextFormatRange
};
var flixel_text_FlxTextFormatMarkerPair = function(format,marker) {
this.format = format;
this.marker = marker;
};
$hxClasses["flixel.text.FlxTextFormatMarkerPair"] = flixel_text_FlxTextFormatMarkerPair;
flixel_text_FlxTextFormatMarkerPair.__name__ = "flixel.text.FlxTextFormatMarkerPair";
flixel_text_FlxTextFormatMarkerPair.prototype = {
format: null
,marker: null
,__class__: flixel_text_FlxTextFormatMarkerPair
};
var flixel_text_FlxTextBorderStyle = $hxEnums["flixel.text.FlxTextBorderStyle"] = { __ename__ : "flixel.text.FlxTextBorderStyle", __constructs__ : ["NONE","SHADOW","OUTLINE","OUTLINE_FAST"]
,NONE: {_hx_index:0,__enum__:"flixel.text.FlxTextBorderStyle",toString:$estr}
,SHADOW: {_hx_index:1,__enum__:"flixel.text.FlxTextBorderStyle",toString:$estr}
,OUTLINE: {_hx_index:2,__enum__:"flixel.text.FlxTextBorderStyle",toString:$estr}
,OUTLINE_FAST: {_hx_index:3,__enum__:"flixel.text.FlxTextBorderStyle",toString:$estr}
};
var flixel_text_FlxTextAlign = {};
flixel_text_FlxTextAlign.fromOpenFL = function(align) {
switch(align) {
case 0:
return "center";
case 2:
return "justify";
case 3:
return "left";
case 4:
return "right";
default:
return "left";
}
};
flixel_text_FlxTextAlign.toOpenFL = function(align) {
switch(align) {
case "center":
return 0;
case "justify":
return 2;
case "left":
return 3;
case "right":
return 4;
default:
return 3;
}
};
var flixel_tile_FlxBaseTilemap = function() {
this._collideIndex = 0;
this._drawIndex = 0;
this._startingIndex = 0;
this._tileObjects = [];
this.totalTiles = 0;
this.heightInTiles = 0;
this.widthInTiles = 0;
this.auto = flixel_tile_FlxTilemapAutoTiling.OFF;
flixel_FlxObject.call(this);
this.flixelType = 3;
this.set_immovable(true);
this.set_moves(false);
};
$hxClasses["flixel.tile.FlxBaseTilemap"] = flixel_tile_FlxBaseTilemap;
flixel_tile_FlxBaseTilemap.__name__ = "flixel.tile.FlxBaseTilemap";
flixel_tile_FlxBaseTilemap.__super__ = flixel_FlxObject;
flixel_tile_FlxBaseTilemap.prototype = $extend(flixel_FlxObject.prototype,{
auto: null
,widthInTiles: null
,heightInTiles: null
,totalTiles: null
,customTileRemap: null
,_randomIndices: null
,_randomChoices: null
,_randomLambda: null
,_tileObjects: null
,_startingIndex: null
,_data: null
,_drawIndex: null
,_collideIndex: null
,updateTile: function(Index) {
throw haxe_Exception.thrown("updateTile must be implemented");
}
,cacheGraphics: function(TileWidth,TileHeight,TileGraphic) {
throw haxe_Exception.thrown("cacheGraphics must be implemented");
}
,initTileObjects: function() {
throw haxe_Exception.thrown("initTileObjects must be implemented");
}
,updateMap: function() {
throw haxe_Exception.thrown("updateMap must be implemented");
}
,computeDimensions: function() {
throw haxe_Exception.thrown("computeDimensions must be implemented");
}
,getTileIndexByCoords: function(Coord) {
throw haxe_Exception.thrown("getTileIndexByCoords must be implemented");
}
,getTileCoordsByIndex: function(Index,Midpoint) {
if(Midpoint == null) {
Midpoint = true;
}
throw haxe_Exception.thrown("getTileCoordsByIndex must be implemented");
}
,ray: function(Start,End,Result,Resolution) {
if(Resolution == null) {
Resolution = 1;
}
throw haxe_Exception.thrown("ray must be implemented");
}
,overlapsWithCallback: function(Object1,Callback,FlipCallbackParams,Position) {
if(FlipCallbackParams == null) {
FlipCallbackParams = false;
}
throw haxe_Exception.thrown("overlapsWithCallback must be implemented");
}
,setDirty: function(Dirty) {
if(Dirty == null) {
Dirty = true;
}
throw haxe_Exception.thrown("setDirty must be implemented");
}
,destroy: function() {
this._data = null;
flixel_FlxObject.prototype.destroy.call(this);
}
,loadMapFromCSV: function(MapData,TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex) {
if(CollideIndex == null) {
CollideIndex = 1;
}
if(DrawIndex == null) {
DrawIndex = 1;
}
if(StartingIndex == null) {
StartingIndex = 0;
}
if(TileHeight == null) {
TileHeight = 0;
}
if(TileWidth == null) {
TileWidth = 0;
}
if(openfl_utils_Assets.exists(MapData)) {
MapData = openfl_utils_Assets.getText(MapData);
}
this._data = [];
var columns;
var regex = new EReg("[ \t]*((\r\n)|\r|\n)[ \t]*","g");
var lines = regex.split(MapData);
var _g = [];
var _g1 = 0;
var _g2 = lines;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
if(v != "") {
_g.push(v);
}
}
var rows = _g;
this.heightInTiles = rows.length;
this.widthInTiles = 0;
var row = 0;
while(row < this.heightInTiles) {
var rowString = rows[row];
if(StringTools.endsWith(rowString,",")) {
rowString = HxOverrides.substr(rowString,0,rowString.length - 1);
}
columns = rowString.split(",");
if(columns.length == 0) {
this.heightInTiles--;
continue;
}
if(this.widthInTiles == 0) {
this.widthInTiles = columns.length;
}
var column = 0;
while(column < this.widthInTiles) {
var columnString = columns[column];
var curTile = Std.parseInt(columnString);
if(curTile == null) {
throw haxe_Exception.thrown("String in row " + row + ", column " + column + " is not a valid integer: \"" + columnString + "\"");
}
this._data.push(curTile);
++column;
}
++row;
}
this.loadMapHelper(TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex);
return this;
}
,loadMapFromArray: function(MapData,WidthInTiles,HeightInTiles,TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex) {
if(CollideIndex == null) {
CollideIndex = 1;
}
if(DrawIndex == null) {
DrawIndex = 1;
}
if(StartingIndex == null) {
StartingIndex = 0;
}
if(TileHeight == null) {
TileHeight = 0;
}
if(TileWidth == null) {
TileWidth = 0;
}
this.widthInTiles = WidthInTiles;
this.heightInTiles = HeightInTiles;
this._data = MapData.slice();
this.loadMapHelper(TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex);
return this;
}
,loadMapFrom2DArray: function(MapData,TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex) {
if(CollideIndex == null) {
CollideIndex = 1;
}
if(DrawIndex == null) {
DrawIndex = 1;
}
if(StartingIndex == null) {
StartingIndex = 0;
}
if(TileHeight == null) {
TileHeight = 0;
}
if(TileWidth == null) {
TileWidth = 0;
}
this.widthInTiles = MapData[0].length;
this.heightInTiles = MapData.length;
this._data = flixel_util_FlxArrayUtil.flatten2DArray_Int(MapData);
this.loadMapHelper(TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex);
return this;
}
,loadMapFromGraphic: function(MapGraphic,Invert,Scale,ColorMap,TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex) {
if(CollideIndex == null) {
CollideIndex = 1;
}
if(DrawIndex == null) {
DrawIndex = 1;
}
if(StartingIndex == null) {
StartingIndex = 0;
}
if(TileHeight == null) {
TileHeight = 0;
}
if(TileWidth == null) {
TileWidth = 0;
}
if(Scale == null) {
Scale = 1;
}
if(Invert == null) {
Invert = false;
}
var mapBitmap = flixel_system_FlxAssets.resolveBitmapData(MapGraphic);
var mapData = flixel_util_FlxStringUtil.bitmapToCSV(mapBitmap,Invert,Scale,ColorMap);
return this.loadMapFromCSV(mapData,TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex);
}
,loadMapHelper: function(TileGraphic,TileWidth,TileHeight,AutoTile,StartingIndex,DrawIndex,CollideIndex) {
if(CollideIndex == null) {
CollideIndex = 1;
}
if(DrawIndex == null) {
DrawIndex = 1;
}
if(StartingIndex == null) {
StartingIndex = 0;
}
if(TileHeight == null) {
TileHeight = 0;
}
if(TileWidth == null) {
TileWidth = 0;
}
var _g = 0;
var _g1 = this._data.length;
while(_g < _g1) {
var i = _g++;
if(this._data[i] < 0) {
this._data[i] = 0;
}
}
this.totalTiles = this._data.length;
this.auto = AutoTile == null ? flixel_tile_FlxTilemapAutoTiling.OFF : AutoTile;
this._startingIndex = StartingIndex <= 0 ? 0 : StartingIndex;
if(this.auto != flixel_tile_FlxTilemapAutoTiling.OFF) {
this._startingIndex = 1;
DrawIndex = 1;
CollideIndex = 1;
}
this._drawIndex = DrawIndex;
this._collideIndex = CollideIndex;
this.applyAutoTile();
this.applyCustomRemap();
this.randomizeIndices();
this.cacheGraphics(TileWidth,TileHeight,TileGraphic);
this.postGraphicLoad();
}
,postGraphicLoad: function() {
this.initTileObjects();
this.computeDimensions();
this.updateMap();
}
,applyAutoTile: function() {
if(this.auto != flixel_tile_FlxTilemapAutoTiling.OFF) {
var i = 0;
while(i < this.totalTiles) this.autoTile(i++);
}
}
,applyCustomRemap: function() {
var i = 0;
if(this.customTileRemap != null) {
while(i < this.totalTiles) {
var oldIndex = this._data[i];
var newIndex = oldIndex;
if(oldIndex < this.customTileRemap.length) {
newIndex = this.customTileRemap[oldIndex];
}
this._data[i] = newIndex;
++i;
}
}
}
,randomizeIndices: function() {
var i = 0;
if(this._randomIndices != null) {
var randLambda = this._randomLambda != null ? this._randomLambda : function() {
return flixel_FlxG.random.float();
};
while(i < this.totalTiles) {
var oldIndex = this._data[i];
var j = 0;
var newIndex = oldIndex;
var _g = 0;
var _g1 = this._randomIndices;
while(_g < _g1.length) {
var rand = _g1[_g];
++_g;
if(oldIndex == rand) {
var k = randLambda() * this._randomChoices[j].length | 0;
newIndex = this._randomChoices[j][k];
}
++j;
}
this._data[i] = newIndex;
++i;
}
}
}
,autoTile: function(Index) {
if(this._data[Index] == 0) {
return;
}
if(this.auto == flixel_tile_FlxTilemapAutoTiling.FULL) {
this.autoTileFull(Index);
return;
}
this._data[Index] = 0;
if(Index - this.widthInTiles < 0 || this._data[Index - this.widthInTiles] > 0) {
this._data[Index] += 1;
}
if(Index % this.widthInTiles >= this.widthInTiles - 1 || this._data[Index + 1] > 0) {
this._data[Index] += 2;
}
if((Index + this.widthInTiles | 0) >= this.totalTiles || this._data[Index + this.widthInTiles] > 0) {
this._data[Index] += 4;
}
if(Index % this.widthInTiles <= 0 || this._data[Index - 1] > 0) {
this._data[Index] += 8;
}
if(this.auto == flixel_tile_FlxTilemapAutoTiling.ALT && this._data[Index] == 15) {
if(Index % this.widthInTiles > 0 && (Index + this.widthInTiles | 0) < this.totalTiles && this._data[Index + this.widthInTiles - 1] <= 0) {
this._data[Index] = 1;
}
if(Index % this.widthInTiles > 0 && Index - this.widthInTiles >= 0 && this._data[Index - this.widthInTiles - 1] <= 0) {
this._data[Index] = 2;
}
if(Index % this.widthInTiles < this.widthInTiles - 1 && Index - this.widthInTiles >= 0 && this._data[Index - this.widthInTiles + 1] <= 0) {
this._data[Index] = 4;
}
if(Index % this.widthInTiles < this.widthInTiles - 1 && (Index + this.widthInTiles | 0) < this.totalTiles && this._data[Index + this.widthInTiles + 1] <= 0) {
this._data[Index] = 8;
}
}
this._data[Index] += 1;
}
,autoTileFull: function(Index) {
this._data[Index] = 0;
var wallUp = Index - this.widthInTiles < 0;
var wallRight = Index % this.widthInTiles >= this.widthInTiles - 1;
var wallDown = (Index + this.widthInTiles | 0) >= this.totalTiles;
var wallLeft = Index % this.widthInTiles <= 0;
var up = wallUp || this._data[Index - this.widthInTiles] > 0;
var upRight = wallUp || wallRight || this._data[Index - this.widthInTiles + 1] > 0;
var right = wallRight || this._data[Index + 1] > 0;
var rightDown = wallRight || wallDown || this._data[Index + this.widthInTiles + 1] > 0;
var down = wallDown || this._data[Index + this.widthInTiles] > 0;
var downLeft = wallDown || wallLeft || this._data[Index + this.widthInTiles - 1] > 0;
var left = wallLeft || this._data[Index - 1] > 0;
var leftUp = wallLeft || wallUp || this._data[Index - this.widthInTiles - 1] > 0;
if(up) {
this._data[Index] += 1;
}
if(upRight && up && right) {
this._data[Index] += 2;
}
if(right) {
this._data[Index] += 4;
}
if(rightDown && right && down) {
this._data[Index] += 8;
}
if(down) {
this._data[Index] += 16;
}
if(downLeft && down && left) {
this._data[Index] += 32;
}
if(left) {
this._data[Index] += 64;
}
if(leftUp && left && up) {
this._data[Index] += 128;
}
this._data[Index] -= flixel_tile_FlxBaseTilemap.offsetAutoTile[this._data[Index]] - 1;
}
,setCustomTileMappings: function(mappings,randomIndices,randomChoices,randomLambda) {
this.customTileRemap = mappings;
this._randomIndices = randomIndices;
this._randomChoices = randomChoices;
this._randomLambda = randomLambda;
if(this._randomIndices != null && (this._randomChoices == null || this._randomChoices.length == 0)) {
throw haxe_Exception.thrown("You must provide valid 'randomChoices' if you wish to randomize tilemap indices, please read documentation of 'setCustomTileMappings' function.");
}
}
,getTile: function(X,Y) {
return this._data[Y * this.widthInTiles + X];
}
,getTileByIndex: function(Index) {
return this._data[Index];
}
,getTileCollisions: function(Index) {
return this._tileObjects[Index].allowCollisions;
}
,getTileInstances: function(Index) {
var array = null;
var i = 0;
var l = this.widthInTiles * this.heightInTiles;
while(i < l) {
if(this._data[i] == Index) {
if(array == null) {
array = [];
}
array.push(i);
}
++i;
}
return array;
}
,setTile: function(X,Y,Tile,UpdateGraphics) {
if(UpdateGraphics == null) {
UpdateGraphics = true;
}
if(X >= this.widthInTiles || Y >= this.heightInTiles) {
return false;
}
return this.setTileByIndex(Y * this.widthInTiles + X,Tile,UpdateGraphics);
}
,setTileByIndex: function(Index,Tile,UpdateGraphics) {
if(UpdateGraphics == null) {
UpdateGraphics = true;
}
if(Index >= this._data.length) {
return false;
}
var ok = true;
this._data[Index] = Tile;
if(!UpdateGraphics) {
return ok;
}
this.setDirty();
if(this.auto == flixel_tile_FlxTilemapAutoTiling.OFF) {
this.updateTile(this._data[Index]);
return ok;
}
var i;
var row = (Index / this.widthInTiles | 0) - 1;
var rowLength = row + 3;
var column = Index % this.widthInTiles - 1;
var columnHeight = column + 3;
while(row < rowLength) {
column = columnHeight - 3;
while(column < columnHeight) {
if(row >= 0 && row < this.heightInTiles && column >= 0 && column < this.widthInTiles) {
i = row * this.widthInTiles + column;
this.autoTile(i);
this.updateTile(this._data[i]);
}
++column;
}
++row;
}
return ok;
}
,setTileProperties: function(Tile,AllowCollisions,Callback,CallbackFilter,Range1) {
if(Range1 == null) {
Range1 = 1;
}
if(AllowCollisions == null) {
AllowCollisions = 4369;
}
if(Range1 <= 0) {
Range1 = 1;
}
var tile;
var i = Tile;
var l = Tile + Range1;
var maxIndex = this._tileObjects.length;
if(l > maxIndex) {
throw haxe_Exception.thrown("Index " + l + " exceeds the maximum tile index of " + maxIndex + ". Please verify the Tile (" + Tile + ") and Range (" + Range1 + ") parameters.");
}
while(i < l) {
tile = this._tileObjects[i++];
tile.set_allowCollisions(AllowCollisions);
tile.callbackFunction = Callback;
tile.filter = CallbackFilter;
}
}
,getData: function(Simple) {
if(Simple == null) {
Simple = false;
}
if(!Simple) {
return this._data;
}
var i = 0;
var l = this._data.length;
var data = [];
flixel_util_FlxArrayUtil.setLength_Int(data,l);
while(i < l) {
data[i] = this._tileObjects[this._data[i]].allowCollisions > 0 ? 1 : 0;
++i;
}
return data;
}
,findPath: function(Start,End,Simplify,RaySimplify,DiagonalPolicy) {
if(DiagonalPolicy == null) {
DiagonalPolicy = 2;
}
if(RaySimplify == null) {
RaySimplify = false;
}
if(Simplify == null) {
Simplify = true;
}
var startIndex = this.getTileIndexByCoords(Start);
var endIndex = this.getTileIndexByCoords(End);
if(startIndex < 0 || endIndex < 0) {
return null;
}
if(this._tileObjects[this._data[startIndex]].allowCollisions > 0 || this._tileObjects[this._data[endIndex]].allowCollisions > 0) {
return null;
}
var distances = this.computePathDistance(startIndex,endIndex,DiagonalPolicy);
if(distances == null) {
return null;
}
var points = [];
this.walkPath(distances,endIndex,points);
var node = points[points.length - 1];
node.set_x(Start.x);
node.set_y(Start.y);
if(Start._weak) {
Start.put();
}
node = points[0];
node.set_x(End.x);
node.set_y(End.y);
if(End._weak) {
End.put();
}
if(Simplify) {
this.simplifyPath(points);
}
if(RaySimplify) {
this.raySimplifyPath(points);
}
var path = [];
var i = points.length - 1;
while(i >= 0) {
node = points[i--];
if(node != null) {
path.push(node);
}
}
return path;
}
,computePathDistance: function(StartIndex,EndIndex,DiagonalPolicy,StopOnEnd) {
if(StopOnEnd == null) {
StopOnEnd = true;
}
var mapSize = this.widthInTiles * this.heightInTiles;
var distances = [];
flixel_util_FlxArrayUtil.setLength_Int(distances,mapSize);
var i = 0;
while(i < mapSize) {
if(this._tileObjects[this._data[i]].allowCollisions != 0) {
distances[i] = -2;
} else {
distances[i] = -1;
}
++i;
}
distances[StartIndex] = 0;
var distance = 1;
var neighbors = [StartIndex];
var current;
var currentIndex;
var left;
var right;
var up;
var down;
var currentLength;
var foundEnd = false;
while(neighbors.length > 0) {
current = neighbors;
neighbors = [];
i = 0;
currentLength = current.length;
while(i < currentLength) {
currentIndex = current[i++];
if(currentIndex == (EndIndex | 0)) {
foundEnd = true;
if(StopOnEnd) {
neighbors = [];
break;
}
}
left = currentIndex % this.widthInTiles > 0;
right = currentIndex % this.widthInTiles < this.widthInTiles - 1;
up = currentIndex / this.widthInTiles > 0;
down = currentIndex / this.widthInTiles < this.heightInTiles - 1;
var index;
if(up) {
index = currentIndex - this.widthInTiles;
if(distances[index] == -1) {
distances[index] = distance;
neighbors.push(index);
}
}
if(right) {
index = currentIndex + 1;
if(distances[index] == -1) {
distances[index] = distance;
neighbors.push(index);
}
}
if(down) {
index = currentIndex + this.widthInTiles;
if(distances[index] == -1) {
distances[index] = distance;
neighbors.push(index);
}
}
if(left) {
index = currentIndex - 1;
if(distances[index] == -1) {
distances[index] = distance;
neighbors.push(index);
}
}
if(DiagonalPolicy != 0) {
var wideDiagonal = DiagonalPolicy == 2;
if(up && right) {
index = currentIndex - this.widthInTiles + 1;
if(wideDiagonal && distances[index] == -1 && distances[currentIndex - this.widthInTiles] >= -1 && distances[currentIndex + 1] >= -1) {
distances[index] = distance;
neighbors.push(index);
} else if(!wideDiagonal && distances[index] == -1) {
distances[index] = distance;
neighbors.push(index);
}
}
if(right && down) {
index = currentIndex + this.widthInTiles + 1;
if(wideDiagonal && distances[index] == -1 && distances[currentIndex + this.widthInTiles] >= -1 && distances[currentIndex + 1] >= -1) {
distances[index] = distance;
neighbors.push(index);
} else if(!wideDiagonal && distances[index] == -1) {
distances[index] = distance;
neighbors.push(index);
}
}
if(left && down) {
index = currentIndex + this.widthInTiles - 1;
if(wideDiagonal && distances[index] == -1 && distances[currentIndex + this.widthInTiles] >= -1 && distances[currentIndex - 1] >= -1) {
distances[index] = distance;
neighbors.push(index);
} else if(!wideDiagonal && distances[index] == -1) {
distances[index] = distance;
neighbors.push(index);
}
}
if(up && left) {
index = currentIndex - this.widthInTiles - 1;
if(wideDiagonal && distances[index] == -1 && distances[currentIndex - this.widthInTiles] >= -1 && distances[currentIndex - 1] >= -1) {
distances[index] = distance;
neighbors.push(index);
} else if(!wideDiagonal && distances[index] == -1) {
distances[index] = distance;
neighbors.push(index);
}
}
}
}
++distance;
}
if(!foundEnd) {
distances = null;
}
return distances;
}
,walkPath: function(Data,Start,Points) {
Points.push(this.getTileCoordsByIndex(Start));
if(Data[Start] == 0) {
return;
}
var left = Start % this.widthInTiles > 0;
var right = Start % this.widthInTiles < this.widthInTiles - 1;
var up = Start / this.widthInTiles > 0;
var down = Start / this.widthInTiles < this.heightInTiles - 1;
var current = Data[Start];
var i;
if(up) {
i = Start - this.widthInTiles;
if(i >= 0 && Data[i] >= 0 && Data[i] < current) {
this.walkPath(Data,i,Points);
return;
}
}
if(right) {
i = Start + 1;
if(i >= 0 && Data[i] >= 0 && Data[i] < current) {
this.walkPath(Data,i,Points);
return;
}
}
if(down) {
i = Start + this.widthInTiles;
if(i >= 0 && Data[i] >= 0 && Data[i] < current) {
this.walkPath(Data,i,Points);
return;
}
}
if(left) {
i = Start - 1;
if(i >= 0 && Data[i] >= 0 && Data[i] < current) {
this.walkPath(Data,i,Points);
return;
}
}
if(up && right) {
i = Start - this.widthInTiles + 1;
if(i >= 0 && Data[i] >= 0 && Data[i] < current) {
this.walkPath(Data,i,Points);
return;
}
}
if(right && down) {
i = Start + this.widthInTiles + 1;
if(i >= 0 && Data[i] >= 0 && Data[i] < current) {
this.walkPath(Data,i,Points);
return;
}
}
if(left && down) {
i = Start + this.widthInTiles - 1;
if(i >= 0 && Data[i] >= 0 && Data[i] < current) {
this.walkPath(Data,i,Points);
return;
}
}
if(up && left) {
i = Start - this.widthInTiles - 1;
if(i >= 0 && Data[i] >= 0 && Data[i] < current) {
this.walkPath(Data,i,Points);
return;
}
}
}
,simplifyPath: function(Points) {
var deltaPrevious;
var deltaNext;
var last = Points[0];
var node;
var i = 1;
var l = Points.length - 1;
while(i < l) {
node = Points[i];
deltaPrevious = (node.x - last.x) / (node.y - last.y);
deltaNext = (node.x - Points[i + 1].x) / (node.y - Points[i + 1].y);
if(last.x == Points[i + 1].x || last.y == Points[i + 1].y || deltaPrevious == deltaNext) {
Points[i] = null;
} else {
last = node;
}
++i;
}
}
,raySimplifyPath: function(Points) {
var source = Points[0];
var lastIndex = -1;
var node;
var i = 1;
var l = Points.length;
while(i < l) {
node = Points[i++];
if(node == null) {
continue;
}
if(this.ray(source,node,this._point)) {
if(lastIndex >= 0) {
Points[lastIndex] = null;
}
} else {
source = Points[lastIndex];
}
lastIndex = i - 1;
}
}
,overlaps: function(ObjectOrGroup,InScreenSpace,Camera) {
if(InScreenSpace == null) {
InScreenSpace = false;
}
var group = flixel_group_FlxTypedGroup.resolveGroup(ObjectOrGroup);
if(group != null) {
return flixel_group_FlxTypedGroup.overlaps($bind(this,this.tilemapOverlapsCallback),group,0,0,InScreenSpace,Camera);
} else if(ObjectOrGroup.flixelType == 1 || ObjectOrGroup.flixelType == 3 ? this.overlapsWithCallback(ObjectOrGroup) : this.overlaps(ObjectOrGroup,false,null)) {
return true;
}
return false;
}
,tilemapOverlapsCallback: function(ObjectOrGroup,X,Y,InScreenSpace,Camera) {
if(InScreenSpace == null) {
InScreenSpace = false;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
if(ObjectOrGroup.flixelType == 1 || ObjectOrGroup.flixelType == 3) {
return this.overlapsWithCallback(ObjectOrGroup);
} else {
return this.overlaps(ObjectOrGroup,InScreenSpace,Camera);
}
}
,overlapsAt: function(X,Y,ObjectOrGroup,InScreenSpace,Camera) {
if(InScreenSpace == null) {
InScreenSpace = false;
}
var group = flixel_group_FlxTypedGroup.resolveGroup(ObjectOrGroup);
if(group != null) {
return flixel_group_FlxTypedGroup.overlaps($bind(this,this.tilemapOverlapsAtCallback),group,X,Y,InScreenSpace,Camera);
} else if(ObjectOrGroup.flixelType == 1 || ObjectOrGroup.flixelType == 3 ? this.overlapsWithCallback(ObjectOrGroup,null,false,this._point.set(X,Y)) : this.overlapsAt(X,Y,ObjectOrGroup,InScreenSpace,Camera)) {
return true;
}
return false;
}
,tilemapOverlapsAtCallback: function(ObjectOrGroup,X,Y,InScreenSpace,Camera) {
if(ObjectOrGroup.flixelType == 1 || ObjectOrGroup.flixelType == 3) {
return this.overlapsWithCallback(ObjectOrGroup,null,false,this._point.set(X,Y));
} else {
return this.overlapsAt(X,Y,ObjectOrGroup,InScreenSpace,Camera);
}
}
,overlapsPoint: function(WorldPoint,InScreenSpace,Camera) {
if(InScreenSpace == null) {
InScreenSpace = false;
}
if(InScreenSpace) {
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
WorldPoint.subtractPoint(Camera.scroll);
if(WorldPoint._weak) {
WorldPoint.put();
}
}
return this.tileAtPointAllowsCollisions(WorldPoint);
}
,tileAtPointAllowsCollisions: function(point) {
var tileIndex = this.getTileIndexByCoords(point);
if(tileIndex < 0 || tileIndex >= this._data.length) {
return false;
}
return this._tileObjects[this._data[tileIndex]].allowCollisions > 0;
}
,getBounds: function(Bounds) {
if(Bounds == null) {
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
Bounds = rect;
}
var X = this.x;
var Y = this.y;
var Width = this.get_width();
var Height = this.get_height();
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
Bounds.x = X;
Bounds.y = Y;
Bounds.width = Width;
Bounds.height = Height;
return Bounds;
}
,__class__: flixel_tile_FlxBaseTilemap
});
var flixel_tile_FlxTilemapAutoTiling = $hxEnums["flixel.tile.FlxTilemapAutoTiling"] = { __ename__ : "flixel.tile.FlxTilemapAutoTiling", __constructs__ : ["OFF","AUTO","ALT","FULL"]
,OFF: {_hx_index:0,__enum__:"flixel.tile.FlxTilemapAutoTiling",toString:$estr}
,AUTO: {_hx_index:1,__enum__:"flixel.tile.FlxTilemapAutoTiling",toString:$estr}
,ALT: {_hx_index:2,__enum__:"flixel.tile.FlxTilemapAutoTiling",toString:$estr}
,FULL: {_hx_index:3,__enum__:"flixel.tile.FlxTilemapAutoTiling",toString:$estr}
};
var flixel_tile_FlxTileblock = function(X,Y,Width,Height) {
flixel_FlxSprite.call(this,X,Y);
this.makeGraphic(Width,Height,0,true);
this.set_active(false);
this.set_immovable(true);
this.set_moves(false);
};
$hxClasses["flixel.tile.FlxTileblock"] = flixel_tile_FlxTileblock;
flixel_tile_FlxTileblock.__name__ = "flixel.tile.FlxTileblock";
flixel_tile_FlxTileblock.__super__ = flixel_FlxSprite;
flixel_tile_FlxTileblock.prototype = $extend(flixel_FlxSprite.prototype,{
tileSprite: null
,destroy: function() {
this.tileSprite = flixel_util_FlxDestroyUtil.destroy(this.tileSprite);
flixel_FlxSprite.prototype.destroy.call(this);
}
,loadFrames: function(tileFrames,empties) {
if(empties == null) {
empties = 0;
}
if(tileFrames == null) {
return this;
}
this.tileSprite = this.tileSprite == null ? new flixel_FlxSprite() : this.tileSprite;
this.tileSprite.set_frames(tileFrames);
var spriteWidth = this.tileSprite.get_width() | 0;
var spriteHeight = this.tileSprite.get_height() | 0;
var total = this.tileSprite.numFrames + empties;
var regen = false;
if(this.get_width() % this.tileSprite.get_width() != 0) {
this.set_width((this.get_width() / spriteWidth + 1 | 0) * spriteWidth);
regen = true;
}
if(this.get_height() % this.tileSprite.get_height() != 0) {
this.set_height((this.get_height() / spriteHeight + 1 | 0) * spriteHeight);
regen = true;
}
if(regen) {
this.makeGraphic(this.get_width() | 0,this.get_height() | 0,0,true);
} else {
flixel_util_FlxSpriteUtil.fill(this,0);
}
var row = 0;
var column;
var destinationX;
var destinationY = 0;
var widthInTiles = this.get_width() / spriteWidth | 0;
var heightInTiles = this.get_height() / spriteHeight | 0;
while(row < heightInTiles) {
destinationX = 0;
column = 0;
while(column < widthInTiles) {
if(flixel_FlxG.random.float() * total > empties) {
this.tileSprite.animation.randomFrame();
this.tileSprite.drawFrame();
this.stamp(this.tileSprite,destinationX,destinationY);
}
destinationX += spriteWidth;
++column;
}
destinationY += spriteHeight;
++row;
}
this.dirty = true;
return this;
}
,loadTiles: function(TileGraphic,TileWidth,TileHeight,Empties) {
if(Empties == null) {
Empties = 0;
}
if(TileHeight == null) {
TileHeight = 0;
}
if(TileWidth == null) {
TileWidth = 0;
}
if(TileGraphic == null) {
return this;
}
var graph = flixel_FlxG.bitmap.add(TileGraphic);
if(graph == null) {
return this;
}
if(TileWidth == 0) {
TileWidth = graph.height;
if(TileWidth > graph.width) {
TileWidth = graph.width;
}
}
if(TileHeight == 0) {
TileHeight = TileWidth;
if(TileHeight > graph.height) {
TileHeight = graph.height;
}
}
var X = TileWidth;
var Y = TileHeight;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var tileFrames = flixel_graphics_frames_FlxTileFrames.fromGraphic(graph,point);
return this.loadFrames(tileFrames,Empties);
}
,setTile: function(x,y,index) {
this.tileSprite.animation.set_frameIndex(index);
this.stamp(this.tileSprite,x * (this.tileSprite.get_width() | 0),y * (this.tileSprite.get_height() | 0));
this.dirty = true;
}
,__class__: flixel_tile_FlxTileblock
});
var flixel_tweens_FlxEase = function() { };
$hxClasses["flixel.tweens.FlxEase"] = flixel_tweens_FlxEase;
flixel_tweens_FlxEase.__name__ = "flixel.tweens.FlxEase";
flixel_tweens_FlxEase.linear = function(t) {
return t;
};
flixel_tweens_FlxEase.quadIn = function(t) {
return t * t;
};
flixel_tweens_FlxEase.quadOut = function(t) {
return -t * (t - 2);
};
flixel_tweens_FlxEase.quadInOut = function(t) {
if(t <= .5) {
return t * t * 2;
} else {
return 1 - --t * t * 2;
}
};
flixel_tweens_FlxEase.cubeIn = function(t) {
return t * t * t;
};
flixel_tweens_FlxEase.cubeOut = function(t) {
return 1 + --t * t * t;
};
flixel_tweens_FlxEase.cubeInOut = function(t) {
if(t <= .5) {
return t * t * t * 4;
} else {
return 1 + --t * t * t * 4;
}
};
flixel_tweens_FlxEase.quartIn = function(t) {
return t * t * t * t;
};
flixel_tweens_FlxEase.quartOut = function(t) {
return 1 - --t * t * t * t;
};
flixel_tweens_FlxEase.quartInOut = function(t) {
if(t <= .5) {
return t * t * t * t * 8;
} else {
t = t * 2 - 2;
return (1 - t * t * t * t) / 2 + .5;
}
};
flixel_tweens_FlxEase.quintIn = function(t) {
return t * t * t * t * t;
};
flixel_tweens_FlxEase.quintOut = function(t) {
return --t * t * t * t * t + 1;
};
flixel_tweens_FlxEase.quintInOut = function(t) {
if((t *= 2) < 1) {
return t * t * t * t * t / 2;
} else {
return ((t -= 2) * t * t * t * t + 2) / 2;
}
};
flixel_tweens_FlxEase.smoothStepIn = function(t) {
var t1 = t / 2;
return 2 * (t1 * t1 * (t1 * -2 + 3));
};
flixel_tweens_FlxEase.smoothStepOut = function(t) {
var t1 = t / 2 + 0.5;
return 2 * (t1 * t1 * (t1 * -2 + 3)) - 1;
};
flixel_tweens_FlxEase.smoothStepInOut = function(t) {
return t * t * (t * -2 + 3);
};
flixel_tweens_FlxEase.smootherStepIn = function(t) {
var t1 = t / 2;
return 2 * (t1 * t1 * t1 * (t1 * (t1 * 6 - 15) + 10));
};
flixel_tweens_FlxEase.smootherStepOut = function(t) {
var t1 = t / 2 + 0.5;
return 2 * (t1 * t1 * t1 * (t1 * (t1 * 6 - 15) + 10)) - 1;
};
flixel_tweens_FlxEase.smootherStepInOut = function(t) {
return t * t * t * (t * (t * 6 - 15) + 10);
};
flixel_tweens_FlxEase.sineIn = function(t) {
return -Math.cos(flixel_tweens_FlxEase.PI2 * t) + 1;
};
flixel_tweens_FlxEase.sineOut = function(t) {
return Math.sin(flixel_tweens_FlxEase.PI2 * t);
};
flixel_tweens_FlxEase.sineInOut = function(t) {
return -Math.cos(Math.PI * t) / 2 + .5;
};
flixel_tweens_FlxEase.bounceIn = function(t) {
t = 1 - t;
if(t < flixel_tweens_FlxEase.B1) {
return 1 - 7.5625 * t * t;
}
if(t < flixel_tweens_FlxEase.B2) {
return 1 - (7.5625 * (t - flixel_tweens_FlxEase.B3) * (t - flixel_tweens_FlxEase.B3) + .75);
}
if(t < flixel_tweens_FlxEase.B4) {
return 1 - (7.5625 * (t - flixel_tweens_FlxEase.B5) * (t - flixel_tweens_FlxEase.B5) + .9375);
}
return 1 - (7.5625 * (t - flixel_tweens_FlxEase.B6) * (t - flixel_tweens_FlxEase.B6) + .984375);
};
flixel_tweens_FlxEase.bounceOut = function(t) {
if(t < flixel_tweens_FlxEase.B1) {
return 7.5625 * t * t;
}
if(t < flixel_tweens_FlxEase.B2) {
return 7.5625 * (t - flixel_tweens_FlxEase.B3) * (t - flixel_tweens_FlxEase.B3) + .75;
}
if(t < flixel_tweens_FlxEase.B4) {
return 7.5625 * (t - flixel_tweens_FlxEase.B5) * (t - flixel_tweens_FlxEase.B5) + .9375;
}
return 7.5625 * (t - flixel_tweens_FlxEase.B6) * (t - flixel_tweens_FlxEase.B6) + .984375;
};
flixel_tweens_FlxEase.bounceInOut = function(t) {
if(t < .5) {
t = 1 - t * 2;
if(t < flixel_tweens_FlxEase.B1) {
return (1 - 7.5625 * t * t) / 2;
}
if(t < flixel_tweens_FlxEase.B2) {
return (1 - (7.5625 * (t - flixel_tweens_FlxEase.B3) * (t - flixel_tweens_FlxEase.B3) + .75)) / 2;
}
if(t < flixel_tweens_FlxEase.B4) {
return (1 - (7.5625 * (t - flixel_tweens_FlxEase.B5) * (t - flixel_tweens_FlxEase.B5) + .9375)) / 2;
}
return (1 - (7.5625 * (t - flixel_tweens_FlxEase.B6) * (t - flixel_tweens_FlxEase.B6) + .984375)) / 2;
}
t = t * 2 - 1;
if(t < flixel_tweens_FlxEase.B1) {
return 7.5625 * t * t / 2 + .5;
}
if(t < flixel_tweens_FlxEase.B2) {
return (7.5625 * (t - flixel_tweens_FlxEase.B3) * (t - flixel_tweens_FlxEase.B3) + .75) / 2 + .5;
}
if(t < flixel_tweens_FlxEase.B4) {
return (7.5625 * (t - flixel_tweens_FlxEase.B5) * (t - flixel_tweens_FlxEase.B5) + .9375) / 2 + .5;
}
return (7.5625 * (t - flixel_tweens_FlxEase.B6) * (t - flixel_tweens_FlxEase.B6) + .984375) / 2 + .5;
};
flixel_tweens_FlxEase.circIn = function(t) {
return -(Math.sqrt(1 - t * t) - 1);
};
flixel_tweens_FlxEase.circOut = function(t) {
return Math.sqrt(1 - (t - 1) * (t - 1));
};
flixel_tweens_FlxEase.circInOut = function(t) {
if(t <= .5) {
return (Math.sqrt(1 - t * t * 4) - 1) / -2;
} else {
return (Math.sqrt(1 - (t * 2 - 2) * (t * 2 - 2)) + 1) / 2;
}
};
flixel_tweens_FlxEase.expoIn = function(t) {
return Math.pow(2,10 * (t - 1));
};
flixel_tweens_FlxEase.expoOut = function(t) {
return -Math.pow(2,-10 * t) + 1;
};
flixel_tweens_FlxEase.expoInOut = function(t) {
if(t < .5) {
return Math.pow(2,10 * (t * 2 - 1)) / 2;
} else {
return (-Math.pow(2,-10 * (t * 2 - 1)) + 2) / 2;
}
};
flixel_tweens_FlxEase.backIn = function(t) {
return t * t * (2.70158 * t - 1.70158);
};
flixel_tweens_FlxEase.backOut = function(t) {
return 1 - --t * t * (-2.70158 * t - 1.70158);
};
flixel_tweens_FlxEase.backInOut = function(t) {
t *= 2;
if(t < 1) {
return t * t * (2.70158 * t - 1.70158) / 2;
}
--t;
return (1 - --t * t * (-2.70158 * t - 1.70158)) / 2 + .5;
};
flixel_tweens_FlxEase.elasticIn = function(t) {
return -(flixel_tweens_FlxEase.ELASTIC_AMPLITUDE * Math.pow(2,10 * --t) * Math.sin((t - flixel_tweens_FlxEase.ELASTIC_PERIOD / (2 * Math.PI) * Math.asin(1 / flixel_tweens_FlxEase.ELASTIC_AMPLITUDE)) * (2 * Math.PI) / flixel_tweens_FlxEase.ELASTIC_PERIOD));
};
flixel_tweens_FlxEase.elasticOut = function(t) {
return flixel_tweens_FlxEase.ELASTIC_AMPLITUDE * Math.pow(2,-10 * t) * Math.sin((t - flixel_tweens_FlxEase.ELASTIC_PERIOD / (2 * Math.PI) * Math.asin(1 / flixel_tweens_FlxEase.ELASTIC_AMPLITUDE)) * (2 * Math.PI) / flixel_tweens_FlxEase.ELASTIC_PERIOD) + 1;
};
flixel_tweens_FlxEase.elasticInOut = function(t) {
if(t < 0.5) {
return -0.5 * (Math.pow(2,10 * (t -= 0.5)) * Math.sin((t - flixel_tweens_FlxEase.ELASTIC_PERIOD / 4) * (2 * Math.PI) / flixel_tweens_FlxEase.ELASTIC_PERIOD));
}
return Math.pow(2,-10 * (t -= 0.5)) * Math.sin((t - flixel_tweens_FlxEase.ELASTIC_PERIOD / 4) * (2 * Math.PI) / flixel_tweens_FlxEase.ELASTIC_PERIOD) * 0.5 + 1;
};
var flixel_tweens_FlxTween = function(Options,manager) {
this._waitingForRestart = false;
this._running = false;
this._delayToUse = 0;
this._secondsSinceStart = 0;
this.loopDelay = 0;
this.startDelay = 0;
this.executions = 0;
this.scale = 0;
this.duration = 0;
this.active = false;
Options = this.resolveTweenOptions(Options);
this.set_type(Options.type);
this.onStart = Options.onStart;
this.onUpdate = Options.onUpdate;
this.onComplete = Options.onComplete;
this.ease = Options.ease;
this.setDelays(Options.startDelay,Options.loopDelay);
this.manager = manager != null ? manager : flixel_tweens_FlxTween.globalManager;
};
$hxClasses["flixel.tweens.FlxTween"] = flixel_tweens_FlxTween;
flixel_tweens_FlxTween.__name__ = "flixel.tweens.FlxTween";
flixel_tweens_FlxTween.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_tweens_FlxTween.globalManager = null;
flixel_tweens_FlxTween.tween = function(Object1,Values,Duration,Options) {
if(Duration == null) {
Duration = 1;
}
return flixel_tweens_FlxTween.globalManager.tween(Object1,Values,Duration,Options);
};
flixel_tweens_FlxTween.num = function(FromValue,ToValue,Duration,Options,TweenFunction) {
if(Duration == null) {
Duration = 1;
}
return flixel_tweens_FlxTween.globalManager.num(FromValue,ToValue,Duration,Options,TweenFunction);
};
flixel_tweens_FlxTween.angle = function(Sprite,FromAngle,ToAngle,Duration,Options) {
if(Duration == null) {
Duration = 1;
}
return flixel_tweens_FlxTween.globalManager.angle(Sprite,FromAngle,ToAngle,Duration,Options);
};
flixel_tweens_FlxTween.color = function(Sprite,Duration,FromColor,ToColor,Options) {
if(Duration == null) {
Duration = 1;
}
return flixel_tweens_FlxTween.globalManager.color(Sprite,Duration,FromColor,ToColor,Options);
};
flixel_tweens_FlxTween.linearMotion = function(Object1,FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
return flixel_tweens_FlxTween.globalManager.linearMotion(Object1,FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration,Options);
};
flixel_tweens_FlxTween.quadMotion = function(Object1,FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
return flixel_tweens_FlxTween.globalManager.quadMotion(Object1,FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration,Options);
};
flixel_tweens_FlxTween.cubicMotion = function(Object1,FromX,FromY,aX,aY,bX,bY,ToX,ToY,Duration,Options) {
if(Duration == null) {
Duration = 1;
}
return flixel_tweens_FlxTween.globalManager.cubicMotion(Object1,FromX,FromY,aX,aY,bX,bY,ToX,ToY,Duration,Options);
};
flixel_tweens_FlxTween.circularMotion = function(Object1,CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
return flixel_tweens_FlxTween.globalManager.circularMotion(Object1,CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration,Options);
};
flixel_tweens_FlxTween.linearPath = function(Object1,Points,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
return flixel_tweens_FlxTween.globalManager.linearPath(Object1,Points,DurationOrSpeed,UseDuration,Options);
};
flixel_tweens_FlxTween.quadPath = function(Object1,Points,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
return flixel_tweens_FlxTween.globalManager.quadPath(Object1,Points,DurationOrSpeed,UseDuration,Options);
};
flixel_tweens_FlxTween.prototype = {
manager: null
,active: null
,duration: null
,ease: null
,onStart: null
,onUpdate: null
,onComplete: null
,type: null
,finished: null
,scale: null
,backward: null
,executions: null
,startDelay: null
,loopDelay: null
,_secondsSinceStart: null
,_delayToUse: null
,_running: null
,_waitingForRestart: null
,_chainedTweens: null
,_nextTweenInChain: null
,resolveTweenOptions: function(Options) {
if(Options == null) {
Options = { type : 8};
}
if(Options.type == null) {
Options.type = 8;
}
return Options;
}
,destroy: function() {
this.onStart = null;
this.onUpdate = null;
this.onComplete = null;
this.ease = null;
this.manager = null;
this._chainedTweens = null;
this._nextTweenInChain = null;
}
,then: function(tween) {
return this.addChainedTween(tween);
}
,wait: function(delay) {
return this.addChainedTween(flixel_tweens_FlxTween.num(0,0,delay));
}
,addChainedTween: function(tween) {
tween.setVarsOnEnd();
tween.manager.remove(tween,false);
if(this._chainedTweens == null) {
this._chainedTweens = [];
}
this._chainedTweens.push(tween);
return this;
}
,update: function(elapsed) {
this._secondsSinceStart += elapsed;
var delay = this.executions > 0 ? this.loopDelay : this.startDelay;
if(this._secondsSinceStart < delay) {
return;
}
this.scale = Math.max(this._secondsSinceStart - delay,0) / this.duration;
if(this.ease != null) {
this.scale = this.ease(this.scale);
}
if(this.backward) {
this.scale = 1 - this.scale;
}
if(this._secondsSinceStart > delay && !this._running) {
this._running = true;
if(this.onStart != null) {
this.onStart(this);
}
}
if(this._secondsSinceStart >= this.duration + delay) {
this.scale = this.backward ? 0 : 1;
this.finished = true;
} else if(this.onUpdate != null) {
this.onUpdate(this);
}
}
,start: function() {
this._waitingForRestart = false;
this._secondsSinceStart = 0;
this._delayToUse = this.executions > 0 ? this.loopDelay : this.startDelay;
if(this.duration == 0) {
this.set_active(false);
return this;
}
this.set_active(true);
this._running = false;
this.finished = false;
return this;
}
,cancel: function() {
this.onEnd();
if(this.manager != null) {
this.manager.remove(this);
}
}
,cancelChain: function() {
if(this._nextTweenInChain != null) {
this._nextTweenInChain.cancelChain();
}
if(this._chainedTweens != null) {
this._chainedTweens = null;
}
this.cancel();
}
,finish: function() {
this.executions++;
if(this.onComplete != null) {
this.onComplete(this);
}
var type = this.type & ~16;
if(type == 1 || type == 8) {
this.onEnd();
this._secondsSinceStart = this.duration + this.startDelay;
if(type == 8 && this.manager != null) {
this.manager.remove(this);
}
}
if(type == 2 || type == 4) {
this._secondsSinceStart = (this._secondsSinceStart - this._delayToUse) % this.duration + this._delayToUse;
this.scale = Math.max(this._secondsSinceStart - this._delayToUse,0) / this.duration;
if(this.ease != null && this.scale > 0 && this.scale < 1) {
this.scale = this.ease(this.scale);
}
if(type == 4) {
this.backward = !this.backward;
if(this.backward) {
this.scale = 1 - this.scale;
}
}
this.restart();
}
}
,onEnd: function() {
this.setVarsOnEnd();
this.processTweenChain();
}
,setVarsOnEnd: function() {
this.set_active(false);
this._running = false;
this.finished = true;
}
,processTweenChain: function() {
if(this._chainedTweens == null || this._chainedTweens.length <= 0) {
return;
}
this._nextTweenInChain = this._chainedTweens.shift();
this.doNextTween(this._nextTweenInChain);
this._chainedTweens = null;
}
,doNextTween: function(tween) {
if(!tween.active) {
tween.start();
this.manager.add_flixel_tweens_FlxTween(tween);
}
tween.setChain(this._chainedTweens);
}
,setChain: function(previousChain) {
if(previousChain == null) {
return;
}
if(this._chainedTweens == null) {
this._chainedTweens = previousChain;
} else {
this._chainedTweens = this._chainedTweens.concat(previousChain);
}
}
,restart: function() {
if(this.active) {
this.start();
} else {
this._waitingForRestart = true;
}
}
,setDelays: function(StartDelay,LoopDelay) {
this.set_startDelay(StartDelay != null ? StartDelay : 0);
this.set_loopDelay(LoopDelay != null ? LoopDelay : 0);
return this;
}
,set_startDelay: function(value) {
var dly = Math.abs(value);
if(this.executions == 0) {
this._secondsSinceStart = this.duration * (Math.max(this._secondsSinceStart - this._delayToUse,0) / this.duration) + Math.max(dly - this.startDelay,0);
this._delayToUse = dly;
}
return this.startDelay = dly;
}
,set_loopDelay: function(value) {
var dly = Math.abs(value);
if(this.executions > 0) {
this._secondsSinceStart = this.duration * (Math.max(this._secondsSinceStart - this._delayToUse,0) / this.duration) + Math.max(dly - this.loopDelay,0);
this._delayToUse = dly;
}
return this.loopDelay = dly;
}
,get_percent: function() {
return Math.max(this._secondsSinceStart - this._delayToUse,0) / this.duration;
}
,set_percent: function(value) {
return this._secondsSinceStart = this.duration * value + this._delayToUse;
}
,set_type: function(value) {
if(value == 0) {
value = 8;
} else if(value == 16) {
value = 1 | 16;
}
this.backward = (value & 16) > 0;
return this.type = value;
}
,set_active: function(active) {
this.active = active;
if(this._waitingForRestart) {
this.restart();
}
return active;
}
,__class__: flixel_tweens_FlxTween
,__properties__: {set_loopDelay:"set_loopDelay",set_startDelay:"set_startDelay",set_percent:"set_percent",get_percent:"get_percent",set_type:"set_type",set_active:"set_active"}
};
var flixel_tweens_FlxTweenManager = function() {
this._tweens = [];
flixel_FlxBasic.call(this);
this.set_visible(false);
flixel_FlxG.signals.preStateSwitch.add($bind(this,this.clear));
};
$hxClasses["flixel.tweens.FlxTweenManager"] = flixel_tweens_FlxTweenManager;
flixel_tweens_FlxTweenManager.__name__ = "flixel.tweens.FlxTweenManager";
flixel_tweens_FlxTweenManager.__super__ = flixel_FlxBasic;
flixel_tweens_FlxTweenManager.prototype = $extend(flixel_FlxBasic.prototype,{
add_flixel_tweens_motion_QuadPath: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_motion_LinearPath: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_motion_CircularMotion: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_motion_CubicMotion: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_motion_QuadMotion: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_motion_LinearMotion: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_misc_ColorTween: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_misc_AngleTween: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_misc_NumTween: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_FlxTween: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,add_flixel_tweens_misc_VarTween: function(Tween,Start) {
if(Start == null) {
Start = false;
}
if(Tween == null) {
return null;
}
this._tweens.push(Tween);
if(Start) {
Tween.start();
}
return Tween;
}
,_tweens: null
,tween: function(Object1,Values,Duration,Options) {
if(Duration == null) {
Duration = 1;
}
var tween = new flixel_tweens_misc_VarTween(Options,this);
tween.tween(Object1,Values,Duration);
return this.add_flixel_tweens_misc_VarTween(tween);
}
,num: function(FromValue,ToValue,Duration,Options,TweenFunction) {
if(Duration == null) {
Duration = 1;
}
var tween = new flixel_tweens_misc_NumTween(Options,this);
tween.tween(FromValue,ToValue,Duration,TweenFunction);
return this.add_flixel_tweens_misc_NumTween(tween);
}
,angle: function(Sprite,FromAngle,ToAngle,Duration,Options) {
if(Duration == null) {
Duration = 1;
}
var tween = new flixel_tweens_misc_AngleTween(Options,this);
tween.tween(FromAngle,ToAngle,Duration,Sprite);
return this.add_flixel_tweens_misc_AngleTween(tween);
}
,color: function(Sprite,Duration,FromColor,ToColor,Options) {
if(Duration == null) {
Duration = 1;
}
var tween = new flixel_tweens_misc_ColorTween(Options,this);
tween.tween(Duration,FromColor,ToColor,Sprite);
return this.add_flixel_tweens_misc_ColorTween(tween);
}
,linearMotion: function(Object1,FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
var tween = new flixel_tweens_motion_LinearMotion(Options,this);
tween.setObject(Object1);
tween.setMotion(FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration);
return this.add_flixel_tweens_motion_LinearMotion(tween);
}
,quadMotion: function(Object1,FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
var tween = new flixel_tweens_motion_QuadMotion(Options,this);
tween.setObject(Object1);
tween.setMotion(FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration);
return this.add_flixel_tweens_motion_QuadMotion(tween);
}
,cubicMotion: function(Object1,FromX,FromY,aX,aY,bX,bY,ToX,ToY,Duration,Options) {
if(Duration == null) {
Duration = 1;
}
var tween = new flixel_tweens_motion_CubicMotion(Options,this);
tween.setObject(Object1);
tween.setMotion(FromX,FromY,aX,aY,bX,bY,ToX,ToY,Duration);
return this.add_flixel_tweens_motion_CubicMotion(tween);
}
,circularMotion: function(Object1,CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
var tween = new flixel_tweens_motion_CircularMotion(Options,this);
tween.setObject(Object1);
tween.setMotion(CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration);
return this.add_flixel_tweens_motion_CircularMotion(tween);
}
,linearPath: function(Object1,Points,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
var tween = new flixel_tweens_motion_LinearPath(Options,this);
if(Points != null) {
var _g = 0;
while(_g < Points.length) {
var point = Points[_g];
++_g;
tween.addPoint(point.x,point.y);
}
}
tween.setObject(Object1);
tween.setMotion(DurationOrSpeed,UseDuration);
return this.add_flixel_tweens_motion_LinearPath(tween);
}
,quadPath: function(Object1,Points,DurationOrSpeed,UseDuration,Options) {
if(UseDuration == null) {
UseDuration = true;
}
if(DurationOrSpeed == null) {
DurationOrSpeed = 1;
}
var tween = new flixel_tweens_motion_QuadPath(Options,this);
if(Points != null) {
var _g = 0;
while(_g < Points.length) {
var point = Points[_g];
++_g;
tween.addPoint(point.x,point.y);
}
}
tween.setObject(Object1);
tween.setMotion(DurationOrSpeed,UseDuration);
return this.add_flixel_tweens_motion_QuadPath(tween);
}
,destroy: function() {
flixel_FlxBasic.prototype.destroy.call(this);
flixel_FlxG.signals.preStateSwitch.remove($bind(this,this.clear));
}
,update: function(elapsed) {
var finishedTweens = null;
var _g = 0;
var _g1 = this._tweens;
while(_g < _g1.length) {
var tween = _g1[_g];
++_g;
if(!tween.active) {
continue;
}
tween.update(elapsed);
if(tween.finished) {
if(finishedTweens == null) {
finishedTweens = [];
}
finishedTweens.push(tween);
}
}
if(finishedTweens != null) {
while(finishedTweens.length > 0) finishedTweens.shift().finish();
}
}
,remove: function(Tween,Destroy) {
if(Destroy == null) {
Destroy = true;
}
if(Tween == null) {
return null;
}
Tween.set_active(false);
if(Destroy) {
Tween.destroy();
}
var array = this._tweens;
var index = array.indexOf(Tween);
if(index != -1) {
array[index] = array[array.length - 1];
array.pop();
}
return Tween;
}
,clear: function() {
var _g = 0;
var _g1 = this._tweens;
while(_g < _g1.length) {
var tween = _g1[_g];
++_g;
if(tween != null) {
tween.set_active(false);
tween.destroy();
}
}
this._tweens.splice(0,this._tweens.length);
}
,completeAll: function() {
var _g = 0;
var _g1 = this._tweens;
while(_g < _g1.length) {
var tween = _g1[_g];
++_g;
if((tween.type & 2) == 0 && (tween.type & 4) == 0 && tween.active) {
tween.update(1.79e+308);
}
}
}
,forEach: function(Function1) {
var _g = 0;
var _g1 = this._tweens;
while(_g < _g1.length) {
var tween = _g1[_g];
++_g;
Function1(tween);
}
}
,__class__: flixel_tweens_FlxTweenManager
});
var flixel_tweens_misc_AngleTween = function(Options,manager) {
flixel_tweens_FlxTween.call(this,Options,manager);
};
$hxClasses["flixel.tweens.misc.AngleTween"] = flixel_tweens_misc_AngleTween;
flixel_tweens_misc_AngleTween.__name__ = "flixel.tweens.misc.AngleTween";
flixel_tweens_misc_AngleTween.__super__ = flixel_tweens_FlxTween;
flixel_tweens_misc_AngleTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{
angle: null
,sprite: null
,_start: null
,_range: null
,destroy: function() {
flixel_tweens_FlxTween.prototype.destroy.call(this);
this.sprite = null;
}
,tween: function(FromAngle,ToAngle,Duration,Sprite) {
this._start = this.angle = FromAngle;
this._range = ToAngle - this.angle;
this.duration = Duration;
this.sprite = Sprite;
if(this.sprite != null) {
this.sprite.set_angle(this.angle % 360);
}
this.start();
return this;
}
,update: function(elapsed) {
flixel_tweens_FlxTween.prototype.update.call(this,elapsed);
this.angle = this._start + this._range * this.scale;
if(this.sprite != null) {
var spriteAngle = this.angle % 360;
this.sprite.set_angle(spriteAngle);
}
}
,__class__: flixel_tweens_misc_AngleTween
});
var flixel_tweens_misc_ColorTween = function(Options,manager) {
flixel_tweens_FlxTween.call(this,Options,manager);
};
$hxClasses["flixel.tweens.misc.ColorTween"] = flixel_tweens_misc_ColorTween;
flixel_tweens_misc_ColorTween.__name__ = "flixel.tweens.misc.ColorTween";
flixel_tweens_misc_ColorTween.__super__ = flixel_tweens_FlxTween;
flixel_tweens_misc_ColorTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{
color: null
,startColor: null
,endColor: null
,sprite: null
,destroy: function() {
flixel_tweens_FlxTween.prototype.destroy.call(this);
this.sprite = null;
}
,tween: function(Duration,FromColor,ToColor,Sprite) {
this.color = this.startColor = FromColor;
this.endColor = ToColor;
this.duration = Duration;
this.sprite = Sprite;
this.start();
return this;
}
,update: function(elapsed) {
flixel_tweens_FlxTween.prototype.update.call(this,elapsed);
var Color1 = this.startColor;
var Color2 = this.endColor;
var Factor = this.scale;
if(Factor == null) {
Factor = 0.5;
}
var r = ((Color2 >> 16 & 255) - (Color1 >> 16 & 255)) * Factor + (Color1 >> 16 & 255) | 0;
var g = ((Color2 >> 8 & 255) - (Color1 >> 8 & 255)) * Factor + (Color1 >> 8 & 255) | 0;
var b = ((Color2 & 255) - (Color1 & 255)) * Factor + (Color1 & 255) | 0;
var a = ((Color2 >> 24 & 255) - (Color1 >> 24 & 255)) * Factor + (Color1 >> 24 & 255) | 0;
var Alpha = a;
if(Alpha == null) {
Alpha = 255;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 255;
}
color &= -16711681;
color |= (r > 255 ? 255 : r < 0 ? 0 : r) << 16;
color &= -65281;
color |= (g > 255 ? 255 : g < 0 ? 0 : g) << 8;
color &= -256;
color |= b > 255 ? 255 : b < 0 ? 0 : b;
color &= 16777215;
color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24;
this.color = color;
if(this.sprite != null) {
this.sprite.set_color(this.color);
this.sprite.set_alpha((this.color >> 24 & 255) / 255);
}
}
,__class__: flixel_tweens_misc_ColorTween
});
var flixel_tweens_misc_NumTween = function(Options,manager) {
flixel_tweens_FlxTween.call(this,Options,manager);
};
$hxClasses["flixel.tweens.misc.NumTween"] = flixel_tweens_misc_NumTween;
flixel_tweens_misc_NumTween.__name__ = "flixel.tweens.misc.NumTween";
flixel_tweens_misc_NumTween.__super__ = flixel_tweens_FlxTween;
flixel_tweens_misc_NumTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{
value: null
,_tweenFunction: null
,_start: null
,_range: null
,destroy: function() {
flixel_tweens_FlxTween.prototype.destroy.call(this);
this._tweenFunction = null;
}
,tween: function(fromValue,toValue,duration,tweenFunction) {
this._tweenFunction = tweenFunction;
this._start = this.value = fromValue;
this._range = toValue - this.value;
this.duration = duration;
this.start();
return this;
}
,update: function(elapsed) {
flixel_tweens_FlxTween.prototype.update.call(this,elapsed);
this.value = this._start + this._range * this.scale;
if(this._tweenFunction != null) {
this._tweenFunction(this.value);
}
}
,__class__: flixel_tweens_misc_NumTween
});
var flixel_tweens_misc_VarTween = function(options,manager) {
flixel_tweens_FlxTween.call(this,options,manager);
};
$hxClasses["flixel.tweens.misc.VarTween"] = flixel_tweens_misc_VarTween;
flixel_tweens_misc_VarTween.__name__ = "flixel.tweens.misc.VarTween";
flixel_tweens_misc_VarTween.__super__ = flixel_tweens_FlxTween;
flixel_tweens_misc_VarTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{
_object: null
,_properties: null
,_propertyInfos: null
,tween: function(object,properties,duration) {
this._object = object;
this._properties = properties;
this._propertyInfos = [];
this.duration = duration;
this.start();
return this;
}
,update: function(elapsed) {
var delay = this.executions > 0 ? this.loopDelay : this.startDelay;
if(this._secondsSinceStart < delay) {
flixel_tweens_FlxTween.prototype.update.call(this,elapsed);
} else {
if(this._propertyInfos.length == 0) {
this.initializeVars();
}
flixel_tweens_FlxTween.prototype.update.call(this,elapsed);
var _g = 0;
var _g1 = this._propertyInfos;
while(_g < _g1.length) {
var info = _g1[_g];
++_g;
Reflect.setProperty(info.object,info.field,info.startValue + info.range * this.scale);
}
}
}
,initializeVars: function() {
var fieldPaths;
if(Reflect.isObject(this._properties)) {
fieldPaths = Reflect.fields(this._properties);
} else {
throw haxe_Exception.thrown("Unsupported properties container - use an object containing key/value pairs.");
}
var _g = 0;
while(_g < fieldPaths.length) {
var fieldPath = fieldPaths[_g];
++_g;
var target = this._object;
var path = fieldPath.split(".");
var field = path.pop();
var _g1 = 0;
while(_g1 < path.length) {
var component = path[_g1];
++_g1;
target = Reflect.getProperty(target,component);
if(!Reflect.isObject(target)) {
throw haxe_Exception.thrown("The object does not have the property \"" + component + "\" in \"" + fieldPath + "\"");
}
}
if(Reflect.getProperty(target,field) == null) {
throw haxe_Exception.thrown("The object does not have the property \"" + field + "\"");
}
var value = Reflect.getProperty(target,field);
if(isNaN(value)) {
throw haxe_Exception.thrown("The property \"" + field + "\" is not numeric.");
}
var targetValue = Reflect.getProperty(this._properties,fieldPath);
this._propertyInfos.push({ object : target, field : field, startValue : value, range : targetValue - value});
}
}
,destroy: function() {
flixel_tweens_FlxTween.prototype.destroy.call(this);
this._object = null;
this._properties = null;
this._propertyInfos = null;
}
,__class__: flixel_tweens_misc_VarTween
});
var flixel_tweens_motion_Motion = function(Options,manager) {
this.y = 0;
this.x = 0;
flixel_tweens_FlxTween.call(this,Options,manager);
};
$hxClasses["flixel.tweens.motion.Motion"] = flixel_tweens_motion_Motion;
flixel_tweens_motion_Motion.__name__ = "flixel.tweens.motion.Motion";
flixel_tweens_motion_Motion.__super__ = flixel_tweens_FlxTween;
flixel_tweens_motion_Motion.prototype = $extend(flixel_tweens_FlxTween.prototype,{
x: null
,y: null
,_object: null
,_wasObjectImmovable: null
,destroy: function() {
flixel_tweens_FlxTween.prototype.destroy.call(this);
this._object = null;
}
,setObject: function(object) {
this._object = object;
this._wasObjectImmovable = this._object.immovable;
this._object.set_immovable(true);
return this;
}
,update: function(elapsed) {
flixel_tweens_FlxTween.prototype.update.call(this,elapsed);
this.postUpdate();
}
,onEnd: function() {
this._object.set_immovable(this._wasObjectImmovable);
flixel_tweens_FlxTween.prototype.onEnd.call(this);
}
,postUpdate: function() {
if(this._object != null) {
this._object.setPosition(this.x,this.y);
}
}
,__class__: flixel_tweens_motion_Motion
});
var flixel_tweens_motion_CircularMotion = function(Options,manager) {
this._angleFinish = 0;
this._angleStart = 0;
this._radius = 0;
this._centerY = 0;
this._centerX = 0;
this.angle = 0;
flixel_tweens_motion_Motion.call(this,Options,manager);
};
$hxClasses["flixel.tweens.motion.CircularMotion"] = flixel_tweens_motion_CircularMotion;
flixel_tweens_motion_CircularMotion.__name__ = "flixel.tweens.motion.CircularMotion";
flixel_tweens_motion_CircularMotion.__super__ = flixel_tweens_motion_Motion;
flixel_tweens_motion_CircularMotion.prototype = $extend(flixel_tweens_motion_Motion.prototype,{
angle: null
,_centerX: null
,_centerY: null
,_radius: null
,_angleStart: null
,_angleFinish: null
,setMotion: function(CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration) {
if(UseDuration == null) {
UseDuration = true;
}
this._centerX = CenterX;
this._centerY = CenterY;
this._radius = Radius;
this.angle = this._angleStart = Angle * Math.PI / -180;
this._angleFinish = Math.PI * 2 * (Clockwise ? 1 : -1);
if(UseDuration) {
this.duration = DurationOrSpeed;
} else {
this.duration = this._radius * (Math.PI * 2) / DurationOrSpeed;
}
this.start();
return this;
}
,update: function(elapsed) {
flixel_tweens_motion_Motion.prototype.update.call(this,elapsed);
this.angle = this._angleStart + this._angleFinish * this.scale;
this.x = this._centerX + Math.cos(this.angle) * this._radius;
this.y = this._centerY + Math.sin(this.angle) * this._radius;
if(this.finished) {
this.postUpdate();
}
}
,get_circumference: function() {
return this._radius * (Math.PI * 2);
}
,__class__: flixel_tweens_motion_CircularMotion
,__properties__: $extend(flixel_tweens_motion_Motion.prototype.__properties__,{get_circumference:"get_circumference"})
});
var flixel_tweens_motion_CubicMotion = function(Options,manager) {
this._tt = 0;
this._ttt = 0;
this._bY = 0;
this._bX = 0;
this._aY = 0;
this._aX = 0;
this._toY = 0;
this._toX = 0;
this._fromY = 0;
this._fromX = 0;
flixel_tweens_motion_Motion.call(this,Options,manager);
};
$hxClasses["flixel.tweens.motion.CubicMotion"] = flixel_tweens_motion_CubicMotion;
flixel_tweens_motion_CubicMotion.__name__ = "flixel.tweens.motion.CubicMotion";
flixel_tweens_motion_CubicMotion.__super__ = flixel_tweens_motion_Motion;
flixel_tweens_motion_CubicMotion.prototype = $extend(flixel_tweens_motion_Motion.prototype,{
_fromX: null
,_fromY: null
,_toX: null
,_toY: null
,_aX: null
,_aY: null
,_bX: null
,_bY: null
,_ttt: null
,_tt: null
,setMotion: function(fromX,fromY,aX,aY,bX,bY,toX,toY,duration) {
this.x = this._fromX = fromX;
this.y = this._fromY = fromY;
this._aX = aX;
this._aY = aY;
this._bX = bX;
this._bY = bY;
this._toX = toX;
this._toY = toY;
this.duration = duration;
this.start();
return this;
}
,update: function(elapsed) {
flixel_tweens_motion_Motion.prototype.update.call(this,elapsed);
this.x = this.scale * this.scale * this.scale * (this._toX + 3 * (this._aX - this._bX) - this._fromX) + 3 * this.scale * this.scale * (this._fromX - 2 * this._aX + this._bX) + 3 * this.scale * (this._aX - this._fromX) + this._fromX;
this.y = this.scale * this.scale * this.scale * (this._toY + 3 * (this._aY - this._bY) - this._fromY) + 3 * this.scale * this.scale * (this._fromY - 2 * this._aY + this._bY) + 3 * this.scale * (this._aY - this._fromY) + this._fromY;
if(this.finished) {
this.postUpdate();
}
}
,__class__: flixel_tweens_motion_CubicMotion
});
var flixel_tweens_motion_LinearMotion = function(Options,manager) {
this._distance = -1;
this._moveY = 0;
this._moveX = 0;
this._fromY = 0;
this._fromX = 0;
flixel_tweens_motion_Motion.call(this,Options,manager);
};
$hxClasses["flixel.tweens.motion.LinearMotion"] = flixel_tweens_motion_LinearMotion;
flixel_tweens_motion_LinearMotion.__name__ = "flixel.tweens.motion.LinearMotion";
flixel_tweens_motion_LinearMotion.__super__ = flixel_tweens_motion_Motion;
flixel_tweens_motion_LinearMotion.prototype = $extend(flixel_tweens_motion_Motion.prototype,{
_fromX: null
,_fromY: null
,_moveX: null
,_moveY: null
,_distance: null
,setMotion: function(FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration) {
if(UseDuration == null) {
UseDuration = true;
}
this._distance = -1;
this.x = this._fromX = FromX;
this.y = this._fromY = FromY;
this._moveX = ToX - FromX;
this._moveY = ToY - FromY;
if(UseDuration) {
this.duration = DurationOrSpeed;
} else {
this.duration = this.get_distance() / DurationOrSpeed;
}
this.start();
return this;
}
,update: function(elapsed) {
flixel_tweens_motion_Motion.prototype.update.call(this,elapsed);
this.x = this._fromX + this._moveX * this.scale;
this.y = this._fromY + this._moveY * this.scale;
if(this.x == this._fromX + this._moveX && this.y == this._fromY + this._moveY && this.active && this._secondsSinceStart >= this.duration) {
this.finished = true;
}
if(this.finished) {
this.postUpdate();
}
}
,get_distance: function() {
if(this._distance >= 0) {
return this._distance;
}
return this._distance = Math.sqrt(this._moveX * this._moveX + this._moveY * this._moveY);
}
,__class__: flixel_tweens_motion_LinearMotion
,__properties__: $extend(flixel_tweens_motion_Motion.prototype.__properties__,{get_distance:"get_distance"})
});
var flixel_tweens_motion_LinearPath = function(Options,manager) {
this._index = 0;
this._speed = 0;
this.distance = 0;
flixel_tweens_motion_Motion.call(this,Options,manager);
this.points = [];
this._pointD = [0];
this._pointT = [0];
};
$hxClasses["flixel.tweens.motion.LinearPath"] = flixel_tweens_motion_LinearPath;
flixel_tweens_motion_LinearPath.__name__ = "flixel.tweens.motion.LinearPath";
flixel_tweens_motion_LinearPath.__super__ = flixel_tweens_motion_Motion;
flixel_tweens_motion_LinearPath.prototype = $extend(flixel_tweens_motion_Motion.prototype,{
distance: null
,points: null
,_pointD: null
,_pointT: null
,_speed: null
,_index: null
,_last: null
,_prevPoint: null
,_nextPoint: null
,destroy: function() {
flixel_tweens_motion_Motion.prototype.destroy.call(this);
var _g = 0;
var _g1 = this.points;
while(_g < _g1.length) {
var point = _g1[_g];
++_g;
point = flixel_util_FlxDestroyUtil.put(point);
}
this._last = flixel_util_FlxDestroyUtil.put(this._last);
this._prevPoint = flixel_util_FlxDestroyUtil.put(this._prevPoint);
this._nextPoint = flixel_util_FlxDestroyUtil.put(this._nextPoint);
}
,setMotion: function(DurationOrSpeed,UseDuration) {
if(UseDuration == null) {
UseDuration = true;
}
this.updatePath();
if(UseDuration) {
this.duration = DurationOrSpeed;
this._speed = this.distance / DurationOrSpeed;
} else {
this.duration = this.distance / DurationOrSpeed;
this._speed = DurationOrSpeed;
}
this.start();
return this;
}
,addPoint: function(x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
if(this._last != null) {
this.distance += Math.sqrt((x - this._last.x) * (x - this._last.x) + (y - this._last.y) * (y - this._last.y));
this._pointD[this.points.length] = this.distance;
}
var tmp = this.points;
var tmp1 = this.points.length;
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
tmp[tmp1] = this._last = point;
return this;
}
,getPoint: function(index) {
if(index == null) {
index = 0;
}
if(this.points.length == 0) {
throw haxe_Exception.thrown("No points have been added to the path yet.");
}
return this.points[index % this.points.length];
}
,start: function() {
this._index = this.backward ? this.points.length - 1 : 0;
flixel_tweens_motion_Motion.prototype.start.call(this);
return this;
}
,update: function(elapsed) {
flixel_tweens_motion_Motion.prototype.update.call(this,elapsed);
var td;
var tt;
if(this.points == null) {
return;
}
if(!this.backward) {
if(this._index < this.points.length - 1) {
while(this.scale > this._pointT[this._index + 1]) {
this._index++;
if(this._index == this.points.length - 1) {
this._index -= 1;
break;
}
}
}
td = this._pointT[this._index];
tt = this._pointT[this._index + 1] - td;
td = (this.scale - td) / tt;
this._prevPoint = this.points[this._index];
this._nextPoint = this.points[this._index + 1];
this.x = this._prevPoint.x + (this._nextPoint.x - this._prevPoint.x) * td;
this.y = this._prevPoint.y + (this._nextPoint.y - this._prevPoint.y) * td;
} else {
if(this._index > 0) {
while(this.scale < this._pointT[this._index - 1]) {
this._index -= 1;
if(this._index == 0) {
this._index += 1;
break;
}
}
}
td = this._pointT[this._index];
tt = this._pointT[this._index - 1] - td;
td = (this.scale - td) / tt;
this._prevPoint = this.points[this._index];
this._nextPoint = this.points[this._index - 1];
this.x = this._prevPoint.x + (this._nextPoint.x - this._prevPoint.x) * td;
this.y = this._prevPoint.y + (this._nextPoint.y - this._prevPoint.y) * td;
}
flixel_tweens_motion_Motion.prototype.postUpdate.call(this);
}
,updatePath: function() {
if(this.points.length < 2) {
throw haxe_Exception.thrown("A LinearPath must have at least 2 points to operate.");
}
if(this._pointD.length == this._pointT.length) {
return;
}
var i = 0;
while(i < this.points.length) this._pointT[i] = this._pointD[i++] / this.distance;
}
,__class__: flixel_tweens_motion_LinearPath
});
var flixel_tweens_motion_QuadMotion = function(Options,manager) {
this._controlY = 0;
this._controlX = 0;
this._toY = 0;
this._toX = 0;
this._fromY = 0;
this._fromX = 0;
this._distance = -1;
flixel_tweens_motion_Motion.call(this,Options,manager);
};
$hxClasses["flixel.tweens.motion.QuadMotion"] = flixel_tweens_motion_QuadMotion;
flixel_tweens_motion_QuadMotion.__name__ = "flixel.tweens.motion.QuadMotion";
flixel_tweens_motion_QuadMotion.__super__ = flixel_tweens_motion_Motion;
flixel_tweens_motion_QuadMotion.prototype = $extend(flixel_tweens_motion_Motion.prototype,{
_distance: null
,_fromX: null
,_fromY: null
,_toX: null
,_toY: null
,_controlX: null
,_controlY: null
,setMotion: function(FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration) {
if(UseDuration == null) {
UseDuration = true;
}
this._distance = -1;
this.x = this._fromX = FromX;
this.y = this._fromY = FromY;
this._controlX = ControlX;
this._controlY = ControlY;
this._toX = ToX;
this._toY = ToY;
if(UseDuration) {
this.duration = DurationOrSpeed;
} else {
this.duration = this.get_distance() / DurationOrSpeed;
}
this.start();
return this;
}
,update: function(elapsed) {
flixel_tweens_motion_Motion.prototype.update.call(this,elapsed);
this.x = this._fromX * (1 - this.scale) * (1 - this.scale) + this._controlX * 2 * (1 - this.scale) * this.scale + this._toX * this.scale * this.scale;
this.y = this._fromY * (1 - this.scale) * (1 - this.scale) + this._controlY * 2 * (1 - this.scale) * this.scale + this._toY * this.scale * this.scale;
if(this.finished) {
this.postUpdate();
}
}
,get_distance: function() {
if(this._distance >= 0) {
return this._distance;
}
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var p1 = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var p2 = point;
p1.set_x(this.x - 2 * this._controlX + this._toX);
p1.set_y(this.y - 2 * this._controlY + this._toY);
p2.set_x(2 * this._controlX - 2 * this.x);
p2.set_y(2 * this._controlY - 2 * this.y);
var a = 4 * (p1.x * p1.x + p1.y * p1.y);
var b = 4 * (p1.x * p2.x + p1.y * p2.y);
var c = p2.x * p2.x + p2.y * p2.y;
var abc = 2 * Math.sqrt(a + b + c);
var a2 = Math.sqrt(a);
var a32 = 2 * a * a2;
var c2 = 2 * Math.sqrt(c);
var ba = b / a2;
p1.put();
p2.put();
return (a32 * abc + a2 * b * (abc - c2) + (4 * c * a - b * b) * Math.log((2 * a2 + ba + abc) / (ba + c2))) / (4 * a32);
}
,__class__: flixel_tweens_motion_QuadMotion
,__properties__: $extend(flixel_tweens_motion_Motion.prototype.__properties__,{get_distance:"get_distance"})
});
var flixel_tweens_motion_QuadPath = function(Options,manager) {
this._updateCurve = true;
this._numSegs = 0;
this._index = 0;
this._speed = 0;
this._distance = 0;
flixel_tweens_motion_Motion.call(this,Options,manager);
this._points = [];
this._curveT = [];
this._curveD = [];
};
$hxClasses["flixel.tweens.motion.QuadPath"] = flixel_tweens_motion_QuadPath;
flixel_tweens_motion_QuadPath.__name__ = "flixel.tweens.motion.QuadPath";
flixel_tweens_motion_QuadPath.__super__ = flixel_tweens_motion_Motion;
flixel_tweens_motion_QuadPath.prototype = $extend(flixel_tweens_motion_Motion.prototype,{
_points: null
,_distance: null
,_speed: null
,_index: null
,_numSegs: null
,_updateCurve: null
,_curveT: null
,_curveD: null
,_a: null
,_b: null
,_c: null
,destroy: function() {
flixel_tweens_motion_Motion.prototype.destroy.call(this);
var _g = 0;
var _g1 = this._points;
while(_g < _g1.length) {
var point = _g1[_g];
++_g;
point = flixel_util_FlxDestroyUtil.put(point);
}
this._a = flixel_util_FlxDestroyUtil.put(this._a);
this._b = flixel_util_FlxDestroyUtil.put(this._b);
this._c = flixel_util_FlxDestroyUtil.put(this._c);
}
,setMotion: function(DurationOrSpeed,UseDuration) {
if(UseDuration == null) {
UseDuration = true;
}
this.updatePath();
if(UseDuration) {
this.duration = DurationOrSpeed;
this._speed = this._distance / DurationOrSpeed;
} else {
this.duration = this._distance / DurationOrSpeed;
this._speed = DurationOrSpeed;
}
this.start();
return this;
}
,addPoint: function(x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
this._updateCurve = true;
var tmp = this._points;
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
tmp.push(point);
return this;
}
,getPoint: function(index) {
if(index == null) {
index = 0;
}
if(this._points.length == 0) {
throw haxe_Exception.thrown("No points have been added to the path yet.");
}
return this._points[index % this._points.length];
}
,start: function() {
this._index = this.backward ? this._numSegs - 1 : 0;
flixel_tweens_motion_Motion.prototype.start.call(this);
return this;
}
,update: function(elapsed) {
flixel_tweens_motion_Motion.prototype.update.call(this,elapsed);
var td;
var tt;
if(!this.backward && this._points != null) {
if(this._index < this._numSegs - 1) {
while(this.scale > this._curveT[this._index + 1]) {
this._index++;
if(this._index == this._numSegs - 1) {
break;
}
}
}
td = this._curveT[this._index];
tt = this._curveT[this._index + 1] - td;
td = (this.scale - td) / tt;
this._a = this._points[this._index * 2];
this._b = this._points[this._index * 2 + 1];
this._c = this._points[this._index * 2 + 2];
this.x = this._a.x * (1 - td) * (1 - td) + this._b.x * 2 * (1 - td) * td + this._c.x * td * td;
this.y = this._a.y * (1 - td) * (1 - td) + this._b.y * 2 * (1 - td) * td + this._c.y * td * td;
} else if(this._points != null) {
if(this._index > 0) {
while(this.scale < this._curveT[this._index]) {
this._index--;
if(this._index == 0) {
break;
}
}
}
td = this._curveT[this._index + 1];
tt = this._curveT[this._index] - td;
td = (this.scale - td) / tt;
this._a = this._points[this._index * 2 + 2];
this._b = this._points[this._index * 2 + 1];
this._c = this._points[this._index * 2];
this.x = this._a.x * (1 - td) * (1 - td) + this._b.x * 2 * (1 - td) * td + this._c.x * td * td;
this.y = this._a.y * (1 - td) * (1 - td) + this._b.y * 2 * (1 - td) * td + this._c.y * td * td;
}
flixel_tweens_motion_Motion.prototype.postUpdate.call(this);
}
,updatePath: function() {
if((this._points.length - 1) % 2 != 0 || this._points.length < 3) {
throw haxe_Exception.thrown("A QuadPath must have at least 3 points to operate and number of points must be a odd.");
}
if(!this._updateCurve) {
return;
}
this._updateCurve = false;
var i = 0;
var j = 0;
this._distance = 0;
this._numSegs = (this._points.length - 1) / 2 | 0;
while(i < this._numSegs) {
j = i * 2;
this._curveD[i] = this.getCurveLength(this._points[j],this._points[j + 1],this._points[j + 2]);
this._distance += this._curveD[i++];
}
i = 0;
var d = 0;
while(i < this._numSegs) {
d += this._curveD[i];
this._curveT[i++] = d / this._distance;
}
this._curveT[this._numSegs - 1] = 1;
this._curveT.unshift(0);
}
,getCurveLength: function(start,control,finish) {
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var p1 = point;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var p2 = point;
p1.set_x(start.x - 2 * control.x + finish.x);
p1.set_y(start.y - 2 * control.y + finish.y);
p2.set_x(2 * control.x - 2 * start.x);
p2.set_y(2 * control.y - 2 * start.y);
var a = 4 * (p1.x * p1.x + p1.y * p1.y);
var b = 4 * (p1.x * p2.x + p1.y * p2.y);
var c = p2.x * p2.x + p2.y * p2.y;
var abc = 2 * Math.sqrt(a + b + c);
var a2 = Math.sqrt(a);
var a32 = 2 * a * a2;
var c2 = 2 * Math.sqrt(c);
var ba = b / a2;
p1.put();
p2.put();
return (a32 * abc + a2 * b * (abc - c2) + (4 * c * a - b * b) * Math.log((2 * a2 + ba + abc) / (ba + c2))) / (4 * a32);
}
,__class__: flixel_tweens_motion_QuadPath
});
var flixel_ui_FlxBarFillDirection = $hxEnums["flixel.ui.FlxBarFillDirection"] = { __ename__ : "flixel.ui.FlxBarFillDirection", __constructs__ : ["LEFT_TO_RIGHT","RIGHT_TO_LEFT","TOP_TO_BOTTOM","BOTTOM_TO_TOP","HORIZONTAL_INSIDE_OUT","HORIZONTAL_OUTSIDE_IN","VERTICAL_INSIDE_OUT","VERTICAL_OUTSIDE_IN"]
,LEFT_TO_RIGHT: {_hx_index:0,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr}
,RIGHT_TO_LEFT: {_hx_index:1,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr}
,TOP_TO_BOTTOM: {_hx_index:2,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr}
,BOTTOM_TO_TOP: {_hx_index:3,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr}
,HORIZONTAL_INSIDE_OUT: {_hx_index:4,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr}
,HORIZONTAL_OUTSIDE_IN: {_hx_index:5,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr}
,VERTICAL_INSIDE_OUT: {_hx_index:6,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr}
,VERTICAL_OUTSIDE_IN: {_hx_index:7,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr}
};
var flixel_ui_FlxTypedButton_$flixel_$text_$FlxText = function(X,Y,OnClick) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.lastStatus = -1;
this.maxInputMovement = Infinity;
this.mouseButtons = [-1];
this.allowSwiping = true;
this.statusAnimations = ["normal","highlight","pressed"];
this.labelAlphas = [0.8,1.0,0.5];
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
var point2 = flixel_math_FlxPoint._pool.get().set(0,1);
point2._inPool = false;
this.labelOffsets = [point,point1,point2];
flixel_FlxSprite.call(this,X,Y);
this.loadDefaultGraphic();
this.onUp = new flixel_ui__$FlxButton_FlxButtonEvent(OnClick);
this.onDown = new flixel_ui__$FlxButton_FlxButtonEvent();
this.onOver = new flixel_ui__$FlxButton_FlxButtonEvent();
this.onOut = new flixel_ui__$FlxButton_FlxButtonEvent();
this.set_status(0);
this.scrollFactor.set();
openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onUpEventListener));
this.input = new flixel_input_FlxInput(0);
};
$hxClasses["flixel.ui.FlxTypedButton_flixel_text_FlxText"] = flixel_ui_FlxTypedButton_$flixel_$text_$FlxText;
flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.__name__ = "flixel.ui.FlxTypedButton_flixel_text_FlxText";
flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.__interfaces__ = [flixel_input_IFlxInput];
flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.__super__ = flixel_FlxSprite;
flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.prototype = $extend(flixel_FlxSprite.prototype,{
label: null
,labelOffsets: null
,labelAlphas: null
,statusAnimations: null
,allowSwiping: null
,mouseButtons: null
,maxInputMovement: null
,status: null
,onUp: null
,onDown: null
,onOver: null
,onOut: null
,_spriteLabel: null
,input: null
,currentInput: null
,lastStatus: null
,graphicLoaded: function() {
flixel_FlxSprite.prototype.graphicLoaded.call(this);
this.setupAnimation("normal",0);
this.setupAnimation("highlight",1);
this.setupAnimation("pressed",2);
}
,loadDefaultGraphic: function() {
this.loadGraphic("flixel/images/ui/button.png",true,80,20);
}
,setupAnimation: function(animationName,frameIndex) {
frameIndex = Math.min(frameIndex,this.animation._sprite.numFrames - 1) | 0;
this.animation.add(animationName,[frameIndex]);
}
,destroy: function() {
this.set_label(flixel_util_FlxDestroyUtil.destroy(this.label));
this._spriteLabel = null;
this.onUp = flixel_util_FlxDestroyUtil.destroy(this.onUp);
this.onDown = flixel_util_FlxDestroyUtil.destroy(this.onDown);
this.onOver = flixel_util_FlxDestroyUtil.destroy(this.onOver);
this.onOut = flixel_util_FlxDestroyUtil.destroy(this.onOut);
this.labelOffsets = flixel_util_FlxDestroyUtil.putArray(this.labelOffsets);
this.labelAlphas = null;
this.currentInput = null;
this.input = null;
openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onUpEventListener));
flixel_FlxSprite.prototype.destroy.call(this);
}
,update: function(elapsed) {
flixel_FlxSprite.prototype.update.call(this,elapsed);
if(this.visible) {
this.updateButton();
if(this.lastStatus != this.status) {
this.updateStatusAnimation();
this.lastStatus = this.status;
}
}
this.input.update();
}
,updateStatusAnimation: function() {
this.animation.play(this.statusAnimations[this.status]);
}
,draw: function() {
flixel_FlxSprite.prototype.draw.call(this);
if(this._spriteLabel != null && this._spriteLabel.visible) {
this._spriteLabel.set_cameras(this.get_cameras());
this._spriteLabel.draw();
}
}
,stampOnAtlas: function(atlas) {
var buttonNode = atlas.addNode(this.graphic.bitmap,this.graphic.key);
var result = buttonNode != null;
if(buttonNode != null) {
var buttonFrames = this.frames;
var X = buttonFrames.tileSize.x;
var Y = buttonFrames.tileSize.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var tileSize = point;
var tileFrames = buttonNode.getTileFrames(tileSize);
this.set_frames(tileFrames);
}
if(result && this.label != null) {
var labelNode = atlas.addNode(this.label.graphic.bitmap,this.label.graphic.key);
result = result && labelNode != null;
if(labelNode != null) {
this.label.set_frames(labelNode.getImageFrame());
}
}
return result;
}
,updateButton: function() {
var overlapFound = this.checkMouseOverlap();
if(!overlapFound) {
overlapFound = this.checkTouchOverlap();
}
if(this.currentInput != null && this.currentInput.get_justReleased() && overlapFound) {
this.onUpHandler();
}
if(this.status != 0 && (!overlapFound || this.currentInput != null && this.currentInput.get_justReleased())) {
this.onOutHandler();
}
}
,checkMouseOverlap: function() {
var overlap = false;
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = this.mouseButtons;
while(_g2 < _g3.length) {
var buttonID = _g3[_g2];
++_g2;
var button = flixel_input_mouse_FlxMouseButton.getByID(buttonID);
if(button != null && this.checkInput(flixel_FlxG.mouse,button,button.justPressedPosition,camera)) {
overlap = true;
}
}
}
return overlap;
}
,checkTouchOverlap: function() {
var overlap = false;
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = flixel_FlxG.touches.list;
while(_g2 < _g3.length) {
var touch = _g3[_g2];
++_g2;
if(this.checkInput(touch,touch,touch.justPressedPosition,camera)) {
overlap = true;
}
}
}
return overlap;
}
,checkInput: function(pointer,input,justPressedPosition,camera) {
var tmp;
if(this.maxInputMovement != Infinity) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
tmp = justPressedPosition.distanceTo(pointer.getScreenPosition(null,point1)) > this.maxInputMovement;
} else {
tmp = false;
}
if(tmp && input == this.currentInput) {
this.currentInput = null;
} else if(this.overlapsPoint(pointer.getWorldPosition(camera,this._point),true,camera)) {
this.updateStatus(input);
return true;
}
return false;
}
,updateStatus: function(input) {
if(input.get_justPressed()) {
this.currentInput = input;
this.onDownHandler();
} else if(this.status == 0) {
if(this.allowSwiping && input.get_pressed()) {
this.onDownHandler();
} else {
this.onOverHandler();
}
}
}
,updateLabelPosition: function() {
if(this._spriteLabel != null) {
this._spriteLabel.set_x((this.pixelPerfectPosition ? Math.floor(this.x) : this.x) + this.labelOffsets[this.status].x);
this._spriteLabel.set_y((this.pixelPerfectPosition ? Math.floor(this.y) : this.y) + this.labelOffsets[this.status].y);
}
}
,updateLabelAlpha: function() {
if(this._spriteLabel != null && this.labelAlphas.length > this.status) {
this._spriteLabel.set_alpha(this.alpha * this.labelAlphas[this.status]);
}
}
,onUpEventListener: function(_) {
if(this.visible && this.exists && this.active && this.status == 2) {
this.onUpHandler();
}
}
,onUpHandler: function() {
this.set_status(0);
this.input.release();
this.currentInput = null;
var _this = this.onUp;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onDownHandler: function() {
this.set_status(2);
this.input.press();
var _this = this.onDown;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onOverHandler: function() {
if(!flixel_FlxG.mouse.enabled) {
this.set_status(0);
return;
}
this.set_status(1);
var _this = this.onOver;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onOutHandler: function() {
this.set_status(0);
this.input.release();
var _this = this.onOut;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,set_label: function(Value) {
if(Value != null) {
Value.scrollFactor.put();
Value.scrollFactor = this.scrollFactor;
}
this.label = Value;
this._spriteLabel = this.label;
this.updateLabelPosition();
return Value;
}
,set_status: function(Value) {
this.status = Value;
this.updateLabelAlpha();
return this.status;
}
,set_alpha: function(Value) {
flixel_FlxSprite.prototype.set_alpha.call(this,Value);
this.updateLabelAlpha();
return this.alpha;
}
,set_x: function(Value) {
flixel_FlxSprite.prototype.set_x.call(this,Value);
this.updateLabelPosition();
return this.x;
}
,set_y: function(Value) {
flixel_FlxSprite.prototype.set_y.call(this,Value);
this.updateLabelPosition();
return this.y;
}
,get_justReleased: function() {
return this.input.current == -1;
}
,get_released: function() {
var _this = this.input;
if(_this.current != 0) {
return _this.current == -1;
} else {
return true;
}
}
,get_pressed: function() {
var _this = this.input;
if(_this.current != 1) {
return _this.current == 2;
} else {
return true;
}
}
,get_justPressed: function() {
return this.input.current == 2;
}
,__class__: flixel_ui_FlxTypedButton_$flixel_$text_$FlxText
,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",set_status:"set_status",set_label:"set_label"})
});
var flixel_ui_FlxButton = function(X,Y,Text1,OnClick) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.call(this,X,Y,OnClick);
var _g = 0;
var _g1 = this.labelOffsets;
while(_g < _g1.length) {
var point = _g1[_g];
++_g;
point.set(point.x - 1,point.y + 3);
}
if(Text1 != null) {
this.set_label(new flixel_text_FlxText(this.x + this.labelOffsets[0].x,this.y + this.labelOffsets[0].y,80,Text1));
this.label.setFormat(null,8,3355443,"center");
this.label.set_alpha(this.labelAlphas[this.status]);
this.label.drawFrame(true);
}
};
$hxClasses["flixel.ui.FlxButton"] = flixel_ui_FlxButton;
flixel_ui_FlxButton.__name__ = "flixel.ui.FlxButton";
flixel_ui_FlxButton.__super__ = flixel_ui_FlxTypedButton_$flixel_$text_$FlxText;
flixel_ui_FlxButton.prototype = $extend(flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.prototype,{
resetHelpers: function() {
flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.prototype.resetHelpers.call(this);
if(this.label != null) {
var tmp = this.label;
var tmp1 = this.get_width() | 0;
tmp.set_fieldWidth(this.label.frameWidth = tmp1);
this.label.set_size(this.label._defaultFormat.size | 0);
}
}
,initLabel: function(Text1) {
if(Text1 != null) {
this.set_label(new flixel_text_FlxText(this.x + this.labelOffsets[0].x,this.y + this.labelOffsets[0].y,80,Text1));
this.label.setFormat(null,8,3355443,"center");
this.label.set_alpha(this.labelAlphas[this.status]);
this.label.drawFrame(true);
}
}
,get_text: function() {
if(this.label != null) {
return this.label.text;
} else {
return null;
}
}
,set_text: function(Text1) {
if(this.label == null) {
if(Text1 != null) {
this.set_label(new flixel_text_FlxText(this.x + this.labelOffsets[0].x,this.y + this.labelOffsets[0].y,80,Text1));
this.label.setFormat(null,8,3355443,"center");
this.label.set_alpha(this.labelAlphas[this.status]);
this.label.drawFrame(true);
}
} else {
this.label.set_text(Text1);
}
return Text1;
}
,__class__: flixel_ui_FlxButton
,__properties__: $extend(flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.prototype.__properties__,{set_text:"set_text",get_text:"get_text"})
});
var flixel_ui__$FlxButton_FlxButtonEvent = function(Callback,sound) {
this.callback = Callback;
this.sound = sound;
};
$hxClasses["flixel.ui._FlxButton.FlxButtonEvent"] = flixel_ui__$FlxButton_FlxButtonEvent;
flixel_ui__$FlxButton_FlxButtonEvent.__name__ = "flixel.ui._FlxButton.FlxButtonEvent";
flixel_ui__$FlxButton_FlxButtonEvent.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_ui__$FlxButton_FlxButtonEvent.prototype = {
callback: null
,sound: null
,destroy: function() {
this.callback = null;
this.sound = flixel_util_FlxDestroyUtil.destroy(this.sound);
}
,fire: function() {
if(this.callback != null) {
this.callback();
}
if(this.sound != null) {
this.sound.play(true);
}
}
,__class__: flixel_ui__$FlxButton_FlxButtonEvent
};
var flixel_ui_FlxTypedButton_$flixel_$FlxSprite = function(X,Y,OnClick) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
this.lastStatus = -1;
this.maxInputMovement = Infinity;
this.mouseButtons = [-1];
this.allowSwiping = true;
this.statusAnimations = ["normal","highlight","pressed"];
this.labelAlphas = [0.8,1.0,0.5];
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
var point1 = flixel_math_FlxPoint._pool.get().set(0,0);
point1._inPool = false;
var point2 = flixel_math_FlxPoint._pool.get().set(0,1);
point2._inPool = false;
this.labelOffsets = [point,point1,point2];
flixel_FlxSprite.call(this,X,Y);
this.loadDefaultGraphic();
this.onUp = new flixel_ui__$FlxButton_FlxButtonEvent(OnClick);
this.onDown = new flixel_ui__$FlxButton_FlxButtonEvent();
this.onOver = new flixel_ui__$FlxButton_FlxButtonEvent();
this.onOut = new flixel_ui__$FlxButton_FlxButtonEvent();
this.set_status(0);
this.scrollFactor.set();
openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onUpEventListener));
this.input = new flixel_input_FlxInput(0);
};
$hxClasses["flixel.ui.FlxTypedButton_flixel_FlxSprite"] = flixel_ui_FlxTypedButton_$flixel_$FlxSprite;
flixel_ui_FlxTypedButton_$flixel_$FlxSprite.__name__ = "flixel.ui.FlxTypedButton_flixel_FlxSprite";
flixel_ui_FlxTypedButton_$flixel_$FlxSprite.__interfaces__ = [flixel_input_IFlxInput];
flixel_ui_FlxTypedButton_$flixel_$FlxSprite.__super__ = flixel_FlxSprite;
flixel_ui_FlxTypedButton_$flixel_$FlxSprite.prototype = $extend(flixel_FlxSprite.prototype,{
label: null
,labelOffsets: null
,labelAlphas: null
,statusAnimations: null
,allowSwiping: null
,mouseButtons: null
,maxInputMovement: null
,status: null
,onUp: null
,onDown: null
,onOver: null
,onOut: null
,_spriteLabel: null
,input: null
,currentInput: null
,lastStatus: null
,graphicLoaded: function() {
flixel_FlxSprite.prototype.graphicLoaded.call(this);
this.setupAnimation("normal",0);
this.setupAnimation("highlight",1);
this.setupAnimation("pressed",2);
}
,loadDefaultGraphic: function() {
this.loadGraphic("flixel/images/ui/button.png",true,80,20);
}
,setupAnimation: function(animationName,frameIndex) {
frameIndex = Math.min(frameIndex,this.animation._sprite.numFrames - 1) | 0;
this.animation.add(animationName,[frameIndex]);
}
,destroy: function() {
this.set_label(flixel_util_FlxDestroyUtil.destroy(this.label));
this._spriteLabel = null;
this.onUp = flixel_util_FlxDestroyUtil.destroy(this.onUp);
this.onDown = flixel_util_FlxDestroyUtil.destroy(this.onDown);
this.onOver = flixel_util_FlxDestroyUtil.destroy(this.onOver);
this.onOut = flixel_util_FlxDestroyUtil.destroy(this.onOut);
this.labelOffsets = flixel_util_FlxDestroyUtil.putArray(this.labelOffsets);
this.labelAlphas = null;
this.currentInput = null;
this.input = null;
openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onUpEventListener));
flixel_FlxSprite.prototype.destroy.call(this);
}
,update: function(elapsed) {
flixel_FlxSprite.prototype.update.call(this,elapsed);
if(this.visible) {
this.updateButton();
if(this.lastStatus != this.status) {
this.updateStatusAnimation();
this.lastStatus = this.status;
}
}
this.input.update();
}
,updateStatusAnimation: function() {
this.animation.play(this.statusAnimations[this.status]);
}
,draw: function() {
flixel_FlxSprite.prototype.draw.call(this);
if(this._spriteLabel != null && this._spriteLabel.visible) {
this._spriteLabel.set_cameras(this.get_cameras());
this._spriteLabel.draw();
}
}
,stampOnAtlas: function(atlas) {
var buttonNode = atlas.addNode(this.graphic.bitmap,this.graphic.key);
var result = buttonNode != null;
if(buttonNode != null) {
var buttonFrames = this.frames;
var X = buttonFrames.tileSize.x;
var Y = buttonFrames.tileSize.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var tileSize = point;
var tileFrames = buttonNode.getTileFrames(tileSize);
this.set_frames(tileFrames);
}
if(result && this.label != null) {
var labelNode = atlas.addNode(this.label.graphic.bitmap,this.label.graphic.key);
result = result && labelNode != null;
if(labelNode != null) {
this.label.set_frames(labelNode.getImageFrame());
}
}
return result;
}
,updateButton: function() {
var overlapFound = this.checkMouseOverlap();
if(!overlapFound) {
overlapFound = this.checkTouchOverlap();
}
if(this.currentInput != null && this.currentInput.get_justReleased() && overlapFound) {
this.onUpHandler();
}
if(this.status != 0 && (!overlapFound || this.currentInput != null && this.currentInput.get_justReleased())) {
this.onOutHandler();
}
}
,checkMouseOverlap: function() {
var overlap = false;
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = this.mouseButtons;
while(_g2 < _g3.length) {
var buttonID = _g3[_g2];
++_g2;
var button = flixel_input_mouse_FlxMouseButton.getByID(buttonID);
if(button != null && this.checkInput(flixel_FlxG.mouse,button,button.justPressedPosition,camera)) {
overlap = true;
}
}
}
return overlap;
}
,checkTouchOverlap: function() {
var overlap = false;
var _g = 0;
var _g1 = this.get_cameras();
while(_g < _g1.length) {
var camera = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = flixel_FlxG.touches.list;
while(_g2 < _g3.length) {
var touch = _g3[_g2];
++_g2;
if(this.checkInput(touch,touch,touch.justPressedPosition,camera)) {
overlap = true;
}
}
}
return overlap;
}
,checkInput: function(pointer,input,justPressedPosition,camera) {
var tmp;
if(this.maxInputMovement != Infinity) {
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
var point1 = point;
point1._weak = true;
tmp = justPressedPosition.distanceTo(pointer.getScreenPosition(null,point1)) > this.maxInputMovement;
} else {
tmp = false;
}
if(tmp && input == this.currentInput) {
this.currentInput = null;
} else if(this.overlapsPoint(pointer.getWorldPosition(camera,this._point),true,camera)) {
this.updateStatus(input);
return true;
}
return false;
}
,updateStatus: function(input) {
if(input.get_justPressed()) {
this.currentInput = input;
this.onDownHandler();
} else if(this.status == 0) {
if(this.allowSwiping && input.get_pressed()) {
this.onDownHandler();
} else {
this.onOverHandler();
}
}
}
,updateLabelPosition: function() {
if(this._spriteLabel != null) {
this._spriteLabel.set_x((this.pixelPerfectPosition ? Math.floor(this.x) : this.x) + this.labelOffsets[this.status].x);
this._spriteLabel.set_y((this.pixelPerfectPosition ? Math.floor(this.y) : this.y) + this.labelOffsets[this.status].y);
}
}
,updateLabelAlpha: function() {
if(this._spriteLabel != null && this.labelAlphas.length > this.status) {
this._spriteLabel.set_alpha(this.alpha * this.labelAlphas[this.status]);
}
}
,onUpEventListener: function(_) {
if(this.visible && this.exists && this.active && this.status == 2) {
this.onUpHandler();
}
}
,onUpHandler: function() {
this.set_status(0);
this.input.release();
this.currentInput = null;
var _this = this.onUp;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onDownHandler: function() {
this.set_status(2);
this.input.press();
var _this = this.onDown;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onOverHandler: function() {
if(!flixel_FlxG.mouse.enabled) {
this.set_status(0);
return;
}
this.set_status(1);
var _this = this.onOver;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,onOutHandler: function() {
this.set_status(0);
this.input.release();
var _this = this.onOut;
if(_this.callback != null) {
_this.callback();
}
if(_this.sound != null) {
_this.sound.play(true);
}
}
,set_label: function(Value) {
if(Value != null) {
Value.scrollFactor.put();
Value.scrollFactor = this.scrollFactor;
}
this.label = Value;
this._spriteLabel = this.label;
this.updateLabelPosition();
return Value;
}
,set_status: function(Value) {
this.status = Value;
this.updateLabelAlpha();
return this.status;
}
,set_alpha: function(Value) {
flixel_FlxSprite.prototype.set_alpha.call(this,Value);
this.updateLabelAlpha();
return this.alpha;
}
,set_x: function(Value) {
flixel_FlxSprite.prototype.set_x.call(this,Value);
this.updateLabelPosition();
return this.x;
}
,set_y: function(Value) {
flixel_FlxSprite.prototype.set_y.call(this,Value);
this.updateLabelPosition();
return this.y;
}
,get_justReleased: function() {
return this.input.current == -1;
}
,get_released: function() {
var _this = this.input;
if(_this.current != 0) {
return _this.current == -1;
} else {
return true;
}
}
,get_pressed: function() {
var _this = this.input;
if(_this.current != 1) {
return _this.current == 2;
} else {
return true;
}
}
,get_justPressed: function() {
return this.input.current == 2;
}
,__class__: flixel_ui_FlxTypedButton_$flixel_$FlxSprite
,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",set_status:"set_status",set_label:"set_label"})
});
var flixel_ui_FlxSpriteButton = function(X,Y,Label,OnClick) {
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
flixel_ui_FlxTypedButton_$flixel_$FlxSprite.call(this,X,Y,OnClick);
var _g = 0;
var _g1 = this.labelOffsets;
while(_g < _g1.length) {
var point = _g1[_g];
++_g;
point.set(point.x - 1,point.y + 4);
}
this.set_label(Label);
};
$hxClasses["flixel.ui.FlxSpriteButton"] = flixel_ui_FlxSpriteButton;
flixel_ui_FlxSpriteButton.__name__ = "flixel.ui.FlxSpriteButton";
flixel_ui_FlxSpriteButton.__interfaces__ = [flixel_input_IFlxInput];
flixel_ui_FlxSpriteButton.__super__ = flixel_ui_FlxTypedButton_$flixel_$FlxSprite;
flixel_ui_FlxSpriteButton.prototype = $extend(flixel_ui_FlxTypedButton_$flixel_$FlxSprite.prototype,{
createTextLabel: function(Text1,font,size,color,align) {
if(align == null) {
align = "center";
}
if(color == null) {
color = 3355443;
}
if(size == null) {
size = 8;
}
if(Text1 != null) {
var text = new flixel_text_FlxText(0,0,this.frameWidth,Text1);
text.setFormat(font,size,color,align);
text.set_alpha(this.labelAlphas[this.status]);
text.drawFrame(true);
var labelBitmap = text.graphic.bitmap.clone();
var labelKey = text.graphic.key;
text.destroy();
if(this.label == null) {
this.set_label(new flixel_FlxSprite());
}
var labelGraphic = flixel_FlxG.bitmap.add(labelBitmap,false,labelKey);
this.label.set_frames(flixel_graphics_frames_FlxImageFrame.fromGraphic(labelGraphic));
}
return this;
}
,__class__: flixel_ui_FlxSpriteButton
});
var flixel_util_FlxArrayUtil = function() { };
$hxClasses["flixel.util.FlxArrayUtil"] = flixel_util_FlxArrayUtil;
flixel_util_FlxArrayUtil.__name__ = "flixel.util.FlxArrayUtil";
flixel_util_FlxArrayUtil.setLength_Int = function(array,newLength) {
if(newLength < 0) {
return array;
}
var oldLength = array.length;
var diff = newLength - oldLength;
if(diff >= 0) {
return array;
}
diff = -diff;
var _g = 0;
var _g1 = diff;
while(_g < _g1) {
var i = _g++;
array.pop();
}
return array;
};
flixel_util_FlxArrayUtil.flatten2DArray_Int = function(array) {
var result = [];
var _g = 0;
while(_g < array.length) {
var innerArray = array[_g];
++_g;
var _g1 = 0;
while(_g1 < innerArray.length) {
var element = innerArray[_g1];
++_g1;
result.push(element);
}
}
return result;
};
flixel_util_FlxArrayUtil.setLength_cacheValue_T = function(array,newLength) {
if(newLength < 0) {
return array;
}
var oldLength = array.length;
var diff = newLength - oldLength;
if(diff >= 0) {
return array;
}
diff = -diff;
var _g = 0;
var _g1 = diff;
while(_g < _g1) {
var i = _g++;
array.pop();
}
return array;
};
flixel_util_FlxArrayUtil.fastSplice_flixel_tweens_FlxTween = function(array,element) {
var index = array.indexOf(element);
if(index != -1) {
array[index] = array[array.length - 1];
array.pop();
return array;
}
return array;
};
flixel_util_FlxArrayUtil.fastSplice_flixel_util_FlxTimer = function(array,element) {
var index = array.indexOf(element);
if(index != -1) {
array[index] = array[array.length - 1];
array.pop();
return array;
}
return array;
};
flixel_util_FlxArrayUtil.swapAndPop_fastSplice_T = function(array,index) {
array[index] = array[array.length - 1];
array.pop();
return array;
};
flixel_util_FlxArrayUtil.setLength_flixel_group_FlxTypedGroup_T = function(array,newLength) {
if(newLength < 0) {
return array;
}
var oldLength = array.length;
var diff = newLength - oldLength;
if(diff >= 0) {
return array;
}
diff = -diff;
var _g = 0;
var _g1 = diff;
while(_g < _g1) {
var i = _g++;
array.pop();
}
return array;
};
flixel_util_FlxArrayUtil.clearArray = function(array,recursive) {
if(recursive == null) {
recursive = false;
}
if(array == null) {
return array;
}
if(recursive) {
while(array.length > 0) {
var thing = array.pop();
if(((thing) instanceof Array)) {
flixel_util_FlxArrayUtil.clearArray(array,recursive);
}
}
} else {
while(array.length > 0) array.pop();
}
return array;
};
flixel_util_FlxArrayUtil.equals = function(array1,array2) {
if(array1 == null && array2 == null) {
return true;
}
if(array1 == null && array2 != null) {
return false;
}
if(array1 != null && array2 == null) {
return false;
}
if(array1.length != array2.length) {
return false;
}
var _g = 0;
var _g1 = array1.length;
while(_g < _g1) {
var i = _g++;
if(array1[i] != array2[i]) {
return false;
}
}
return true;
};
flixel_util_FlxArrayUtil.last = function(array) {
if(array == null || array.length == 0) {
return null;
}
return array[array.length - 1];
};
flixel_util_FlxArrayUtil.safePush = function(array,element) {
if(array == null) {
array = [];
}
array.push(element);
return array;
};
flixel_util_FlxArrayUtil.contains = function(array,element) {
return array.indexOf(element) != -1;
};
var flixel_util_FlxAxes = $hxEnums["flixel.util.FlxAxes"] = { __ename__ : "flixel.util.FlxAxes", __constructs__ : ["X","Y","XY"]
,X: {_hx_index:0,__enum__:"flixel.util.FlxAxes",toString:$estr}
,Y: {_hx_index:1,__enum__:"flixel.util.FlxAxes",toString:$estr}
,XY: {_hx_index:2,__enum__:"flixel.util.FlxAxes",toString:$estr}
};
var flixel_util_FlxBitmapDataPool = function() { };
$hxClasses["flixel.util.FlxBitmapDataPool"] = flixel_util_FlxBitmapDataPool;
flixel_util_FlxBitmapDataPool.__name__ = "flixel.util.FlxBitmapDataPool";
flixel_util_FlxBitmapDataPool.__properties__ = {set_maxLength:"set_maxLength"};
flixel_util_FlxBitmapDataPool.get = function(w,h,transparent,fillColor,exactSize) {
if(exactSize == null) {
exactSize = false;
}
if(transparent == null) {
transparent = true;
}
var res = null;
var node = flixel_util_FlxBitmapDataPool._head;
while(node != null) {
var bmd = node.bmd;
if(bmd.transparent == transparent && bmd.width >= w && bmd.height >= h && (!exactSize || exactSize && bmd.width == w && bmd.height == h)) {
res = bmd;
if(node.prev != null) {
node.prev.next = node.next;
}
if(node.next != null) {
node.next.prev = node.prev;
}
if(node == flixel_util_FlxBitmapDataPool._head) {
flixel_util_FlxBitmapDataPool._head = node.next;
}
if(node == flixel_util_FlxBitmapDataPool._tail) {
flixel_util_FlxBitmapDataPool._tail = node.prev;
}
node = null;
flixel_util_FlxBitmapDataPool.$length--;
break;
}
node = node.next;
}
if(res != null) {
if(fillColor != null) {
flixel_util_FlxBitmapDataPool._rect.x = 0;
flixel_util_FlxBitmapDataPool._rect.y = 0;
flixel_util_FlxBitmapDataPool._rect.width = w;
flixel_util_FlxBitmapDataPool._rect.height = h;
res.fillRect(flixel_util_FlxBitmapDataPool._rect,fillColor);
}
} else {
res = new openfl_display_BitmapData(w,h,transparent,fillColor != null ? fillColor : -1);
}
return res;
};
flixel_util_FlxBitmapDataPool.put = function(bmd) {
if(flixel_util_FlxBitmapDataPool.$length >= flixel_util_FlxBitmapDataPool.maxLength) {
var last = flixel_util_FlxBitmapDataPool._tail;
last.bmd.dispose();
if(last.prev != null) {
last.prev.next = null;
flixel_util_FlxBitmapDataPool._tail = last.prev;
}
last = null;
flixel_util_FlxBitmapDataPool.$length--;
}
var node = new flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode(bmd);
node.next = flixel_util_FlxBitmapDataPool._head;
if(flixel_util_FlxBitmapDataPool._head == null) {
flixel_util_FlxBitmapDataPool._head = flixel_util_FlxBitmapDataPool._tail = node;
} else {
flixel_util_FlxBitmapDataPool._head = node;
node.next.prev = node;
}
flixel_util_FlxBitmapDataPool.$length++;
};
flixel_util_FlxBitmapDataPool.clear = function() {
var node = flixel_util_FlxBitmapDataPool._head;
while(node != null) {
var bmd = node.bmd;
bmd.dispose();
bmd = null;
node = node.next;
}
flixel_util_FlxBitmapDataPool.$length = 0;
flixel_util_FlxBitmapDataPool._head = flixel_util_FlxBitmapDataPool._tail = null;
};
flixel_util_FlxBitmapDataPool.set_maxLength = function(value) {
if(flixel_util_FlxBitmapDataPool.maxLength != value) {
var node = flixel_util_FlxBitmapDataPool._tail;
while(node != null && flixel_util_FlxBitmapDataPool.$length > value) {
var bmd = node.bmd;
bmd.dispose();
bmd = null;
node = node.prev;
flixel_util_FlxBitmapDataPool.$length--;
}
}
return flixel_util_FlxBitmapDataPool.maxLength = value;
};
var flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode = function(bmd,prev,next) {
this.bmd = bmd;
this.prev = prev;
this.next = next;
};
$hxClasses["flixel.util._FlxBitmapDataPool.FlxBitmapDataPoolNode"] = flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode;
flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode.__name__ = "flixel.util._FlxBitmapDataPool.FlxBitmapDataPoolNode";
flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode.prototype = {
bmd: null
,prev: null
,next: null
,__class__: flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode
};
var flixel_util_FlxBitmapDataUtil = function() { };
$hxClasses["flixel.util.FlxBitmapDataUtil"] = flixel_util_FlxBitmapDataUtil;
flixel_util_FlxBitmapDataUtil.__name__ = "flixel.util.FlxBitmapDataUtil";
flixel_util_FlxBitmapDataUtil.merge = function(sourceBitmapData,sourceRect,destBitmapData,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
if(destPoint.x >= destBitmapData.width || destPoint.y >= destBitmapData.height || sourceRect.x >= sourceBitmapData.width || sourceRect.y >= sourceBitmapData.height || sourceRect.x + sourceRect.width <= 0 || sourceRect.y + sourceRect.height <= 0) {
return;
}
while(sourceRect.x + sourceRect.width > sourceBitmapData.width || sourceRect.y + sourceRect.height > sourceBitmapData.height || sourceRect.x < 0 || sourceRect.y < 0 || destPoint.x < 0 || destPoint.y < 0) {
if(sourceRect.x + sourceRect.width > sourceBitmapData.width) {
sourceRect.width = sourceBitmapData.width - sourceRect.x;
}
if(sourceRect.y + sourceRect.height > sourceBitmapData.height) {
sourceRect.height = sourceBitmapData.height - sourceRect.y;
}
if(sourceRect.x < 0) {
destPoint.x -= sourceRect.x;
sourceRect.width += sourceRect.x;
sourceRect.x = 0;
}
if(sourceRect.y < 0) {
destPoint.y -= sourceRect.y;
sourceRect.height += sourceRect.y;
sourceRect.y = 0;
}
if(destPoint.x >= destBitmapData.width || destPoint.y >= destBitmapData.height) {
return;
}
if(destPoint.x < 0) {
sourceRect.x -= destPoint.x;
sourceRect.width += destPoint.x;
destPoint.x = 0;
}
if(destPoint.y < 0) {
sourceRect.y -= destPoint.y;
sourceRect.height += destPoint.y;
destPoint.y = 0;
}
}
if(sourceRect.width <= 0 || sourceRect.height <= 0) {
return;
}
var startSourceX = Math.round(sourceRect.x);
var startSourceY = Math.round(sourceRect.y);
var width = Math.round(sourceRect.width);
var height = Math.round(sourceRect.height);
var sourceX = startSourceX;
var sourceY = startSourceY;
var destX = Math.round(destPoint.x);
var destY = Math.round(destPoint.y);
var currX = destX;
var currY = destY;
var sourceColor;
var destColor;
var resultRed;
var resultGreen;
var resultBlue;
var resultAlpha;
var resultColor = 0;
destBitmapData.lock();
var _g = 0;
var _g1 = width;
while(_g < _g1) {
var i = _g++;
var _g2 = 0;
var _g3 = height;
while(_g2 < _g3) {
var j = _g2++;
sourceX = startSourceX + i;
sourceY = startSourceY + j;
currX = destX + i;
currY = destY + j;
sourceColor = sourceBitmapData.getPixel32(sourceX,sourceY);
destColor = destBitmapData.getPixel32(currX,currY);
resultRed = ((sourceColor >> 16 & 255) * redMultiplier + (destColor >> 16 & 255) * (256 - redMultiplier)) / 256 | 0;
resultGreen = ((sourceColor >> 8 & 255) * greenMultiplier + (destColor >> 8 & 255) * (256 - greenMultiplier)) / 256 | 0;
resultBlue = ((sourceColor & 255) * blueMultiplier + (destColor & 255) * (256 - blueMultiplier)) / 256 | 0;
resultAlpha = ((sourceColor >> 24 & 255) * alphaMultiplier + (destColor >> 24 & 255) * (256 - alphaMultiplier)) / 256 | 0;
var Alpha = resultAlpha;
if(Alpha == null) {
Alpha = 255;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 255;
}
color &= -16711681;
color |= (resultRed > 255 ? 255 : resultRed < 0 ? 0 : resultRed) << 16;
color &= -65281;
color |= (resultGreen > 255 ? 255 : resultGreen < 0 ? 0 : resultGreen) << 8;
color &= -256;
color |= resultBlue > 255 ? 255 : resultBlue < 0 ? 0 : resultBlue;
color &= 16777215;
color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24;
resultColor = color;
destBitmapData.setPixel32(currX,currY,resultColor);
}
}
destBitmapData.unlock();
};
flixel_util_FlxBitmapDataUtil.mergeColorComponent = function(source,dest,multiplier) {
return (source * multiplier + dest * (256 - multiplier)) / 256 | 0;
};
flixel_util_FlxBitmapDataUtil.compare = function(Bitmap1,Bitmap2) {
if(Bitmap1 == Bitmap2) {
return 0;
}
if(Bitmap1.width != Bitmap2.width) {
return -3;
} else if(Bitmap1.height != Bitmap2.height) {
return -4;
} else {
var width = Bitmap1.width;
var height = Bitmap1.height;
var result = new openfl_display_BitmapData(width,height,true,0);
var identical = true;
var _g = 0;
var _g1 = width;
while(_g < _g1) {
var i = _g++;
var _g2 = 0;
var _g3 = height;
while(_g2 < _g3) {
var j = _g2++;
var pixel1 = Bitmap1.getPixel32(i,j);
var pixel2 = Bitmap2.getPixel32(i,j);
if(pixel1 != pixel2) {
identical = false;
if((pixel1 & 16777215) != (pixel2 & 16777215)) {
var diff = (pixel1 >> 16 & 255) - (pixel2 >> 16 & 255);
var Red = diff >= 0 ? diff : 256 + diff;
var diff1 = (pixel1 >> 8 & 255) - (pixel2 >> 8 & 255);
var Green = diff1 >= 0 ? diff1 : 256 + diff1;
var diff2 = (pixel1 & 255) - (pixel2 & 255);
var Blue = diff2 >= 0 ? diff2 : 256 + diff2;
var color = flixel_util_FlxColor._new();
var Alpha = 255;
if(Alpha == null) {
Alpha = 255;
}
color &= -16711681;
color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16;
color &= -65281;
color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8;
color &= -256;
color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue;
color &= 16777215;
color |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24;
result.setPixel32(i,j,color);
} else {
var alpha1 = pixel1 >> 24 & 255;
var alpha2 = pixel2 >> 24 & 255;
if(alpha1 != alpha2) {
var diff3 = alpha1 - alpha2;
var Alpha1 = diff3 >= 0 ? diff3 : 256 + diff3;
if(Alpha1 == null) {
Alpha1 = 255;
}
var color1 = flixel_util_FlxColor._new();
var Alpha2 = Alpha1;
if(Alpha2 == null) {
Alpha2 = 255;
}
color1 &= -16711681;
color1 |= 16711680;
color1 &= -65281;
color1 |= 65280;
color1 &= -256;
color1 |= 255;
color1 &= 16777215;
color1 |= (Alpha2 > 255 ? 255 : Alpha2 < 0 ? 0 : Alpha2) << 24;
result.setPixel32(i,j,color1);
}
}
}
}
}
if(!identical) {
return result;
}
}
return 0;
};
flixel_util_FlxBitmapDataUtil.getDiff = function(value1,value2) {
var diff = value1 - value2;
if(diff >= 0) {
return diff;
} else {
return 256 + diff;
}
};
flixel_util_FlxBitmapDataUtil.getMemorySize = function(bitmapData) {
return bitmapData.width * bitmapData.height * 4;
};
flixel_util_FlxBitmapDataUtil.replaceColor = function(bitmapData,color,newColor,fetchPositions,rect) {
if(fetchPositions == null) {
fetchPositions = false;
}
var positions = null;
if(fetchPositions) {
positions = [];
}
var startX = 0;
var startY = 0;
var columns = bitmapData.width;
var rows = bitmapData.height;
if(rect != null) {
startX = rect.x | 0;
startY = rect.y | 0;
columns = rect.width | 0;
rows = rect.height | 0;
}
columns = Math.max(columns,bitmapData.width) | 0;
rows = Math.max(rows,bitmapData.height) | 0;
var row = 0;
var column = 0;
var x;
var y;
var changed = false;
bitmapData.lock();
while(row < rows) {
column = 0;
while(column < columns) {
x = startX + column;
y = startY + row;
if(bitmapData.getPixel32(x,y) == color) {
bitmapData.setPixel32(x,y,newColor);
changed = true;
if(fetchPositions) {
var X = x;
var Y = y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
positions.push(point);
}
}
++column;
}
++row;
}
bitmapData.unlock();
if(changed && positions == null) {
positions = [];
}
return positions;
};
flixel_util_FlxBitmapDataUtil.addSpacesAndBorders = function(bitmapData,frameSize,spacing,border,region) {
if(region == null) {
var X = 0;
var Y = 0;
var Width = bitmapData.width;
var Height = bitmapData.height;
if(Height == null) {
Height = 0;
}
if(Width == null) {
Width = 0;
}
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _this = flixel_math_FlxRect._pool.get();
var X1 = X;
var Y1 = Y;
var Width1 = Width;
var Height1 = Height;
if(Height1 == null) {
Height1 = 0;
}
if(Width1 == null) {
Width1 = 0;
}
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
_this.x = X1;
_this.y = Y1;
_this.width = Width1;
_this.height = Height1;
var rect = _this;
rect._inPool = false;
region = rect;
}
var frameWidth = region.width | 0;
var frameHeight = region.height | 0;
if(frameSize != null) {
frameWidth = frameSize.x | 0;
frameHeight = frameSize.y | 0;
}
var numHorizontalFrames = region.width / frameWidth | 0;
var numVerticalFrames = region.height / frameHeight | 0;
var spaceX = 0;
var spaceY = 0;
if(spacing != null) {
spaceX = spacing.x | 0;
spaceY = spacing.y | 0;
}
var borderX = 0;
var borderY = 0;
if(border != null) {
borderX = border.x | 0;
borderY = border.y | 0;
}
var result = new openfl_display_BitmapData(region.width + (numHorizontalFrames - 1) * spaceX + 2 * numHorizontalFrames * borderX | 0,region.height + (numVerticalFrames - 1) * spaceY + 2 * numVerticalFrames * borderY | 0,true,0);
result.lock();
var tempRect = new openfl_geom_Rectangle(0,0,frameWidth,frameHeight);
var tempPoint = new openfl_geom_Point();
var _g = 0;
var _g1 = numHorizontalFrames;
while(_g < _g1) {
var i = _g++;
tempPoint.x = i * (frameWidth + spaceX + 2 * borderX) + borderX;
tempRect.x = i * frameWidth + region.x;
var _g2 = 0;
var _g3 = numVerticalFrames;
while(_g2 < _g3) {
var j = _g2++;
tempPoint.y = j * (frameHeight + spaceY + 2 * borderY) + borderY;
tempRect.y = j * frameHeight + region.y;
result.copyPixels(bitmapData,tempRect,tempPoint);
}
}
result.unlock();
flixel_util_FlxBitmapDataUtil.copyBorderPixels(result,frameWidth,frameHeight,spaceX,spaceY,borderX,borderY,numHorizontalFrames,numVerticalFrames);
return result;
};
flixel_util_FlxBitmapDataUtil.copyBorderPixels = function(bitmapData,frameWidth,frameHeight,spaceX,spaceY,borderX,borderY,horizontalFrames,verticalFrames) {
var tempRect = new openfl_geom_Rectangle(0,0,1,bitmapData.height);
var tempPoint = new openfl_geom_Point();
bitmapData.lock();
var _g = 0;
var _g1 = horizontalFrames;
while(_g < _g1) {
var i = _g++;
tempRect.x = i * (frameWidth + 2 * borderX + spaceX) + borderX;
var _g2 = 0;
var _g3 = borderX;
while(_g2 < _g3) {
var j = _g2++;
tempPoint.x = tempRect.x - j - 1;
bitmapData.copyPixels(bitmapData,tempRect,tempPoint);
}
tempRect.x += frameWidth - 1;
var _g4 = 0;
var _g5 = borderX;
while(_g4 < _g5) {
var j1 = _g4++;
tempPoint.x = tempRect.x + j1 + 1;
bitmapData.copyPixels(bitmapData,tempRect,tempPoint);
}
}
tempPoint.setTo(0,0);
tempRect.setTo(0,0,bitmapData.width,1);
var _g = 0;
var _g1 = verticalFrames;
while(_g < _g1) {
var i = _g++;
tempRect.y = i * (frameHeight + 2 * borderY + spaceY) + borderY;
var _g2 = 0;
var _g3 = borderY;
while(_g2 < _g3) {
var j = _g2++;
tempPoint.y = tempRect.y - j - 1;
bitmapData.copyPixels(bitmapData,tempRect,tempPoint);
}
tempRect.y += frameHeight - 1;
var _g4 = 0;
var _g5 = borderY;
while(_g4 < _g5) {
var j1 = _g4++;
tempPoint.y = tempRect.y + j1 + 1;
bitmapData.copyPixels(bitmapData,tempRect,tempPoint);
}
}
bitmapData.unlock();
return bitmapData;
};
flixel_util_FlxBitmapDataUtil.generateRotations = function(brush,rotations,antiAliasing,autoBuffer) {
if(autoBuffer == null) {
autoBuffer = false;
}
if(antiAliasing == null) {
antiAliasing = false;
}
if(rotations == null) {
rotations = 16;
}
var brushWidth = brush.width;
var brushHeight = brush.height;
var max = brushHeight > brushWidth ? brushHeight : brushWidth;
if(autoBuffer) {
max = max * 1.5 | 0;
}
var rows = Math.sqrt(rotations) | 0;
var columns = Math.ceil(rotations / rows);
var bakedRotationAngle = 360 / rotations;
var width = max * columns;
var height = max * rows;
var result = new openfl_display_BitmapData(width,height,true,0);
var row = 0;
var column = 0;
var bakedAngle = 0;
var halfBrushWidth = brushWidth * 0.5 | 0;
var halfBrushHeight = brushHeight * 0.5 | 0;
var midpointX = max * 0.5 | 0;
var midpointY = max * 0.5 | 0;
while(row < rows) {
column = 0;
while(column < columns) {
flixel_util_FlxBitmapDataUtil.matrix.identity();
flixel_util_FlxBitmapDataUtil.matrix.translate(-halfBrushWidth,-halfBrushHeight);
flixel_util_FlxBitmapDataUtil.matrix.rotate(bakedAngle * (Math.PI / 180));
flixel_util_FlxBitmapDataUtil.matrix.translate(max * column + midpointX,midpointY);
bakedAngle += bakedRotationAngle;
result.draw(brush,flixel_util_FlxBitmapDataUtil.matrix,null,null,null,antiAliasing);
++column;
}
midpointY += max;
++row;
}
return result;
};
var flixel_util_FlxCollision = function() { };
$hxClasses["flixel.util.FlxCollision"] = flixel_util_FlxCollision;
flixel_util_FlxCollision.__name__ = "flixel.util.FlxCollision";
flixel_util_FlxCollision.pixelPerfectCheck = function(Contact,Target,AlphaTolerance,Camera) {
if(AlphaTolerance == null) {
AlphaTolerance = 1;
}
var considerRotation = Contact.angle != 0 || Target.angle != 0;
if(Camera == null) {
Camera = flixel_FlxG.camera;
}
flixel_util_FlxCollision.pointA.set_x(Contact.x - (Camera.scroll.x * Contact.scrollFactor.x | 0) - Contact.offset.x);
flixel_util_FlxCollision.pointA.set_y(Contact.y - (Camera.scroll.y * Contact.scrollFactor.y | 0) - Contact.offset.y);
flixel_util_FlxCollision.pointB.set_x(Target.x - (Camera.scroll.x * Target.scrollFactor.x | 0) - Target.offset.x);
flixel_util_FlxCollision.pointB.set_y(Target.y - (Camera.scroll.y * Target.scrollFactor.y | 0) - Target.offset.y);
if(considerRotation) {
Contact.origin.copyTo(flixel_util_FlxCollision.centerA);
Target.origin.copyTo(flixel_util_FlxCollision.centerB);
var this1 = flixel_util_FlxCollision.centerA;
var lengthA = Math.sqrt(this1.x * this1.x + this1.y * this1.y);
flixel_util_FlxCollision.boundsA.x = flixel_util_FlxCollision.pointA.x + flixel_util_FlxCollision.centerA.x - lengthA;
flixel_util_FlxCollision.boundsA.y = flixel_util_FlxCollision.pointA.y + flixel_util_FlxCollision.centerA.y - lengthA;
flixel_util_FlxCollision.boundsA.width = lengthA * 2;
flixel_util_FlxCollision.boundsA.height = flixel_util_FlxCollision.boundsA.width;
var this1 = flixel_util_FlxCollision.centerB;
var lengthB = Math.sqrt(this1.x * this1.x + this1.y * this1.y);
flixel_util_FlxCollision.boundsB.x = flixel_util_FlxCollision.pointB.x + flixel_util_FlxCollision.centerB.x - lengthB;
flixel_util_FlxCollision.boundsB.y = flixel_util_FlxCollision.pointB.y + flixel_util_FlxCollision.centerB.y - lengthB;
flixel_util_FlxCollision.boundsB.width = lengthB * 2;
flixel_util_FlxCollision.boundsB.height = flixel_util_FlxCollision.boundsB.width;
} else {
flixel_util_FlxCollision.boundsA.x = flixel_util_FlxCollision.pointA.x;
flixel_util_FlxCollision.boundsA.y = flixel_util_FlxCollision.pointA.y;
flixel_util_FlxCollision.boundsA.width = Contact.frameWidth;
flixel_util_FlxCollision.boundsA.height = Contact.frameHeight;
flixel_util_FlxCollision.boundsB.x = flixel_util_FlxCollision.pointB.x;
flixel_util_FlxCollision.boundsB.y = flixel_util_FlxCollision.pointB.y;
flixel_util_FlxCollision.boundsB.width = Target.frameWidth;
flixel_util_FlxCollision.boundsB.height = Target.frameHeight;
}
var _this = flixel_util_FlxCollision.intersect;
_this.x = 0;
_this.y = 0;
_this.width = 0;
_this.height = 0;
flixel_util_FlxCollision.boundsA.intersection(flixel_util_FlxCollision.boundsB,_this);
var _this = flixel_util_FlxCollision.intersect;
if(_this.width == 0 || _this.height == 0 || flixel_util_FlxCollision.intersect.width < 1 || flixel_util_FlxCollision.intersect.height < 1) {
return false;
}
flixel_util_FlxCollision.matrixA.identity();
flixel_util_FlxCollision.matrixA.translate(-(flixel_util_FlxCollision.intersect.x - flixel_util_FlxCollision.boundsA.x),-(flixel_util_FlxCollision.intersect.y - flixel_util_FlxCollision.boundsA.y));
flixel_util_FlxCollision.matrixB.identity();
flixel_util_FlxCollision.matrixB.translate(-(flixel_util_FlxCollision.intersect.x - flixel_util_FlxCollision.boundsB.x),-(flixel_util_FlxCollision.intersect.y - flixel_util_FlxCollision.boundsB.y));
Contact.drawFrame();
Target.drawFrame();
var testA = Contact.framePixels;
var testB = Target.framePixels;
var overlapWidth = flixel_util_FlxCollision.intersect.width | 0;
var overlapHeight = flixel_util_FlxCollision.intersect.height | 0;
if(considerRotation) {
flixel_util_FlxCollision.testMatrix.identity();
flixel_util_FlxCollision.testMatrix.translate(-Contact.origin.x,-Contact.origin.y);
flixel_util_FlxCollision.testMatrix.rotate(Contact.angle * (Math.PI / 180));
flixel_util_FlxCollision.testMatrix.translate(flixel_util_FlxCollision.boundsA.width / 2,flixel_util_FlxCollision.boundsA.height / 2);
var testA2 = flixel_util_FlxBitmapDataPool.get(Math.floor(flixel_util_FlxCollision.boundsA.width),Math.floor(flixel_util_FlxCollision.boundsA.height),true,0,false);
testA2.draw(testA,flixel_util_FlxCollision.testMatrix,null,null,null,false);
testA = testA2;
flixel_util_FlxCollision.testMatrix.identity();
flixel_util_FlxCollision.testMatrix.translate(-Target.origin.x,-Target.origin.y);
flixel_util_FlxCollision.testMatrix.rotate(Target.angle * (Math.PI / 180));
flixel_util_FlxCollision.testMatrix.translate(flixel_util_FlxCollision.boundsB.width / 2,flixel_util_FlxCollision.boundsB.height / 2);
var testB2 = flixel_util_FlxBitmapDataPool.get(Math.floor(flixel_util_FlxCollision.boundsB.width),Math.floor(flixel_util_FlxCollision.boundsB.height),true,0,false);
testB2.draw(testB,flixel_util_FlxCollision.testMatrix,null,null,null,false);
testB = testB2;
}
flixel_util_FlxCollision.boundsA.x = -flixel_util_FlxCollision.matrixA.tx | 0;
flixel_util_FlxCollision.boundsA.y = -flixel_util_FlxCollision.matrixA.ty | 0;
flixel_util_FlxCollision.boundsA.width = overlapWidth;
flixel_util_FlxCollision.boundsA.height = overlapHeight;
flixel_util_FlxCollision.boundsB.x = -flixel_util_FlxCollision.matrixB.tx | 0;
flixel_util_FlxCollision.boundsB.y = -flixel_util_FlxCollision.matrixB.ty | 0;
flixel_util_FlxCollision.boundsB.width = overlapWidth;
flixel_util_FlxCollision.boundsB.height = overlapHeight;
var _this = flixel_util_FlxCollision.boundsA;
var FlashRect = flixel_util_FlxCollision.flashRect;
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = _this.x;
FlashRect.y = _this.y;
FlashRect.width = _this.width;
FlashRect.height = _this.height;
var pixelsA = testA.getPixels(flixel_util_FlxCollision.flashRect);
var _this = flixel_util_FlxCollision.boundsB;
var FlashRect = flixel_util_FlxCollision.flashRect;
if(FlashRect == null) {
FlashRect = new openfl_geom_Rectangle();
}
FlashRect.x = _this.x;
FlashRect.y = _this.y;
FlashRect.width = _this.width;
FlashRect.height = _this.height;
var pixelsB = testB.getPixels(flixel_util_FlxCollision.flashRect);
var hit = false;
var alphaA = 0;
var alphaB = 0;
var overlapPixels = overlapWidth * overlapHeight;
var alphaIdx = 0;
var _g = 0;
var _g1 = Math.ceil(overlapPixels / 2);
while(_g < _g1) {
var i = _g++;
alphaIdx = i << 3;
pixelsA.position = pixelsB.position = alphaIdx;
alphaA = pixelsA.readUnsignedByte();
alphaB = pixelsB.readUnsignedByte();
if(alphaA >= AlphaTolerance && alphaB >= AlphaTolerance) {
hit = true;
break;
}
}
if(!hit) {
var _g = 0;
var _g1 = overlapPixels >> 1;
while(_g < _g1) {
var i = _g++;
alphaIdx = (i << 3) + 4;
pixelsA.position = pixelsB.position = alphaIdx;
alphaA = pixelsA.readUnsignedByte();
alphaB = pixelsB.readUnsignedByte();
if(alphaA >= AlphaTolerance && alphaB >= AlphaTolerance) {
hit = true;
break;
}
}
}
if(considerRotation) {
flixel_util_FlxBitmapDataPool.put(testA);
flixel_util_FlxBitmapDataPool.put(testB);
}
return hit;
};
flixel_util_FlxCollision.pixelPerfectPointCheck = function(PointX,PointY,Target,AlphaTolerance) {
if(AlphaTolerance == null) {
AlphaTolerance = 1;
}
if(!flixel_math_FlxMath.pointInCoordinates(PointX,PointY,Math.floor(Target.x),Math.floor(Target.y),Target.get_width() | 0,Target.get_height() | 0)) {
return false;
}
if(flixel_FlxG.renderTile) {
Target.drawFrame();
}
var test = Target.framePixels;
var pixelAlpha = flixel_util_FlxColor._new(test.getPixel32(Math.floor(PointX - Target.x),Math.floor(PointY - Target.y))) >> 24 & 255;
if(flixel_FlxG.renderTile) {
pixelAlpha = pixelAlpha * Target.alpha | 0;
}
return pixelAlpha >= AlphaTolerance;
};
flixel_util_FlxCollision.createCameraWall = function(Camera,PlaceOutside,Thickness,AdjustWorldBounds) {
if(AdjustWorldBounds == null) {
AdjustWorldBounds = false;
}
if(PlaceOutside == null) {
PlaceOutside = true;
}
var left = null;
var right = null;
var top = null;
var bottom = null;
if(PlaceOutside) {
left = new flixel_tile_FlxTileblock(Math.floor(Camera.x - Thickness),Math.floor(Camera.y + Thickness),Thickness,Camera.height - Thickness * 2);
right = new flixel_tile_FlxTileblock(Math.floor(Camera.x + Camera.width),Math.floor(Camera.y + Thickness),Thickness,Camera.height - Thickness * 2);
top = new flixel_tile_FlxTileblock(Math.floor(Camera.x - Thickness),Math.floor(Camera.y - Thickness),Camera.width + Thickness * 2,Thickness);
bottom = new flixel_tile_FlxTileblock(Math.floor(Camera.x - Thickness),Camera.height,Camera.width + Thickness * 2,Thickness);
if(AdjustWorldBounds) {
var _this = flixel_FlxG.worldBounds;
var X = Camera.x - Thickness;
var Y = Camera.y - Thickness;
var Width = Camera.width + Thickness * 2;
var Height = Camera.height + Thickness * 2;
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;
}
} else {
left = new flixel_tile_FlxTileblock(Math.floor(Camera.x),Math.floor(Camera.y + Thickness),Thickness,Camera.height - Thickness * 2);
right = new flixel_tile_FlxTileblock(Math.floor(Camera.x + Camera.width - Thickness),Math.floor(Camera.y + Thickness),Thickness,Camera.height - Thickness * 2);
top = new flixel_tile_FlxTileblock(Math.floor(Camera.x),Math.floor(Camera.y),Camera.width,Thickness);
bottom = new flixel_tile_FlxTileblock(Math.floor(Camera.x),Camera.height - Thickness,Camera.width,Thickness);
if(AdjustWorldBounds) {
var _this = flixel_FlxG.worldBounds;
var X = Camera.x;
var Y = Camera.y;
var Width = Camera.width;
var Height = Camera.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;
}
}
var result = new flixel_group_FlxTypedGroup();
result.add(left);
result.add(right);
result.add(top);
result.add(bottom);
return result;
};
var flixel_util_FlxColor = {};
flixel_util_FlxColor.__properties__ = {set_lightness:"set_lightness",get_lightness:"get_lightness",set_brightness:"set_brightness",get_brightness:"get_brightness",set_saturation:"set_saturation",get_saturation:"get_saturation",set_hue:"set_hue",get_hue:"get_hue",set_black:"set_black",get_black:"get_black",set_yellow:"set_yellow",get_yellow:"get_yellow",set_magenta:"set_magenta",get_magenta:"get_magenta",set_cyan:"set_cyan",get_cyan:"get_cyan",set_alphaFloat:"set_alphaFloat",get_alphaFloat:"get_alphaFloat",set_greenFloat:"set_greenFloat",get_greenFloat:"get_greenFloat",set_blueFloat:"set_blueFloat",get_blueFloat:"get_blueFloat",set_redFloat:"set_redFloat",get_redFloat:"get_redFloat",set_alpha:"set_alpha",get_alpha:"get_alpha",set_green:"set_green",get_green:"get_green",set_blue:"set_blue",get_blue:"get_blue",set_red:"set_red",get_red:"get_red"};
flixel_util_FlxColor.fromInt = function(Value) {
return flixel_util_FlxColor._new(Value);
};
flixel_util_FlxColor.fromRGB = function(Red,Green,Blue,Alpha) {
if(Alpha == null) {
Alpha = 255;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 255;
}
color &= -16711681;
color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16;
color &= -65281;
color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8;
color &= -256;
color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue;
color &= 16777215;
color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24;
return color;
};
flixel_util_FlxColor.fromRGBFloat = function(Red,Green,Blue,Alpha) {
if(Alpha == null) {
Alpha = 1;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Red * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Green * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Blue * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
return color;
};
flixel_util_FlxColor.fromCMYK = function(Cyan,Magenta,Yellow,Black,Alpha) {
if(Alpha == null) {
Alpha = 1;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = (1 - Cyan) * (1 - Black);
var Value1 = Math.round(Value * 255);
color &= -16711681;
color |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value = (1 - Magenta) * (1 - Black);
var Value1 = Math.round(Value * 255);
color &= -65281;
color |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value = (1 - Yellow) * (1 - Black);
var Value1 = Math.round(Value * 255);
color &= -256;
color |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
return color;
};
flixel_util_FlxColor.fromHSB = function(Hue,Saturation,Brightness,Alpha) {
if(Alpha == null) {
Alpha = 1;
}
var color = flixel_util_FlxColor._new();
var chroma = Brightness * Saturation;
var match = Brightness - chroma;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
}
return color;
};
flixel_util_FlxColor.fromHSL = function(Hue,Saturation,Lightness,Alpha) {
if(Alpha == null) {
Alpha = 1;
}
var color = flixel_util_FlxColor._new();
var chroma = (1 - Math.abs(2 * Lightness - 1)) * Saturation;
var match = Lightness - chroma / 2;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
}
return color;
};
flixel_util_FlxColor.fromString = function(str) {
var result = null;
str = StringTools.trim(str);
if(flixel_util_FlxColor.COLOR_REGEX.match(str)) {
var hexColor = "0x" + flixel_util_FlxColor.COLOR_REGEX.matched(2);
result = flixel_util_FlxColor._new(Std.parseInt(hexColor));
if(hexColor.length == 8) {
var Value = Math.round(255);
result &= 16777215;
result |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
}
} else {
str = str.toUpperCase();
var key = haxe_ds_StringMap.keysIterator(flixel_util_FlxColor.colorLookup.h);
while(key.hasNext()) {
var key1 = key.next();
if(key1.toUpperCase() == str) {
result = flixel_util_FlxColor._new(flixel_util_FlxColor.colorLookup.h[key1]);
break;
}
}
}
return result;
};
flixel_util_FlxColor.getHSBColorWheel = function(Alpha) {
if(Alpha == null) {
Alpha = 255;
}
var _g = [];
var _g1 = 0;
while(_g1 < 360) {
var c = _g1++;
_g.push(flixel_util_FlxColor.fromHSB(c,1.0,1.0,Alpha));
}
return _g;
};
flixel_util_FlxColor.interpolate = function(Color1,Color2,Factor) {
if(Factor == null) {
Factor = 0.5;
}
var r = ((Color2 >> 16 & 255) - (Color1 >> 16 & 255)) * Factor + (Color1 >> 16 & 255) | 0;
var g = ((Color2 >> 8 & 255) - (Color1 >> 8 & 255)) * Factor + (Color1 >> 8 & 255) | 0;
var b = ((Color2 & 255) - (Color1 & 255)) * Factor + (Color1 & 255) | 0;
var a = ((Color2 >> 24 & 255) - (Color1 >> 24 & 255)) * Factor + (Color1 >> 24 & 255) | 0;
var Alpha = a;
if(Alpha == null) {
Alpha = 255;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 255;
}
color &= -16711681;
color |= (r > 255 ? 255 : r < 0 ? 0 : r) << 16;
color &= -65281;
color |= (g > 255 ? 255 : g < 0 ? 0 : g) << 8;
color &= -256;
color |= b > 255 ? 255 : b < 0 ? 0 : b;
color &= 16777215;
color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24;
return color;
};
flixel_util_FlxColor.gradient = function(Color1,Color2,Steps,Ease) {
var output = [];
if(Ease == null) {
Ease = function(t) {
return t;
};
}
var _g = 0;
var _g1 = Steps;
while(_g < _g1) {
var step = _g++;
var Factor = Ease(step / (Steps - 1));
if(Factor == null) {
Factor = 0.5;
}
var r = ((Color2 >> 16 & 255) - (Color1 >> 16 & 255)) * Factor + (Color1 >> 16 & 255) | 0;
var g = ((Color2 >> 8 & 255) - (Color1 >> 8 & 255)) * Factor + (Color1 >> 8 & 255) | 0;
var b = ((Color2 & 255) - (Color1 & 255)) * Factor + (Color1 & 255) | 0;
var a = ((Color2 >> 24 & 255) - (Color1 >> 24 & 255)) * Factor + (Color1 >> 24 & 255) | 0;
var Alpha = a;
if(Alpha == null) {
Alpha = 255;
}
var color = flixel_util_FlxColor._new();
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 255;
}
color &= -16711681;
color |= (r > 255 ? 255 : r < 0 ? 0 : r) << 16;
color &= -65281;
color |= (g > 255 ? 255 : g < 0 ? 0 : g) << 8;
color &= -256;
color |= b > 255 ? 255 : b < 0 ? 0 : b;
color &= 16777215;
color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24;
output[step] = color;
}
return output;
};
flixel_util_FlxColor.multiply = function(lhs,rhs) {
var Red = (lhs >> 16 & 255) / 255 * ((rhs >> 16 & 255) / 255);
var Green = (lhs >> 8 & 255) / 255 * ((rhs >> 8 & 255) / 255);
var Blue = (lhs & 255) / 255 * ((rhs & 255) / 255);
var color = flixel_util_FlxColor._new();
var Alpha = 1;
if(Alpha == null) {
Alpha = 1;
}
var Value = Math.round(Red * 255);
color &= -16711681;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Green * 255);
color &= -65281;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Blue * 255);
color &= -256;
color |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha * 255);
color &= 16777215;
color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
return color;
};
flixel_util_FlxColor.add = function(lhs,rhs) {
var Red = (lhs >> 16 & 255) + (rhs >> 16 & 255);
var Green = (lhs >> 8 & 255) + (rhs >> 8 & 255);
var Blue = (lhs & 255) + (rhs & 255);
var color = flixel_util_FlxColor._new();
var Alpha = 255;
if(Alpha == null) {
Alpha = 255;
}
color &= -16711681;
color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16;
color &= -65281;
color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8;
color &= -256;
color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue;
color &= 16777215;
color |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24;
return color;
};
flixel_util_FlxColor.subtract = function(lhs,rhs) {
var Red = (lhs >> 16 & 255) - (rhs >> 16 & 255);
var Green = (lhs >> 8 & 255) - (rhs >> 8 & 255);
var Blue = (lhs & 255) - (rhs & 255);
var color = flixel_util_FlxColor._new();
var Alpha = 255;
if(Alpha == null) {
Alpha = 255;
}
color &= -16711681;
color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16;
color &= -65281;
color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8;
color &= -256;
color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue;
color &= 16777215;
color |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24;
return color;
};
flixel_util_FlxColor.getComplementHarmony = function(this1) {
return flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) + 180,0,350),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255);
};
flixel_util_FlxColor.getAnalogousHarmony = function(this1,Threshold) {
if(Threshold == null) {
Threshold = 30;
}
var warmer = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) - Threshold,0,350),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255);
var colder = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) + Threshold,0,350),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255);
return { original : this1, warmer : warmer, colder : colder};
};
flixel_util_FlxColor.getSplitComplementHarmony = function(this1,Threshold) {
if(Threshold == null) {
Threshold = 30;
}
var oppositeHue = flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) + 180,0,350);
var warmer = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap(oppositeHue - Threshold,0,350),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255);
var colder = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap(oppositeHue + Threshold,0,350),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255);
return { original : this1, warmer : warmer, colder : colder};
};
flixel_util_FlxColor.getTriadicHarmony = function(this1) {
var triadic1 = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) + 120,0,359),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255);
var triadic2 = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(triadic1) | 0) + 120,0,359),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255);
return { color1 : this1, color2 : triadic1, color3 : triadic2};
};
flixel_util_FlxColor.to24Bit = function(this1) {
return this1 & 16777215;
};
flixel_util_FlxColor.toHexString = function(this1,Alpha,Prefix) {
if(Prefix == null) {
Prefix = true;
}
if(Alpha == null) {
Alpha = true;
}
var tmp = Alpha ? StringTools.hex(this1 >> 24 & 255,2) : "";
return (Prefix ? "0x" : "") + tmp + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2);
};
flixel_util_FlxColor.toWebString = function(this1) {
var Alpha = false;
var Prefix = false;
if(Prefix == null) {
Prefix = true;
}
if(Alpha == null) {
Alpha = true;
}
var tmp = Alpha ? StringTools.hex(this1 >> 24 & 255,2) : "";
return "#" + ((Prefix ? "0x" : "") + tmp + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2));
};
flixel_util_FlxColor.getColorInfo = function(this1) {
var result = "0x" + StringTools.hex(this1 >> 24 & 255,2) + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2) + "\n";
result += "Alpha: " + (this1 >> 24 & 255) + " Red: " + (this1 >> 16 & 255) + " Green: " + (this1 >> 8 & 255) + " Blue: " + (this1 & 255) + "\n";
result += "Hue: " + flixel_math_FlxMath.roundDecimal(flixel_util_FlxColor.get_hue(this1),2) + " Saturation: " + flixel_math_FlxMath.roundDecimal((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),2) + " Brightness: " + flixel_math_FlxMath.roundDecimal(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),2) + " Lightness: " + flixel_math_FlxMath.roundDecimal((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) + Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / 2,2);
return result;
};
flixel_util_FlxColor.getDarkened = function(this1,Factor) {
if(Factor == null) {
Factor = 0.2;
}
var lowerBound = Factor < 0 ? 0 : Factor;
Factor = lowerBound > 1 ? 1 : lowerBound;
var output = this1;
var Value = (Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)) + Math.min((output >> 16 & 255) / 255,Math.min((output >> 8 & 255) / 255,(output & 255) / 255))) / 2 * (1 - Factor);
var Hue = flixel_util_FlxColor.get_hue(output);
var Alpha = (output >> 24 & 255) / 255;
var chroma = (1 - Math.abs(2 * Value - 1)) * ((Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)) - Math.min((output >> 16 & 255) / 255,Math.min((output >> 8 & 255) / 255,(output & 255) / 255))) / Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)));
var match = Value - chroma / 2;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
}
return output;
};
flixel_util_FlxColor.getLightened = function(this1,Factor) {
if(Factor == null) {
Factor = 0.2;
}
var lowerBound = Factor < 0 ? 0 : Factor;
Factor = lowerBound > 1 ? 1 : lowerBound;
var output = this1;
var Value = (Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)) + Math.min((output >> 16 & 255) / 255,Math.min((output >> 8 & 255) / 255,(output & 255) / 255))) / 2 + (1 - (Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) + Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / 2) * Factor;
var Hue = flixel_util_FlxColor.get_hue(output);
var Alpha = (output >> 24 & 255) / 255;
var chroma = (1 - Math.abs(2 * Value - 1)) * ((Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)) - Math.min((output >> 16 & 255) / 255,Math.min((output >> 8 & 255) / 255,(output & 255) / 255))) / Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)));
var match = Value - chroma / 2;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
output &= -16711681;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
output &= -65281;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
output &= -256;
output |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
output &= 16777215;
output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
}
return output;
};
flixel_util_FlxColor.getInverted = function(this1) {
var oldAlpha = this1 >> 24 & 255;
var lhs = -1;
var Red = (lhs >> 16 & 255) - (this1 >> 16 & 255);
var Green = (lhs >> 8 & 255) - (this1 >> 8 & 255);
var Blue = (lhs & 255) - (this1 & 255);
var color = flixel_util_FlxColor._new();
var Alpha = 255;
if(Alpha == null) {
Alpha = 255;
}
color &= -16711681;
color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16;
color &= -65281;
color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8;
color &= -256;
color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue;
color &= 16777215;
color |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24;
var output = color;
output &= 16777215;
output |= (oldAlpha > 255 ? 255 : oldAlpha < 0 ? 0 : oldAlpha) << 24;
return output;
};
flixel_util_FlxColor.setRGB = function(this1,Red,Green,Blue,Alpha) {
if(Alpha == null) {
Alpha = 255;
}
this1 &= -16711681;
this1 |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16;
this1 &= -65281;
this1 |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8;
this1 &= -256;
this1 |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue;
this1 &= 16777215;
this1 |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24;
return this1;
};
flixel_util_FlxColor.setRGBFloat = function(this1,Red,Green,Blue,Alpha) {
if(Alpha == null) {
Alpha = 1;
}
var Value = Math.round(Red * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Green * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Blue * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
return this1;
};
flixel_util_FlxColor.setCMYK = function(this1,Cyan,Magenta,Yellow,Black,Alpha) {
if(Alpha == null) {
Alpha = 1;
}
var Value = (1 - Cyan) * (1 - Black);
var Value1 = Math.round(Value * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value = (1 - Magenta) * (1 - Black);
var Value1 = Math.round(Value * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value = (1 - Yellow) * (1 - Black);
var Value1 = Math.round(Value * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value = Math.round(Alpha * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
return this1;
};
flixel_util_FlxColor.setHSB = function(this1,Hue,Saturation,Brightness,Alpha) {
var chroma = Brightness * Saturation;
var match = Brightness - chroma;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
}
return this1;
};
flixel_util_FlxColor.setHSL = function(this1,Hue,Saturation,Lightness,Alpha) {
var chroma = (1 - Math.abs(2 * Lightness - 1)) * Saturation;
var match = Lightness - chroma / 2;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(match * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
}
return this1;
};
flixel_util_FlxColor.setHSChromaMatch = function(this1,Hue,Saturation,Chroma,Match,Alpha) {
Hue %= 360;
var hueD = Hue / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + Match;
Chroma += Match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Match * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Match * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Match * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Match * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Match * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
var Value = Math.round(Match * 255);
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
var Value = Math.round(mid * 255);
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
var Value = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
break;
}
return this1;
};
flixel_util_FlxColor._new = function(Value) {
if(Value == null) {
Value = 0;
}
var this1 = Value;
return this1;
};
flixel_util_FlxColor.getThis = function(this1) {
return this1;
};
flixel_util_FlxColor.validate = function(this1) {
};
flixel_util_FlxColor.get_red = function(this1) {
return this1 >> 16 & 255;
};
flixel_util_FlxColor.get_green = function(this1) {
return this1 >> 8 & 255;
};
flixel_util_FlxColor.get_blue = function(this1) {
return this1 & 255;
};
flixel_util_FlxColor.get_alpha = function(this1) {
return this1 >> 24 & 255;
};
flixel_util_FlxColor.get_redFloat = function(this1) {
return (this1 >> 16 & 255) / 255;
};
flixel_util_FlxColor.get_greenFloat = function(this1) {
return (this1 >> 8 & 255) / 255;
};
flixel_util_FlxColor.get_blueFloat = function(this1) {
return (this1 & 255) / 255;
};
flixel_util_FlxColor.get_alphaFloat = function(this1) {
return (this1 >> 24 & 255) / 255;
};
flixel_util_FlxColor.set_red = function(this1,Value) {
this1 &= -16711681;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16;
return Value;
};
flixel_util_FlxColor.set_green = function(this1,Value) {
this1 &= -65281;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8;
return Value;
};
flixel_util_FlxColor.set_blue = function(this1,Value) {
this1 &= -256;
this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value;
return Value;
};
flixel_util_FlxColor.set_alpha = function(this1,Value) {
this1 &= 16777215;
this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24;
return Value;
};
flixel_util_FlxColor.set_redFloat = function(this1,Value) {
var Value1 = Math.round(Value * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
return Value;
};
flixel_util_FlxColor.set_greenFloat = function(this1,Value) {
var Value1 = Math.round(Value * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
return Value;
};
flixel_util_FlxColor.set_blueFloat = function(this1,Value) {
var Value1 = Math.round(Value * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
return Value;
};
flixel_util_FlxColor.set_alphaFloat = function(this1,Value) {
var Value1 = Math.round(Value * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
return Value;
};
flixel_util_FlxColor.get_cyan = function(this1) {
return (1 - (this1 >> 16 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
};
flixel_util_FlxColor.get_magenta = function(this1) {
return (1 - (this1 >> 8 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
};
flixel_util_FlxColor.get_yellow = function(this1) {
return (1 - (this1 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
};
flixel_util_FlxColor.get_black = function(this1) {
return 1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
};
flixel_util_FlxColor.set_cyan = function(this1,Value) {
var Magenta = (1 - (this1 >> 8 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Yellow = (1 - (this1 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Black = 1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Alpha = (this1 >> 24 & 255) / 255;
if(Alpha == null) {
Alpha = 1;
}
var Value1 = (1 - Value) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -16711681;
this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 16;
var Value1 = (1 - Magenta) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -65281;
this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 8;
var Value1 = (1 - Yellow) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -256;
this1 |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2;
var Value1 = Math.round(Alpha * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
return Value;
};
flixel_util_FlxColor.set_magenta = function(this1,Value) {
var Yellow = (1 - (this1 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Black = 1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Alpha = (this1 >> 24 & 255) / 255;
if(Alpha == null) {
Alpha = 1;
}
var Value1 = (1 - (1 - (this1 >> 16 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -16711681;
this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 16;
var Value1 = (1 - Value) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -65281;
this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 8;
var Value1 = (1 - Yellow) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -256;
this1 |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2;
var Value1 = Math.round(Alpha * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
return Value;
};
flixel_util_FlxColor.set_yellow = function(this1,Value) {
var Magenta = (1 - (this1 >> 8 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Black = 1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Alpha = (this1 >> 24 & 255) / 255;
if(Alpha == null) {
Alpha = 1;
}
var Value1 = (1 - (1 - (this1 >> 16 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -16711681;
this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 16;
var Value1 = (1 - Magenta) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -65281;
this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 8;
var Value1 = (1 - Value) * (1 - Black);
var Value2 = Math.round(Value1 * 255);
this1 &= -256;
this1 |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2;
var Value1 = Math.round(Alpha * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
return Value;
};
flixel_util_FlxColor.set_black = function(this1,Value) {
var Magenta = (1 - (this1 >> 8 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Yellow = (1 - (this1 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Alpha = (this1 >> 24 & 255) / 255;
if(Alpha == null) {
Alpha = 1;
}
var Value1 = (1 - (1 - (this1 >> 16 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) * (1 - Value);
var Value2 = Math.round(Value1 * 255);
this1 &= -16711681;
this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 16;
var Value1 = (1 - Magenta) * (1 - Value);
var Value2 = Math.round(Value1 * 255);
this1 &= -65281;
this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 8;
var Value1 = (1 - Yellow) * (1 - Value);
var Value2 = Math.round(Value1 * 255);
this1 &= -256;
this1 |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2;
var Value1 = Math.round(Alpha * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
return Value;
};
flixel_util_FlxColor.get_hue = function(this1) {
var hueRad = Math.atan2(Math.sqrt(3) * ((this1 >> 8 & 255) / 255 - (this1 & 255) / 255),2 * ((this1 >> 16 & 255) / 255) - (this1 >> 8 & 255) / 255 - (this1 & 255) / 255);
var hue = 0;
if(hueRad != 0) {
hue = 180 / Math.PI * Math.atan2(Math.sqrt(3) * ((this1 >> 8 & 255) / 255 - (this1 & 255) / 255),2 * ((this1 >> 16 & 255) / 255) - (this1 >> 8 & 255) / 255 - (this1 & 255) / 255);
}
if(hue < 0) {
return hue + 360;
} else {
return hue;
}
};
flixel_util_FlxColor.get_brightness = function(this1) {
return Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
};
flixel_util_FlxColor.get_saturation = function(this1) {
return (Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
};
flixel_util_FlxColor.get_lightness = function(this1) {
return (Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) + Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / 2;
};
flixel_util_FlxColor.set_hue = function(this1,Value) {
var Brightness = Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Alpha = (this1 >> 24 & 255) / 255;
var chroma = Brightness * ((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)));
var match = Brightness - chroma;
var Hue = Value;
var Chroma = chroma;
Hue %= 360;
var hueD = Hue / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(match * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(match * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(mid * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(mid * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
}
return Value;
};
flixel_util_FlxColor.set_saturation = function(this1,Value) {
var Hue = flixel_util_FlxColor.get_hue(this1);
var Brightness = Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
var Alpha = (this1 >> 24 & 255) / 255;
var chroma = Brightness * Value;
var match = Brightness - chroma;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(match * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(match * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(mid * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(mid * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
}
return Value;
};
flixel_util_FlxColor.set_brightness = function(this1,Value) {
var Hue = flixel_util_FlxColor.get_hue(this1);
var Alpha = (this1 >> 24 & 255) / 255;
var chroma = Value * ((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)));
var match = Value - chroma;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(match * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(match * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(mid * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(mid * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
}
return Value;
};
flixel_util_FlxColor.set_lightness = function(this1,Value) {
var Hue = flixel_util_FlxColor.get_hue(this1);
var Alpha = (this1 >> 24 & 255) / 255;
var chroma = (1 - Math.abs(2 * Value - 1)) * ((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)));
var match = Value - chroma / 2;
var Hue1 = Hue;
var Chroma = chroma;
Hue1 %= 360;
var hueD = Hue1 / 60;
var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match;
Chroma += match;
switch(hueD | 0) {
case 0:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(match * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 1:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(match * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 2:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(Chroma * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(mid * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 3:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(match * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(mid * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 4:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(mid * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(Chroma * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
case 5:
var Alpha1 = Alpha;
if(Alpha1 == null) {
Alpha1 = 1;
}
var Value1 = Math.round(Chroma * 255);
this1 &= -16711681;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16;
var Value1 = Math.round(match * 255);
this1 &= -65281;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8;
var Value1 = Math.round(mid * 255);
this1 &= -256;
this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1;
var Value1 = Math.round(Alpha1 * 255);
this1 &= 16777215;
this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24;
break;
}
return Value;
};
flixel_util_FlxColor.maxColor = function(this1) {
return Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
};
flixel_util_FlxColor.minColor = function(this1) {
return Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255));
};
flixel_util_FlxColor.boundChannel = function(this1,Value) {
if(Value > 255) {
return 255;
} else if(Value < 0) {
return 0;
} else {
return Value;
}
};
var flixel_util_FlxColorTransformUtil = function() { };
$hxClasses["flixel.util.FlxColorTransformUtil"] = flixel_util_FlxColorTransformUtil;
flixel_util_FlxColorTransformUtil.__name__ = "flixel.util.FlxColorTransformUtil";
flixel_util_FlxColorTransformUtil.setMultipliers = function(transform,red,green,blue,alpha) {
transform.redMultiplier = red;
transform.greenMultiplier = green;
transform.blueMultiplier = blue;
transform.alphaMultiplier = alpha;
return transform;
};
flixel_util_FlxColorTransformUtil.setOffsets = function(transform,red,green,blue,alpha) {
transform.redOffset = red;
transform.greenOffset = green;
transform.blueOffset = blue;
transform.alphaOffset = alpha;
return transform;
};
flixel_util_FlxColorTransformUtil.hasRGBMultipliers = function(transform) {
if(!(transform.redMultiplier != 1 || transform.greenMultiplier != 1)) {
return transform.blueMultiplier != 1;
} else {
return true;
}
};
flixel_util_FlxColorTransformUtil.hasRGBAMultipliers = function(transform) {
if(!flixel_util_FlxColorTransformUtil.hasRGBMultipliers(transform)) {
return transform.alphaMultiplier != 1;
} else {
return true;
}
};
flixel_util_FlxColorTransformUtil.hasRGBOffsets = function(transform) {
if(!(transform.redOffset != 0 || transform.greenOffset != 0)) {
return transform.blueOffset != 0;
} else {
return true;
}
};
flixel_util_FlxColorTransformUtil.hasRGBAOffsets = function(transform) {
if(!flixel_util_FlxColorTransformUtil.hasRGBOffsets(transform)) {
return transform.alphaOffset != 0;
} else {
return true;
}
};
var flixel_util_FlxDestroyUtil = function() { };
$hxClasses["flixel.util.FlxDestroyUtil"] = flixel_util_FlxDestroyUtil;
flixel_util_FlxDestroyUtil.__name__ = "flixel.util.FlxDestroyUtil";
flixel_util_FlxDestroyUtil.destroy = function(object) {
if(object != null) {
object.destroy();
}
return null;
};
flixel_util_FlxDestroyUtil.destroyArray = function(array) {
if(array != null) {
var _g = 0;
while(_g < array.length) {
var e = array[_g];
++_g;
flixel_util_FlxDestroyUtil.destroy(e);
}
array.splice(0,array.length);
}
return null;
};
flixel_util_FlxDestroyUtil.put = function(object) {
if(object != null) {
object.put();
}
return null;
};
flixel_util_FlxDestroyUtil.putArray = function(array) {
if(array != null) {
var _g = 0;
while(_g < array.length) {
var e = array[_g];
++_g;
flixel_util_FlxDestroyUtil.put(e);
}
array.splice(0,array.length);
}
return null;
};
flixel_util_FlxDestroyUtil.dispose = function(bitmapData) {
if(bitmapData != null) {
bitmapData.dispose();
}
return null;
};
flixel_util_FlxDestroyUtil.disposeIfNotEqual = function(bitmapData,width,height) {
if(bitmapData != null && (bitmapData.width != width || bitmapData.height != height)) {
bitmapData.dispose();
return null;
} else if(bitmapData != null) {
return bitmapData;
}
return null;
};
flixel_util_FlxDestroyUtil.removeChild = function(parent,child) {
if(parent != null && child != null && parent.contains(child)) {
parent.removeChild(child);
}
return null;
};
var flixel_util_FlxGradient = function() { };
$hxClasses["flixel.util.FlxGradient"] = flixel_util_FlxGradient;
flixel_util_FlxGradient.__name__ = "flixel.util.FlxGradient";
flixel_util_FlxGradient.createGradientMatrix = function(width,height,colors,chunkSize,rotation) {
if(rotation == null) {
rotation = 90;
}
if(chunkSize == null) {
chunkSize = 1;
}
var gradientMatrix = new openfl_geom_Matrix();
var rot = rotation * (Math.PI / 180);
gradientMatrix.createGradientBox(width,UInt.toFloat(height) / UInt.toFloat(chunkSize),rot,0,0);
var alpha = [];
var _g = 0;
var _g1 = colors.length;
while(_g < _g1) {
var ai = _g++;
alpha.push((colors[ai] >> 24 & 255) / 255);
}
var ratio = [];
if(colors.length == 2) {
ratio[0] = 0;
ratio[1] = 255;
} else {
var spread = 255 / (colors.length - 1) | 0;
ratio.push(0);
var _g = 1;
var _g1 = colors.length - 1;
while(_g < _g1) {
var ri = _g++;
ratio.push(ri * spread);
}
ratio.push(255);
}
return { matrix : gradientMatrix, alpha : alpha, ratio : ratio};
};
flixel_util_FlxGradient.createGradientArray = function(width,height,colors,chunkSize,rotation,interpolate) {
if(interpolate == null) {
interpolate = true;
}
if(rotation == null) {
rotation = 90;
}
if(chunkSize == null) {
chunkSize = 1;
}
var data = flixel_util_FlxGradient.createGradientBitmapData(width,height,colors,chunkSize,rotation,interpolate);
var result = [];
var _g = 0;
var _g1 = data.height;
while(_g < _g1) {
var y = _g++;
result.push(data.getPixel32(0,y));
}
return result;
};
flixel_util_FlxGradient.createGradientFlxSprite = function(width,height,colors,chunkSize,rotation,interpolate) {
if(interpolate == null) {
interpolate = true;
}
if(rotation == null) {
rotation = 90;
}
if(chunkSize == null) {
chunkSize = 1;
}
var data = flixel_util_FlxGradient.createGradientBitmapData(width,height,colors,chunkSize,rotation,interpolate);
var dest = new flixel_FlxSprite();
dest.set_pixels(data);
return dest;
};
flixel_util_FlxGradient.createGradientBitmapData = function(width,height,colors,chunkSize,rotation,interpolate) {
if(interpolate == null) {
interpolate = true;
}
if(rotation == null) {
rotation = 90;
}
if(chunkSize == null) {
chunkSize = 1;
}
if(UInt.gt(1,width)) {
width = 1;
}
if(UInt.gt(1,height)) {
height = 1;
}
var gradient = flixel_util_FlxGradient.createGradientMatrix(width,height,colors,chunkSize,rotation);
var shape = new openfl_display_Shape();
var interpolationMethod = interpolate ? 1 : 0;
shape.get_graphics().beginGradientFill(0,colors,gradient.alpha,gradient.ratio,gradient.matrix,0,interpolationMethod,0);
shape.get_graphics().drawRect(0,0,UInt.toFloat(width),UInt.toFloat(height) / UInt.toFloat(chunkSize));
var data = new openfl_display_BitmapData(width,height,true,0);
if(chunkSize == 1) {
data.draw(shape);
} else {
var tempBitmap = new openfl_display_Bitmap(new openfl_display_BitmapData(width,UInt.toFloat(height) / UInt.toFloat(chunkSize) | 0,true,0));
tempBitmap.get_bitmapData().draw(shape);
tempBitmap.set_scaleY(UInt.toFloat(chunkSize));
var sM = new openfl_geom_Matrix();
sM.scale(tempBitmap.get_scaleX(),tempBitmap.get_scaleY());
data.draw(tempBitmap,sM);
}
return data;
};
flixel_util_FlxGradient.overlayGradientOnFlxSprite = function(dest,width,height,colors,destX,destY,chunkSize,rotation,interpolate) {
if(interpolate == null) {
interpolate = true;
}
if(rotation == null) {
rotation = 90;
}
if(chunkSize == null) {
chunkSize = 1;
}
if(destY == null) {
destY = 0;
}
if(destX == null) {
destX = 0;
}
if(width > dest.get_width()) {
width = dest.get_width() | 0;
}
if(height > dest.get_height()) {
height = dest.get_height() | 0;
}
var source = flixel_util_FlxGradient.createGradientFlxSprite(width,height,colors,chunkSize,rotation,interpolate);
dest.stamp(source,destX,destY);
source.destroy();
return dest;
};
flixel_util_FlxGradient.overlayGradientOnBitmapData = function(dest,width,height,colors,destX,destY,chunkSize,rotation,interpolate) {
if(interpolate == null) {
interpolate = true;
}
if(rotation == null) {
rotation = 90;
}
if(chunkSize == null) {
chunkSize = 1;
}
if(destY == null) {
destY = 0;
}
if(destX == null) {
destX = 0;
}
if(width > dest.width) {
width = dest.width;
}
if(height > dest.height) {
height = dest.height;
}
var source = flixel_util_FlxGradient.createGradientBitmapData(width,height,colors,chunkSize,rotation,interpolate);
dest.copyPixels(source,new openfl_geom_Rectangle(0,0,source.width,source.height),new openfl_geom_Point(destX,destY),null,null,true);
source.dispose();
return dest;
};
var flixel_util_FlxHorizontalAlign = $hxEnums["flixel.util.FlxHorizontalAlign"] = { __ename__ : "flixel.util.FlxHorizontalAlign", __constructs__ : ["LEFT","CENTER","RIGHT"]
,LEFT: {_hx_index:0,__enum__:"flixel.util.FlxHorizontalAlign",toString:$estr}
,CENTER: {_hx_index:1,__enum__:"flixel.util.FlxHorizontalAlign",toString:$estr}
,RIGHT: {_hx_index:2,__enum__:"flixel.util.FlxHorizontalAlign",toString:$estr}
};
var flixel_util_FlxPath = function(Nodes) {
this._firstUpdate = false;
this._wasObjectImmovable = null;
this._autoRotate = false;
this._inc = 1;
this.finished = false;
this.nodeIndex = 0;
this.active = false;
this.autoCenter = true;
this.angle = 0;
this.speed = 0;
if(Nodes != null) {
this._nodes = Nodes.slice();
} else {
this._nodes = [];
}
};
$hxClasses["flixel.util.FlxPath"] = flixel_util_FlxPath;
flixel_util_FlxPath.__name__ = "flixel.util.FlxPath";
flixel_util_FlxPath.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_util_FlxPath.prototype = {
_nodes: null
,speed: null
,angle: null
,autoCenter: null
,active: null
,onComplete: null
,nodeIndex: null
,finished: null
,_mode: null
,_inc: null
,_autoRotate: null
,_wasObjectImmovable: null
,_firstUpdate: null
,object: null
,reset: function() {
this.autoCenter = true;
return this;
}
,setProperties: function(Speed,Mode,AutoRotate) {
if(AutoRotate == null) {
AutoRotate = false;
}
if(Mode == null) {
Mode = 0;
}
if(Speed == null) {
Speed = 100;
}
this.speed = Math.abs(Speed);
this._mode = Mode;
this._autoRotate = AutoRotate;
return this;
}
,start: function(Nodes,Speed,Mode,AutoRotate,NodesAsReference) {
if(NodesAsReference == null) {
NodesAsReference = false;
}
if(AutoRotate == null) {
AutoRotate = false;
}
if(Mode == null) {
Mode = 0;
}
if(Speed == null) {
Speed = 100;
}
if(Nodes != null) {
if(NodesAsReference) {
this._nodes = Nodes;
} else {
this._nodes = Nodes.slice();
}
}
this.setProperties(Speed,Mode,AutoRotate);
if(this._nodes.length > 0) {
this.restart();
}
return this;
}
,restart: function() {
this.finished = false;
this._firstUpdate = true;
this.active = this._nodes.length > 0;
if(!this.active) {
return this;
}
if(this._mode == 1 || this._mode == 256) {
this.nodeIndex = this._nodes.length - 1;
this._inc = -1;
} else {
this.nodeIndex = 0;
this._inc = 1;
}
return this;
}
,setNode: function(NodeIndex) {
if(NodeIndex < 0) {
NodeIndex = 0;
} else if(NodeIndex > this._nodes.length - 1) {
NodeIndex = this._nodes.length - 1;
}
this.nodeIndex = NodeIndex;
this.advancePath();
return this;
}
,update: function(elapsed) {
if(this.object == null) {
return;
}
if(this._firstUpdate) {
this._wasObjectImmovable = this.object.immovable;
this.object.set_immovable(true);
this._firstUpdate = false;
}
flixel_util_FlxPath._point.set_x(this.object.x);
flixel_util_FlxPath._point.set_y(this.object.y);
if(this.autoCenter) {
var _this = flixel_util_FlxPath._point;
var X = this.object.get_width() * 0.5;
var Y = this.object.get_height() * 0.5;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = _this;
_g.set_x(_g.x + X);
var _g = _this;
_g.set_y(_g.y + Y);
}
var node = this._nodes[this.nodeIndex];
var deltaX = node.x - flixel_util_FlxPath._point.x;
var deltaY = node.y - flixel_util_FlxPath._point.y;
var horizontalOnly = (this._mode & 65536) > 0;
var verticalOnly = (this._mode & 1048576) > 0;
if(horizontalOnly) {
if((deltaX > 0 ? deltaX : -deltaX) < this.speed * elapsed) {
node = this.advancePath();
}
} else if(verticalOnly) {
if((deltaY > 0 ? deltaY : -deltaY) < this.speed * elapsed) {
node = this.advancePath();
}
} else if(Math.sqrt(deltaX * deltaX + deltaY * deltaY) < this.speed * elapsed) {
node = this.advancePath();
}
if(this.object != null && this.speed != 0) {
flixel_util_FlxPath._point.set_x(this.object.x);
flixel_util_FlxPath._point.set_y(this.object.y);
if(this.autoCenter) {
var _this = flixel_util_FlxPath._point;
var X = this.object.get_width() * 0.5;
var Y = this.object.get_height() * 0.5;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var _g = _this;
_g.set_x(_g.x + X);
var _g = _this;
_g.set_y(_g.y + Y);
}
var _this = flixel_util_FlxPath._point;
var result = Math.abs(_this.x - node.x) <= 0.0000001 && Math.abs(_this.y - node.y) <= 0.0000001;
if(node._weak) {
node.put();
}
if(!result) {
this.calculateVelocity(node,horizontalOnly,verticalOnly);
} else {
this.object.velocity.set();
}
if(this._autoRotate) {
this.object.angularVelocity = 0;
this.object.angularAcceleration = 0;
this.object.set_angle(this.angle);
}
if(this.finished) {
this.cancel();
}
}
}
,calculateVelocity: function(node,horizontalOnly,verticalOnly) {
if(horizontalOnly || flixel_util_FlxPath._point.y == node.y) {
this.object.velocity.set_x(flixel_util_FlxPath._point.x < node.x ? this.speed : -this.speed);
this.angle = this.object.velocity.x < 0 ? -90 : 90;
if(!horizontalOnly) {
this.object.velocity.set_y(0);
}
} else if(verticalOnly || flixel_util_FlxPath._point.x == node.x) {
this.object.velocity.set_y(flixel_util_FlxPath._point.y < node.y ? this.speed : -this.speed);
this.angle = this.object.velocity.y < 0 ? 0 : 180;
if(!verticalOnly) {
this.object.velocity.set_x(0);
}
} else {
this.object.velocity.set_x(flixel_util_FlxPath._point.x < node.x ? this.speed : -this.speed);
this.object.velocity.set_y(flixel_util_FlxPath._point.y < node.y ? this.speed : -this.speed);
this.angle = flixel_util_FlxPath._point.angleBetween(node);
this.object.velocity.set(0,-this.speed);
var tmp = this.object.velocity;
var X = 0;
var Y = 0;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
var point1 = point;
point1._weak = true;
tmp.rotate(point1,this.angle);
}
}
,advancePath: function(Snap) {
if(Snap == null) {
Snap = true;
}
if(Snap) {
var oldNode = this._nodes[this.nodeIndex];
if(oldNode != null) {
if((this._mode & 1048576) == 0) {
this.object.set_x(oldNode.x);
if(this.autoCenter) {
var _g = this.object;
_g.set_x(_g.x - this.object.get_width() * 0.5);
}
}
if((this._mode & 65536) == 0) {
this.object.set_y(oldNode.y);
if(this.autoCenter) {
var _g = this.object;
_g.set_y(_g.y - this.object.get_height() * 0.5);
}
}
}
}
var callComplete = false;
this.nodeIndex += this._inc;
if((this._mode & 1) > 0) {
if(this.nodeIndex < 0) {
this.nodeIndex = 0;
callComplete = true;
this.onEnd();
}
} else if((this._mode & 16) > 0) {
if(this.nodeIndex >= this._nodes.length) {
callComplete = true;
this.nodeIndex = 0;
}
} else if((this._mode & 256) > 0) {
if(this.nodeIndex < 0) {
this.nodeIndex = this._nodes.length - 1;
callComplete = true;
if(this.nodeIndex < 0) {
this.nodeIndex = 0;
}
}
} else if((this._mode & 4096) > 0) {
if(this._inc > 0) {
if(this.nodeIndex >= this._nodes.length) {
this.nodeIndex = this._nodes.length - 2;
callComplete = true;
if(this.nodeIndex < 0) {
this.nodeIndex = 0;
}
this._inc = -this._inc;
}
} else if(this.nodeIndex < 0) {
this.nodeIndex = 1;
callComplete = true;
if(this.nodeIndex >= this._nodes.length) {
this.nodeIndex = this._nodes.length - 1;
}
if(this.nodeIndex < 0) {
this.nodeIndex = 0;
}
this._inc = -this._inc;
}
} else if(this.nodeIndex >= this._nodes.length) {
this.nodeIndex = this._nodes.length - 1;
callComplete = true;
this.onEnd();
}
if(callComplete && this.onComplete != null) {
this.onComplete(this);
}
return this._nodes[this.nodeIndex];
}
,cancel: function() {
this.onEnd();
if(this.object != null) {
this.object.velocity.set(0,0);
}
return this;
}
,onEnd: function() {
this.finished = true;
this.active = false;
if(this._wasObjectImmovable != null) {
this.object.set_immovable(this._wasObjectImmovable);
}
this._wasObjectImmovable = null;
}
,destroy: function() {
flixel_util_FlxDestroyUtil.putArray(this._nodes);
this._nodes = null;
this.object = null;
this.onComplete = null;
}
,add: function(X,Y) {
var tmp = this._nodes;
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
tmp.push(point);
return this;
}
,addAt: function(X,Y,Index) {
if(Index < 0) {
return this;
}
var _this = this._nodes;
var X1 = X;
var Y1 = Y;
if(Y1 == null) {
Y1 = 0;
}
if(X1 == null) {
X1 = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X1,Y1);
point._inPool = false;
_this.splice(Index,0,point);
return this;
}
,addPoint: function(Node1,AsReference) {
if(AsReference == null) {
AsReference = false;
}
if(AsReference) {
this._nodes.push(Node1);
} else {
var tmp = this._nodes;
var X = Node1.x;
var Y = Node1.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
tmp.push(point);
}
return this;
}
,addPointAt: function(Node1,Index,AsReference) {
if(AsReference == null) {
AsReference = false;
}
if(Index < 0) {
return this;
}
if(AsReference) {
this._nodes.splice(Index,0,Node1);
} else {
var _this = this._nodes;
var X = Node1.x;
var Y = Node1.y;
if(Y == null) {
Y = 0;
}
if(X == null) {
X = 0;
}
var point = flixel_math_FlxPoint._pool.get().set(X,Y);
point._inPool = false;
_this.splice(Index,0,point);
}
return this;
}
,remove: function(Node1) {
var index = this._nodes.indexOf(Node1);
if(index >= 0) {
return this._nodes.splice(index,1)[0];
}
return null;
}
,removeAt: function(Index) {
if(this._nodes.length <= 0) {
return null;
}
if(Index >= this._nodes.length - 1) {
this._nodes.pop();
}
return this._nodes.splice(Index,1)[0];
}
,head: function() {
if(this._nodes.length > 0) {
return this._nodes[0];
}
return null;
}
,tail: function() {
if(this._nodes.length > 0) {
return this._nodes[this._nodes.length - 1];
}
return null;
}
,get_nodes: function() {
return this._nodes;
}
,set_nodes: function(Nodes) {
if(Nodes != null) {
this._nodes = Nodes;
}
return this._nodes;
}
,__class__: flixel_util_FlxPath
,__properties__: {set_nodes:"set_nodes",get_nodes:"get_nodes"}
};
var flixel_util_FlxPool = function(classObj) {
this._count = 0;
this._pool = [];
this._class = classObj;
};
$hxClasses["flixel.util.FlxPool"] = flixel_util_FlxPool;
flixel_util_FlxPool.__name__ = "flixel.util.FlxPool";
flixel_util_FlxPool.__interfaces__ = [flixel_util_IFlxPool];
flixel_util_FlxPool.prototype = {
_pool: null
,_class: null
,_count: null
,get: function() {
if(this._count == 0) {
return Type.createInstance(this._class,[]);
}
return this._pool[--this._count];
}
,put: function(obj) {
if(obj != null) {
var i = this._pool.indexOf(obj);
if(i == -1 || i >= this._count) {
obj.destroy();
this._pool[this._count++] = obj;
}
}
}
,putUnsafe: function(obj) {
if(obj != null) {
obj.destroy();
this._pool[this._count++] = obj;
}
}
,preAllocate: function(numObjects) {
while(numObjects-- > 0) this._pool[this._count++] = Type.createInstance(this._class,[]);
}
,clear: function() {
this._count = 0;
var oldPool = this._pool;
this._pool = [];
return oldPool;
}
,get_length: function() {
return this._count;
}
,__class__: flixel_util_FlxPool
,__properties__: {get_length:"get_length"}
};
var flixel_util_FlxPool_$flixel_$util_$LabelValuePair = function(classObj) {
this._count = 0;
this._pool = [];
this._class = classObj;
};
$hxClasses["flixel.util.FlxPool_flixel_util_LabelValuePair"] = flixel_util_FlxPool_$flixel_$util_$LabelValuePair;
flixel_util_FlxPool_$flixel_$util_$LabelValuePair.__name__ = "flixel.util.FlxPool_flixel_util_LabelValuePair";
flixel_util_FlxPool_$flixel_$util_$LabelValuePair.__interfaces__ = [flixel_util_IFlxPool];
flixel_util_FlxPool_$flixel_$util_$LabelValuePair.prototype = {
_pool: null
,_class: null
,_count: null
,get: function() {
if(this._count == 0) {
return Type.createInstance(this._class,[]);
}
return this._pool[--this._count];
}
,put: function(obj) {
if(obj != null) {
var i = this._pool.indexOf(obj);
if(i == -1 || i >= this._count) {
obj.label = null;
obj.value = null;
this._pool[this._count++] = obj;
}
}
}
,putUnsafe: function(obj) {
if(obj != null) {
obj.label = null;
obj.value = null;
this._pool[this._count++] = obj;
}
}
,preAllocate: function(numObjects) {
while(numObjects-- > 0) this._pool[this._count++] = Type.createInstance(this._class,[]);
}
,clear: function() {
this._count = 0;
var oldPool = this._pool;
this._pool = [];
return oldPool;
}
,get_length: function() {
return this._count;
}
,__class__: flixel_util_FlxPool_$flixel_$util_$LabelValuePair
,__properties__: {get_length:"get_length"}
};
var flixel_util_FlxSaveStatus = $hxEnums["flixel.util.FlxSaveStatus"] = { __ename__ : "flixel.util.FlxSaveStatus", __constructs__ : ["SUCCESS","PENDING","ERROR"]
,SUCCESS: {_hx_index:0,__enum__:"flixel.util.FlxSaveStatus",toString:$estr}
,PENDING: {_hx_index:1,__enum__:"flixel.util.FlxSaveStatus",toString:$estr}
,ERROR: {_hx_index:2,__enum__:"flixel.util.FlxSaveStatus",toString:$estr}
};
var flixel_util__$FlxSignal_FlxSignalHandler = function(listener,dispatchOnce) {
this.dispatchOnce = false;
this.listener = listener;
this.dispatchOnce = dispatchOnce;
};
$hxClasses["flixel.util._FlxSignal.FlxSignalHandler"] = flixel_util__$FlxSignal_FlxSignalHandler;
flixel_util__$FlxSignal_FlxSignalHandler.__name__ = "flixel.util._FlxSignal.FlxSignalHandler";
flixel_util__$FlxSignal_FlxSignalHandler.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_util__$FlxSignal_FlxSignalHandler.prototype = {
listener: null
,dispatchOnce: null
,destroy: function() {
this.listener = null;
}
,__class__: flixel_util__$FlxSignal_FlxSignalHandler
};
var flixel_util_IFlxSignal = function() { };
$hxClasses["flixel.util.IFlxSignal"] = flixel_util_IFlxSignal;
flixel_util_IFlxSignal.__name__ = "flixel.util.IFlxSignal";
flixel_util_IFlxSignal.__isInterface__ = true;
flixel_util_IFlxSignal.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_util_IFlxSignal.prototype = {
dispatch: null
,add: null
,addOnce: null
,remove: null
,removeAll: null
,has: null
,__class__: flixel_util_IFlxSignal
};
var flixel_util__$FlxSignal_FlxBaseSignal = function() {
this.processingListeners = false;
this.handlers = [];
this.pendingRemove = [];
};
$hxClasses["flixel.util._FlxSignal.FlxBaseSignal"] = flixel_util__$FlxSignal_FlxBaseSignal;
flixel_util__$FlxSignal_FlxBaseSignal.__name__ = "flixel.util._FlxSignal.FlxBaseSignal";
flixel_util__$FlxSignal_FlxBaseSignal.__interfaces__ = [flixel_util_IFlxSignal];
flixel_util__$FlxSignal_FlxBaseSignal.prototype = {
dispatch: null
,handlers: null
,pendingRemove: null
,processingListeners: null
,add: function(listener) {
if(listener != null) {
this.registerListener(listener,false);
}
}
,addOnce: function(listener) {
if(listener != null) {
this.registerListener(listener,true);
}
}
,remove: function(listener) {
if(listener != null) {
var handler = this.getHandler(listener);
if(handler != null) {
if(this.processingListeners) {
this.pendingRemove.push(handler);
} else {
HxOverrides.remove(this.handlers,handler);
handler.destroy();
}
}
}
}
,has: function(listener) {
if(listener == null) {
return false;
}
return this.getHandler(listener) != null;
}
,removeAll: function() {
flixel_util_FlxDestroyUtil.destroyArray(this.handlers);
}
,destroy: function() {
flixel_util_FlxDestroyUtil.destroyArray(this.handlers);
this.handlers = null;
this.pendingRemove = null;
}
,registerListener: function(listener,dispatchOnce) {
var handler = this.getHandler(listener);
if(handler == null) {
handler = new flixel_util__$FlxSignal_FlxSignalHandler(listener,dispatchOnce);
this.handlers.push(handler);
return handler;
} else if(handler.dispatchOnce != dispatchOnce) {
throw haxe_Exception.thrown("You cannot addOnce() then add() the same listener without removing the relationship first.");
} else {
return handler;
}
}
,getHandler: function(listener) {
var _g = 0;
var _g1 = this.handlers;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
if(handler.listener == listener) {
return handler;
}
}
return null;
}
,__class__: flixel_util__$FlxSignal_FlxBaseSignal
};
var flixel_util__$FlxSignal_FlxSignal0 = function() {
flixel_util__$FlxSignal_FlxBaseSignal.call(this);
this.dispatch = $bind(this,this.dispatch0);
};
$hxClasses["flixel.util._FlxSignal.FlxSignal0"] = flixel_util__$FlxSignal_FlxSignal0;
flixel_util__$FlxSignal_FlxSignal0.__name__ = "flixel.util._FlxSignal.FlxSignal0";
flixel_util__$FlxSignal_FlxSignal0.__super__ = flixel_util__$FlxSignal_FlxBaseSignal;
flixel_util__$FlxSignal_FlxSignal0.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{
dispatch0: function() {
this.processingListeners = true;
var _g = 0;
var _g1 = this.handlers;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
handler.listener();
if(handler.dispatchOnce) {
this.remove(handler.listener);
}
}
this.processingListeners = false;
var _g = 0;
var _g1 = this.pendingRemove;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
this.remove(handler.listener);
}
if(this.pendingRemove.length > 0) {
this.pendingRemove = [];
}
}
,__class__: flixel_util__$FlxSignal_FlxSignal0
});
var flixel_util__$FlxSignal_FlxSignal1 = function() {
flixel_util__$FlxSignal_FlxBaseSignal.call(this);
this.dispatch = $bind(this,this.dispatch1);
};
$hxClasses["flixel.util._FlxSignal.FlxSignal1"] = flixel_util__$FlxSignal_FlxSignal1;
flixel_util__$FlxSignal_FlxSignal1.__name__ = "flixel.util._FlxSignal.FlxSignal1";
flixel_util__$FlxSignal_FlxSignal1.__super__ = flixel_util__$FlxSignal_FlxBaseSignal;
flixel_util__$FlxSignal_FlxSignal1.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{
dispatch1: function(value1) {
this.processingListeners = true;
var _g = 0;
var _g1 = this.handlers;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
handler.listener(value1);
if(handler.dispatchOnce) {
this.remove(handler.listener);
}
}
this.processingListeners = false;
var _g = 0;
var _g1 = this.pendingRemove;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
this.remove(handler.listener);
}
if(this.pendingRemove.length > 0) {
this.pendingRemove = [];
}
}
,__class__: flixel_util__$FlxSignal_FlxSignal1
});
var flixel_util__$FlxSignal_FlxSignal2 = function() {
flixel_util__$FlxSignal_FlxBaseSignal.call(this);
this.dispatch = $bind(this,this.dispatch2);
};
$hxClasses["flixel.util._FlxSignal.FlxSignal2"] = flixel_util__$FlxSignal_FlxSignal2;
flixel_util__$FlxSignal_FlxSignal2.__name__ = "flixel.util._FlxSignal.FlxSignal2";
flixel_util__$FlxSignal_FlxSignal2.__super__ = flixel_util__$FlxSignal_FlxBaseSignal;
flixel_util__$FlxSignal_FlxSignal2.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{
dispatch2: function(value1,value2) {
this.processingListeners = true;
var _g = 0;
var _g1 = this.handlers;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
handler.listener(value1,value2);
if(handler.dispatchOnce) {
this.remove(handler.listener);
}
}
this.processingListeners = false;
var _g = 0;
var _g1 = this.pendingRemove;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
this.remove(handler.listener);
}
if(this.pendingRemove.length > 0) {
this.pendingRemove = [];
}
}
,__class__: flixel_util__$FlxSignal_FlxSignal2
});
var flixel_util__$FlxSignal_FlxSignal3 = function() {
flixel_util__$FlxSignal_FlxBaseSignal.call(this);
this.dispatch = $bind(this,this.dispatch3);
};
$hxClasses["flixel.util._FlxSignal.FlxSignal3"] = flixel_util__$FlxSignal_FlxSignal3;
flixel_util__$FlxSignal_FlxSignal3.__name__ = "flixel.util._FlxSignal.FlxSignal3";
flixel_util__$FlxSignal_FlxSignal3.__super__ = flixel_util__$FlxSignal_FlxBaseSignal;
flixel_util__$FlxSignal_FlxSignal3.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{
dispatch3: function(value1,value2,value3) {
this.processingListeners = true;
var _g = 0;
var _g1 = this.handlers;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
handler.listener(value1,value2,value3);
if(handler.dispatchOnce) {
this.remove(handler.listener);
}
}
this.processingListeners = false;
var _g = 0;
var _g1 = this.pendingRemove;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
this.remove(handler.listener);
}
if(this.pendingRemove.length > 0) {
this.pendingRemove = [];
}
}
,__class__: flixel_util__$FlxSignal_FlxSignal3
});
var flixel_util__$FlxSignal_FlxSignal4 = function() {
flixel_util__$FlxSignal_FlxBaseSignal.call(this);
this.dispatch = $bind(this,this.dispatch4);
};
$hxClasses["flixel.util._FlxSignal.FlxSignal4"] = flixel_util__$FlxSignal_FlxSignal4;
flixel_util__$FlxSignal_FlxSignal4.__name__ = "flixel.util._FlxSignal.FlxSignal4";
flixel_util__$FlxSignal_FlxSignal4.__super__ = flixel_util__$FlxSignal_FlxBaseSignal;
flixel_util__$FlxSignal_FlxSignal4.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{
dispatch4: function(value1,value2,value3,value4) {
this.processingListeners = true;
var _g = 0;
var _g1 = this.handlers;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
handler.listener(value1,value2,value3,value4);
if(handler.dispatchOnce) {
this.remove(handler.listener);
}
}
this.processingListeners = false;
var _g = 0;
var _g1 = this.pendingRemove;
while(_g < _g1.length) {
var handler = _g1[_g];
++_g;
this.remove(handler.listener);
}
if(this.pendingRemove.length > 0) {
this.pendingRemove = [];
}
}
,__class__: flixel_util__$FlxSignal_FlxSignal4
});
var flixel_util__$FlxSignal_Macro = function() { };
$hxClasses["flixel.util._FlxSignal.Macro"] = flixel_util__$FlxSignal_Macro;
flixel_util__$FlxSignal_Macro.__name__ = "flixel.util._FlxSignal.Macro";
var flixel_util_FlxSort = function() { };
$hxClasses["flixel.util.FlxSort"] = flixel_util_FlxSort;
flixel_util_FlxSort.__name__ = "flixel.util.FlxSort";
flixel_util_FlxSort.byY = function(Order,Obj1,Obj2) {
var Value1 = Obj1.y;
var Value2 = Obj2.y;
var result = 0;
if(Value1 < Value2) {
result = Order;
} else if(Value1 > Value2) {
result = -Order;
}
return result;
};
flixel_util_FlxSort.byValues = function(Order,Value1,Value2) {
var result = 0;
if(Value1 < Value2) {
result = Order;
} else if(Value1 > Value2) {
result = -Order;
}
return result;
};
var flixel_util_FlxSpriteUtil = function() { };
$hxClasses["flixel.util.FlxSpriteUtil"] = flixel_util_FlxSpriteUtil;
flixel_util_FlxSpriteUtil.__name__ = "flixel.util.FlxSpriteUtil";
flixel_util_FlxSpriteUtil.alphaMask = function(output,source,mask) {
var data = flixel_system_FlxAssets.resolveBitmapData(source);
var maskData = flixel_system_FlxAssets.resolveBitmapData(mask);
if(data == null || maskData == null) {
return null;
}
data = data.clone();
data.copyChannel(maskData,new openfl_geom_Rectangle(0,0,data.width,data.height),new openfl_geom_Point(),8,8);
output.set_pixels(data);
return output;
};
flixel_util_FlxSpriteUtil.alphaMaskFlxSprite = function(sprite,mask,output) {
sprite.drawFrame();
var data = sprite.get_pixels().clone();
data.copyChannel(mask.get_pixels(),new openfl_geom_Rectangle(0,0,sprite.get_width(),sprite.get_height()),new openfl_geom_Point(),8,8);
output.set_pixels(data);
return output;
};
flixel_util_FlxSpriteUtil.screenWrap = function(sprite,Left,Right,Top,Bottom) {
if(Bottom == null) {
Bottom = true;
}
if(Top == null) {
Top = true;
}
if(Right == null) {
Right = true;
}
if(Left == null) {
Left = true;
}
if(Left && sprite.x + sprite.frameWidth / 2 <= 0) {
sprite.set_x(flixel_FlxG.width);
} else if(Right && sprite.x >= flixel_FlxG.width) {
sprite.set_x(0);
}
if(Top && sprite.y + sprite.frameHeight / 2 <= 0) {
sprite.set_y(flixel_FlxG.height);
} else if(Bottom && sprite.y >= flixel_FlxG.height) {
sprite.set_y(0);
}
return sprite;
};
flixel_util_FlxSpriteUtil.bound = function(sprite,MinX,MaxX,MinY,MaxY) {
if(MaxY == null) {
MaxY = 0;
}
if(MinY == null) {
MinY = 0;
}
if(MaxX == null) {
MaxX = 0;
}
if(MinX == null) {
MinX = 0;
}
if(MaxX <= 0) {
MaxX = flixel_FlxG.width;
}
if(MaxY <= 0) {
MaxY = flixel_FlxG.height;
}
MaxX -= sprite.frameWidth;
MaxY -= sprite.frameHeight;
var Value = sprite.x;
var lowerBound = MinX != null && Value < MinX ? MinX : Value;
sprite.set_x(MaxX != null && lowerBound > MaxX ? MaxX : lowerBound);
var Value = sprite.y;
var lowerBound = MinY != null && Value < MinY ? MinY : Value;
sprite.set_y(MaxY != null && lowerBound > MaxY ? MaxY : lowerBound);
return sprite;
};
flixel_util_FlxSpriteUtil.space = function(objects,startX,startY,horizontalSpacing,verticalSpacing,spaceFromBounds,position) {
if(spaceFromBounds == null) {
spaceFromBounds = false;
}
var prevWidth = 0;
var runningX = 0;
if(horizontalSpacing != null) {
if(spaceFromBounds) {
prevWidth = objects[0].get_width();
}
runningX = startX;
} else {
runningX = objects[0].x;
}
var prevHeight = 0;
var runningY = 0;
if(verticalSpacing != null) {
if(spaceFromBounds) {
prevHeight = objects[0].get_height();
}
runningY = startY;
} else {
runningY = objects[0].y;
}
if(position != null) {
position(objects[0],runningX,runningY);
} else {
objects[0].set_x(runningX);
objects[0].set_y(runningY);
}
var curX = 0;
var curY = 0;
var _g = 1;
var _g1 = objects.length;
while(_g < _g1) {
var i = _g++;
var object = objects[i];
if(horizontalSpacing != null) {
curX = runningX + prevWidth + horizontalSpacing;
runningX = curX;
} else {
curX = object.x;
}
if(verticalSpacing != null) {
curY = runningY + prevHeight + verticalSpacing;
runningY = curY;
} else {
curY = object.y;
}
if(position != null) {
position(object,curX,curY);
} else {
object.set_x(curX);
object.set_y(curY);
}
if(spaceFromBounds) {
prevWidth = object.get_width();
prevHeight = object.get_height();
}
}
};
flixel_util_FlxSpriteUtil.drawLine = function(sprite,StartX,StartY,EndX,EndY,lineStyle,drawStyle) {
var lineStyle1 = lineStyle;
if(lineStyle1 == null) {
lineStyle1 = { thickness : 1, color : -1};
}
if(lineStyle1.thickness == null) {
lineStyle1.thickness = 1;
}
if(lineStyle1.color == null) {
lineStyle1.color = -1;
}
lineStyle = lineStyle1;
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(0 != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(0,0.);
}
flixel_util_FlxSpriteUtil.flashGfx.moveTo(StartX,StartY);
flixel_util_FlxSpriteUtil.flashGfx.lineTo(EndX,EndY);
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
return sprite;
};
flixel_util_FlxSpriteUtil.drawCurve = function(sprite,StartX,StartY,EndX,EndY,ControlX,ControlY,FillColor,lineStyle,drawStyle) {
if(FillColor == null) {
FillColor = 0;
}
var lineStyle1 = lineStyle;
if(lineStyle1 == null) {
lineStyle1 = { thickness : 1, color : -1};
}
if(lineStyle1.thickness == null) {
lineStyle1.thickness = 1;
}
if(lineStyle1.color == null) {
lineStyle1.color = -1;
}
lineStyle = lineStyle1;
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(FillColor != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255);
}
flixel_util_FlxSpriteUtil.flashGfx.moveTo(StartX,StartY);
flixel_util_FlxSpriteUtil.flashGfx.curveTo(EndX,EndY,ControlX,ControlY);
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
return sprite;
};
flixel_util_FlxSpriteUtil.drawRect = function(sprite,X,Y,Width,Height,FillColor,lineStyle,drawStyle) {
if(FillColor == null) {
FillColor = -1;
}
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(FillColor != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255);
}
flixel_util_FlxSpriteUtil.flashGfx.drawRect(X,Y,Width,Height);
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
return sprite;
};
flixel_util_FlxSpriteUtil.drawRoundRect = function(sprite,X,Y,Width,Height,EllipseWidth,EllipseHeight,FillColor,lineStyle,drawStyle) {
if(FillColor == null) {
FillColor = -1;
}
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(FillColor != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255);
}
flixel_util_FlxSpriteUtil.flashGfx.drawRoundRect(X,Y,Width,Height,EllipseWidth,EllipseHeight);
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
return sprite;
};
flixel_util_FlxSpriteUtil.drawCircle = function(sprite,X,Y,Radius,FillColor,lineStyle,drawStyle) {
if(FillColor == null) {
FillColor = -1;
}
if(Radius == null) {
Radius = -1;
}
if(Y == null) {
Y = -1;
}
if(X == null) {
X = -1;
}
if(X == -1 || Y == -1) {
var midPoint = sprite.getGraphicMidpoint();
if(X == -1) {
X = midPoint.x - sprite.x;
}
if(Y == -1) {
Y = midPoint.y - sprite.y;
}
midPoint.put();
}
if(Radius < 1) {
var minVal = Math.min(sprite.frameWidth,sprite.frameHeight);
Radius = minVal / 2;
}
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(FillColor != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255);
}
flixel_util_FlxSpriteUtil.flashGfx.drawCircle(X,Y,Radius);
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
return sprite;
};
flixel_util_FlxSpriteUtil.drawEllipse = function(sprite,X,Y,Width,Height,FillColor,lineStyle,drawStyle) {
if(FillColor == null) {
FillColor = -1;
}
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(FillColor != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255);
}
flixel_util_FlxSpriteUtil.flashGfx.drawEllipse(X,Y,Width,Height);
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
return sprite;
};
flixel_util_FlxSpriteUtil.drawTriangle = function(sprite,X,Y,Height,FillColor,lineStyle,drawStyle) {
if(FillColor == null) {
FillColor = -1;
}
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(FillColor != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255);
}
flixel_util_FlxSpriteUtil.flashGfx.moveTo(X + Height / 2,Y);
flixel_util_FlxSpriteUtil.flashGfx.lineTo(X + Height,Height + Y);
flixel_util_FlxSpriteUtil.flashGfx.lineTo(X,Height + Y);
flixel_util_FlxSpriteUtil.flashGfx.lineTo(X + Height / 2,Y);
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
return sprite;
};
flixel_util_FlxSpriteUtil.drawPolygon = function(sprite,Vertices,FillColor,lineStyle,drawStyle) {
if(FillColor == null) {
FillColor = -1;
}
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(FillColor != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255);
}
var p = Vertices.shift();
flixel_util_FlxSpriteUtil.flashGfx.moveTo(p.x,p.y);
var _g = 0;
while(_g < Vertices.length) {
var p1 = Vertices[_g];
++_g;
flixel_util_FlxSpriteUtil.flashGfx.lineTo(p1.x,p1.y);
}
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
Vertices.unshift(p);
return sprite;
};
flixel_util_FlxSpriteUtil.beginDraw = function(FillColor,lineStyle) {
flixel_util_FlxSpriteUtil.flashGfx.clear();
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
if(FillColor != 0) {
flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255);
}
};
flixel_util_FlxSpriteUtil.endDraw = function(sprite,drawStyle) {
flixel_util_FlxSpriteUtil.flashGfx.endFill();
flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle);
return sprite;
};
flixel_util_FlxSpriteUtil.updateSpriteGraphic = function(sprite,drawStyle) {
if(drawStyle == null) {
drawStyle = { smoothing : false};
} else if(drawStyle.smoothing == null) {
drawStyle.smoothing = false;
}
sprite.get_pixels().draw(flixel_util_FlxSpriteUtil.flashGfxSprite,drawStyle.matrix,drawStyle.colorTransform,drawStyle.blendMode,drawStyle.clipRect,drawStyle.smoothing);
sprite.dirty = true;
return sprite;
};
flixel_util_FlxSpriteUtil.setLineStyle = function(lineStyle) {
if(lineStyle != null) {
var color = lineStyle.color == null ? -16777216 : lineStyle.color;
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.pixelHinting == null) {
lineStyle.pixelHinting = false;
}
if(lineStyle.miterLimit == null) {
lineStyle.miterLimit = 3;
}
flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit);
}
};
flixel_util_FlxSpriteUtil.getDefaultLineStyle = function(lineStyle) {
if(lineStyle == null) {
lineStyle = { thickness : 1, color : -1};
}
if(lineStyle.thickness == null) {
lineStyle.thickness = 1;
}
if(lineStyle.color == null) {
lineStyle.color = -1;
}
return lineStyle;
};
flixel_util_FlxSpriteUtil.fill = function(sprite,FillColor) {
sprite.get_pixels().fillRect(sprite.get_pixels().rect,FillColor);
if(sprite.get_pixels() != sprite.framePixels) {
sprite.dirty = true;
}
return sprite;
};
flixel_util_FlxSpriteUtil.flicker = function(Object1,Duration,Interval,EndVisibility,ForceRestart,CompletionCallback,ProgressCallback) {
if(ForceRestart == null) {
ForceRestart = true;
}
if(EndVisibility == null) {
EndVisibility = true;
}
if(Interval == null) {
Interval = 0.04;
}
if(Duration == null) {
Duration = 1;
}
return flixel_effects_FlxFlicker.flicker(Object1,Duration,Interval,EndVisibility,ForceRestart,CompletionCallback,ProgressCallback);
};
flixel_util_FlxSpriteUtil.isFlickering = function(Object1) {
return flixel_effects_FlxFlicker.isFlickering(Object1);
};
flixel_util_FlxSpriteUtil.stopFlickering = function(Object1) {
flixel_effects_FlxFlicker.stopFlickering(Object1);
return Object1;
};
flixel_util_FlxSpriteUtil.fadeIn = function(sprite,Duration,ResetAlpha,OnComplete) {
if(Duration == null) {
Duration = 1;
}
if(ResetAlpha) {
sprite.set_alpha(0);
}
var sprite1 = sprite;
var tmp = function(f) {
flixel_util_FlxSpriteUtil.alphaTween(sprite1,f);
};
flixel_tweens_FlxTween.num(sprite.alpha,1,Duration,{ onComplete : OnComplete},tmp);
return sprite;
};
flixel_util_FlxSpriteUtil.fadeOut = function(sprite,Duration,OnComplete) {
if(Duration == null) {
Duration = 1;
}
var sprite1 = sprite;
var tmp = function(f) {
flixel_util_FlxSpriteUtil.alphaTween(sprite1,f);
};
flixel_tweens_FlxTween.num(sprite.alpha,0,Duration,{ onComplete : OnComplete},tmp);
return sprite;
};
flixel_util_FlxSpriteUtil.alphaTween = function(sprite,f) {
sprite.set_alpha(f);
};
var flixel_util_FlxStringUtil = function() { };
$hxClasses["flixel.util.FlxStringUtil"] = flixel_util_FlxStringUtil;
flixel_util_FlxStringUtil.__name__ = "flixel.util.FlxStringUtil";
flixel_util_FlxStringUtil.formatTicks = function(StartTicks,EndTicks) {
return Math.abs(EndTicks - StartTicks) / 1000 + "s";
};
flixel_util_FlxStringUtil.formatTime = function(Seconds,ShowMS) {
if(ShowMS == null) {
ShowMS = false;
}
var timeString = (Seconds / 60 | 0) + ":";
var timeStringHelper = (Seconds | 0) % 60;
if(timeStringHelper < 10) {
timeString += "0";
}
timeString += timeStringHelper;
if(ShowMS) {
timeString += ".";
timeStringHelper = (Seconds - (Seconds | 0)) * 100 | 0;
if(timeStringHelper < 10) {
timeString += "0";
}
timeString += timeStringHelper;
}
return timeString;
};
flixel_util_FlxStringUtil.formatArray = function(AnyArray) {
var string = "";
if(AnyArray != null && AnyArray.length > 0) {
string = Std.string(AnyArray[0]);
var i = 1;
var l = AnyArray.length;
while(i < l) string += ", " + Std.string(AnyArray[i++]);
}
return string;
};
flixel_util_FlxStringUtil.formatStringMap = function(AnyMap) {
var string = "";
var key = haxe_ds_StringMap.keysIterator(AnyMap.h);
while(key.hasNext()) {
var key1 = key.next();
string += key1 == null ? "null" : "" + key1;
string += ", ";
}
return string.substring(0,string.length - 2);
};
flixel_util_FlxStringUtil.formatMoney = function(Amount,ShowDecimal,EnglishStyle) {
if(EnglishStyle == null) {
EnglishStyle = true;
}
if(ShowDecimal == null) {
ShowDecimal = true;
}
var isNegative = Amount < 0;
Amount = Math.abs(Amount);
var string = "";
var comma = "";
var amount = Math.floor(Amount);
while(amount > 0) {
if(string.length > 0 && comma.length <= 0) {
comma = EnglishStyle ? "," : ".";
}
var zeroes = "";
var helper = amount - Math.floor(amount / 1000) * 1000;
amount = Math.floor(amount / 1000);
if(amount > 0) {
if(helper < 100) {
zeroes += "0";
}
if(helper < 10) {
zeroes += "0";
}
}
string = zeroes + helper + comma + string;
}
if(string == "") {
string = "0";
}
if(ShowDecimal) {
amount = Math.floor(Amount * 100) - Math.floor(Amount) * 100;
string += EnglishStyle ? "." : ",";
if(amount < 10) {
string += "0";
}
string += amount;
}
if(isNegative) {
string = "-" + string;
}
return string;
};
flixel_util_FlxStringUtil.formatBytes = function(Bytes,Precision) {
if(Precision == null) {
Precision = 2;
}
var units = ["Bytes","kB","MB","GB","TB","PB"];
var curUnit = 0;
while(Bytes >= 1024 && curUnit < units.length - 1) {
Bytes /= 1024;
++curUnit;
}
return flixel_math_FlxMath.roundDecimal(Bytes,Precision) + units[curUnit];
};
flixel_util_FlxStringUtil.filterDigits = function(Input) {
var output_b = "";
var _g = 0;
var _g1 = Input.length;
while(_g < _g1) {
var i = _g++;
var c = HxOverrides.cca(Input,i);
if(c >= 48 && c <= 57) {
output_b += String.fromCodePoint(c);
}
}
return output_b;
};
flixel_util_FlxStringUtil.htmlFormat = function(Text1,Size,Color,Bold,Italic,Underlined) {
if(Underlined == null) {
Underlined = false;
}
if(Italic == null) {
Italic = false;
}
if(Bold == null) {
Bold = false;
}
if(Color == null) {
Color = "FFFFFF";
}
if(Size == null) {
Size = 12;
}
var prefix = "<font size='" + Size + "' color='#" + Color + "'>";
var suffix = "</font>";
if(Bold) {
prefix = "<b>" + prefix;
suffix += "</b>";
}
if(Italic) {
prefix = "<i>" + prefix;
suffix += "</i>";
}
if(Underlined) {
prefix = "<u>" + prefix;
suffix += "</u>";
}
return prefix + Text1 + suffix;
};
flixel_util_FlxStringUtil.getClassName = function(objectOrClass,simple) {
if(simple == null) {
simple = false;
}
var cl;
if(js_Boot.__instanceof(objectOrClass,Class)) {
cl = objectOrClass;
} else {
cl = js_Boot.getClass(objectOrClass);
}
return flixel_util_FlxStringUtil.formatPackage(cl.__name__,simple);
};
flixel_util_FlxStringUtil.getEnumName = function(enumValueOrEnum,simple) {
if(simple == null) {
simple = false;
}
var e;
if(js_Boot.__instanceof(enumValueOrEnum,Enum)) {
e = enumValueOrEnum;
} else {
e = Type.getEnum(enumValueOrEnum);
}
return flixel_util_FlxStringUtil.formatPackage(e.__ename__,simple);
};
flixel_util_FlxStringUtil.formatPackage = function(s,simple) {
if(s == null) {
return null;
}
s = StringTools.replace(s,"::",".");
if(simple) {
s = HxOverrides.substr(s,s.lastIndexOf(".") + 1,null);
}
return s;
};
flixel_util_FlxStringUtil.getHost = function(url) {
var hostFromURL = new EReg("^(?:[a-z][a-z0-9+\\-.]*://)?(?:[a-z0-9\\-._~%!$&'()*+,;=]+@)?([a-z0-9\\-._~%]{3,}|\\[[a-f0-9:.]+\\])?(?::[0-9]+)?","i");
if(hostFromURL.match(url)) {
var host = hostFromURL.matched(1);
if(host != null) {
return decodeURIComponent(host.split("+").join(" ")).toLowerCase();
} else {
return "";
}
}
return "";
};
flixel_util_FlxStringUtil.getDomain = function(url) {
var host = flixel_util_FlxStringUtil.getHost(url);
var isLocalhostOrIpAddress = new EReg("^(localhost|[0-9.]+|\\[[a-f0-9:.]+\\])$","i");
var domainFromHost = new EReg("^(?:[a-z0-9\\-]+\\.)*([a-z0-9\\-]+\\.[a-z0-9\\-]+)$","i");
if(!isLocalhostOrIpAddress.match(host) && domainFromHost.match(host)) {
var domain = domainFromHost.matched(1);
if(domain != null) {
return domain.toLowerCase();
} else {
return "";
}
}
return "";
};
flixel_util_FlxStringUtil.sameClassName = function(Obj1,Obj2,Simple) {
if(Simple == null) {
Simple = true;
}
return flixel_util_FlxStringUtil.getClassName(Obj1,Simple) == flixel_util_FlxStringUtil.getClassName(Obj2,Simple);
};
flixel_util_FlxStringUtil.toIntArray = function(Data) {
if(Data != null && Data != "") {
var strArray = Data.split(",");
var iArray = [];
var _g = 0;
while(_g < strArray.length) {
var str = strArray[_g];
++_g;
iArray.push(Std.parseInt(str));
}
return iArray;
}
return null;
};
flixel_util_FlxStringUtil.toFloatArray = function(Data) {
if(Data != null && Data != "") {
var strArray = Data.split(",");
var fArray = [];
var _g = 0;
while(_g < strArray.length) {
var str = strArray[_g];
++_g;
fArray.push(parseFloat(str));
}
return fArray;
}
return null;
};
flixel_util_FlxStringUtil.arrayToCSV = function(Data,Width,Invert) {
if(Invert == null) {
Invert = false;
}
var row = 0;
var column;
var csv = "";
var height = Data.length / Width | 0;
var index;
var offset = 0;
while(row < height) {
column = 0;
while(column < Width) {
index = Data[offset];
if(Invert) {
if(index == 0) {
index = 1;
} else if(index == 1) {
index = 0;
}
}
if(column == 0) {
if(row == 0) {
csv += index;
} else {
csv += "\n" + index;
}
} else {
csv += ", " + index;
}
++column;
++offset;
}
++row;
}
return csv;
};
flixel_util_FlxStringUtil.bitmapToCSV = function(Bitmap,Invert,Scale,ColorMap) {
if(Scale == null) {
Scale = 1;
}
if(Invert == null) {
Invert = false;
}
if(Scale < 1) {
Scale = 1;
}
if(Scale > 1) {
var bd = Bitmap;
Bitmap = new openfl_display_BitmapData(Bitmap.width * Scale,Bitmap.height * Scale);
var bdW = bd.width;
var bdH = bd.height;
var pCol = 0;
var _g = 0;
var _g1 = bdW;
while(_g < _g1) {
var i = _g++;
var _g2 = 0;
var _g3 = bdH;
while(_g2 < _g3) {
var j = _g2++;
pCol = bd.getPixel(i,j);
var _g4 = 0;
var _g5 = Scale;
while(_g4 < _g5) {
var k = _g4++;
var _g6 = 0;
var _g7 = Scale;
while(_g6 < _g7) {
var m = _g6++;
Bitmap.setPixel(i * Scale + k,j * Scale + m,pCol);
}
}
}
}
}
if(ColorMap != null) {
var _g = 0;
var _g1 = ColorMap.length;
while(_g < _g1) {
var i = _g++;
ColorMap[i] = ColorMap[i] & 16777215;
}
}
var row = 0;
var column;
var pixel;
var csv = "";
var bitmapWidth = Bitmap.width;
var bitmapHeight = Bitmap.height;
while(row < bitmapHeight) {
column = 0;
while(column < bitmapWidth) {
pixel = Bitmap.getPixel(column,row);
if(ColorMap != null) {
pixel = ColorMap.indexOf(pixel);
} else if(Invert && pixel > 0 || !Invert && pixel == 0) {
pixel = 1;
} else {
pixel = 0;
}
if(column == 0) {
if(row == 0) {
csv += pixel;
} else {
csv += "\n" + pixel;
}
} else {
csv += ", " + pixel;
}
++column;
}
++row;
}
return csv;
};
flixel_util_FlxStringUtil.imageToCSV = function(ImageFile,Invert,Scale,ColorMap) {
if(Scale == null) {
Scale = 1;
}
if(Invert == null) {
Invert = false;
}
var tempBitmapData;
if(typeof(ImageFile) == "string") {
var id = ImageFile;
tempBitmapData = openfl_utils_Assets.exists(id) ? openfl_utils_Assets.getBitmapData(id,false) : null;
} else {
tempBitmapData = Type.createInstance(ImageFile,[]).bitmapData;
}
return flixel_util_FlxStringUtil.bitmapToCSV(tempBitmapData,Invert,Scale,ColorMap);
};
flixel_util_FlxStringUtil.getDebugString = function(LabelValuePairs) {
var output = "(";
var _g = 0;
while(_g < LabelValuePairs.length) {
var pair = LabelValuePairs[_g];
++_g;
output += pair.label + ": ";
var value = pair.value;
if(typeof(value) == "number") {
value = flixel_math_FlxMath.roundDecimal(value,flixel_FlxG.debugger.precision);
}
output += Std.string(value) + " | ";
flixel_util_LabelValuePair._pool.put(pair);
}
output = StringTools.trim(HxOverrides.substr(output,0,output.length - 2));
return output + ")";
};
flixel_util_FlxStringUtil.contains = function(s,str) {
return s.indexOf(str) != -1;
};
flixel_util_FlxStringUtil.remove = function(s,sub) {
return StringTools.replace(s,sub,"");
};
flixel_util_FlxStringUtil.insert = function(s,pos,insertion) {
return s.substring(0,pos) + insertion + HxOverrides.substr(s,pos,null);
};
flixel_util_FlxStringUtil.sortAlphabetically = function(list) {
list.sort(function(a,b) {
a = a.toLowerCase();
b = b.toLowerCase();
if(a < b) {
return -1;
}
if(a > b) {
return 1;
}
return 0;
});
return list;
};
flixel_util_FlxStringUtil.isNullOrEmpty = function(s) {
if(s != null) {
return s.length == 0;
} else {
return true;
}
};
var flixel_util_LabelValuePair = function() {
};
$hxClasses["flixel.util.LabelValuePair"] = flixel_util_LabelValuePair;
flixel_util_LabelValuePair.__name__ = "flixel.util.LabelValuePair";
flixel_util_LabelValuePair.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_util_LabelValuePair.weak = function(label,value) {
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = label;
_this.value = value;
return _this;
};
flixel_util_LabelValuePair.prototype = {
label: null
,value: null
,create: function(label,value) {
this.label = label;
this.value = value;
return this;
}
,put: function() {
flixel_util_LabelValuePair._pool.put(this);
}
,destroy: function() {
this.label = null;
this.value = null;
}
,__class__: flixel_util_LabelValuePair
};
var flixel_util_FlxTimer = function(manager) {
this._inManager = false;
this._loopsCounter = 0;
this._timeCounter = 0;
this.finished = false;
this.active = false;
this.loops = 0;
this.time = 0;
this.manager = manager != null ? manager : flixel_util_FlxTimer.globalManager;
};
$hxClasses["flixel.util.FlxTimer"] = flixel_util_FlxTimer;
flixel_util_FlxTimer.__name__ = "flixel.util.FlxTimer";
flixel_util_FlxTimer.__interfaces__ = [flixel_util_IFlxDestroyable];
flixel_util_FlxTimer.globalManager = null;
flixel_util_FlxTimer.prototype = {
manager: null
,time: null
,loops: null
,active: null
,finished: null
,onComplete: null
,_timeCounter: null
,_loopsCounter: null
,_inManager: null
,destroy: function() {
this.onComplete = null;
}
,start: function(Time,OnComplete,Loops) {
if(Loops == null) {
Loops = 1;
}
if(Time == null) {
Time = 1;
}
if(this.manager != null && !this._inManager) {
this.manager.add(this);
this._inManager = true;
}
this.active = true;
this.finished = false;
this.time = Math.abs(Time);
if(Loops < 0) {
Loops *= -1;
}
this.loops = Loops;
this.onComplete = OnComplete;
this._timeCounter = 0;
this._loopsCounter = 0;
return this;
}
,reset: function(NewTime) {
if(NewTime == null) {
NewTime = -1;
}
if(NewTime < 0) {
NewTime = this.time;
}
this.start(NewTime,this.onComplete,this.loops);
return this;
}
,cancel: function() {
this.finished = true;
this.active = false;
if(this.manager != null && this._inManager) {
this.manager.remove(this);
this._inManager = false;
}
}
,update: function(elapsed) {
this._timeCounter += elapsed;
while(this._timeCounter >= this.time && this.active && !this.finished) {
this._timeCounter -= this.time;
this._loopsCounter++;
if(this.loops > 0 && this._loopsCounter >= this.loops) {
this.finished = true;
}
}
}
,onLoopFinished: function() {
if(this.finished) {
this.cancel();
}
if(this.onComplete != null) {
this.onComplete(this);
}
}
,get_timeLeft: function() {
return this.time - this._timeCounter;
}
,get_elapsedTime: function() {
return this._timeCounter;
}
,get_loopsLeft: function() {
return this.loops - this._loopsCounter;
}
,get_elapsedLoops: function() {
return this._loopsCounter;
}
,get_progress: function() {
if(this.time > 0) {
return this._timeCounter / this.time;
} else {
return 0;
}
}
,__class__: flixel_util_FlxTimer
,__properties__: {get_progress:"get_progress",get_elapsedLoops:"get_elapsedLoops",get_loopsLeft:"get_loopsLeft",get_elapsedTime:"get_elapsedTime",get_timeLeft:"get_timeLeft"}
};
var flixel_util_FlxTimerManager = function() {
this._timers = [];
flixel_FlxBasic.call(this);
this.set_visible(false);
flixel_FlxG.signals.preStateSwitch.add($bind(this,this.clear));
};
$hxClasses["flixel.util.FlxTimerManager"] = flixel_util_FlxTimerManager;
flixel_util_FlxTimerManager.__name__ = "flixel.util.FlxTimerManager";
flixel_util_FlxTimerManager.__super__ = flixel_FlxBasic;
flixel_util_FlxTimerManager.prototype = $extend(flixel_FlxBasic.prototype,{
_timers: null
,destroy: function() {
flixel_util_FlxArrayUtil.clearArray(this._timers);
this._timers = null;
flixel_FlxG.signals.preStateSwitch.remove($bind(this,this.clear));
flixel_FlxBasic.prototype.destroy.call(this);
}
,update: function(elapsed) {
var loopedTimers = null;
var _g = 0;
var _g1 = this._timers;
while(_g < _g1.length) {
var timer = _g1[_g];
++_g;
if(timer.active && !timer.finished && timer.time >= 0) {
var timerLoops = timer._loopsCounter;
timer.update(elapsed);
if(timerLoops != timer._loopsCounter) {
if(loopedTimers == null) {
loopedTimers = [];
}
loopedTimers.push(timer);
}
}
}
if(loopedTimers != null) {
while(loopedTimers.length > 0) loopedTimers.shift().onLoopFinished();
}
}
,add: function(Timer) {
this._timers.push(Timer);
}
,remove: function(Timer) {
var array = this._timers;
var index = array.indexOf(Timer);
if(index != -1) {
array[index] = array[array.length - 1];
array.pop();
}
}
,completeAll: function() {
var timersToFinish = [];
var _g = 0;
var _g1 = this._timers;
while(_g < _g1.length) {
var timer = _g1[_g];
++_g;
if(timer.loops > 0 && timer.active) {
timersToFinish.push(timer);
}
}
var _g = 0;
while(_g < timersToFinish.length) {
var timer = timersToFinish[_g];
++_g;
while(!timer.finished) {
timer.update(timer.time - timer._timeCounter);
timer.onLoopFinished();
}
}
}
,clear: function() {
flixel_util_FlxArrayUtil.clearArray(this._timers);
}
,forEach: function(Function1) {
var _g = 0;
var _g1 = this._timers;
while(_g < _g1.length) {
var timer = _g1[_g];
++_g;
Function1(timer);
}
}
,__class__: flixel_util_FlxTimerManager
});
var flixel_util_FlxUnicodeUtil = function() { };
$hxClasses["flixel.util.FlxUnicodeUtil"] = flixel_util_FlxUnicodeUtil;
flixel_util_FlxUnicodeUtil.__name__ = "flixel.util.FlxUnicodeUtil";
flixel_util_FlxUnicodeUtil.uLength = function(s) {
return UnicodeString.get_length(s);
};
flixel_util_FlxUnicodeUtil.uEquals = function(a,b) {
return a == b;
};
flixel_util_FlxUnicodeUtil.uSub = function(s,pos,len) {
return UnicodeString.substr(s,pos,len);
};
flixel_util_FlxUnicodeUtil.uCharCodeAt = function(s,index) {
return UnicodeString.charCodeAt(s,index);
};
var flixel_util_UnicodeBuffer = {};
flixel_util_UnicodeBuffer._new = function(s) {
if(s == null) {
s = "";
}
var this1 = s;
return this1;
};
flixel_util_UnicodeBuffer.addChar = function(this1,c) {
var s = this1 + String.fromCodePoint(c);
if(s == null) {
s = "";
}
var this1 = s;
return this1;
};
flixel_util_UnicodeBuffer.toString = function(this1) {
return this1;
};
var flixel_util_FlxVerticalAlign = $hxEnums["flixel.util.FlxVerticalAlign"] = { __ename__ : "flixel.util.FlxVerticalAlign", __constructs__ : ["TOP","CENTER","BOTTOM"]
,TOP: {_hx_index:0,__enum__:"flixel.util.FlxVerticalAlign",toString:$estr}
,CENTER: {_hx_index:1,__enum__:"flixel.util.FlxVerticalAlign",toString:$estr}
,BOTTOM: {_hx_index:2,__enum__:"flixel.util.FlxVerticalAlign",toString:$estr}
};
var flixel_util_helpers_FlxRange = function(start,end) {
this.active = true;
this.start = start;
this.end = end == null ? start : end;
};
$hxClasses["flixel.util.helpers.FlxRange"] = flixel_util_helpers_FlxRange;
flixel_util_helpers_FlxRange.__name__ = "flixel.util.helpers.FlxRange";
flixel_util_helpers_FlxRange.prototype = {
start: null
,end: null
,active: null
,set: function(start,end) {
this.start = start;
this.end = end == null ? start : end;
return this;
}
,equals: function(OtherFlxRange) {
if(this.start == OtherFlxRange.start) {
return this.end == OtherFlxRange.end;
} else {
return false;
}
}
,toString: function() {
var value = this.start;
var _this = flixel_util_LabelValuePair._pool.get();
_this.label = "start";
_this.value = value;
var value = this.end;
var _this1 = flixel_util_LabelValuePair._pool.get();
_this1.label = "end";
_this1.value = value;
return flixel_util_FlxStringUtil.getDebugString([_this,_this1]);
}
,__class__: flixel_util_helpers_FlxRange
};
var haxe_StackItem = $hxEnums["haxe.StackItem"] = { __ename__ : "haxe.StackItem", __constructs__ : ["CFunction","Module","FilePos","Method","LocalFunction"]
,CFunction: {_hx_index:0,__enum__:"haxe.StackItem",toString:$estr}
,Module: ($_=function(m) { return {_hx_index:1,m:m,__enum__:"haxe.StackItem",toString:$estr}; },$_.__params__ = ["m"],$_)
,FilePos: ($_=function(s,file,line,column) { return {_hx_index:2,s:s,file:file,line:line,column:column,__enum__:"haxe.StackItem",toString:$estr}; },$_.__params__ = ["s","file","line","column"],$_)
,Method: ($_=function(classname,method) { return {_hx_index:3,classname:classname,method:method,__enum__:"haxe.StackItem",toString:$estr}; },$_.__params__ = ["classname","method"],$_)
,LocalFunction: ($_=function(v) { return {_hx_index:4,v:v,__enum__:"haxe.StackItem",toString:$estr}; },$_.__params__ = ["v"],$_)
};
var haxe_CallStack = {};
haxe_CallStack.callStack = function() {
return haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.callStack());
};
haxe_CallStack.exceptionStack = function(fullStack) {
if(fullStack == null) {
fullStack = false;
}
var eStack = haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.exceptionStack());
return fullStack ? eStack : haxe_CallStack.subtract(eStack,haxe_CallStack.callStack());
};
haxe_CallStack.toString = function(stack) {
var b = new StringBuf();
var _g = 0;
var _g1 = stack;
while(_g < _g1.length) {
var s = _g1[_g];
++_g;
b.b += "\nCalled from ";
haxe_CallStack.itemToString(b,s);
}
return b.b;
};
haxe_CallStack.subtract = function(this1,stack) {
var startIndex = -1;
var i = -1;
while(++i < this1.length) {
var _g = 0;
var _g1 = stack.length;
while(_g < _g1) {
var j = _g++;
if(haxe_CallStack.equalItems(this1[i],stack[j])) {
if(startIndex < 0) {
startIndex = i;
}
++i;
if(i >= this1.length) {
break;
}
} else {
startIndex = -1;
}
}
if(startIndex >= 0) {
break;
}
}
if(startIndex >= 0) {
return this1.slice(0,startIndex);
} else {
return this1;
}
};
haxe_CallStack.equalItems = function(item1,item2) {
if(item1 == null) {
if(item2 == null) {
return true;
} else {
return false;
}
} else {
switch(item1._hx_index) {
case 0:
if(item2 == null) {
return false;
} else if(item2._hx_index == 0) {
return true;
} else {
return false;
}
break;
case 1:
if(item2 == null) {
return false;
} else if(item2._hx_index == 1) {
var m1 = item1.m;
var m2 = item2.m;
return m1 == m2;
} else {
return false;
}
break;
case 2:
if(item2 == null) {
return false;
} else if(item2._hx_index == 2) {
var item11 = item1.s;
var file1 = item1.file;
var line1 = item1.line;
var col1 = item1.column;
var col2 = item2.column;
var line2 = item2.line;
var file2 = item2.file;
var item21 = item2.s;
if(file1 == file2 && line1 == line2 && col1 == col2) {
return haxe_CallStack.equalItems(item11,item21);
} else {
return false;
}
} else {
return false;
}
break;
case 3:
if(item2 == null) {
return false;
} else if(item2._hx_index == 3) {
var class1 = item1.classname;
var method1 = item1.method;
var method2 = item2.method;
var class2 = item2.classname;
if(class1 == class2) {
return method1 == method2;
} else {
return false;
}
} else {
return false;
}
break;
case 4:
if(item2 == null) {
return false;
} else if(item2._hx_index == 4) {
var v1 = item1.v;
var v2 = item2.v;
return v1 == v2;
} else {
return false;
}
break;
}
}
};
haxe_CallStack.itemToString = function(b,s) {
switch(s._hx_index) {
case 0:
b.b += "a C function";
break;
case 1:
var m = s.m;
b.b += "module ";
b.b += m == null ? "null" : "" + m;
break;
case 2:
var col = s.column;
var line = s.line;
var file = s.file;
var s1 = s.s;
if(s1 != null) {
haxe_CallStack.itemToString(b,s1);
b.b += " (";
}
b.b += file == null ? "null" : "" + file;
b.b += " line ";
b.b += line == null ? "null" : "" + line;
if(col != null) {
b.b += " column ";
b.b += col == null ? "null" : "" + col;
}
if(s1 != null) {
b.b += ")";
}
break;
case 3:
var meth = s.method;
var cname = s.classname;
b.b += Std.string(cname == null ? "<unknown>" : cname);
b.b += ".";
b.b += meth == null ? "null" : "" + meth;
break;
case 4:
var n = s.v;
b.b += "local function #";
b.b += n == null ? "null" : "" + n;
break;
}
};
var haxe_Exception = function(message,previous,native) {
Error.call(this,message);
this.message = message;
this.__previousException = previous;
this.__nativeException = native != null ? native : this;
this.__skipStack = 0;
var old = Error.prepareStackTrace;
Error.prepareStackTrace = function(e) { return e.stack; }
if(((native) instanceof Error)) {
this.stack = native.stack;
} else {
var e = null;
if(Error.captureStackTrace) {
Error.captureStackTrace(this,haxe_Exception);
e = this;
} else {
e = new Error();
if(typeof(e.stack) == "undefined") {
try { throw e; } catch(_) {}
this.__skipStack++;
}
}
this.stack = e.stack;
}
Error.prepareStackTrace = old;
};
$hxClasses["haxe.Exception"] = haxe_Exception;
haxe_Exception.__name__ = "haxe.Exception";
haxe_Exception.caught = function(value) {
if(((value) instanceof haxe_Exception)) {
return value;
} else if(((value) instanceof Error)) {
return new haxe_Exception(value.message,null,value);
} else {
return new haxe_ValueException(value,null,value);
}
};
haxe_Exception.thrown = function(value) {
if(((value) instanceof haxe_Exception)) {
return value.get_native();
} else if(((value) instanceof Error)) {
return value;
} else {
var e = new haxe_ValueException(value);
e.__skipStack++;
return e;
}
};
haxe_Exception.__super__ = Error;
haxe_Exception.prototype = $extend(Error.prototype,{
__skipStack: null
,__nativeException: null
,__previousException: null
,unwrap: function() {
return this.__nativeException;
}
,__shiftStack: function() {
this.__skipStack++;
}
,get_native: function() {
return this.__nativeException;
}
,get_stack: function() {
var _g = this.__exceptionStack;
if(_g == null) {
var value = haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.normalize(this.stack),this.__skipStack);
this.setProperty("__exceptionStack",value);
return value;
} else {
var s = _g;
return s;
}
}
,setProperty: function(name,value) {
try {
Object.defineProperty(this,name,{ value : value});
} catch( _g ) {
this[name] = value;
}
}
,__class__: haxe_Exception
,__properties__: {get_native:"get_native",get_stack:"get_stack"}
});
var haxe__$Int64__$_$_$Int64 = function(high,low) {
this.high = high;
this.low = low;
};
$hxClasses["haxe._Int64.___Int64"] = haxe__$Int64__$_$_$Int64;
haxe__$Int64__$_$_$Int64.__name__ = "haxe._Int64.___Int64";
haxe__$Int64__$_$_$Int64.prototype = {
high: null
,low: null
,__class__: haxe__$Int64__$_$_$Int64
};
var haxe_NativeStackTrace = function() { };
$hxClasses["haxe.NativeStackTrace"] = haxe_NativeStackTrace;
haxe_NativeStackTrace.__name__ = "haxe.NativeStackTrace";
haxe_NativeStackTrace.lastError = null;
haxe_NativeStackTrace.wrapCallSite = null;
haxe_NativeStackTrace.saveStack = function(e) {
haxe_NativeStackTrace.lastError = e;
};
haxe_NativeStackTrace.callStack = function() {
var e = new Error("");
var stack = haxe_NativeStackTrace.tryHaxeStack(e);
if(typeof(stack) == "undefined") {
try {
throw e;
} catch( _g ) {
}
stack = e.stack;
}
return haxe_NativeStackTrace.normalize(stack,2);
};
haxe_NativeStackTrace.exceptionStack = function() {
return haxe_NativeStackTrace.normalize(haxe_NativeStackTrace.tryHaxeStack(haxe_NativeStackTrace.lastError));
};
haxe_NativeStackTrace.toHaxe = function(s,skip) {
if(skip == null) {
skip = 0;
}
if(s == null) {
return [];
} else if(typeof(s) == "string") {
var stack = s.split("\n");
if(stack[0] == "Error") {
stack.shift();
}
var m = [];
var _g = 0;
var _g1 = stack.length;
while(_g < _g1) {
var i = _g++;
if(skip > i) {
continue;
}
var line = stack[i];
var matched = line.match(/^ at ([A-Za-z0-9_. ]+) \(([^)]+):([0-9]+):([0-9]+)\)$/);
if(matched != null) {
var path = matched[1].split(".");
if(path[0] == "$hxClasses") {
path.shift();
}
var meth = path.pop();
var file = matched[2];
var line1 = Std.parseInt(matched[3]);
var column = Std.parseInt(matched[4]);
m.push(haxe_StackItem.FilePos(meth == "Anonymous function" ? haxe_StackItem.LocalFunction() : meth == "Global code" ? null : haxe_StackItem.Method(path.join("."),meth),file,line1,column));
} else {
m.push(haxe_StackItem.Module(StringTools.trim(line)));
}
}
return m;
} else if(skip > 0 && Array.isArray(s)) {
return s.slice(skip);
} else {
return s;
}
};
haxe_NativeStackTrace.tryHaxeStack = function(e) {
if(e == null) {
return [];
}
var oldValue = Error.prepareStackTrace;
Error.prepareStackTrace = haxe_NativeStackTrace.prepareHxStackTrace;
var stack = e.stack;
Error.prepareStackTrace = oldValue;
return stack;
};
haxe_NativeStackTrace.prepareHxStackTrace = function(e,callsites) {
var stack = [];
var _g = 0;
while(_g < callsites.length) {
var site = callsites[_g];
++_g;
if(haxe_NativeStackTrace.wrapCallSite != null) {
site = haxe_NativeStackTrace.wrapCallSite(site);
}
var method = null;
var fullName = site.getFunctionName();
if(fullName != null) {
var idx = fullName.lastIndexOf(".");
if(idx >= 0) {
var className = fullName.substring(0,idx);
var methodName = fullName.substring(idx + 1);
method = haxe_StackItem.Method(className,methodName);
} else {
method = haxe_StackItem.Method(null,fullName);
}
}
var fileName = site.getFileName();
var fileAddr = fileName == null ? -1 : fileName.indexOf("file:");
if(haxe_NativeStackTrace.wrapCallSite != null && fileAddr > 0) {
fileName = fileName.substring(fileAddr + 6);
}
stack.push(haxe_StackItem.FilePos(method,fileName,site.getLineNumber(),site.getColumnNumber()));
}
return stack;
};
haxe_NativeStackTrace.normalize = function(stack,skipItems) {
if(skipItems == null) {
skipItems = 0;
}
if(Array.isArray(stack) && skipItems > 0) {
return stack.slice(skipItems);
} else if(typeof(stack) == "string") {
switch(stack.substring(0,6)) {
case "Error\n":case "Error:":
++skipItems;
break;
default:
}
return haxe_NativeStackTrace.skipLines(stack,skipItems);
} else {
return stack;
}
};
haxe_NativeStackTrace.skipLines = function(stack,skip,pos) {
if(pos == null) {
pos = 0;
}
if(skip > 0) {
pos = stack.indexOf("\n",pos);
if(pos < 0) {
return "";
} else {
return haxe_NativeStackTrace.skipLines(stack,--skip,pos + 1);
}
} else {
return stack.substring(pos);
}
};
var haxe_Resource = function() { };
$hxClasses["haxe.Resource"] = haxe_Resource;
haxe_Resource.__name__ = "haxe.Resource";
haxe_Resource.content = null;
haxe_Resource.getString = function(name) {
var _g = 0;
var _g1 = haxe_Resource.content;
while(_g < _g1.length) {
var x = _g1[_g];
++_g;
if(x.name == name) {
if(x.str != null) {
return x.str;
}
var b = haxe_crypto_Base64.decode(x.data);
return b.toString();
}
}
return null;
};
haxe_Resource.getBytes = function(name) {
var _g = 0;
var _g1 = haxe_Resource.content;
while(_g < _g1.length) {
var x = _g1[_g];
++_g;
if(x.name == name) {
if(x.str != null) {
return haxe_io_Bytes.ofString(x.str);
}
return haxe_crypto_Base64.decode(x.data);
}
}
return null;
};
var haxe_Serializer = function() {
this.buf = new StringBuf();
this.cache = [];
this.useCache = haxe_Serializer.USE_CACHE;
this.useEnumIndex = haxe_Serializer.USE_ENUM_INDEX;
this.shash = new haxe_ds_StringMap();
this.scount = 0;
};
$hxClasses["haxe.Serializer"] = haxe_Serializer;
haxe_Serializer.__name__ = "haxe.Serializer";
haxe_Serializer.run = function(v) {
var s = new haxe_Serializer();
s.serialize(v);
return s.toString();
};
haxe_Serializer.prototype = {
buf: null
,cache: null
,shash: null
,scount: null
,useCache: null
,useEnumIndex: null
,toString: function() {
return this.buf.b;
}
,serializeString: function(s) {
var x = this.shash.h[s];
if(x != null) {
this.buf.b += "R";
this.buf.b += x == null ? "null" : "" + x;
return;
}
this.shash.h[s] = this.scount++;
this.buf.b += "y";
s = encodeURIComponent(s);
this.buf.b += Std.string(s.length);
this.buf.b += ":";
this.buf.b += s == null ? "null" : "" + s;
}
,serializeRef: function(v) {
var vt = typeof(v);
var _g = 0;
var _g1 = this.cache.length;
while(_g < _g1) {
var i = _g++;
var ci = this.cache[i];
if(typeof(ci) == vt && ci == v) {
this.buf.b += "r";
this.buf.b += i == null ? "null" : "" + i;
return true;
}
}
this.cache.push(v);
return false;
}
,serializeFields: function(v) {
var _g = 0;
var _g1 = Reflect.fields(v);
while(_g < _g1.length) {
var f = _g1[_g];
++_g;
this.serializeString(f);
this.serialize(Reflect.field(v,f));
}
this.buf.b += "g";
}
,serialize: function(v) {
var _g = Type.typeof(v);
switch(_g._hx_index) {
case 0:
this.buf.b += "n";
break;
case 1:
var v1 = v;
if(v1 == 0) {
this.buf.b += "z";
return;
}
this.buf.b += "i";
this.buf.b += v1 == null ? "null" : "" + v1;
break;
case 2:
var v1 = v;
if(isNaN(v1)) {
this.buf.b += "k";
} else if(!isFinite(v1)) {
this.buf.b += v1 < 0 ? "m" : "p";
} else {
this.buf.b += "d";
this.buf.b += v1 == null ? "null" : "" + v1;
}
break;
case 3:
this.buf.b += v ? "t" : "f";
break;
case 4:
if(js_Boot.__instanceof(v,Class)) {
var className = v.__name__;
this.buf.b += "A";
this.serializeString(className);
} else if(js_Boot.__instanceof(v,Enum)) {
this.buf.b += "B";
this.serializeString(v.__ename__);
} else {
if(this.useCache && this.serializeRef(v)) {
return;
}
this.buf.b += "o";
this.serializeFields(v);
}
break;
case 5:
throw haxe_Exception.thrown("Cannot serialize function");
case 6:
var c = _g.c;
if(c == String) {
this.serializeString(v);
return;
}
if(this.useCache && this.serializeRef(v)) {
return;
}
switch(c) {
case Array:
var ucount = 0;
this.buf.b += "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.b += "n";
} else {
this.buf.b += "u";
this.buf.b += ucount == null ? "null" : "" + ucount;
}
ucount = 0;
}
this.serialize(v[i]);
}
}
if(ucount > 0) {
if(ucount == 1) {
this.buf.b += "n";
} else {
this.buf.b += "u";
this.buf.b += ucount == null ? "null" : "" + ucount;
}
}
this.buf.b += "h";
break;
case Date:
var d = v;
this.buf.b += "v";
this.buf.b += Std.string(d.getTime());
break;
case haxe_ds_IntMap:
this.buf.b += "q";
var v1 = v;
var k = v1.keys();
while(k.hasNext()) {
var k1 = k.next();
this.buf.b += ":";
this.buf.b += k1 == null ? "null" : "" + k1;
this.serialize(v1.h[k1]);
}
this.buf.b += "h";
break;
case haxe_ds_List:
this.buf.b += "l";
var v1 = v;
var _g_head = v1.h;
while(_g_head != null) {
var val = _g_head.item;
_g_head = _g_head.next;
var i = val;
this.serialize(i);
}
this.buf.b += "h";
break;
case haxe_ds_ObjectMap:
this.buf.b += "M";
var v1 = v;
var k = v1.keys();
while(k.hasNext()) {
var k1 = k.next();
var id = Reflect.field(k1,"__id__");
Reflect.deleteField(k1,"__id__");
this.serialize(k1);
k1["__id__"] = id;
this.serialize(v1.h[k1.__id__]);
}
this.buf.b += "h";
break;
case haxe_ds_StringMap:
this.buf.b += "b";
var v1 = v;
var k = haxe_ds_StringMap.keysIterator(v1.h);
while(k.hasNext()) {
var k1 = k.next();
this.serializeString(k1);
this.serialize(v1.h[k1]);
}
this.buf.b += "h";
break;
case haxe_io_Bytes:
var v1 = v;
this.buf.b += "s";
this.buf.b += Std.string(Math.ceil(v1.length * 8 / 6));
this.buf.b += ":";
var i = 0;
var max = v1.length - 2;
var b64 = haxe_Serializer.BASE64_CODES;
if(b64 == null) {
var this1 = new Array(haxe_Serializer.BASE64.length);
b64 = this1;
var _g1 = 0;
var _g2 = haxe_Serializer.BASE64.length;
while(_g1 < _g2) {
var i1 = _g1++;
b64[i1] = HxOverrides.cca(haxe_Serializer.BASE64,i1);
}
haxe_Serializer.BASE64_CODES = b64;
}
while(i < max) {
var b1 = v1.b[i++];
var b2 = v1.b[i++];
var b3 = v1.b[i++];
this.buf.b += String.fromCodePoint(b64[b1 >> 2]);
this.buf.b += String.fromCodePoint(b64[(b1 << 4 | b2 >> 4) & 63]);
this.buf.b += String.fromCodePoint(b64[(b2 << 2 | b3 >> 6) & 63]);
this.buf.b += String.fromCodePoint(b64[b3 & 63]);
}
if(i == max) {
var b1 = v1.b[i++];
var b2 = v1.b[i++];
this.buf.b += String.fromCodePoint(b64[b1 >> 2]);
this.buf.b += String.fromCodePoint(b64[(b1 << 4 | b2 >> 4) & 63]);
this.buf.b += String.fromCodePoint(b64[b2 << 2 & 63]);
} else if(i == max + 1) {
var b1 = v1.b[i++];
this.buf.b += String.fromCodePoint(b64[b1 >> 2]);
this.buf.b += String.fromCodePoint(b64[b1 << 4 & 63]);
}
break;
default:
if(this.useCache) {
this.cache.pop();
}
if(v.hxSerialize != null) {
this.buf.b += "C";
this.serializeString(c.__name__);
if(this.useCache) {
this.cache.push(v);
}
v.hxSerialize(this);
this.buf.b += "g";
} else {
this.buf.b += "c";
this.serializeString(c.__name__);
if(this.useCache) {
this.cache.push(v);
}
this.serializeFields(v);
}
}
break;
case 7:
var e = _g.e;
if(this.useCache) {
if(this.serializeRef(v)) {
return;
}
this.cache.pop();
}
this.buf.b += Std.string(this.useEnumIndex ? "j" : "w");
this.serializeString(e.__ename__);
if(this.useEnumIndex) {
this.buf.b += ":";
this.buf.b += Std.string(v._hx_index);
} else {
var e = v;
this.serializeString($hxEnums[e.__enum__].__constructs__[e._hx_index]);
}
this.buf.b += ":";
var params = Type.enumParameters(v);
this.buf.b += Std.string(params.length);
var _g = 0;
while(_g < params.length) {
var p = params[_g];
++_g;
this.serialize(p);
}
if(this.useCache) {
this.cache.push(v);
}
break;
default:
throw haxe_Exception.thrown("Cannot serialize " + Std.string(v));
}
}
,__class__: haxe_Serializer
};
var haxe_Timer = function(time_ms) {
var me = this;
this.id = setInterval(function() {
me.run();
},time_ms);
};
$hxClasses["haxe.Timer"] = haxe_Timer;
haxe_Timer.__name__ = "haxe.Timer";
haxe_Timer.delay = function(f,time_ms) {
var t = new haxe_Timer(time_ms);
t.run = function() {
t.stop();
f();
};
return t;
};
haxe_Timer.measure = function(f,pos) {
var t0 = new Date().getTime() / 1000;
var r = f();
haxe_Log.trace(new Date().getTime() / 1000 - t0 + "s",pos);
return r;
};
haxe_Timer.stamp = function() {
return new Date().getTime() / 1000;
};
haxe_Timer.prototype = {
id: null
,stop: function() {
if(this.id == null) {
return;
}
clearInterval(this.id);
this.id = null;
}
,run: function() {
}
,__class__: haxe_Timer
};
var haxe__$Unserializer_DefaultResolver = function() {
};
$hxClasses["haxe._Unserializer.DefaultResolver"] = haxe__$Unserializer_DefaultResolver;
haxe__$Unserializer_DefaultResolver.__name__ = "haxe._Unserializer.DefaultResolver";
haxe__$Unserializer_DefaultResolver.prototype = {
resolveClass: function(name) {
return $hxClasses[name];
}
,resolveEnum: function(name) {
return $hxEnums[name];
}
,__class__: haxe__$Unserializer_DefaultResolver
};
var haxe_Unserializer = function(buf) {
this.buf = buf;
this.length = buf.length;
this.pos = 0;
this.scache = [];
this.cache = [];
var r = haxe_Unserializer.DEFAULT_RESOLVER;
if(r == null) {
r = new haxe__$Unserializer_DefaultResolver();
haxe_Unserializer.DEFAULT_RESOLVER = r;
}
this.resolver = r;
};
$hxClasses["haxe.Unserializer"] = haxe_Unserializer;
haxe_Unserializer.__name__ = "haxe.Unserializer";
haxe_Unserializer.initCodes = function() {
var codes = [];
var _g = 0;
var _g1 = haxe_Unserializer.BASE64.length;
while(_g < _g1) {
var i = _g++;
codes[haxe_Unserializer.BASE64.charCodeAt(i)] = i;
}
return codes;
};
haxe_Unserializer.run = function(v) {
return new haxe_Unserializer(v).unserialize();
};
haxe_Unserializer.prototype = {
buf: null
,pos: null
,length: null
,cache: null
,scache: null
,resolver: null
,setResolver: function(r) {
if(r == null) {
if(haxe__$Unserializer_NullResolver.instance == null) {
haxe__$Unserializer_NullResolver.instance = new haxe__$Unserializer_NullResolver();
}
this.resolver = haxe__$Unserializer_NullResolver.instance;
} else {
this.resolver = r;
}
}
,readDigits: function() {
var k = 0;
var s = false;
var fpos = this.pos;
while(true) {
var c = this.buf.charCodeAt(this.pos);
if(c != 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.buf.charCodeAt(this.pos);
if(c != c) {
break;
}
if(c >= 43 && c < 58 || c == 101 || c == 69) {
this.pos++;
} else {
break;
}
}
return parseFloat(HxOverrides.substr(this.buf,p1,this.pos - p1));
}
,unserializeObject: function(o) {
while(true) {
if(this.pos >= this.length) {
throw haxe_Exception.thrown("Invalid object");
}
if(this.buf.charCodeAt(this.pos) == 103) {
break;
}
var k = this.unserialize();
if(typeof(k) != "string") {
throw haxe_Exception.thrown("Invalid object key");
}
var v = this.unserialize();
o[k] = v;
}
this.pos++;
}
,unserializeEnum: function(edecl,tag) {
if(this.buf.charCodeAt(this.pos++) != 58) {
throw haxe_Exception.thrown("Invalid enum format");
}
var nargs = this.readDigits();
if(nargs == 0) {
return Type.createEnum(edecl,tag);
}
var args = [];
while(nargs-- > 0) args.push(this.unserialize());
return Type.createEnum(edecl,tag,args);
}
,unserialize: function() {
switch(this.buf.charCodeAt(this.pos++)) {
case 65:
var name = this.unserialize();
var cl = this.resolver.resolveClass(name);
if(cl == null) {
throw haxe_Exception.thrown("Class not found " + name);
}
return cl;
case 66:
var name = this.unserialize();
var e = this.resolver.resolveEnum(name);
if(e == null) {
throw haxe_Exception.thrown("Enum not found " + name);
}
return e;
case 67:
var name = this.unserialize();
var cl = this.resolver.resolveClass(name);
if(cl == null) {
throw haxe_Exception.thrown("Class not found " + name);
}
var o = Object.create(cl.prototype);
this.cache.push(o);
o.hxUnserialize(this);
if(this.buf.charCodeAt(this.pos++) != 103) {
throw haxe_Exception.thrown("Invalid custom data");
}
return o;
case 77:
var h = new haxe_ds_ObjectMap();
this.cache.push(h);
var buf = this.buf;
while(this.buf.charCodeAt(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 haxe_Exception.thrown("Invalid string reference");
}
return this.scache[n];
case 97:
var buf = this.buf;
var a = [];
this.cache.push(a);
while(true) {
var c = this.buf.charCodeAt(this.pos);
if(c == 104) {
this.pos++;
break;
}
if(c == 117) {
this.pos++;
var n = this.readDigits();
a[a.length + n - 1] = null;
} else {
a.push(this.unserialize());
}
}
return a;
case 98:
var h = new haxe_ds_StringMap();
this.cache.push(h);
var buf = this.buf;
while(this.buf.charCodeAt(this.pos) != 104) {
var s = this.unserialize();
var value = this.unserialize();
h.h[s] = value;
}
this.pos++;
return h;
case 99:
var name = this.unserialize();
var cl = this.resolver.resolveClass(name);
if(cl == null) {
throw haxe_Exception.thrown("Class not found " + name);
}
var o = Object.create(cl.prototype);
this.cache.push(o);
this.unserializeObject(o);
return o;
case 100:
return this.readFloat();
case 102:
return false;
case 105:
return this.readDigits();
case 106:
var name = this.unserialize();
var edecl = this.resolver.resolveEnum(name);
if(edecl == null) {
throw haxe_Exception.thrown("Enum not found " + name);
}
this.pos++;
var index = this.readDigits();
var tag = edecl.__constructs__.slice()[index];
if(tag == null) {
throw haxe_Exception.thrown("Unknown enum index " + name + "@" + index);
}
var e = this.unserializeEnum(edecl,tag);
this.cache.push(e);
return e;
case 107:
return NaN;
case 108:
var l = new haxe_ds_List();
this.cache.push(l);
var buf = this.buf;
while(this.buf.charCodeAt(this.pos) != 104) l.add(this.unserialize());
this.pos++;
return l;
case 109:
return -Infinity;
case 110:
return null;
case 111:
var o = { };
this.cache.push(o);
this.unserializeObject(o);
return o;
case 112:
return Infinity;
case 113:
var h = new haxe_ds_IntMap();
this.cache.push(h);
var buf = this.buf;
var c = this.buf.charCodeAt(this.pos++);
while(c == 58) {
var i = this.readDigits();
var value = this.unserialize();
h.h[i] = value;
c = this.buf.charCodeAt(this.pos++);
}
if(c != 104) {
throw haxe_Exception.thrown("Invalid IntMap format");
}
return h;
case 114:
var n = this.readDigits();
if(n < 0 || n >= this.cache.length) {
throw haxe_Exception.thrown("Invalid reference");
}
return this.cache[n];
case 115:
var len = this.readDigits();
var buf = this.buf;
if(this.buf.charCodeAt(this.pos++) != 58 || this.length - this.pos < len) {
throw haxe_Exception.thrown("Invalid bytes length");
}
var codes = haxe_Unserializer.CODES;
if(codes == null) {
codes = haxe_Unserializer.initCodes();
haxe_Unserializer.CODES = codes;
}
var i = this.pos;
var rest = len & 3;
var size = (len >> 2) * 3 + (rest >= 2 ? rest - 1 : 0);
var max = i + (len - rest);
var bytes = new haxe_io_Bytes(new ArrayBuffer(size));
var bpos = 0;
while(i < max) {
var c1 = codes[buf.charCodeAt(i++)];
var c2 = codes[buf.charCodeAt(i++)];
bytes.b[bpos++] = (c1 << 2 | c2 >> 4) & 255;
var c3 = codes[buf.charCodeAt(i++)];
bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255;
var c4 = codes[buf.charCodeAt(i++)];
bytes.b[bpos++] = (c3 << 6 | c4) & 255;
}
if(rest >= 2) {
var c1 = codes[buf.charCodeAt(i++)];
var c2 = codes[buf.charCodeAt(i++)];
bytes.b[bpos++] = (c1 << 2 | c2 >> 4) & 255;
if(rest == 3) {
var c3 = codes[buf.charCodeAt(i++)];
bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255;
}
}
this.pos += len;
this.cache.push(bytes);
return bytes;
case 116:
return true;
case 118:
var d;
if(this.buf.charCodeAt(this.pos) >= 48 && this.buf.charCodeAt(this.pos) <= 57 && this.buf.charCodeAt(this.pos + 1) >= 48 && this.buf.charCodeAt(this.pos + 1) <= 57 && this.buf.charCodeAt(this.pos + 2) >= 48 && this.buf.charCodeAt(this.pos + 2) <= 57 && this.buf.charCodeAt(this.pos + 3) >= 48 && this.buf.charCodeAt(this.pos + 3) <= 57 && this.buf.charCodeAt(this.pos + 4) == 45) {
d = HxOverrides.strDate(HxOverrides.substr(this.buf,this.pos,19));
this.pos += 19;
} else {
d = new Date(this.readFloat());
}
this.cache.push(d);
return d;
case 119:
var name = this.unserialize();
var edecl = this.resolver.resolveEnum(name);
if(edecl == null) {
throw haxe_Exception.thrown("Enum not found " + name);
}
var e = this.unserializeEnum(edecl,this.unserialize());
this.cache.push(e);
return e;
case 120:
throw haxe_Exception.thrown(this.unserialize());
case 121:
var len = this.readDigits();
if(this.buf.charCodeAt(this.pos++) != 58 || this.length - this.pos < len) {
throw haxe_Exception.thrown("Invalid string length");
}
var s = HxOverrides.substr(this.buf,this.pos,len);
this.pos += len;
s = decodeURIComponent(s.split("+").join(" "));
this.scache.push(s);
return s;
case 122:
return 0;
default:
}
this.pos--;
throw haxe_Exception.thrown("Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos);
}
,__class__: haxe_Unserializer
};
var haxe__$Unserializer_NullResolver = function() {
};
$hxClasses["haxe._Unserializer.NullResolver"] = haxe__$Unserializer_NullResolver;
haxe__$Unserializer_NullResolver.__name__ = "haxe._Unserializer.NullResolver";
haxe__$Unserializer_NullResolver.instance = null;
haxe__$Unserializer_NullResolver.prototype = {
resolveClass: function(name) {
return null;
}
,resolveEnum: function(name) {
return null;
}
,__class__: haxe__$Unserializer_NullResolver
};
var haxe_Utf8 = function() { };
$hxClasses["haxe.Utf8"] = haxe_Utf8;
haxe_Utf8.__name__ = "haxe.Utf8";
haxe_Utf8.iter = function(s,chars) {
var _g = 0;
var _g1 = s.length;
while(_g < _g1) {
var i = _g++;
chars(HxOverrides.cca(s,i));
}
};
var haxe_ValueException = function(value,previous,native) {
haxe_Exception.call(this,String(value),previous,native);
this.value = value;
this.__skipStack++;
};
$hxClasses["haxe.ValueException"] = haxe_ValueException;
haxe_ValueException.__name__ = "haxe.ValueException";
haxe_ValueException.__super__ = haxe_Exception;
haxe_ValueException.prototype = $extend(haxe_Exception.prototype,{
value: null
,unwrap: function() {
return this.value;
}
,__class__: haxe_ValueException
});
var haxe_crypto_Adler32 = function() {
this.a1 = 1;
this.a2 = 0;
};
$hxClasses["haxe.crypto.Adler32"] = haxe_crypto_Adler32;
haxe_crypto_Adler32.__name__ = "haxe.crypto.Adler32";
haxe_crypto_Adler32.read = function(i) {
var a = new haxe_crypto_Adler32();
var a2a = i.readByte();
var a2b = i.readByte();
var a1a = i.readByte();
var a1b = i.readByte();
a.a1 = a1a << 8 | a1b;
a.a2 = a2a << 8 | a2b;
return a;
};
haxe_crypto_Adler32.prototype = {
a1: null
,a2: null
,update: function(b,pos,len) {
var a1 = this.a1;
var a2 = this.a2;
var _g = pos;
var _g1 = pos + len;
while(_g < _g1) {
var p = _g++;
var c = b.b[p];
a1 = (a1 + c) % 65521;
a2 = (a2 + a1) % 65521;
}
this.a1 = a1;
this.a2 = a2;
}
,equals: function(a) {
if(a.a1 == this.a1) {
return a.a2 == this.a2;
} else {
return false;
}
}
,__class__: haxe_crypto_Adler32
};
var haxe_crypto_Base64 = function() { };
$hxClasses["haxe.crypto.Base64"] = haxe_crypto_Base64;
haxe_crypto_Base64.__name__ = "haxe.crypto.Base64";
haxe_crypto_Base64.encode = function(bytes,complement) {
if(complement == null) {
complement = true;
}
var str = new haxe_crypto_BaseCode(haxe_crypto_Base64.BYTES).encodeBytes(bytes).toString();
if(complement) {
switch(bytes.length % 3) {
case 1:
str += "==";
break;
case 2:
str += "=";
break;
default:
}
}
return str;
};
haxe_crypto_Base64.decode = function(str,complement) {
if(complement == null) {
complement = true;
}
if(complement) {
while(HxOverrides.cca(str,str.length - 1) == 61) str = HxOverrides.substr(str,0,-1);
}
return new haxe_crypto_BaseCode(haxe_crypto_Base64.BYTES).decodeBytes(haxe_io_Bytes.ofString(str));
};
var haxe_crypto_BaseCode = function(base) {
var len = base.length;
var nbits = 1;
while(len > 1 << nbits) ++nbits;
if(nbits > 8 || len != 1 << nbits) {
throw haxe_Exception.thrown("BaseCode : base length must be a power of two.");
}
this.base = base;
this.nbits = nbits;
};
$hxClasses["haxe.crypto.BaseCode"] = haxe_crypto_BaseCode;
haxe_crypto_BaseCode.__name__ = "haxe.crypto.BaseCode";
haxe_crypto_BaseCode.prototype = {
base: null
,nbits: null
,tbl: null
,encodeBytes: function(b) {
var nbits = this.nbits;
var base = this.base;
var size = b.length * 8 / nbits | 0;
var out = new haxe_io_Bytes(new ArrayBuffer(size + (b.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.b[pin++];
}
curbits -= nbits;
out.b[pout++] = base.b[buf >> curbits & mask] & 255;
}
if(curbits > 0) {
out.b[pout++] = base.b[buf << nbits - curbits & mask] & 255;
}
return out;
}
,initTable: function() {
var tbl = [];
var _g = 0;
while(_g < 256) {
var i = _g++;
tbl[i] = -1;
}
var _g = 0;
var _g1 = this.base.length;
while(_g < _g1) {
var i = _g++;
tbl[this.base.b[i]] = i;
}
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.length * nbits >> 3;
var out = new haxe_io_Bytes(new ArrayBuffer(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.b[pin++]];
if(i == -1) {
throw haxe_Exception.thrown("BaseCode : invalid encoded char");
}
buf |= i;
}
curbits -= 8;
out.b[pout++] = buf >> curbits & 255 & 255;
}
return out;
}
,__class__: haxe_crypto_BaseCode
};
var haxe_ds_ArraySort = function() { };
$hxClasses["haxe.ds.ArraySort"] = haxe_ds_ArraySort;
haxe_ds_ArraySort.__name__ = "haxe.ds.ArraySort";
haxe_ds_ArraySort.sort = function(a,cmp) {
haxe_ds_ArraySort.rec(a,cmp,0,a.length);
};
haxe_ds_ArraySort.rec = function(a,cmp,from,to) {
var middle = from + to >> 1;
if(to - from < 12) {
if(to <= from) {
return;
}
var _g = from + 1;
var _g1 = to;
while(_g < _g1) {
var i = _g++;
var j = i;
while(j > from) {
if(cmp(a[j],a[j - 1]) < 0) {
haxe_ds_ArraySort.swap(a,j - 1,j);
} else {
break;
}
--j;
}
}
return;
}
haxe_ds_ArraySort.rec(a,cmp,from,middle);
haxe_ds_ArraySort.rec(a,cmp,middle,to);
haxe_ds_ArraySort.doMerge(a,cmp,from,middle,to,middle - from,to - middle);
};
haxe_ds_ArraySort.doMerge = function(a,cmp,from,pivot,to,len1,len2) {
var first_cut;
var second_cut;
var len11;
var len22;
if(len1 == 0 || len2 == 0) {
return;
}
if(len1 + len2 == 2) {
if(cmp(a[pivot],a[from]) < 0) {
haxe_ds_ArraySort.swap(a,pivot,from);
}
return;
}
if(len1 > len2) {
len11 = len1 >> 1;
first_cut = from + len11;
second_cut = haxe_ds_ArraySort.lower(a,cmp,pivot,to,first_cut);
len22 = second_cut - pivot;
} else {
len22 = len2 >> 1;
second_cut = pivot + len22;
first_cut = haxe_ds_ArraySort.upper(a,cmp,from,pivot,second_cut);
len11 = first_cut - from;
}
haxe_ds_ArraySort.rotate(a,cmp,first_cut,pivot,second_cut);
var new_mid = first_cut + len22;
haxe_ds_ArraySort.doMerge(a,cmp,from,first_cut,new_mid,len11,len22);
haxe_ds_ArraySort.doMerge(a,cmp,new_mid,second_cut,to,len1 - len11,len2 - len22);
};
haxe_ds_ArraySort.rotate = function(a,cmp,from,mid,to) {
if(from == mid || mid == to) {
return;
}
var n = haxe_ds_ArraySort.gcd(to - from,mid - from);
while(n-- != 0) {
var val = a[from + n];
var shift = mid - from;
var p1 = from + n;
var p2 = from + n + shift;
while(p2 != from + n) {
a[p1] = a[p2];
p1 = p2;
if(to - p2 > shift) {
p2 += shift;
} else {
p2 = from + (shift - (to - p2));
}
}
a[p1] = val;
}
};
haxe_ds_ArraySort.gcd = function(m,n) {
while(n != 0) {
var t = m % n;
m = n;
n = t;
}
return m;
};
haxe_ds_ArraySort.upper = function(a,cmp,from,to,val) {
var len = to - from;
var half;
var mid;
while(len > 0) {
half = len >> 1;
mid = from + half;
if(cmp(a[val],a[mid]) < 0) {
len = half;
} else {
from = mid + 1;
len = len - half - 1;
}
}
return from;
};
haxe_ds_ArraySort.lower = function(a,cmp,from,to,val) {
var len = to - from;
var half;
var mid;
while(len > 0) {
half = len >> 1;
mid = from + half;
if(cmp(a[mid],a[val]) < 0) {
from = mid + 1;
len = len - half - 1;
} else {
len = half;
}
}
return from;
};
haxe_ds_ArraySort.swap = function(a,i,j) {
var tmp = a[i];
a[i] = a[j];
a[j] = tmp;
};
var haxe_ds_BalancedTree = function() {
};
$hxClasses["haxe.ds.BalancedTree"] = haxe_ds_BalancedTree;
haxe_ds_BalancedTree.__name__ = "haxe.ds.BalancedTree";
haxe_ds_BalancedTree.__interfaces__ = [haxe_IMap];
haxe_ds_BalancedTree.prototype = {
root: null
,set: function(key,value) {
this.root = this.setLoop(key,value,this.root);
}
,get: function(key) {
var node = this.root;
while(node != null) {
var c = this.compare(key,node.key);
if(c == 0) {
return node.value;
}
if(c < 0) {
node = node.left;
} else {
node = node.right;
}
}
return null;
}
,remove: function(key) {
try {
this.root = this.removeLoop(key,this.root);
return true;
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(typeof(haxe_Exception.caught(_g).unwrap()) == "string") {
return false;
} else {
throw _g;
}
}
}
,exists: function(key) {
var node = this.root;
while(node != null) {
var c = this.compare(key,node.key);
if(c == 0) {
return true;
} else if(c < 0) {
node = node.left;
} else {
node = node.right;
}
}
return false;
}
,keys: function() {
var ret = [];
this.keysLoop(this.root,ret);
return new haxe_iterators_ArrayIterator(ret);
}
,setLoop: function(k,v,node) {
if(node == null) {
return new haxe_ds_TreeNode(null,k,v,null);
}
var c = this.compare(k,node.key);
if(c == 0) {
return new haxe_ds_TreeNode(node.left,k,v,node.right,node == null ? 0 : node._height);
} else if(c < 0) {
var nl = this.setLoop(k,v,node.left);
return this.balance(nl,node.key,node.value,node.right);
} else {
var nr = this.setLoop(k,v,node.right);
return this.balance(node.left,node.key,node.value,nr);
}
}
,removeLoop: function(k,node) {
if(node == null) {
throw haxe_Exception.thrown("Not_found");
}
var c = this.compare(k,node.key);
if(c == 0) {
return this.merge(node.left,node.right);
} else if(c < 0) {
return this.balance(this.removeLoop(k,node.left),node.key,node.value,node.right);
} else {
return this.balance(node.left,node.key,node.value,this.removeLoop(k,node.right));
}
}
,keysLoop: function(node,acc) {
if(node != null) {
this.keysLoop(node.left,acc);
acc.push(node.key);
this.keysLoop(node.right,acc);
}
}
,merge: function(t1,t2) {
if(t1 == null) {
return t2;
}
if(t2 == null) {
return t1;
}
var t = this.minBinding(t2);
return this.balance(t1,t.key,t.value,this.removeMinBinding(t2));
}
,minBinding: function(t) {
if(t == null) {
throw haxe_Exception.thrown("Not_found");
} else if(t.left == null) {
return t;
} else {
return this.minBinding(t.left);
}
}
,removeMinBinding: function(t) {
if(t.left == null) {
return t.right;
} else {
return this.balance(this.removeMinBinding(t.left),t.key,t.value,t.right);
}
}
,balance: function(l,k,v,r) {
var hl = l == null ? 0 : l._height;
var hr = r == null ? 0 : r._height;
if(hl > hr + 2) {
var _this = l.left;
var _this1 = l.right;
if((_this == null ? 0 : _this._height) >= (_this1 == null ? 0 : _this1._height)) {
return new haxe_ds_TreeNode(l.left,l.key,l.value,new haxe_ds_TreeNode(l.right,k,v,r));
} else {
return new haxe_ds_TreeNode(new haxe_ds_TreeNode(l.left,l.key,l.value,l.right.left),l.right.key,l.right.value,new haxe_ds_TreeNode(l.right.right,k,v,r));
}
} else if(hr > hl + 2) {
var _this = r.right;
var _this1 = r.left;
if((_this == null ? 0 : _this._height) > (_this1 == null ? 0 : _this1._height)) {
return new haxe_ds_TreeNode(new haxe_ds_TreeNode(l,k,v,r.left),r.key,r.value,r.right);
} else {
return new haxe_ds_TreeNode(new haxe_ds_TreeNode(l,k,v,r.left.left),r.left.key,r.left.value,new haxe_ds_TreeNode(r.left.right,r.key,r.value,r.right));
}
} else {
return new haxe_ds_TreeNode(l,k,v,r,(hl > hr ? hl : hr) + 1);
}
}
,compare: function(k1,k2) {
return Reflect.compare(k1,k2);
}
,__class__: haxe_ds_BalancedTree
};
var haxe_ds_TreeNode = function(l,k,v,r,h) {
if(h == null) {
h = -1;
}
this.left = l;
this.key = k;
this.value = v;
this.right = r;
if(h == -1) {
var tmp;
var _this = this.left;
var _this1 = this.right;
if((_this == null ? 0 : _this._height) > (_this1 == null ? 0 : _this1._height)) {
var _this = this.left;
tmp = _this == null ? 0 : _this._height;
} else {
var _this = this.right;
tmp = _this == null ? 0 : _this._height;
}
this._height = tmp + 1;
} else {
this._height = h;
}
};
$hxClasses["haxe.ds.TreeNode"] = haxe_ds_TreeNode;
haxe_ds_TreeNode.__name__ = "haxe.ds.TreeNode";
haxe_ds_TreeNode.prototype = {
left: null
,right: null
,key: null
,value: null
,_height: null
,__class__: haxe_ds_TreeNode
};
var haxe_ds_EnumValueMap = function() {
haxe_ds_BalancedTree.call(this);
};
$hxClasses["haxe.ds.EnumValueMap"] = haxe_ds_EnumValueMap;
haxe_ds_EnumValueMap.__name__ = "haxe.ds.EnumValueMap";
haxe_ds_EnumValueMap.__interfaces__ = [haxe_IMap];
haxe_ds_EnumValueMap.__super__ = haxe_ds_BalancedTree;
haxe_ds_EnumValueMap.prototype = $extend(haxe_ds_BalancedTree.prototype,{
compare: function(k1,k2) {
var d = k1._hx_index - k2._hx_index;
if(d != 0) {
return d;
}
var p1 = Type.enumParameters(k1);
var p2 = Type.enumParameters(k2);
if(p1.length == 0 && p2.length == 0) {
return 0;
}
return this.compareArgs(p1,p2);
}
,compareArgs: function(a1,a2) {
var ld = a1.length - a2.length;
if(ld != 0) {
return ld;
}
var _g = 0;
var _g1 = a1.length;
while(_g < _g1) {
var i = _g++;
var d = this.compareArg(a1[i],a2[i]);
if(d != 0) {
return d;
}
}
return 0;
}
,compareArg: function(v1,v2) {
if(Reflect.isEnumValue(v1) && Reflect.isEnumValue(v2)) {
return this.compare(v1,v2);
} else if(((v1) instanceof Array) && ((v2) instanceof Array)) {
return this.compareArgs(v1,v2);
} else {
return Reflect.compare(v1,v2);
}
}
,__class__: haxe_ds_EnumValueMap
});
var haxe_ds_GenericCell = function(elt,next) {
this.elt = elt;
this.next = next;
};
$hxClasses["haxe.ds.GenericCell"] = haxe_ds_GenericCell;
haxe_ds_GenericCell.__name__ = "haxe.ds.GenericCell";
haxe_ds_GenericCell.prototype = {
elt: null
,next: null
,__class__: haxe_ds_GenericCell
};
var haxe_ds_GenericStack = function() {
};
$hxClasses["haxe.ds.GenericStack"] = haxe_ds_GenericStack;
haxe_ds_GenericStack.__name__ = "haxe.ds.GenericStack";
haxe_ds_GenericStack.prototype = {
head: null
,__class__: haxe_ds_GenericStack
};
var haxe_ds_IntMap = function() {
this.h = { };
};
$hxClasses["haxe.ds.IntMap"] = haxe_ds_IntMap;
haxe_ds_IntMap.__name__ = "haxe.ds.IntMap";
haxe_ds_IntMap.__interfaces__ = [haxe_IMap];
haxe_ds_IntMap.prototype = {
h: null
,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 new haxe_iterators_ArrayIterator(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];
}};
}
,__class__: haxe_ds_IntMap
};
var haxe_ds__$List_ListNode = function(item,next) {
this.item = item;
this.next = next;
};
$hxClasses["haxe.ds._List.ListNode"] = haxe_ds__$List_ListNode;
haxe_ds__$List_ListNode.__name__ = "haxe.ds._List.ListNode";
haxe_ds__$List_ListNode.prototype = {
item: null
,next: null
,__class__: haxe_ds__$List_ListNode
};
var haxe_ds__$List_ListIterator = function(head) {
this.head = head;
};
$hxClasses["haxe.ds._List.ListIterator"] = haxe_ds__$List_ListIterator;
haxe_ds__$List_ListIterator.__name__ = "haxe.ds._List.ListIterator";
haxe_ds__$List_ListIterator.prototype = {
head: null
,hasNext: function() {
return this.head != null;
}
,next: function() {
var val = this.head.item;
this.head = this.head.next;
return val;
}
,__class__: haxe_ds__$List_ListIterator
};
var haxe_ds_StringMap = function() {
this.h = Object.create(null);
};
$hxClasses["haxe.ds.StringMap"] = haxe_ds_StringMap;
haxe_ds_StringMap.__name__ = "haxe.ds.StringMap";
haxe_ds_StringMap.__interfaces__ = [haxe_IMap];
haxe_ds_StringMap.keysIterator = function(h) {
var keys = Object.keys(h);
var len = keys.length;
var idx = 0;
return { hasNext : function() {
return idx < len;
}, next : function() {
idx += 1;
return keys[idx - 1];
}};
};
haxe_ds_StringMap.valueIterator = function(h) {
var keys = Object.keys(h);
var len = keys.length;
var idx = 0;
return { hasNext : function() {
return idx < len;
}, next : function() {
idx += 1;
return h[keys[idx - 1]];
}};
};
haxe_ds_StringMap.kvIterator = function(h) {
var keys = Object.keys(h);
var len = keys.length;
var idx = 0;
return { hasNext : function() {
return idx < len;
}, next : function() {
idx += 1;
var k = keys[idx - 1];
return { key : k, value : h[k]};
}};
};
haxe_ds_StringMap.prototype = {
h: null
,exists: function(key) {
return Object.prototype.hasOwnProperty.call(this.h,key);
}
,get: function(key) {
return this.h[key];
}
,set: function(key,value) {
this.h[key] = value;
}
,remove: function(key) {
if(Object.prototype.hasOwnProperty.call(this.h,key)) {
delete(this.h[key]);
return true;
} else {
return false;
}
}
,keys: function() {
return haxe_ds_StringMap.keysIterator(this.h);
}
,__class__: haxe_ds_StringMap
};
var haxe_http_HttpBase = function(url) {
this.url = url;
this.headers = [];
this.params = [];
this.emptyOnData = $bind(this,this.onData);
};
$hxClasses["haxe.http.HttpBase"] = haxe_http_HttpBase;
haxe_http_HttpBase.__name__ = "haxe.http.HttpBase";
haxe_http_HttpBase.prototype = {
url: null
,responseBytes: null
,responseAsString: null
,postData: null
,postBytes: null
,headers: null
,params: null
,emptyOnData: null
,setParameter: function(name,value) {
var _g = 0;
var _g1 = this.params.length;
while(_g < _g1) {
var i = _g++;
if(this.params[i].name == name) {
this.params[i] = { name : name, value : value};
return;
}
}
this.params.push({ name : name, value : value});
}
,onData: function(data) {
}
,onBytes: function(data) {
}
,onError: function(msg) {
}
,onStatus: function(status) {
}
,hasOnData: function() {
return !Reflect.compareMethods($bind(this,this.onData),this.emptyOnData);
}
,success: function(data) {
this.responseBytes = data;
this.responseAsString = null;
if(this.hasOnData()) {
this.onData(this.get_responseData());
}
this.onBytes(this.responseBytes);
}
,get_responseData: function() {
if(this.responseAsString == null && this.responseBytes != null) {
this.responseAsString = this.responseBytes.getString(0,this.responseBytes.length,haxe_io_Encoding.UTF8);
}
return this.responseAsString;
}
,__class__: haxe_http_HttpBase
,__properties__: {get_responseData:"get_responseData"}
};
var haxe_http_HttpJs = function(url) {
this.async = true;
this.withCredentials = false;
haxe_http_HttpBase.call(this,url);
};
$hxClasses["haxe.http.HttpJs"] = haxe_http_HttpJs;
haxe_http_HttpJs.__name__ = "haxe.http.HttpJs";
haxe_http_HttpJs.__super__ = haxe_http_HttpBase;
haxe_http_HttpJs.prototype = $extend(haxe_http_HttpBase.prototype,{
async: null
,withCredentials: null
,req: null
,request: function(post) {
var _gthis = this;
this.responseAsString = null;
this.responseBytes = null;
var r = this.req = js_Browser.createXMLHttpRequest();
var onreadystatechange = function(_) {
if(r.readyState != 4) {
return;
}
var s;
try {
s = r.status;
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
s = null;
}
if(s == 0 && typeof(window) != "undefined" && $global.location != null) {
var protocol = $global.location.protocol.toLowerCase();
var rlocalProtocol = new EReg("^(?:about|app|app-storage|.+-extension|file|res|widget):$","");
var isLocal = rlocalProtocol.match(protocol);
if(isLocal) {
s = r.response != null ? 200 : 404;
}
}
if(s == undefined) {
s = null;
}
if(s != null) {
_gthis.onStatus(s);
}
if(s != null && s >= 200 && s < 400) {
_gthis.req = null;
_gthis.success(haxe_io_Bytes.ofData(r.response));
} else if(s == null || s == 0 && r.response == null) {
_gthis.req = null;
_gthis.onError("Failed to connect or resolve host");
} else if(s == null) {
_gthis.req = null;
var onreadystatechange = r.response != null ? haxe_io_Bytes.ofData(r.response) : null;
_gthis.responseBytes = onreadystatechange;
_gthis.onError("Http Error #" + r.status);
} else {
switch(s) {
case 12007:
_gthis.req = null;
_gthis.onError("Unknown host");
break;
case 12029:
_gthis.req = null;
_gthis.onError("Failed to connect to host");
break;
default:
_gthis.req = null;
var onreadystatechange = r.response != null ? haxe_io_Bytes.ofData(r.response) : null;
_gthis.responseBytes = onreadystatechange;
_gthis.onError("Http Error #" + r.status);
}
}
};
if(this.async) {
r.onreadystatechange = onreadystatechange;
}
var uri;
var _g = this.postBytes;
var _g1 = this.postData;
if(_g1 == null) {
if(_g == null) {
uri = null;
} else {
var bytes = _g;
uri = new Blob([bytes.b.bufferValue]);
}
} else if(_g == null) {
var str = _g1;
uri = str;
} else {
uri = null;
}
if(uri != null) {
post = true;
} else {
var _g = 0;
var _g1 = this.params;
while(_g < _g1.length) {
var p = _g1[_g];
++_g;
if(uri == null) {
uri = "";
} else {
uri = (uri == null ? "null" : Std.string(uri)) + "&";
}
var s = p.name;
var value = (uri == null ? "null" : Std.string(uri)) + encodeURIComponent(s) + "=";
var s1 = p.value;
uri = value + encodeURIComponent(s1);
}
}
try {
if(post) {
r.open("POST",this.url,this.async);
} else if(uri != null) {
var question = this.url.split("?").length <= 1;
r.open("GET",this.url + (question ? "?" : "&") + (uri == null ? "null" : Std.string(uri)),this.async);
uri = null;
} else {
r.open("GET",this.url,this.async);
}
r.responseType = "arraybuffer";
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.req = null;
this.onError(e.toString());
return;
}
r.withCredentials = this.withCredentials;
if(!Lambda.exists(this.headers,function(h) {
return h.name == "Content-Type";
}) && post && this.postData == null) {
r.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
var _g = 0;
var _g1 = this.headers;
while(_g < _g1.length) {
var h = _g1[_g];
++_g;
r.setRequestHeader(h.name,h.value);
}
r.send(uri);
if(!this.async) {
onreadystatechange(null);
}
}
,__class__: haxe_http_HttpJs
});
var haxe_io_BytesBuffer = function() {
this.pos = 0;
this.size = 0;
};
$hxClasses["haxe.io.BytesBuffer"] = haxe_io_BytesBuffer;
haxe_io_BytesBuffer.__name__ = "haxe.io.BytesBuffer";
haxe_io_BytesBuffer.prototype = {
buffer: null
,view: null
,u8: null
,pos: null
,size: null
,addByte: function(byte) {
if(this.pos == this.size) {
this.grow(1);
}
this.view.setUint8(this.pos++,byte);
}
,add: function(src) {
if(this.pos + src.length > this.size) {
this.grow(src.length);
}
if(this.size == 0) {
return;
}
var sub = new Uint8Array(src.b.buffer,src.b.byteOffset,src.length);
this.u8.set(sub,this.pos);
this.pos += src.length;
}
,addBytes: function(src,pos,len) {
if(pos < 0 || len < 0 || pos + len > src.length) {
throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds);
}
if(this.pos + len > this.size) {
this.grow(len);
}
if(this.size == 0) {
return;
}
var sub = new Uint8Array(src.b.buffer,src.b.byteOffset + pos,len);
this.u8.set(sub,this.pos);
this.pos += len;
}
,grow: function(delta) {
var req = this.pos + delta;
var nsize = this.size == 0 ? 16 : this.size;
while(nsize < req) nsize = nsize * 3 >> 1;
var nbuf = new ArrayBuffer(nsize);
var nu8 = new Uint8Array(nbuf);
if(this.size > 0) {
nu8.set(this.u8);
}
this.size = nsize;
this.buffer = nbuf;
this.u8 = nu8;
this.view = new DataView(this.buffer);
}
,getBytes: function() {
if(this.size == 0) {
return new haxe_io_Bytes(new ArrayBuffer(0));
}
var b = new haxe_io_Bytes(this.buffer);
b.length = this.pos;
return b;
}
,__class__: haxe_io_BytesBuffer
};
var haxe_io_Input = function() { };
$hxClasses["haxe.io.Input"] = haxe_io_Input;
haxe_io_Input.__name__ = "haxe.io.Input";
haxe_io_Input.prototype = {
bigEndian: null
,readByte: function() {
throw haxe_Exception.thrown("Not implemented");
}
,readBytes: function(s,pos,len) {
var k = len;
var b = s.b;
if(pos < 0 || len < 0 || pos + len > s.length) {
throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds);
}
try {
while(k > 0) {
b[pos] = this.readByte();
++pos;
--k;
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
if(!((haxe_Exception.caught(_g).unwrap()) instanceof haxe_io_Eof)) {
throw _g;
}
}
return len - k;
}
,readFullBytes: function(s,pos,len) {
while(len > 0) {
var k = this.readBytes(s,pos,len);
if(k == 0) {
throw haxe_Exception.thrown(haxe_io_Error.Blocked);
}
pos += k;
len -= k;
}
}
,read: function(nbytes) {
var s = new haxe_io_Bytes(new ArrayBuffer(nbytes));
var p = 0;
while(nbytes > 0) {
var k = this.readBytes(s,p,nbytes);
if(k == 0) {
throw haxe_Exception.thrown(haxe_io_Error.Blocked);
}
p += k;
nbytes -= k;
}
return s;
}
,readInt16: function() {
var ch1 = this.readByte();
var ch2 = this.readByte();
var n = this.bigEndian ? ch2 | ch1 << 8 : ch1 | ch2 << 8;
if((n & 32768) != 0) {
return n - 65536;
}
return n;
}
,readUInt16: function() {
var ch1 = this.readByte();
var ch2 = this.readByte();
if(this.bigEndian) {
return ch2 | ch1 << 8;
} else {
return ch1 | ch2 << 8;
}
}
,readInt32: function() {
var ch1 = this.readByte();
var ch2 = this.readByte();
var ch3 = this.readByte();
var ch4 = this.readByte();
if(this.bigEndian) {
return ch4 | ch3 << 8 | ch2 << 16 | ch1 << 24;
} else {
return ch1 | ch2 << 8 | ch3 << 16 | ch4 << 24;
}
}
,readString: function(len,encoding) {
var b = new haxe_io_Bytes(new ArrayBuffer(len));
this.readFullBytes(b,0,len);
return b.getString(0,len,encoding);
}
,__class__: haxe_io_Input
};
var haxe_io_BytesInput = function(b,pos,len) {
if(pos == null) {
pos = 0;
}
if(len == null) {
len = b.length - pos;
}
if(pos < 0 || len < 0 || pos + len > b.length) {
throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds);
}
this.b = b.b;
this.pos = pos;
this.len = len;
this.totlen = len;
};
$hxClasses["haxe.io.BytesInput"] = haxe_io_BytesInput;
haxe_io_BytesInput.__name__ = "haxe.io.BytesInput";
haxe_io_BytesInput.__super__ = haxe_io_Input;
haxe_io_BytesInput.prototype = $extend(haxe_io_Input.prototype,{
b: null
,pos: null
,len: null
,totlen: null
,readByte: function() {
if(this.len == 0) {
throw haxe_Exception.thrown(new haxe_io_Eof());
}
this.len--;
return this.b[this.pos++];
}
,readBytes: function(buf,pos,len) {
if(pos < 0 || len < 0 || pos + len > buf.length) {
throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds);
}
if(this.len == 0 && len > 0) {
throw haxe_Exception.thrown(new haxe_io_Eof());
}
if(this.len < len) {
len = this.len;
}
var b1 = this.b;
var b2 = buf.b;
var _g = 0;
var _g1 = len;
while(_g < _g1) {
var i = _g++;
b2[pos + i] = b1[this.pos + i];
}
this.pos += len;
this.len -= len;
return len;
}
,__class__: haxe_io_BytesInput
});
var haxe_io_Encoding = $hxEnums["haxe.io.Encoding"] = { __ename__ : "haxe.io.Encoding", __constructs__ : ["UTF8","RawNative"]
,UTF8: {_hx_index:0,__enum__:"haxe.io.Encoding",toString:$estr}
,RawNative: {_hx_index:1,__enum__:"haxe.io.Encoding",toString:$estr}
};
var haxe_io_Eof = function() {
};
$hxClasses["haxe.io.Eof"] = haxe_io_Eof;
haxe_io_Eof.__name__ = "haxe.io.Eof";
haxe_io_Eof.prototype = {
toString: function() {
return "Eof";
}
,__class__: haxe_io_Eof
};
var haxe_io_Error = $hxEnums["haxe.io.Error"] = { __ename__ : "haxe.io.Error", __constructs__ : ["Blocked","Overflow","OutsideBounds","Custom"]
,Blocked: {_hx_index:0,__enum__:"haxe.io.Error",toString:$estr}
,Overflow: {_hx_index:1,__enum__:"haxe.io.Error",toString:$estr}
,OutsideBounds: {_hx_index:2,__enum__:"haxe.io.Error",toString:$estr}
,Custom: ($_=function(e) { return {_hx_index:3,e:e,__enum__:"haxe.io.Error",toString:$estr}; },$_.__params__ = ["e"],$_)
};
var haxe_io_FPHelper = function() { };
$hxClasses["haxe.io.FPHelper"] = haxe_io_FPHelper;
haxe_io_FPHelper.__name__ = "haxe.io.FPHelper";
haxe_io_FPHelper.i32ToFloat = function(i) {
haxe_io_FPHelper.helper.setInt32(0,i,true);
return haxe_io_FPHelper.helper.getFloat32(0,true);
};
haxe_io_FPHelper.floatToI32 = function(f) {
haxe_io_FPHelper.helper.setFloat32(0,f,true);
return haxe_io_FPHelper.helper.getInt32(0,true);
};
haxe_io_FPHelper.i64ToDouble = function(low,high) {
haxe_io_FPHelper.helper.setInt32(0,low,true);
haxe_io_FPHelper.helper.setInt32(4,high,true);
return haxe_io_FPHelper.helper.getFloat64(0,true);
};
haxe_io_FPHelper.doubleToI64 = function(v) {
var i64 = haxe_io_FPHelper.i64tmp;
haxe_io_FPHelper.helper.setFloat64(0,v,true);
i64.low = haxe_io_FPHelper.helper.getInt32(0,true);
i64.high = haxe_io_FPHelper.helper.getInt32(4,true);
return i64;
};
var haxe_io_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.substr(path,0,c2);
path = HxOverrides.substr(path,c2 + 1,null);
this.backslash = true;
} else if(c2 < c1) {
this.dir = HxOverrides.substr(path,0,c1);
path = HxOverrides.substr(path,c1 + 1,null);
} else {
this.dir = null;
}
var cp = path.lastIndexOf(".");
if(cp != -1) {
this.ext = HxOverrides.substr(path,cp + 1,null);
this.file = HxOverrides.substr(path,0,cp);
} else {
this.ext = null;
this.file = path;
}
};
$hxClasses["haxe.io.Path"] = haxe_io_Path;
haxe_io_Path.__name__ = "haxe.io.Path";
haxe_io_Path.withoutDirectory = function(path) {
var s = new haxe_io_Path(path);
s.dir = null;
return s.toString();
};
haxe_io_Path.directory = function(path) {
var s = new haxe_io_Path(path);
if(s.dir == null) {
return "";
}
return s.dir;
};
haxe_io_Path.extension = function(path) {
var s = new haxe_io_Path(path);
if(s.ext == null) {
return "";
}
return s.ext;
};
haxe_io_Path.prototype = {
dir: null
,file: null
,ext: null
,backslash: null
,toString: function() {
return (this.dir == null ? "" : this.dir + (this.backslash ? "\\" : "/")) + this.file + (this.ext == null ? "" : "." + this.ext);
}
,__class__: haxe_io_Path
};
var haxe_iterators_ArrayIterator = function(array) {
this.current = 0;
this.array = array;
};
$hxClasses["haxe.iterators.ArrayIterator"] = haxe_iterators_ArrayIterator;
haxe_iterators_ArrayIterator.__name__ = "haxe.iterators.ArrayIterator";
haxe_iterators_ArrayIterator.prototype = {
array: null
,current: null
,hasNext: function() {
return this.current < this.array.length;
}
,next: function() {
return this.array[this.current++];
}
,__class__: haxe_iterators_ArrayIterator
};
var haxe_iterators_MapKeyValueIterator = function(map) {
this.map = map;
this.keys = map.keys();
};
$hxClasses["haxe.iterators.MapKeyValueIterator"] = haxe_iterators_MapKeyValueIterator;
haxe_iterators_MapKeyValueIterator.__name__ = "haxe.iterators.MapKeyValueIterator";
haxe_iterators_MapKeyValueIterator.prototype = {
map: null
,keys: null
,hasNext: function() {
return this.keys.hasNext();
}
,next: function() {
var key = this.keys.next();
return { value : this.map.get(key), key : key};
}
,__class__: haxe_iterators_MapKeyValueIterator
};
var haxe_xml__$Access_NodeAccess = {};
haxe_xml__$Access_NodeAccess.resolve = function(this1,name) {
var x = this1.elementsNamed(name).next();
if(x == null) {
var xname;
if(this1.nodeType == Xml.Document) {
xname = "Document";
} else {
if(this1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType)));
}
xname = this1.nodeName;
}
throw haxe_Exception.thrown(xname + " is missing element " + name);
}
if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType)));
}
var this1 = x;
return this1;
};
var haxe_xml__$Access_AttribAccess = {};
haxe_xml__$Access_AttribAccess.resolve = function(this1,name) {
if(this1.nodeType == Xml.Document) {
throw haxe_Exception.thrown("Cannot access document attribute " + name);
}
var v = this1.get(name);
if(v == null) {
if(this1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType)));
}
throw haxe_Exception.thrown(this1.nodeName + " is missing attribute " + name);
}
return v;
};
var haxe_xml__$Access_HasAttribAccess = {};
haxe_xml__$Access_HasAttribAccess.resolve = function(this1,name) {
if(this1.nodeType == Xml.Document) {
throw haxe_Exception.thrown("Cannot access document attribute " + name);
}
return this1.exists(name);
};
var haxe_xml__$Access_HasNodeAccess = {};
haxe_xml__$Access_HasNodeAccess.resolve = function(this1,name) {
return this1.elementsNamed(name).hasNext();
};
var haxe_xml__$Access_NodeListAccess = {};
haxe_xml__$Access_NodeListAccess.resolve = function(this1,name) {
var l = [];
var x = this1.elementsNamed(name);
while(x.hasNext()) {
var x1 = x.next();
if(x1.nodeType != Xml.Document && x1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (x1.nodeType == null ? "null" : XmlType.toString(x1.nodeType)));
}
var this1 = x1;
l.push(this1);
}
return l;
};
var haxe_xml_XmlParserException = function(message,xml,position) {
this.xml = xml;
this.message = message;
this.position = position;
this.lineNumber = 1;
this.positionAtLine = 0;
var _g = 0;
var _g1 = position;
while(_g < _g1) {
var i = _g++;
var c = xml.charCodeAt(i);
if(c == 10) {
this.lineNumber++;
this.positionAtLine = 0;
} else if(c != 13) {
this.positionAtLine++;
}
}
};
$hxClasses["haxe.xml.XmlParserException"] = haxe_xml_XmlParserException;
haxe_xml_XmlParserException.__name__ = "haxe.xml.XmlParserException";
haxe_xml_XmlParserException.prototype = {
message: null
,lineNumber: null
,positionAtLine: null
,position: null
,xml: null
,toString: function() {
var c = js_Boot.getClass(this);
return c.__name__ + ": " + this.message + " at line " + this.lineNumber + " char " + this.positionAtLine;
}
,__class__: haxe_xml_XmlParserException
};
var haxe_xml_Parser = function() { };
$hxClasses["haxe.xml.Parser"] = haxe_xml_Parser;
haxe_xml_Parser.__name__ = "haxe.xml.Parser";
haxe_xml_Parser.parse = function(str,strict) {
if(strict == null) {
strict = false;
}
var doc = Xml.createDocument();
haxe_xml_Parser.doParse(str,strict,0,doc);
return doc;
};
haxe_xml_Parser.doParse = function(str,strict,p,parent) {
if(p == null) {
p = 0;
}
var xml = null;
var state = 1;
var next = 1;
var aname = null;
var start = 0;
var nsubs = 0;
var nbrackets = 0;
var c = str.charCodeAt(p);
var buf = new StringBuf();
var escapeNext = 1;
var attrValQuote = -1;
while(c == c) {
switch(state) {
case 0:
switch(c) {
case 9:case 10:case 13:case 32:
break;
default:
state = next;
continue;
}
break;
case 1:
if(c == 60) {
state = 0;
next = 2;
} else {
start = p;
state = 13;
continue;
}
break;
case 2:
switch(c) {
case 33:
if(str.charCodeAt(p + 1) == 91) {
p += 2;
if(HxOverrides.substr(str,p,6).toUpperCase() != "CDATA[") {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected <![CDATA[",str,p));
}
p += 5;
state = 17;
start = p + 1;
} else if(str.charCodeAt(p + 1) == 68 || str.charCodeAt(p + 1) == 100) {
if(HxOverrides.substr(str,p + 2,6).toUpperCase() != "OCTYPE") {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected <!DOCTYPE",str,p));
}
p += 8;
state = 16;
start = p + 1;
} else if(str.charCodeAt(p + 1) != 45 || str.charCodeAt(p + 2) != 45) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected <!--",str,p));
} else {
p += 2;
state = 15;
start = p + 1;
}
break;
case 47:
if(parent == null) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected node name",str,p));
}
start = p + 1;
state = 0;
next = 10;
break;
case 63:
state = 14;
start = p;
break;
default:
state = 3;
start = p;
continue;
}
break;
case 3:
if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45)) {
if(p == start) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected node name",str,p));
}
xml = Xml.createElement(HxOverrides.substr(str,start,p - start));
parent.addChild(xml);
++nsubs;
state = 0;
next = 4;
continue;
}
break;
case 4:
switch(c) {
case 47:
state = 11;
break;
case 62:
state = 9;
break;
default:
state = 5;
start = p;
continue;
}
break;
case 5:
if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45)) {
if(start == p) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected attribute name",str,p));
}
var tmp = HxOverrides.substr(str,start,p - start);
aname = tmp;
if(xml.exists(aname)) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Duplicate attribute [" + aname + "]",str,p));
}
state = 0;
next = 6;
continue;
}
break;
case 6:
if(c == 61) {
state = 0;
next = 7;
} else {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected =",str,p));
}
break;
case 7:
switch(c) {
case 34:case 39:
buf = new StringBuf();
state = 8;
start = p + 1;
attrValQuote = c;
break;
default:
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected \"",str,p));
}
break;
case 8:
switch(c) {
case 38:
var len = p - start;
buf.b += len == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len);
state = 18;
escapeNext = 8;
start = p + 1;
break;
case 60:case 62:
if(strict) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Invalid unescaped " + String.fromCodePoint(c) + " in attribute value",str,p));
} else if(c == attrValQuote) {
var len1 = p - start;
buf.b += len1 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len1);
var val = buf.b;
buf = new StringBuf();
xml.set(aname,val);
state = 0;
next = 4;
}
break;
default:
if(c == attrValQuote) {
var len2 = p - start;
buf.b += len2 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len2);
var val1 = buf.b;
buf = new StringBuf();
xml.set(aname,val1);
state = 0;
next = 4;
}
}
break;
case 9:
p = haxe_xml_Parser.doParse(str,strict,p,xml);
start = p;
state = 1;
break;
case 10:
if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45)) {
if(start == p) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected node name",str,p));
}
var v = HxOverrides.substr(str,start,p - start);
if(parent == null || parent.nodeType != 0) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Unexpected </" + v + ">, tag is not open",str,p));
}
if(parent.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (parent.nodeType == null ? "null" : XmlType.toString(parent.nodeType)));
}
if(v != parent.nodeName) {
if(parent.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (parent.nodeType == null ? "null" : XmlType.toString(parent.nodeType)));
}
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected </" + parent.nodeName + ">",str,p));
}
state = 0;
next = 12;
continue;
}
break;
case 11:
if(c == 62) {
state = 1;
} else {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected >",str,p));
}
break;
case 12:
if(c == 62) {
if(nsubs == 0) {
parent.addChild(Xml.createPCData(""));
}
return p;
} else {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected >",str,p));
}
break;
case 13:
if(c == 60) {
var len3 = p - start;
buf.b += len3 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len3);
var child = Xml.createPCData(buf.b);
buf = new StringBuf();
parent.addChild(child);
++nsubs;
state = 0;
next = 2;
} else if(c == 38) {
var len4 = p - start;
buf.b += len4 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len4);
state = 18;
escapeNext = 13;
start = p + 1;
}
break;
case 14:
if(c == 63 && str.charCodeAt(p + 1) == 62) {
++p;
var str1 = HxOverrides.substr(str,start + 1,p - start - 2);
parent.addChild(Xml.createProcessingInstruction(str1));
++nsubs;
state = 1;
}
break;
case 15:
if(c == 45 && str.charCodeAt(p + 1) == 45 && str.charCodeAt(p + 2) == 62) {
parent.addChild(Xml.createComment(HxOverrides.substr(str,start,p - start)));
++nsubs;
p += 2;
state = 1;
}
break;
case 16:
if(c == 91) {
++nbrackets;
} else if(c == 93) {
--nbrackets;
} else if(c == 62 && nbrackets == 0) {
parent.addChild(Xml.createDocType(HxOverrides.substr(str,start,p - start)));
++nsubs;
state = 1;
}
break;
case 17:
if(c == 93 && str.charCodeAt(p + 1) == 93 && str.charCodeAt(p + 2) == 62) {
var child1 = Xml.createCData(HxOverrides.substr(str,start,p - start));
parent.addChild(child1);
++nsubs;
p += 2;
state = 1;
}
break;
case 18:
if(c == 59) {
var s = HxOverrides.substr(str,start,p - start);
if(s.charCodeAt(0) == 35) {
var c1 = s.charCodeAt(1) == 120 ? Std.parseInt("0" + HxOverrides.substr(s,1,s.length - 1)) : Std.parseInt(HxOverrides.substr(s,1,s.length - 1));
buf.b += String.fromCodePoint(c1);
} else if(!Object.prototype.hasOwnProperty.call(haxe_xml_Parser.escapes.h,s)) {
if(strict) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Undefined entity: " + s,str,p));
}
buf.b += Std.string("&" + s + ";");
} else {
buf.b += Std.string(haxe_xml_Parser.escapes.h[s]);
}
start = p + 1;
state = escapeNext;
} else if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45) && c != 35) {
if(strict) {
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Invalid character in entity: " + String.fromCodePoint(c),str,p));
}
buf.b += String.fromCodePoint(38);
var len5 = p - start;
buf.b += len5 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len5);
--p;
start = p + 1;
state = escapeNext;
}
break;
}
c = str.charCodeAt(++p);
}
if(state == 1) {
start = p;
state = 13;
}
if(state == 13) {
if(parent.nodeType == 0) {
if(parent.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (parent.nodeType == null ? "null" : XmlType.toString(parent.nodeType)));
}
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Unclosed node <" + parent.nodeName + ">",str,p));
}
if(p != start || nsubs == 0) {
var len = p - start;
buf.b += len == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len);
parent.addChild(Xml.createPCData(buf.b));
++nsubs;
}
return p;
}
if(!strict && state == 18 && escapeNext == 13) {
buf.b += String.fromCodePoint(38);
var len = p - start;
buf.b += len == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len);
parent.addChild(Xml.createPCData(buf.b));
++nsubs;
return p;
}
throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Unexpected end",str,p));
};
var haxe_xml_Printer = function(pretty) {
this.output = new StringBuf();
this.pretty = pretty;
};
$hxClasses["haxe.xml.Printer"] = haxe_xml_Printer;
haxe_xml_Printer.__name__ = "haxe.xml.Printer";
haxe_xml_Printer.print = function(xml,pretty) {
if(pretty == null) {
pretty = false;
}
var printer = new haxe_xml_Printer(pretty);
printer.writeNode(xml,"");
return printer.output.b;
};
haxe_xml_Printer.prototype = {
output: null
,pretty: null
,writeNode: function(value,tabs) {
switch(value.nodeType) {
case 0:
this.output.b += Std.string(tabs + "<");
if(value.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
this.output.b += Std.string(value.nodeName);
var attribute = value.attributes();
while(attribute.hasNext()) {
var attribute1 = attribute.next();
this.output.b += Std.string(" " + attribute1 + "=\"");
var input = StringTools.htmlEscape(value.get(attribute1),true);
this.output.b += Std.string(input);
this.output.b += "\"";
}
if(this.hasChildren(value)) {
this.output.b += ">";
if(this.pretty) {
this.output.b += "\n";
}
if(value.nodeType != Xml.Document && value.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
var _g_current = 0;
var _g_array = value.children;
while(_g_current < _g_array.length) {
var child = _g_array[_g_current++];
this.writeNode(child,this.pretty ? tabs + "\t" : tabs);
}
this.output.b += Std.string(tabs + "</");
if(value.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
this.output.b += Std.string(value.nodeName);
this.output.b += ">";
if(this.pretty) {
this.output.b += "\n";
}
} else {
this.output.b += "/>";
if(this.pretty) {
this.output.b += "\n";
}
}
break;
case 1:
if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
var nodeValue = value.nodeValue;
if(nodeValue.length != 0) {
var input = tabs + StringTools.htmlEscape(nodeValue);
this.output.b += Std.string(input);
if(this.pretty) {
this.output.b += "\n";
}
}
break;
case 2:
this.output.b += Std.string(tabs + "<![CDATA[");
if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
this.output.b += Std.string(value.nodeValue);
this.output.b += "]]>";
if(this.pretty) {
this.output.b += "\n";
}
break;
case 3:
if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
var commentContent = value.nodeValue;
var _this_r = new RegExp("[\n\r\t]+","g".split("u").join(""));
commentContent = commentContent.replace(_this_r,"");
commentContent = "<!--" + commentContent + "-->";
this.output.b += tabs == null ? "null" : "" + tabs;
var input = StringTools.trim(commentContent);
this.output.b += Std.string(input);
if(this.pretty) {
this.output.b += "\n";
}
break;
case 4:
if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
this.output.b += Std.string("<!DOCTYPE " + value.nodeValue + ">");
if(this.pretty) {
this.output.b += "\n";
}
break;
case 5:
if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
this.output.b += Std.string("<?" + value.nodeValue + "?>");
if(this.pretty) {
this.output.b += "\n";
}
break;
case 6:
if(value.nodeType != Xml.Document && value.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
var _g_current = 0;
var _g_array = value.children;
while(_g_current < _g_array.length) {
var child = _g_array[_g_current++];
this.writeNode(child,tabs);
}
break;
}
}
,hasChildren: function(value) {
if(value.nodeType != Xml.Document && value.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType)));
}
var _g_current = 0;
var _g_array = value.children;
while(_g_current < _g_array.length) {
var child = _g_array[_g_current++];
switch(child.nodeType) {
case 0:case 1:
return true;
case 2:case 3:
if(child.nodeType == Xml.Document || child.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (child.nodeType == null ? "null" : XmlType.toString(child.nodeType)));
}
if(StringTools.ltrim(child.nodeValue).length != 0) {
return true;
}
break;
default:
}
}
return false;
}
,__class__: haxe_xml_Printer
};
var haxe_zip_ExtraField = $hxEnums["haxe.zip.ExtraField"] = { __ename__ : "haxe.zip.ExtraField", __constructs__ : ["FUnknown","FInfoZipUnicodePath","FUtf8"]
,FUnknown: ($_=function(tag,bytes) { return {_hx_index:0,tag:tag,bytes:bytes,__enum__:"haxe.zip.ExtraField",toString:$estr}; },$_.__params__ = ["tag","bytes"],$_)
,FInfoZipUnicodePath: ($_=function(name,crc) { return {_hx_index:1,name:name,crc:crc,__enum__:"haxe.zip.ExtraField",toString:$estr}; },$_.__params__ = ["name","crc"],$_)
,FUtf8: {_hx_index:2,__enum__:"haxe.zip.ExtraField",toString:$estr}
};
var haxe_zip_Huffman = $hxEnums["haxe.zip.Huffman"] = { __ename__ : "haxe.zip.Huffman", __constructs__ : ["Found","NeedBit","NeedBits"]
,Found: ($_=function(i) { return {_hx_index:0,i:i,__enum__:"haxe.zip.Huffman",toString:$estr}; },$_.__params__ = ["i"],$_)
,NeedBit: ($_=function(left,right) { return {_hx_index:1,left:left,right:right,__enum__:"haxe.zip.Huffman",toString:$estr}; },$_.__params__ = ["left","right"],$_)
,NeedBits: ($_=function(n,table) { return {_hx_index:2,n:n,table:table,__enum__:"haxe.zip.Huffman",toString:$estr}; },$_.__params__ = ["n","table"],$_)
};
var haxe_zip_HuffTools = function() {
};
$hxClasses["haxe.zip.HuffTools"] = haxe_zip_HuffTools;
haxe_zip_HuffTools.__name__ = "haxe.zip.HuffTools";
haxe_zip_HuffTools.prototype = {
treeDepth: function(t) {
switch(t._hx_index) {
case 0:
var _g = t.i;
return 0;
case 1:
var b = t.right;
var a = t.left;
var da = this.treeDepth(a);
var db = this.treeDepth(b);
return 1 + (da < db ? da : db);
case 2:
var _g = t.table;
var _g = t.n;
throw haxe_Exception.thrown("assert");
}
}
,treeCompress: function(t) {
var d = this.treeDepth(t);
if(d == 0) {
return t;
}
if(d == 1) {
if(t._hx_index == 1) {
var b = t.right;
var a = t.left;
return haxe_zip_Huffman.NeedBit(this.treeCompress(a),this.treeCompress(b));
} else {
throw haxe_Exception.thrown("assert");
}
}
var size = 1 << d;
var table = [];
var _g = 0;
var _g1 = size;
while(_g < _g1) {
var i = _g++;
table.push(haxe_zip_Huffman.Found(-1));
}
this.treeWalk(table,0,0,d,t);
return haxe_zip_Huffman.NeedBits(d,table);
}
,treeWalk: function(table,p,cd,d,t) {
if(t._hx_index == 1) {
var b = t.right;
var a = t.left;
if(d > 0) {
this.treeWalk(table,p,cd + 1,d - 1,a);
this.treeWalk(table,p | 1 << cd,cd + 1,d - 1,b);
} else {
table[p] = this.treeCompress(t);
}
} else {
table[p] = this.treeCompress(t);
}
}
,treeMake: function(bits,maxbits,v,len) {
if(len > maxbits) {
throw haxe_Exception.thrown("Invalid huffman");
}
var idx = v << 5 | len;
if(bits.h.hasOwnProperty(idx)) {
return haxe_zip_Huffman.Found(bits.h[idx]);
}
v <<= 1;
++len;
return haxe_zip_Huffman.NeedBit(this.treeMake(bits,maxbits,v,len),this.treeMake(bits,maxbits,v | 1,len));
}
,make: function(lengths,pos,nlengths,maxbits) {
if(nlengths == 1) {
return haxe_zip_Huffman.NeedBit(haxe_zip_Huffman.Found(0),haxe_zip_Huffman.Found(0));
}
var counts = [];
var tmp = [];
if(maxbits > 32) {
throw haxe_Exception.thrown("Invalid huffman");
}
var _g = 0;
var _g1 = maxbits;
while(_g < _g1) {
var i = _g++;
counts.push(0);
tmp.push(0);
}
var _g = 0;
var _g1 = nlengths;
while(_g < _g1) {
var i = _g++;
var p = lengths[i + pos];
if(p >= maxbits) {
throw haxe_Exception.thrown("Invalid huffman");
}
counts[p]++;
}
var code = 0;
var _g = 1;
var _g1 = maxbits - 1;
while(_g < _g1) {
var i = _g++;
code = code + counts[i] << 1;
tmp[i] = code;
}
var bits = new haxe_ds_IntMap();
var _g = 0;
var _g1 = nlengths;
while(_g < _g1) {
var i = _g++;
var l = lengths[i + pos];
if(l != 0) {
var n = tmp[l - 1];
tmp[l - 1] = n + 1;
bits.h[n << 5 | l] = i;
}
}
return this.treeCompress(haxe_zip_Huffman.NeedBit(this.treeMake(bits,maxbits,0,1),this.treeMake(bits,maxbits,1,1)));
}
,__class__: haxe_zip_HuffTools
};
var haxe_zip__$InflateImpl_Window = function(hasCrc) {
this.buffer = new haxe_io_Bytes(new ArrayBuffer(65536));
this.pos = 0;
if(hasCrc) {
this.crc = new haxe_crypto_Adler32();
}
};
$hxClasses["haxe.zip._InflateImpl.Window"] = haxe_zip__$InflateImpl_Window;
haxe_zip__$InflateImpl_Window.__name__ = "haxe.zip._InflateImpl.Window";
haxe_zip__$InflateImpl_Window.prototype = {
buffer: null
,pos: null
,crc: null
,slide: function() {
if(this.crc != null) {
this.crc.update(this.buffer,0,32768);
}
var b = new haxe_io_Bytes(new ArrayBuffer(65536));
this.pos -= 32768;
b.blit(0,this.buffer,32768,this.pos);
this.buffer = b;
}
,addBytes: function(b,p,len) {
if(this.pos + len > 65536) {
this.slide();
}
this.buffer.blit(this.pos,b,p,len);
this.pos += len;
}
,addByte: function(c) {
if(this.pos == 65536) {
this.slide();
}
this.buffer.b[this.pos] = c & 255;
this.pos++;
}
,getLastChar: function() {
return this.buffer.b[this.pos - 1];
}
,available: function() {
return this.pos;
}
,checksum: function() {
if(this.crc != null) {
this.crc.update(this.buffer,0,this.pos);
}
return this.crc;
}
,__class__: haxe_zip__$InflateImpl_Window
};
var haxe_zip__$InflateImpl_State = $hxEnums["haxe.zip._InflateImpl.State"] = { __ename__ : "haxe.zip._InflateImpl.State", __constructs__ : ["Head","Block","CData","Flat","Crc","Dist","DistOne","Done"]
,Head: {_hx_index:0,__enum__:"haxe.zip._InflateImpl.State",toString:$estr}
,Block: {_hx_index:1,__enum__:"haxe.zip._InflateImpl.State",toString:$estr}
,CData: {_hx_index:2,__enum__:"haxe.zip._InflateImpl.State",toString:$estr}
,Flat: {_hx_index:3,__enum__:"haxe.zip._InflateImpl.State",toString:$estr}
,Crc: {_hx_index:4,__enum__:"haxe.zip._InflateImpl.State",toString:$estr}
,Dist: {_hx_index:5,__enum__:"haxe.zip._InflateImpl.State",toString:$estr}
,DistOne: {_hx_index:6,__enum__:"haxe.zip._InflateImpl.State",toString:$estr}
,Done: {_hx_index:7,__enum__:"haxe.zip._InflateImpl.State",toString:$estr}
};
var haxe_zip_InflateImpl = function(i,header,crc) {
if(crc == null) {
crc = true;
}
if(header == null) {
header = true;
}
this.isFinal = false;
this.htools = new haxe_zip_HuffTools();
this.huffman = this.buildFixedHuffman();
this.huffdist = null;
this.len = 0;
this.dist = 0;
this.state = header ? haxe_zip__$InflateImpl_State.Head : haxe_zip__$InflateImpl_State.Block;
this.input = i;
this.bits = 0;
this.nbits = 0;
this.needed = 0;
this.output = null;
this.outpos = 0;
this.lengths = [];
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.lengths.push(-1);
this.window = new haxe_zip__$InflateImpl_Window(crc);
};
$hxClasses["haxe.zip.InflateImpl"] = haxe_zip_InflateImpl;
haxe_zip_InflateImpl.__name__ = "haxe.zip.InflateImpl";
haxe_zip_InflateImpl.prototype = {
nbits: null
,bits: null
,state: null
,isFinal: null
,huffman: null
,huffdist: null
,htools: null
,len: null
,dist: null
,needed: null
,output: null
,outpos: null
,input: null
,lengths: null
,window: null
,buildFixedHuffman: function() {
if(haxe_zip_InflateImpl.FIXED_HUFFMAN != null) {
return haxe_zip_InflateImpl.FIXED_HUFFMAN;
}
var a = [];
var _g = 0;
while(_g < 288) {
var n = _g++;
a.push(n <= 143 ? 8 : n <= 255 ? 9 : n <= 279 ? 7 : 8);
}
haxe_zip_InflateImpl.FIXED_HUFFMAN = this.htools.make(a,0,288,10);
return haxe_zip_InflateImpl.FIXED_HUFFMAN;
}
,readBytes: function(b,pos,len) {
this.needed = len;
this.outpos = pos;
this.output = b;
if(len > 0) {
while(this.inflateLoop()) {
}
}
return len - this.needed;
}
,getBits: function(n) {
while(this.nbits < n) {
this.bits |= this.input.readByte() << this.nbits;
this.nbits += 8;
}
var b = this.bits & (1 << n) - 1;
this.nbits -= n;
this.bits >>= n;
return b;
}
,getBit: function() {
if(this.nbits == 0) {
this.nbits = 8;
this.bits = this.input.readByte();
}
var b = (this.bits & 1) == 1;
this.nbits--;
this.bits >>= 1;
return b;
}
,getRevBits: function(n) {
if(n == 0) {
return 0;
} else if(this.getBit()) {
return 1 << n - 1 | this.getRevBits(n - 1);
} else {
return this.getRevBits(n - 1);
}
}
,resetBits: function() {
this.bits = 0;
this.nbits = 0;
}
,addBytes: function(b,p,len) {
this.window.addBytes(b,p,len);
this.output.blit(this.outpos,b,p,len);
this.needed -= len;
this.outpos += len;
}
,addByte: function(b) {
this.window.addByte(b);
this.output.b[this.outpos] = b & 255;
this.needed--;
this.outpos++;
}
,addDistOne: function(n) {
var c = this.window.getLastChar();
var _g = 0;
var _g1 = n;
while(_g < _g1) {
var i = _g++;
this.addByte(c);
}
}
,addDist: function(d,len) {
this.addBytes(this.window.buffer,this.window.pos - d,len);
}
,applyHuffman: function(h) {
switch(h._hx_index) {
case 0:
var n = h.i;
return n;
case 1:
var b = h.right;
var a = h.left;
return this.applyHuffman(this.getBit() ? b : a);
case 2:
var tbl = h.table;
var n = h.n;
return this.applyHuffman(tbl[this.getBits(n)]);
}
}
,inflateLengths: function(a,max) {
var i = 0;
var prev = 0;
while(i < max) {
var n = this.applyHuffman(this.huffman);
switch(n) {
case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:
prev = n;
a[i] = n;
++i;
break;
case 16:
var end = i + 3 + this.getBits(2);
if(end > max) {
throw haxe_Exception.thrown("Invalid data");
}
while(i < end) {
a[i] = prev;
++i;
}
break;
case 17:
i += 3 + this.getBits(3);
if(i > max) {
throw haxe_Exception.thrown("Invalid data");
}
break;
case 18:
i += 11 + this.getBits(7);
if(i > max) {
throw haxe_Exception.thrown("Invalid data");
}
break;
default:
throw haxe_Exception.thrown("Invalid data");
}
}
}
,inflateLoop: function() {
switch(this.state._hx_index) {
case 0:
var cmf = this.input.readByte();
var cm = cmf & 15;
var cinfo = cmf >> 4;
if(cm != 8) {
throw haxe_Exception.thrown("Invalid data");
}
var flg = this.input.readByte();
var fdict = (flg & 32) != 0;
if(((cmf << 8) + flg) % 31 != 0) {
throw haxe_Exception.thrown("Invalid data");
}
if(fdict) {
throw haxe_Exception.thrown("Unsupported dictionary");
}
this.state = haxe_zip__$InflateImpl_State.Block;
return true;
case 1:
this.isFinal = this.getBit();
switch(this.getBits(2)) {
case 0:
this.len = this.input.readUInt16();
var nlen = this.input.readUInt16();
if(nlen != 65535 - this.len) {
throw haxe_Exception.thrown("Invalid data");
}
this.state = haxe_zip__$InflateImpl_State.Flat;
var r = this.inflateLoop();
this.resetBits();
return r;
case 1:
this.huffman = this.buildFixedHuffman();
this.huffdist = null;
this.state = haxe_zip__$InflateImpl_State.CData;
return true;
case 2:
var hlit = this.getBits(5) + 257;
var hdist = this.getBits(5) + 1;
var hclen = this.getBits(4) + 4;
var _g = 0;
var _g1 = hclen;
while(_g < _g1) {
var i = _g++;
this.lengths[haxe_zip_InflateImpl.CODE_LENGTHS_POS[i]] = this.getBits(3);
}
var _g = hclen;
var _g1 = 19;
while(_g < _g1) {
var i = _g++;
this.lengths[haxe_zip_InflateImpl.CODE_LENGTHS_POS[i]] = 0;
}
this.huffman = this.htools.make(this.lengths,0,19,8);
var lengths = [];
var _g = 0;
var _g1 = hlit + hdist;
while(_g < _g1) {
var i = _g++;
lengths.push(0);
}
this.inflateLengths(lengths,hlit + hdist);
this.huffdist = this.htools.make(lengths,hlit,hdist,16);
this.huffman = this.htools.make(lengths,0,hlit,16);
this.state = haxe_zip__$InflateImpl_State.CData;
return true;
default:
throw haxe_Exception.thrown("Invalid data");
}
break;
case 2:
var n = this.applyHuffman(this.huffman);
if(n < 256) {
this.addByte(n);
return this.needed > 0;
} else if(n == 256) {
this.state = this.isFinal ? haxe_zip__$InflateImpl_State.Crc : haxe_zip__$InflateImpl_State.Block;
return true;
} else {
n -= 257;
var extra_bits = haxe_zip_InflateImpl.LEN_EXTRA_BITS_TBL[n];
if(extra_bits == -1) {
throw haxe_Exception.thrown("Invalid data");
}
this.len = haxe_zip_InflateImpl.LEN_BASE_VAL_TBL[n] + this.getBits(extra_bits);
var dist_code = this.huffdist == null ? this.getRevBits(5) : this.applyHuffman(this.huffdist);
extra_bits = haxe_zip_InflateImpl.DIST_EXTRA_BITS_TBL[dist_code];
if(extra_bits == -1) {
throw haxe_Exception.thrown("Invalid data");
}
this.dist = haxe_zip_InflateImpl.DIST_BASE_VAL_TBL[dist_code] + this.getBits(extra_bits);
if(this.dist > this.window.available()) {
throw haxe_Exception.thrown("Invalid data");
}
this.state = this.dist == 1 ? haxe_zip__$InflateImpl_State.DistOne : haxe_zip__$InflateImpl_State.Dist;
return true;
}
break;
case 3:
var rlen = this.len < this.needed ? this.len : this.needed;
var bytes = this.input.read(rlen);
this.len -= rlen;
this.addBytes(bytes,0,rlen);
if(this.len == 0) {
this.state = this.isFinal ? haxe_zip__$InflateImpl_State.Crc : haxe_zip__$InflateImpl_State.Block;
}
return this.needed > 0;
case 4:
var calc = this.window.checksum();
if(calc == null) {
this.state = haxe_zip__$InflateImpl_State.Done;
return true;
}
var crc = haxe_crypto_Adler32.read(this.input);
if(!calc.equals(crc)) {
throw haxe_Exception.thrown("Invalid CRC");
}
this.state = haxe_zip__$InflateImpl_State.Done;
return true;
case 5:
while(this.len > 0 && this.needed > 0) {
var rdist = this.len < this.dist ? this.len : this.dist;
var rlen = this.needed < rdist ? this.needed : rdist;
this.addDist(this.dist,rlen);
this.len -= rlen;
}
if(this.len == 0) {
this.state = haxe_zip__$InflateImpl_State.CData;
}
return this.needed > 0;
case 6:
var rlen = this.len < this.needed ? this.len : this.needed;
this.addDistOne(rlen);
this.len -= rlen;
if(this.len == 0) {
this.state = haxe_zip__$InflateImpl_State.CData;
}
return this.needed > 0;
case 7:
return false;
}
}
,__class__: haxe_zip_InflateImpl
};
var haxe_zip_Reader = function(i) {
this.i = i;
};
$hxClasses["haxe.zip.Reader"] = haxe_zip_Reader;
haxe_zip_Reader.__name__ = "haxe.zip.Reader";
haxe_zip_Reader.readZip = function(i) {
var r = new haxe_zip_Reader(i);
return r.read();
};
haxe_zip_Reader.unzip = function(f) {
if(!f.compressed) {
return f.data;
}
throw haxe_Exception.thrown("No uncompress support");
};
haxe_zip_Reader.prototype = {
i: null
,readZipDate: function() {
var t = this.i.readUInt16();
var hour = t >> 11 & 31;
var min = t >> 5 & 63;
var sec = t & 31;
var d = this.i.readUInt16();
var year = d >> 9;
var month = d >> 5 & 15;
var day = d & 31;
return new Date(year + 1980,month - 1,day,hour,min,sec << 1);
}
,readExtraFields: function(length) {
var fields = new haxe_ds_List();
while(length > 0) {
if(length < 4) {
throw haxe_Exception.thrown("Invalid extra fields data");
}
var tag = this.i.readUInt16();
var len = this.i.readUInt16();
if(length < len) {
throw haxe_Exception.thrown("Invalid extra fields data");
}
if(tag == 28789) {
var version = this.i.readByte();
if(version != 1) {
var data = new haxe_io_BytesBuffer();
data.addByte(version);
data.add(this.i.read(len - 1));
fields.add(haxe_zip_ExtraField.FUnknown(tag,data.getBytes()));
} else {
var crc = this.i.readInt32();
var name = this.i.read(len - 5).toString();
fields.add(haxe_zip_ExtraField.FInfoZipUnicodePath(name,crc));
}
} else {
fields.add(haxe_zip_ExtraField.FUnknown(tag,this.i.read(len)));
}
length -= 4 + len;
}
return fields;
}
,readEntryHeader: function() {
var i = this.i;
var h = i.readInt32();
if(h == 33639248 || h == 101010256) {
return null;
}
if(h != 67324752) {
throw haxe_Exception.thrown("Invalid Zip Data");
}
var version = i.readUInt16();
var flags = i.readUInt16();
var utf8 = (flags & 2048) != 0;
var compression = i.readUInt16();
var compressed = compression != 0;
if(compressed && compression != 8) {
throw haxe_Exception.thrown("Unsupported compression " + compression);
}
var mtime = this.readZipDate();
var crc32 = i.readInt32();
var csize = i.readInt32();
var usize = i.readInt32();
var fnamelen = i.readInt16();
var elen = i.readInt16();
var fname = i.readString(fnamelen);
var fields = this.readExtraFields(elen);
if(utf8) {
fields.push(haxe_zip_ExtraField.FUtf8);
}
var data = null;
if((flags & 8) != 0) {
csize = -1;
}
return { fileName : fname, fileSize : usize, fileTime : mtime, compressed : compressed, dataSize : csize, data : data, crc32 : crc32, extraFields : fields};
}
,read: function() {
var l = new haxe_ds_List();
var buf = null;
var tmp = null;
while(true) {
var e = this.readEntryHeader();
if(e == null) {
break;
}
if(e.dataSize < 0) {
var bufSize = 65536;
if(tmp == null) {
tmp = new haxe_io_Bytes(new ArrayBuffer(bufSize));
}
var out = new haxe_io_BytesBuffer();
var z = new haxe_zip_InflateImpl(this.i,false,false);
while(true) {
var n = z.readBytes(tmp,0,bufSize);
out.addBytes(tmp,0,n);
if(n < bufSize) {
break;
}
}
e.data = out.getBytes();
e.crc32 = this.i.readInt32();
if(e.crc32 == 134695760) {
e.crc32 = this.i.readInt32();
}
e.dataSize = this.i.readInt32();
e.fileSize = this.i.readInt32();
e.dataSize = e.fileSize;
e.compressed = false;
} else {
e.data = this.i.read(e.dataSize);
}
l.add(e);
}
return l;
}
,__class__: haxe_zip_Reader
};
var hscript_Const = $hxEnums["hscript.Const"] = { __ename__ : "hscript.Const", __constructs__ : ["CInt","CFloat","CString"]
,CInt: ($_=function(v) { return {_hx_index:0,v:v,__enum__:"hscript.Const",toString:$estr}; },$_.__params__ = ["v"],$_)
,CFloat: ($_=function(f) { return {_hx_index:1,f:f,__enum__:"hscript.Const",toString:$estr}; },$_.__params__ = ["f"],$_)
,CString: ($_=function(s) { return {_hx_index:2,s:s,__enum__:"hscript.Const",toString:$estr}; },$_.__params__ = ["s"],$_)
};
var hscript_Expr = $hxEnums["hscript.Expr"] = { __ename__ : "hscript.Expr", __constructs__ : ["EConst","EIdent","EVar","EParent","EBlock","EField","EBinop","EUnop","ECall","EIf","EWhile","EFor","EBreak","EContinue","EFunction","EReturn","EArray","EArrayDecl","ENew","EThrow","ETry","EObject","ETernary","ESwitch","EDoWhile","EMeta","ECheckType"]
,EConst: ($_=function(c) { return {_hx_index:0,c:c,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["c"],$_)
,EIdent: ($_=function(v) { return {_hx_index:1,v:v,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["v"],$_)
,EVar: ($_=function(n,t,e) { return {_hx_index:2,n:n,t:t,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["n","t","e"],$_)
,EParent: ($_=function(e) { return {_hx_index:3,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e"],$_)
,EBlock: ($_=function(e) { return {_hx_index:4,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e"],$_)
,EField: ($_=function(e,f) { return {_hx_index:5,e:e,f:f,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e","f"],$_)
,EBinop: ($_=function(op,e1,e2) { return {_hx_index:6,op:op,e1:e1,e2:e2,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["op","e1","e2"],$_)
,EUnop: ($_=function(op,prefix,e) { return {_hx_index:7,op:op,prefix:prefix,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["op","prefix","e"],$_)
,ECall: ($_=function(e,params) { return {_hx_index:8,e:e,params:params,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e","params"],$_)
,EIf: ($_=function(cond,e1,e2) { return {_hx_index:9,cond:cond,e1:e1,e2:e2,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["cond","e1","e2"],$_)
,EWhile: ($_=function(cond,e) { return {_hx_index:10,cond:cond,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["cond","e"],$_)
,EFor: ($_=function(v,it,e) { return {_hx_index:11,v:v,it:it,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["v","it","e"],$_)
,EBreak: {_hx_index:12,__enum__:"hscript.Expr",toString:$estr}
,EContinue: {_hx_index:13,__enum__:"hscript.Expr",toString:$estr}
,EFunction: ($_=function(args,e,name,ret) { return {_hx_index:14,args:args,e:e,name:name,ret:ret,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["args","e","name","ret"],$_)
,EReturn: ($_=function(e) { return {_hx_index:15,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e"],$_)
,EArray: ($_=function(e,index) { return {_hx_index:16,e:e,index:index,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e","index"],$_)
,EArrayDecl: ($_=function(e) { return {_hx_index:17,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e"],$_)
,ENew: ($_=function(cl,params) { return {_hx_index:18,cl:cl,params:params,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["cl","params"],$_)
,EThrow: ($_=function(e) { return {_hx_index:19,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e"],$_)
,ETry: ($_=function(e,v,t,ecatch) { return {_hx_index:20,e:e,v:v,t:t,ecatch:ecatch,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e","v","t","ecatch"],$_)
,EObject: ($_=function(fl) { return {_hx_index:21,fl:fl,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["fl"],$_)
,ETernary: ($_=function(cond,e1,e2) { return {_hx_index:22,cond:cond,e1:e1,e2:e2,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["cond","e1","e2"],$_)
,ESwitch: ($_=function(e,cases,defaultExpr) { return {_hx_index:23,e:e,cases:cases,defaultExpr:defaultExpr,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e","cases","defaultExpr"],$_)
,EDoWhile: ($_=function(cond,e) { return {_hx_index:24,cond:cond,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["cond","e"],$_)
,EMeta: ($_=function(name,args,e) { return {_hx_index:25,name:name,args:args,e:e,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["name","args","e"],$_)
,ECheckType: ($_=function(e,t) { return {_hx_index:26,e:e,t:t,__enum__:"hscript.Expr",toString:$estr}; },$_.__params__ = ["e","t"],$_)
};
var hscript_CType = $hxEnums["hscript.CType"] = { __ename__ : "hscript.CType", __constructs__ : ["CTPath","CTFun","CTAnon","CTParent","CTOpt","CTNamed"]
,CTPath: ($_=function(path,params) { return {_hx_index:0,path:path,params:params,__enum__:"hscript.CType",toString:$estr}; },$_.__params__ = ["path","params"],$_)
,CTFun: ($_=function(args,ret) { return {_hx_index:1,args:args,ret:ret,__enum__:"hscript.CType",toString:$estr}; },$_.__params__ = ["args","ret"],$_)
,CTAnon: ($_=function(fields) { return {_hx_index:2,fields:fields,__enum__:"hscript.CType",toString:$estr}; },$_.__params__ = ["fields"],$_)
,CTParent: ($_=function(t) { return {_hx_index:3,t:t,__enum__:"hscript.CType",toString:$estr}; },$_.__params__ = ["t"],$_)
,CTOpt: ($_=function(t) { return {_hx_index:4,t:t,__enum__:"hscript.CType",toString:$estr}; },$_.__params__ = ["t"],$_)
,CTNamed: ($_=function(n,t) { return {_hx_index:5,n:n,t:t,__enum__:"hscript.CType",toString:$estr}; },$_.__params__ = ["n","t"],$_)
};
var hscript_Error = $hxEnums["hscript.Error"] = { __ename__ : "hscript.Error", __constructs__ : ["EInvalidChar","EUnexpected","EUnterminatedString","EUnterminatedComment","EInvalidPreprocessor","EUnknownVariable","EInvalidIterator","EInvalidOp","EInvalidAccess","ECustom"]
,EInvalidChar: ($_=function(c) { return {_hx_index:0,c:c,__enum__:"hscript.Error",toString:$estr}; },$_.__params__ = ["c"],$_)
,EUnexpected: ($_=function(s) { return {_hx_index:1,s:s,__enum__:"hscript.Error",toString:$estr}; },$_.__params__ = ["s"],$_)
,EUnterminatedString: {_hx_index:2,__enum__:"hscript.Error",toString:$estr}
,EUnterminatedComment: {_hx_index:3,__enum__:"hscript.Error",toString:$estr}
,EInvalidPreprocessor: ($_=function(msg) { return {_hx_index:4,msg:msg,__enum__:"hscript.Error",toString:$estr}; },$_.__params__ = ["msg"],$_)
,EUnknownVariable: ($_=function(v) { return {_hx_index:5,v:v,__enum__:"hscript.Error",toString:$estr}; },$_.__params__ = ["v"],$_)
,EInvalidIterator: ($_=function(v) { return {_hx_index:6,v:v,__enum__:"hscript.Error",toString:$estr}; },$_.__params__ = ["v"],$_)
,EInvalidOp: ($_=function(op) { return {_hx_index:7,op:op,__enum__:"hscript.Error",toString:$estr}; },$_.__params__ = ["op"],$_)
,EInvalidAccess: ($_=function(f) { return {_hx_index:8,f:f,__enum__:"hscript.Error",toString:$estr}; },$_.__params__ = ["f"],$_)
,ECustom: ($_=function(msg) { return {_hx_index:9,msg:msg,__enum__:"hscript.Error",toString:$estr}; },$_.__params__ = ["msg"],$_)
};
var hscript_ModuleDecl = $hxEnums["hscript.ModuleDecl"] = { __ename__ : "hscript.ModuleDecl", __constructs__ : ["DPackage","DImport","DClass","DTypedef"]
,DPackage: ($_=function(path) { return {_hx_index:0,path:path,__enum__:"hscript.ModuleDecl",toString:$estr}; },$_.__params__ = ["path"],$_)
,DImport: ($_=function(path,everything) { return {_hx_index:1,path:path,everything:everything,__enum__:"hscript.ModuleDecl",toString:$estr}; },$_.__params__ = ["path","everything"],$_)
,DClass: ($_=function(c) { return {_hx_index:2,c:c,__enum__:"hscript.ModuleDecl",toString:$estr}; },$_.__params__ = ["c"],$_)
,DTypedef: ($_=function(c) { return {_hx_index:3,c:c,__enum__:"hscript.ModuleDecl",toString:$estr}; },$_.__params__ = ["c"],$_)
};
var hscript_FieldAccess = $hxEnums["hscript.FieldAccess"] = { __ename__ : "hscript.FieldAccess", __constructs__ : ["APublic","APrivate","AInline","AOverride","AStatic","AMacro"]
,APublic: {_hx_index:0,__enum__:"hscript.FieldAccess",toString:$estr}
,APrivate: {_hx_index:1,__enum__:"hscript.FieldAccess",toString:$estr}
,AInline: {_hx_index:2,__enum__:"hscript.FieldAccess",toString:$estr}
,AOverride: {_hx_index:3,__enum__:"hscript.FieldAccess",toString:$estr}
,AStatic: {_hx_index:4,__enum__:"hscript.FieldAccess",toString:$estr}
,AMacro: {_hx_index:5,__enum__:"hscript.FieldAccess",toString:$estr}
};
var hscript_FieldKind = $hxEnums["hscript.FieldKind"] = { __ename__ : "hscript.FieldKind", __constructs__ : ["KFunction","KVar"]
,KFunction: ($_=function(f) { return {_hx_index:0,f:f,__enum__:"hscript.FieldKind",toString:$estr}; },$_.__params__ = ["f"],$_)
,KVar: ($_=function(v) { return {_hx_index:1,v:v,__enum__:"hscript.FieldKind",toString:$estr}; },$_.__params__ = ["v"],$_)
};
var hscript__$Interp_Stop = $hxEnums["hscript._Interp.Stop"] = { __ename__ : "hscript._Interp.Stop", __constructs__ : ["SBreak","SContinue","SReturn"]
,SBreak: {_hx_index:0,__enum__:"hscript._Interp.Stop",toString:$estr}
,SContinue: {_hx_index:1,__enum__:"hscript._Interp.Stop",toString:$estr}
,SReturn: {_hx_index:2,__enum__:"hscript._Interp.Stop",toString:$estr}
};
var hscript_Token = $hxEnums["hscript.Token"] = { __ename__ : "hscript.Token", __constructs__ : ["TEof","TConst","TId","TOp","TPOpen","TPClose","TBrOpen","TBrClose","TDot","TComma","TSemicolon","TBkOpen","TBkClose","TQuestion","TDoubleDot","TMeta","TPrepro"]
,TEof: {_hx_index:0,__enum__:"hscript.Token",toString:$estr}
,TConst: ($_=function(c) { return {_hx_index:1,c:c,__enum__:"hscript.Token",toString:$estr}; },$_.__params__ = ["c"],$_)
,TId: ($_=function(s) { return {_hx_index:2,s:s,__enum__:"hscript.Token",toString:$estr}; },$_.__params__ = ["s"],$_)
,TOp: ($_=function(s) { return {_hx_index:3,s:s,__enum__:"hscript.Token",toString:$estr}; },$_.__params__ = ["s"],$_)
,TPOpen: {_hx_index:4,__enum__:"hscript.Token",toString:$estr}
,TPClose: {_hx_index:5,__enum__:"hscript.Token",toString:$estr}
,TBrOpen: {_hx_index:6,__enum__:"hscript.Token",toString:$estr}
,TBrClose: {_hx_index:7,__enum__:"hscript.Token",toString:$estr}
,TDot: {_hx_index:8,__enum__:"hscript.Token",toString:$estr}
,TComma: {_hx_index:9,__enum__:"hscript.Token",toString:$estr}
,TSemicolon: {_hx_index:10,__enum__:"hscript.Token",toString:$estr}
,TBkOpen: {_hx_index:11,__enum__:"hscript.Token",toString:$estr}
,TBkClose: {_hx_index:12,__enum__:"hscript.Token",toString:$estr}
,TQuestion: {_hx_index:13,__enum__:"hscript.Token",toString:$estr}
,TDoubleDot: {_hx_index:14,__enum__:"hscript.Token",toString:$estr}
,TMeta: ($_=function(s) { return {_hx_index:15,s:s,__enum__:"hscript.Token",toString:$estr}; },$_.__params__ = ["s"],$_)
,TPrepro: ($_=function(s) { return {_hx_index:16,s:s,__enum__:"hscript.Token",toString:$estr}; },$_.__params__ = ["s"],$_)
};
var hscript_Parser = function() {
this.uid = 0;
this.preprocesorValues = new haxe_ds_StringMap();
this.line = 1;
this.opChars = "+*/-=!><&|^%~";
this.identChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
var priorities = [["%"],["*","/"],["+","-"],["<<",">>",">>>"],["|","&","^"],["==","!=",">","<",">=","<="],["..."],["&&"],["||"],["=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","|=","&=","^=","=>"]];
this.opPriority = new haxe_ds_StringMap();
this.opRightAssoc = new haxe_ds_StringMap();
this.unops = new haxe_ds_StringMap();
var _g = 0;
var _g1 = priorities.length;
while(_g < _g1) {
var i = _g++;
var _g2 = 0;
var _g3 = priorities[i];
while(_g2 < _g3.length) {
var x = _g3[_g2];
++_g2;
this.opPriority.h[x] = i;
if(i == 9) {
this.opRightAssoc.h[x] = true;
}
}
}
var x = "!";
this.unops.h[x] = x == "++" || x == "--";
var x = "++";
this.unops.h[x] = x == "++" || x == "--";
var x = "--";
this.unops.h[x] = x == "++" || x == "--";
var x = "-";
this.unops.h[x] = x == "++" || x == "--";
var x = "~";
this.unops.h[x] = x == "++" || x == "--";
};
$hxClasses["hscript.Parser"] = hscript_Parser;
hscript_Parser.__name__ = "hscript.Parser";
hscript_Parser.prototype = {
line: null
,opChars: null
,identChars: null
,opPriority: null
,opRightAssoc: null
,unops: null
,preprocesorValues: null
,allowJSON: null
,allowTypes: null
,allowMetadata: null
,resumeErrors: null
,input: null
,readPos: null
,char: null
,ops: null
,idents: null
,uid: null
,tokens: null
,error: function(err,pmin,pmax) {
if(!this.resumeErrors) {
throw haxe_Exception.thrown(err);
}
}
,invalidChar: function(c) {
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EInvalidChar(c));
}
}
,initParser: function(origin) {
this.preprocStack = [];
this.tokens = new haxe_ds_GenericStack();
this.char = -1;
this.ops = [];
this.idents = [];
this.uid = 0;
var _g = 0;
var _g1 = this.opChars.length;
while(_g < _g1) {
var i = _g++;
this.ops[HxOverrides.cca(this.opChars,i)] = true;
}
var _g = 0;
var _g1 = this.identChars.length;
while(_g < _g1) {
var i = _g++;
this.idents[HxOverrides.cca(this.identChars,i)] = true;
}
}
,parseString: function(s,origin) {
if(origin == null) {
origin = "hscript";
}
this.initParser(origin);
this.input = s;
this.readPos = 0;
var a = [];
while(true) {
var tk = this.token();
if(tk == hscript_Token.TEof) {
break;
}
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
this.parseFullExpr(a);
}
if(a.length == 1) {
return a[0];
} else {
return hscript_Expr.EBlock(a);
}
}
,unexpected: function(tk) {
var err = hscript_Error.EUnexpected(this.tokenString(tk));
if(!this.resumeErrors) {
throw haxe_Exception.thrown(err);
}
return null;
}
,push: function(tk) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
}
,ensure: function(tk) {
var t = this.token();
if(t != tk) {
this.unexpected(t);
}
}
,ensureToken: function(tk) {
var t = this.token();
if(!Type.enumEq(t,tk)) {
this.unexpected(t);
}
}
,maybe: function(tk) {
var t = this.token();
if(Type.enumEq(t,tk)) {
return true;
}
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(t,_this.head);
return false;
}
,getIdent: function() {
var tk = this.token();
if(tk == null) {
this.unexpected(tk);
return null;
} else if(tk._hx_index == 2) {
var id = tk.s;
return id;
} else {
this.unexpected(tk);
return null;
}
}
,expr: function(e) {
return e;
}
,pmin: function(e) {
return 0;
}
,pmax: function(e) {
return 0;
}
,mk: function(e,pmin,pmax) {
return e;
}
,isBlock: function(e) {
if(e == null) {
return false;
}
switch(e._hx_index) {
case 2:
var _g = e.n;
var e1 = e.e;
var t = e.t;
if(e1 != null) {
return this.isBlock(e1);
} else if(t != null) {
if(t == null) {
return false;
} else if(t._hx_index == 2) {
var _g = t.fields;
return true;
} else {
return false;
}
} else {
return false;
}
break;
case 4:
var _g = e.e;
return true;
case 6:
var _g = e.e1;
var _g = e.op;
var e1 = e.e2;
return this.isBlock(e1);
case 7:
var _g = e.op;
var e1 = e.e;
var prefix = e.prefix;
if(!prefix) {
return this.isBlock(e1);
} else {
return false;
}
break;
case 9:
var _g = e.cond;
var e2 = e.e2;
var e1 = e.e1;
if(e2 != null) {
return this.isBlock(e2);
} else {
return this.isBlock(e1);
}
break;
case 10:
var _g = e.cond;
var e1 = e.e;
return this.isBlock(e1);
case 11:
var _g = e.it;
var _g = e.v;
var e1 = e.e;
return this.isBlock(e1);
case 14:
var _g = e.ret;
var _g = e.name;
var _g = e.args;
var e1 = e.e;
return this.isBlock(e1);
case 15:
var e1 = e.e;
if(e1 != null) {
return this.isBlock(e1);
} else {
return false;
}
break;
case 20:
var _g = e.t;
var _g = e.v;
var _g = e.e;
var e1 = e.ecatch;
return this.isBlock(e1);
case 21:
var _g = e.fl;
return true;
case 23:
var _g = e.defaultExpr;
var _g = e.cases;
var _g = e.e;
return true;
case 24:
var _g = e.cond;
var e1 = e.e;
return this.isBlock(e1);
case 25:
var _g = e.args;
var _g = e.name;
var e1 = e.e;
return this.isBlock(e1);
default:
return false;
}
}
,parseFullExpr: function(exprs) {
var e = this.parseExpr();
exprs.push(e);
var tk = this.token();
while(true) {
var tmp;
if(tk == hscript_Token.TComma && e != null) {
if(e._hx_index == 2) {
var _g = e.e;
var _g1 = e.t;
var _g2 = e.n;
tmp = true;
} else {
tmp = false;
}
} else {
tmp = false;
}
if(!tmp) {
break;
}
e = this.parseStructure("var");
exprs.push(e);
tk = this.token();
}
if(tk != hscript_Token.TSemicolon && tk != hscript_Token.TEof) {
if(this.isBlock(e)) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
} else {
this.unexpected(tk);
}
}
}
,parseObject: function(p1) {
var fl = [];
_hx_loop1: while(true) {
var tk = this.token();
var id = null;
if(tk == null) {
this.unexpected(tk);
break;
} else {
switch(tk._hx_index) {
case 1:
var c = tk.c;
if(!this.allowJSON) {
this.unexpected(tk);
}
if(c._hx_index == 2) {
var s = c.s;
id = s;
} else {
this.unexpected(tk);
}
break;
case 2:
var i = tk.s;
id = i;
break;
case 7:
break _hx_loop1;
default:
this.unexpected(tk);
break _hx_loop1;
}
}
var t = this.token();
if(t != hscript_Token.TDoubleDot) {
this.unexpected(t);
}
fl.push({ name : id, e : this.parseExpr()});
tk = this.token();
if(tk == null) {
this.unexpected(tk);
} else {
switch(tk._hx_index) {
case 7:
break _hx_loop1;
case 9:
break;
default:
this.unexpected(tk);
}
}
}
return this.parseExprNext(hscript_Expr.EObject(fl));
}
,parseExpr: function() {
var tk = this.token();
if(tk == null) {
return this.unexpected(tk);
} else {
switch(tk._hx_index) {
case 1:
var c = tk.c;
return this.parseExprNext(hscript_Expr.EConst(c));
case 2:
var id = tk.s;
var e = this.parseStructure(id);
if(e == null) {
e = hscript_Expr.EIdent(id);
}
return this.parseExprNext(e);
case 3:
var op = tk.s;
if(Object.prototype.hasOwnProperty.call(this.unops.h,op)) {
var start = 0;
var e = this.parseExpr();
if(op == "-" && e != null) {
if(e._hx_index == 0) {
var _g = e.c;
switch(_g._hx_index) {
case 0:
var i = _g.v;
return hscript_Expr.EConst(hscript_Const.CInt(-i));
case 1:
var f = _g.f;
return hscript_Expr.EConst(hscript_Const.CFloat(-f));
default:
}
}
}
return this.makeUnop(op,e);
}
return this.unexpected(tk);
case 4:
var e = this.parseExpr();
tk = this.token();
if(tk != null) {
switch(tk._hx_index) {
case 5:
return this.parseExprNext(hscript_Expr.EParent(e));
case 9:
if(e._hx_index == 1) {
var v = e.v;
return this.parseLambda([{ name : v}],0);
}
break;
case 14:
var t = this.parseType();
tk = this.token();
if(tk != null) {
switch(tk._hx_index) {
case 5:
return this.parseExprNext(hscript_Expr.ECheckType(e,t));
case 9:
if(e._hx_index == 1) {
var v = e.v;
return this.parseLambda([{ name : v, t : t}],0);
}
break;
default:
}
}
break;
default:
}
}
return this.unexpected(tk);
case 6:
tk = this.token();
if(tk == null) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
} else {
switch(tk._hx_index) {
case 1:
var c = tk.c;
if(this.allowJSON) {
if(c._hx_index == 2) {
var _g = c.s;
var tk2 = this.token();
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk2,_this.head);
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
if(tk2 != null) {
if(tk2._hx_index == 14) {
return this.parseExprNext(this.parseObject(0));
}
}
} else {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
}
} else {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
}
break;
case 2:
var _g = tk.s;
var tk2 = this.token();
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk2,_this.head);
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
if(tk2 != null) {
if(tk2._hx_index == 14) {
return this.parseExprNext(this.parseObject(0));
}
}
break;
case 7:
return this.parseExprNext(hscript_Expr.EObject([]));
default:
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
}
}
var a = [];
while(true) {
this.parseFullExpr(a);
tk = this.token();
if(tk == hscript_Token.TBrClose || this.resumeErrors && tk == hscript_Token.TEof) {
break;
}
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
}
return hscript_Expr.EBlock(a);
case 11:
var a = [];
tk = this.token();
while(tk != hscript_Token.TBkClose && (!this.resumeErrors || tk != hscript_Token.TEof)) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
a.push(this.parseExpr());
tk = this.token();
if(tk == hscript_Token.TComma) {
tk = this.token();
}
}
if(a.length == 1 && a[0] != null) {
var _g = a[0];
switch(_g._hx_index) {
case 10:
var _g1 = _g.e;
var _g1 = _g.cond;
var tmp = "__a_" + this.uid++;
var e = hscript_Expr.EBlock([hscript_Expr.EVar(tmp,null,hscript_Expr.EArrayDecl([])),this.mapCompr(tmp,a[0]),hscript_Expr.EIdent(tmp)]);
return this.parseExprNext(e);
case 11:
var _g1 = _g.e;
var _g1 = _g.it;
var _g1 = _g.v;
var tmp = "__a_" + this.uid++;
var e = hscript_Expr.EBlock([hscript_Expr.EVar(tmp,null,hscript_Expr.EArrayDecl([])),this.mapCompr(tmp,a[0]),hscript_Expr.EIdent(tmp)]);
return this.parseExprNext(e);
case 24:
var _g1 = _g.e;
var _g1 = _g.cond;
var tmp = "__a_" + this.uid++;
var e = hscript_Expr.EBlock([hscript_Expr.EVar(tmp,null,hscript_Expr.EArrayDecl([])),this.mapCompr(tmp,a[0]),hscript_Expr.EIdent(tmp)]);
return this.parseExprNext(e);
default:
}
}
return this.parseExprNext(hscript_Expr.EArrayDecl(a));
case 15:
var id = tk.s;
if(this.allowMetadata) {
var args = this.parseMetaArgs();
return hscript_Expr.EMeta(id,args,this.parseExpr());
} else {
return this.unexpected(tk);
}
break;
default:
return this.unexpected(tk);
}
}
}
,parseLambda: function(args,pmin) {
_hx_loop1: while(true) {
var id = this.getIdent();
var t = this.maybe(hscript_Token.TDoubleDot) ? this.parseType() : null;
args.push({ name : id, t : t});
var tk = this.token();
if(tk == null) {
this.unexpected(tk);
break;
} else {
switch(tk._hx_index) {
case 5:
break _hx_loop1;
case 9:
break;
default:
this.unexpected(tk);
break _hx_loop1;
}
}
}
var t = this.token();
if(!Type.enumEq(t,hscript_Token.TOp("->"))) {
this.unexpected(t);
}
var eret = this.parseExpr();
return hscript_Expr.EFunction(args,hscript_Expr.EReturn(eret));
}
,parseMetaArgs: function() {
var tk = this.token();
if(tk != hscript_Token.TPOpen) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
return null;
}
var args = [];
tk = this.token();
if(tk != hscript_Token.TPClose) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
_hx_loop1: while(true) {
args.push(this.parseExpr());
var _g = this.token();
if(_g == null) {
var tk = _g;
this.unexpected(tk);
} else {
switch(_g._hx_index) {
case 5:
break _hx_loop1;
case 9:
break;
default:
var tk1 = _g;
this.unexpected(tk1);
}
}
}
}
return args;
}
,mapCompr: function(tmp,e) {
if(e == null) {
return null;
}
var edef;
switch(e._hx_index) {
case 3:
var e2 = e.e;
edef = hscript_Expr.EParent(this.mapCompr(tmp,e2));
break;
case 4:
var _g = e.e;
if(_g.length == 1) {
var e1 = _g[0];
edef = hscript_Expr.EBlock([this.mapCompr(tmp,e1)]);
} else {
edef = hscript_Expr.ECall(hscript_Expr.EField(hscript_Expr.EIdent(tmp),"push"),[e]);
}
break;
case 9:
var e2 = e.e2;
var e1 = e.e1;
var cond = e.cond;
edef = e2 == null ? hscript_Expr.EIf(cond,this.mapCompr(tmp,e1),null) : hscript_Expr.ECall(hscript_Expr.EField(hscript_Expr.EIdent(tmp),"push"),[e]);
break;
case 10:
var e2 = e.e;
var cond = e.cond;
edef = hscript_Expr.EWhile(cond,this.mapCompr(tmp,e2));
break;
case 11:
var e2 = e.e;
var it = e.it;
var v = e.v;
edef = hscript_Expr.EFor(v,it,this.mapCompr(tmp,e2));
break;
case 24:
var e2 = e.e;
var cond = e.cond;
edef = hscript_Expr.EDoWhile(cond,this.mapCompr(tmp,e2));
break;
default:
edef = hscript_Expr.ECall(hscript_Expr.EField(hscript_Expr.EIdent(tmp),"push"),[e]);
}
return edef;
}
,makeUnop: function(op,e) {
if(e == null && this.resumeErrors) {
return null;
}
switch(e._hx_index) {
case 6:
var e2 = e.e2;
var e1 = e.e1;
var bop = e.op;
return hscript_Expr.EBinop(bop,this.makeUnop(op,e1),e2);
case 22:
var e3 = e.e2;
var e2 = e.e1;
var e1 = e.cond;
return hscript_Expr.ETernary(this.makeUnop(op,e1),e2,e3);
default:
return hscript_Expr.EUnop(op,true,e);
}
}
,makeBinop: function(op,e1,e) {
if(e == null && this.resumeErrors) {
return hscript_Expr.EBinop(op,e1,e);
}
switch(e._hx_index) {
case 6:
var e3 = e.e2;
var e2 = e.e1;
var op2 = e.op;
if(this.opPriority.h[op] <= this.opPriority.h[op2] && !Object.prototype.hasOwnProperty.call(this.opRightAssoc.h,op)) {
return hscript_Expr.EBinop(op2,this.makeBinop(op,e1,e2),e3);
} else {
return hscript_Expr.EBinop(op,e1,e);
}
break;
case 22:
var e4 = e.e2;
var e3 = e.e1;
var e2 = e.cond;
if(Object.prototype.hasOwnProperty.call(this.opRightAssoc.h,op)) {
return hscript_Expr.EBinop(op,e1,e);
} else {
return hscript_Expr.ETernary(this.makeBinop(op,e1,e2),e3,e4);
}
break;
default:
return hscript_Expr.EBinop(op,e1,e);
}
}
,parseStructure: function(id) {
switch(id) {
case "break":
return hscript_Expr.EBreak;
case "continue":
return hscript_Expr.EContinue;
case "do":
var e = this.parseExpr();
var tk = this.token();
if(tk == null) {
this.unexpected(tk);
} else if(tk._hx_index == 2) {
if(tk.s != "while") {
this.unexpected(tk);
}
} else {
this.unexpected(tk);
}
var econd = this.parseExpr();
return hscript_Expr.EDoWhile(econd,e);
case "else":
return this.unexpected(hscript_Token.TId(id));
case "for":
var t = this.token();
if(t != hscript_Token.TPOpen) {
this.unexpected(t);
}
var vname = this.getIdent();
var t = this.token();
if(!Type.enumEq(t,hscript_Token.TId("in"))) {
this.unexpected(t);
}
var eiter = this.parseExpr();
var t = this.token();
if(t != hscript_Token.TPClose) {
this.unexpected(t);
}
var e = this.parseExpr();
return hscript_Expr.EFor(vname,eiter,e);
case "function":
var tk = this.token();
var name = null;
if(tk == null) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
} else if(tk._hx_index == 2) {
var id = tk.s;
name = id;
} else {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
}
var inf = this.parseFunctionDecl();
return hscript_Expr.EFunction(inf.args,inf.body,name,inf.ret);
case "if":
var t = this.token();
if(t != hscript_Token.TPOpen) {
this.unexpected(t);
}
var cond = this.parseExpr();
var t = this.token();
if(t != hscript_Token.TPClose) {
this.unexpected(t);
}
var e1 = this.parseExpr();
var e2 = null;
var semic = false;
var tk = this.token();
if(tk == hscript_Token.TSemicolon) {
semic = true;
tk = this.token();
}
if(Type.enumEq(tk,hscript_Token.TId("else"))) {
e2 = this.parseExpr();
} else {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
if(semic) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(hscript_Token.TSemicolon,_this.head);
}
}
return hscript_Expr.EIf(cond,e1,e2);
case "inline":
if(!this.maybe(hscript_Token.TId("function"))) {
this.unexpected(hscript_Token.TId("inline"));
}
return this.parseStructure("function");
case "new":
var a = [];
a.push(this.getIdent());
_hx_loop1: while(true) {
var tk = this.token();
if(tk == null) {
this.unexpected(tk);
break;
} else {
switch(tk._hx_index) {
case 4:
break _hx_loop1;
case 8:
a.push(this.getIdent());
break;
default:
this.unexpected(tk);
break _hx_loop1;
}
}
}
var args = this.parseExprList(hscript_Token.TPClose);
return hscript_Expr.ENew(a.join("."),args);
case "return":
var tk = this.token();
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
var e = tk == hscript_Token.TSemicolon ? null : this.parseExpr();
return hscript_Expr.EReturn(e);
case "switch":
var e = this.parseExpr();
var def = null;
var cases = [];
var t = this.token();
if(t != hscript_Token.TBrOpen) {
this.unexpected(t);
}
_hx_loop2: while(true) {
var tk = this.token();
if(tk == null) {
this.unexpected(tk);
break;
} else {
switch(tk._hx_index) {
case 2:
switch(tk.s) {
case "case":
var c = { values : [], expr : null};
cases.push(c);
_hx_loop3: while(true) {
var e1 = this.parseExpr();
c.values.push(e1);
tk = this.token();
if(tk == null) {
this.unexpected(tk);
break;
} else {
switch(tk._hx_index) {
case 9:
break;
case 14:
break _hx_loop3;
default:
this.unexpected(tk);
break _hx_loop3;
}
}
}
var exprs = [];
_hx_loop4: while(true) {
tk = this.token();
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
if(tk == null) {
this.parseFullExpr(exprs);
} else {
switch(tk._hx_index) {
case 0:
if(this.resumeErrors) {
break _hx_loop4;
} else {
this.parseFullExpr(exprs);
}
break;
case 2:
switch(tk.s) {
case "case":case "default":
break _hx_loop4;
default:
this.parseFullExpr(exprs);
}
break;
case 7:
break _hx_loop4;
default:
this.parseFullExpr(exprs);
}
}
}
c.expr = exprs.length == 1 ? exprs[0] : exprs.length == 0 ? hscript_Expr.EBlock([]) : hscript_Expr.EBlock(exprs);
break;
case "default":
if(def != null) {
this.unexpected(tk);
}
var t = this.token();
if(t != hscript_Token.TDoubleDot) {
this.unexpected(t);
}
var exprs1 = [];
_hx_loop5: while(true) {
tk = this.token();
var _this1 = this.tokens;
_this1.head = new haxe_ds_GenericCell(tk,_this1.head);
if(tk == null) {
this.parseFullExpr(exprs1);
} else {
switch(tk._hx_index) {
case 0:
if(this.resumeErrors) {
break _hx_loop5;
} else {
this.parseFullExpr(exprs1);
}
break;
case 2:
switch(tk.s) {
case "case":case "default":
break _hx_loop5;
default:
this.parseFullExpr(exprs1);
}
break;
case 7:
break _hx_loop5;
default:
this.parseFullExpr(exprs1);
}
}
}
def = exprs1.length == 1 ? exprs1[0] : exprs1.length == 0 ? hscript_Expr.EBlock([]) : hscript_Expr.EBlock(exprs1);
break;
default:
this.unexpected(tk);
break _hx_loop2;
}
break;
case 7:
break _hx_loop2;
default:
this.unexpected(tk);
break _hx_loop2;
}
}
}
return hscript_Expr.ESwitch(e,cases,def);
case "throw":
var e = this.parseExpr();
return hscript_Expr.EThrow(e);
case "try":
var e = this.parseExpr();
var t = this.token();
if(!Type.enumEq(t,hscript_Token.TId("catch"))) {
this.unexpected(t);
}
var t = this.token();
if(t != hscript_Token.TPOpen) {
this.unexpected(t);
}
var vname = this.getIdent();
var t = this.token();
if(t != hscript_Token.TDoubleDot) {
this.unexpected(t);
}
var t = null;
if(this.allowTypes) {
t = this.parseType();
} else {
var t1 = this.token();
if(!Type.enumEq(t1,hscript_Token.TId("Dynamic"))) {
this.unexpected(t1);
}
}
var t1 = this.token();
if(t1 != hscript_Token.TPClose) {
this.unexpected(t1);
}
var ec = this.parseExpr();
return hscript_Expr.ETry(e,vname,t,ec);
case "var":
var ident = this.getIdent();
var tk = this.token();
var t = null;
if(tk == hscript_Token.TDoubleDot && this.allowTypes) {
t = this.parseType();
tk = this.token();
}
var e = null;
if(Type.enumEq(tk,hscript_Token.TOp("="))) {
e = this.parseExpr();
} else {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
}
return hscript_Expr.EVar(ident,t,e);
case "while":
var econd = this.parseExpr();
var e = this.parseExpr();
return hscript_Expr.EWhile(econd,e);
default:
return null;
}
}
,parseExprNext: function(e1) {
var tk = this.token();
if(tk == null) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
return e1;
} else {
switch(tk._hx_index) {
case 3:
var op = tk.s;
if(op == "->") {
switch(e1._hx_index) {
case 1:
var i = e1.v;
var eret = this.parseExpr();
return hscript_Expr.EFunction([{ name : i}],hscript_Expr.EReturn(eret));
case 3:
var _hx_tmp = e1.e;
if(_hx_tmp._hx_index == 1) {
var i = _hx_tmp.v;
var eret = this.parseExpr();
return hscript_Expr.EFunction([{ name : i}],hscript_Expr.EReturn(eret));
}
break;
case 26:
var _hx_tmp = e1.e;
if(_hx_tmp._hx_index == 1) {
var t = e1.t;
var i = _hx_tmp.v;
var eret = this.parseExpr();
return hscript_Expr.EFunction([{ name : i, t : t}],hscript_Expr.EReturn(eret));
}
break;
default:
}
this.unexpected(tk);
}
if(this.unops.h[op]) {
var tmp;
if(!this.isBlock(e1)) {
if(e1._hx_index == 3) {
var _g = e1.e;
tmp = true;
} else {
tmp = false;
}
} else {
tmp = true;
}
if(tmp) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
return e1;
}
return this.parseExprNext(hscript_Expr.EUnop(op,false,e1));
}
return this.makeBinop(op,e1,this.parseExpr());
case 4:
return this.parseExprNext(hscript_Expr.ECall(e1,this.parseExprList(hscript_Token.TPClose)));
case 8:
var field = this.getIdent();
return this.parseExprNext(hscript_Expr.EField(e1,field));
case 11:
var e2 = this.parseExpr();
var t = this.token();
if(t != hscript_Token.TBkClose) {
this.unexpected(t);
}
return this.parseExprNext(hscript_Expr.EArray(e1,e2));
case 13:
var e2 = this.parseExpr();
var t = this.token();
if(t != hscript_Token.TDoubleDot) {
this.unexpected(t);
}
var e3 = this.parseExpr();
return hscript_Expr.ETernary(e1,e2,e3);
default:
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
return e1;
}
}
}
,parseFunctionArgs: function() {
var args = [];
var tk = this.token();
if(tk != hscript_Token.TPClose) {
var done = false;
while(!done) {
var name = null;
var opt = false;
if(tk != null) {
if(tk._hx_index == 13) {
opt = true;
tk = this.token();
}
}
if(tk == null) {
this.unexpected(tk);
break;
} else if(tk._hx_index == 2) {
var id = tk.s;
name = id;
} else {
this.unexpected(tk);
break;
}
var arg = { name : name};
args.push(arg);
if(opt) {
arg.opt = true;
}
if(this.allowTypes) {
if(this.maybe(hscript_Token.TDoubleDot)) {
arg.t = this.parseType();
}
if(this.maybe(hscript_Token.TOp("="))) {
arg.value = this.parseExpr();
}
}
tk = this.token();
if(tk == null) {
this.unexpected(tk);
} else {
switch(tk._hx_index) {
case 5:
done = true;
break;
case 9:
tk = this.token();
break;
default:
this.unexpected(tk);
}
}
}
}
return args;
}
,parseFunctionDecl: function() {
var t = this.token();
if(t != hscript_Token.TPOpen) {
this.unexpected(t);
}
var args = this.parseFunctionArgs();
var ret = null;
if(this.allowTypes) {
var tk = this.token();
if(tk != hscript_Token.TDoubleDot) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
} else {
ret = this.parseType();
}
}
return { args : args, ret : ret, body : this.parseExpr()};
}
,parsePath: function() {
var path = [this.getIdent()];
while(true) {
var t = this.token();
if(t != hscript_Token.TDot) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(t,_this.head);
break;
}
path.push(this.getIdent());
}
return path;
}
,parseType: function() {
var _gthis = this;
var t = this.token();
if(t == null) {
return this.unexpected(t);
} else {
switch(t._hx_index) {
case 2:
var v = t.s;
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(t,_this.head);
var path = this.parsePath();
var params = null;
t = this.token();
if(t == null) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(t,_this.head);
} else if(t._hx_index == 3) {
var op = t.s;
if(op == "<") {
params = [];
_hx_loop1: while(true) {
params.push(this.parseType());
t = this.token();
if(t != null) {
switch(t._hx_index) {
case 3:
var op = t.s;
if(op == ">") {
break _hx_loop1;
}
if(HxOverrides.cca(op,0) == 62) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(hscript_Token.TOp(HxOverrides.substr(op,1,null)),_this.head);
break _hx_loop1;
}
break;
case 9:
continue;
default:
}
}
this.unexpected(t);
break;
}
} else {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(t,_this.head);
}
} else {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(t,_this.head);
}
return this.parseTypeNext(hscript_CType.CTPath(path,params));
case 4:
var a = this.token();
var b = this.token();
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(b,_this.head);
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(a,_this.head);
var withReturn = function(args) {
var _g = _gthis.token();
if(_g == null) {
var t = _g;
_gthis.unexpected(t);
} else if(_g._hx_index == 3) {
if(_g.s != "->") {
var t = _g;
_gthis.unexpected(t);
}
} else {
var t = _g;
_gthis.unexpected(t);
}
return hscript_CType.CTFun(args,_gthis.parseType());
};
if(a == null) {
var t1 = this.parseType();
var _g = this.token();
if(_g == null) {
var t2 = _g;
return this.unexpected(t2);
} else {
switch(_g._hx_index) {
case 5:
return this.parseTypeNext(hscript_CType.CTParent(t1));
case 9:
var args = [t1];
while(true) {
args.push(this.parseType());
if(!this.maybe(hscript_Token.TComma)) {
break;
}
}
var t1 = this.token();
if(t1 != hscript_Token.TPClose) {
this.unexpected(t1);
}
return withReturn(args);
default:
var t1 = _g;
return this.unexpected(t1);
}
}
} else {
switch(a._hx_index) {
case 2:
var _g = a.s;
if(b == null) {
var t1 = this.parseType();
var _g = this.token();
if(_g == null) {
var t2 = _g;
return this.unexpected(t2);
} else {
switch(_g._hx_index) {
case 5:
return this.parseTypeNext(hscript_CType.CTParent(t1));
case 9:
var args = [t1];
while(true) {
args.push(this.parseType());
if(!this.maybe(hscript_Token.TComma)) {
break;
}
}
var t1 = this.token();
if(t1 != hscript_Token.TPClose) {
this.unexpected(t1);
}
return withReturn(args);
default:
var t1 = _g;
return this.unexpected(t1);
}
}
} else if(b._hx_index == 14) {
var _g = [];
var _g1 = 0;
var _g2 = this.parseFunctionArgs();
while(_g1 < _g2.length) {
var arg = _g2[_g1];
++_g1;
var _g3 = arg.value;
if(_g3 != null) {
var v = _g3;
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.ECustom("Default values not allowed in function types"));
}
}
_g.push(hscript_CType.CTNamed(arg.name,arg.opt ? hscript_CType.CTOpt(arg.t) : arg.t));
}
var args = _g;
return withReturn(args);
} else {
var t1 = this.parseType();
var _g = this.token();
if(_g == null) {
var t2 = _g;
return this.unexpected(t2);
} else {
switch(_g._hx_index) {
case 5:
return this.parseTypeNext(hscript_CType.CTParent(t1));
case 9:
var args = [t1];
while(true) {
args.push(this.parseType());
if(!this.maybe(hscript_Token.TComma)) {
break;
}
}
var t1 = this.token();
if(t1 != hscript_Token.TPClose) {
this.unexpected(t1);
}
return withReturn(args);
default:
var t1 = _g;
return this.unexpected(t1);
}
}
}
break;
case 5:
var _g = [];
var _g1 = 0;
var _g2 = this.parseFunctionArgs();
while(_g1 < _g2.length) {
var arg = _g2[_g1];
++_g1;
var _g3 = arg.value;
if(_g3 != null) {
var v = _g3;
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.ECustom("Default values not allowed in function types"));
}
}
_g.push(hscript_CType.CTNamed(arg.name,arg.opt ? hscript_CType.CTOpt(arg.t) : arg.t));
}
var args = _g;
return withReturn(args);
default:
var t1 = this.parseType();
var _g = this.token();
if(_g == null) {
var t2 = _g;
return this.unexpected(t2);
} else {
switch(_g._hx_index) {
case 5:
return this.parseTypeNext(hscript_CType.CTParent(t1));
case 9:
var args = [t1];
while(true) {
args.push(this.parseType());
if(!this.maybe(hscript_Token.TComma)) {
break;
}
}
var t1 = this.token();
if(t1 != hscript_Token.TPClose) {
this.unexpected(t1);
}
return withReturn(args);
default:
var t1 = _g;
return this.unexpected(t1);
}
}
}
}
break;
case 6:
var fields = [];
var meta = null;
_hx_loop8: while(true) {
t = this.token();
if(t == null) {
this.unexpected(t);
break;
} else {
switch(t._hx_index) {
case 2:
var _g = t.s;
if(_g == "var") {
var name = this.getIdent();
var t1 = this.token();
if(t1 != hscript_Token.TDoubleDot) {
this.unexpected(t1);
}
fields.push({ name : name, t : this.parseType(), meta : meta});
meta = null;
var t2 = this.token();
if(t2 != hscript_Token.TSemicolon) {
this.unexpected(t2);
}
} else {
var name1 = _g;
var t3 = this.token();
if(t3 != hscript_Token.TDoubleDot) {
this.unexpected(t3);
}
fields.push({ name : name1, t : this.parseType(), meta : meta});
t = this.token();
if(t == null) {
this.unexpected(t);
} else {
switch(t._hx_index) {
case 7:
break _hx_loop8;
case 9:
break;
default:
this.unexpected(t);
}
}
}
break;
case 7:
break _hx_loop8;
case 15:
var name2 = t.s;
if(meta == null) {
meta = [];
}
meta.push({ name : name2, params : this.parseMetaArgs()});
break;
default:
this.unexpected(t);
break _hx_loop8;
}
}
}
return this.parseTypeNext(hscript_CType.CTAnon(fields));
default:
return this.unexpected(t);
}
}
}
,parseTypeNext: function(t) {
var tk = this.token();
if(tk == null) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
return t;
} else if(tk._hx_index == 3) {
var op = tk.s;
if(op != "->") {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
return t;
}
} else {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
return t;
}
var t2 = this.parseType();
if(t2._hx_index == 1) {
var _g = t2.ret;
var args = t2.args;
args.unshift(t);
return t2;
} else {
return hscript_CType.CTFun([t],t2);
}
}
,parseExprList: function(etk) {
var args = [];
var tk = this.token();
if(tk == etk) {
return args;
}
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
while(true) {
args.push(this.parseExpr());
tk = this.token();
if(tk == null) {
if(tk == etk) {
break;
}
this.unexpected(tk);
break;
} else if(tk._hx_index != 9) {
if(tk == etk) {
break;
}
this.unexpected(tk);
break;
}
}
return args;
}
,parseModule: function(content,origin) {
if(origin == null) {
origin = "hscript";
}
this.initParser(origin);
this.input = content;
this.readPos = 0;
this.allowTypes = true;
this.allowMetadata = true;
var decls = [];
while(true) {
var tk = this.token();
if(tk == hscript_Token.TEof) {
break;
}
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
decls.push(this.parseModuleDecl());
}
return decls;
}
,parseMetadata: function() {
var meta = [];
while(true) {
var tk = this.token();
if(tk == null) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
break;
} else if(tk._hx_index == 15) {
var name = tk.s;
meta.push({ name : name, params : this.parseMetaArgs()});
} else {
var _this1 = this.tokens;
_this1.head = new haxe_ds_GenericCell(tk,_this1.head);
break;
}
}
return meta;
}
,parseParams: function() {
if(this.maybe(hscript_Token.TOp("<"))) {
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EInvalidOp("Unsupported class type parameters"));
}
}
return { };
}
,parseModuleDecl: function() {
var meta = this.parseMetadata();
var ident = this.getIdent();
var isPrivate = false;
var isExtern = false;
_hx_loop1: while(true) {
switch(ident) {
case "extern":
isExtern = true;
break;
case "private":
isPrivate = true;
break;
default:
break _hx_loop1;
}
ident = this.getIdent();
}
switch(ident) {
case "class":
var name = this.getIdent();
var params = this.parseParams();
var extend = null;
var implement = [];
_hx_loop2: while(true) {
var t = this.token();
if(t == null) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(t,_this.head);
break;
} else if(t._hx_index == 2) {
switch(t.s) {
case "extends":
extend = this.parseType();
break;
case "implements":
implement.push(this.parseType());
break;
default:
var _this1 = this.tokens;
_this1.head = new haxe_ds_GenericCell(t,_this1.head);
break _hx_loop2;
}
} else {
var _this2 = this.tokens;
_this2.head = new haxe_ds_GenericCell(t,_this2.head);
break;
}
}
var fields = [];
var t = this.token();
if(t != hscript_Token.TBrOpen) {
this.unexpected(t);
}
while(!this.maybe(hscript_Token.TBrClose)) fields.push(this.parseField());
return hscript_ModuleDecl.DClass({ name : name, meta : meta, params : params, extend : extend, implement : implement, fields : fields, isPrivate : isPrivate, isExtern : isExtern});
case "import":
var path = [this.getIdent()];
var star = false;
while(true) {
var t = this.token();
if(t != hscript_Token.TDot) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(t,_this.head);
break;
}
t = this.token();
if(t == null) {
this.unexpected(t);
} else {
switch(t._hx_index) {
case 2:
var id = t.s;
path.push(id);
break;
case 3:
if(t.s == "*") {
star = true;
} else {
this.unexpected(t);
}
break;
default:
this.unexpected(t);
}
}
}
var t = this.token();
if(t != hscript_Token.TSemicolon) {
this.unexpected(t);
}
return hscript_ModuleDecl.DImport(path,star);
case "package":
var path = this.parsePath();
var t = this.token();
if(t != hscript_Token.TSemicolon) {
this.unexpected(t);
}
return hscript_ModuleDecl.DPackage(path);
case "typedef":
var name = this.getIdent();
var params = this.parseParams();
var t = this.token();
if(!Type.enumEq(t,hscript_Token.TOp("="))) {
this.unexpected(t);
}
var t = this.parseType();
return hscript_ModuleDecl.DTypedef({ name : name, meta : meta, params : params, isPrivate : isPrivate, t : t});
default:
this.unexpected(hscript_Token.TId(ident));
}
return null;
}
,parseField: function() {
var meta = this.parseMetadata();
var access = [];
_hx_loop1: while(true) {
var id = this.getIdent();
switch(id) {
case "function":
var name = this.getIdent();
var inf = this.parseFunctionDecl();
return { name : name, meta : meta, access : access, kind : hscript_FieldKind.KFunction({ args : inf.args, expr : inf.body, ret : inf.ret})};
case "inline":
access.push(hscript_FieldAccess.AInline);
break;
case "macro":
access.push(hscript_FieldAccess.AMacro);
break;
case "override":
access.push(hscript_FieldAccess.AOverride);
break;
case "private":
access.push(hscript_FieldAccess.APrivate);
break;
case "public":
access.push(hscript_FieldAccess.APublic);
break;
case "static":
access.push(hscript_FieldAccess.AStatic);
break;
case "var":
var name1 = this.getIdent();
var get = null;
var set = null;
if(this.maybe(hscript_Token.TPOpen)) {
get = this.getIdent();
var t = this.token();
if(t != hscript_Token.TComma) {
this.unexpected(t);
}
set = this.getIdent();
var t1 = this.token();
if(t1 != hscript_Token.TPClose) {
this.unexpected(t1);
}
}
var type = this.maybe(hscript_Token.TDoubleDot) ? this.parseType() : null;
var expr = this.maybe(hscript_Token.TOp("=")) ? this.parseExpr() : null;
if(expr != null) {
if(this.isBlock(expr)) {
this.maybe(hscript_Token.TSemicolon);
} else {
var t2 = this.token();
if(t2 != hscript_Token.TSemicolon) {
this.unexpected(t2);
}
}
} else {
var tmp;
if(type != null) {
if(type == null) {
tmp = false;
} else if(type._hx_index == 2) {
var _g = type.fields;
tmp = true;
} else {
tmp = false;
}
} else {
tmp = false;
}
if(tmp) {
this.maybe(hscript_Token.TSemicolon);
} else {
var t3 = this.token();
if(t3 != hscript_Token.TSemicolon) {
this.unexpected(t3);
}
}
}
return { name : name1, meta : meta, access : access, kind : hscript_FieldKind.KVar({ get : get, set : set, type : type, expr : expr})};
default:
this.unexpected(hscript_Token.TId(id));
break _hx_loop1;
}
}
return null;
}
,readChar: function() {
return this.input.charCodeAt(this.readPos++);
}
,readString: function(until) {
var c = 0;
var b_b = "";
var esc = false;
var old = this.line;
var s = this.input;
while(true) {
var c = this.input.charCodeAt(this.readPos++);
if(c != c) {
this.line = old;
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EUnterminatedString);
}
break;
}
if(esc) {
esc = false;
switch(c) {
case 34:case 39:case 92:
b_b += String.fromCodePoint(c);
break;
case 47:
if(this.allowJSON) {
b_b += String.fromCodePoint(c);
} else {
this.invalidChar(c);
}
break;
case 110:
b_b += String.fromCodePoint(10);
break;
case 114:
b_b += String.fromCodePoint(13);
break;
case 116:
b_b += String.fromCodePoint(9);
break;
case 117:
if(!this.allowJSON) {
this.invalidChar(c);
}
var k = 0;
var _g = 0;
while(_g < 4) {
var i = _g++;
k <<= 4;
var char = this.input.charCodeAt(this.readPos++);
switch(char) {
case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
k += char - 48;
break;
case 65:case 66:case 67:case 68:case 69:case 70:
k += char - 55;
break;
case 97:case 98:case 99:case 100:case 101:case 102:
k += char - 87;
break;
default:
if(char != char) {
this.line = old;
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EUnterminatedString);
}
}
this.invalidChar(char);
}
}
b_b += String.fromCodePoint(k);
break;
default:
this.invalidChar(c);
}
} else if(c == 92) {
esc = true;
} else if(c == until) {
break;
} else {
if(c == 10) {
this.line++;
}
b_b += String.fromCodePoint(c);
}
}
return b_b;
}
,token: function() {
if(this.tokens.head != null) {
var _this = this.tokens;
var k = _this.head;
if(k == null) {
return null;
} else {
_this.head = k.next;
return k.elt;
}
}
var char;
if(this.char < 0) {
char = this.input.charCodeAt(this.readPos++);
} else {
char = this.char;
this.char = -1;
}
while(true) {
if(char != char) {
this.char = char;
return hscript_Token.TEof;
}
switch(char) {
case 0:
return hscript_Token.TEof;
case 10:
this.line++;
break;
case 9:case 13:case 32:
break;
case 35:
char = this.input.charCodeAt(this.readPos++);
if(this.idents[char]) {
var id = String.fromCodePoint(char);
while(true) {
char = this.input.charCodeAt(this.readPos++);
if(!this.idents[char]) {
this.char = char;
return this.preprocess(id);
}
id += String.fromCodePoint(char);
}
}
this.invalidChar(char);
break;
case 34:case 39:
return hscript_Token.TConst(hscript_Const.CString(this.readString(char)));
case 40:
return hscript_Token.TPOpen;
case 41:
return hscript_Token.TPClose;
case 44:
return hscript_Token.TComma;
case 46:
char = this.input.charCodeAt(this.readPos++);
switch(char) {
case 46:
char = this.input.charCodeAt(this.readPos++);
if(char != 46) {
this.invalidChar(char);
}
return hscript_Token.TOp("...");
case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
var n = char - 48;
var exp = 1;
while(true) {
char = this.input.charCodeAt(this.readPos++);
exp *= 10;
switch(char) {
case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
n = n * 10 + (char - 48);
break;
default:
this.char = char;
return hscript_Token.TConst(hscript_Const.CFloat(n / exp));
}
}
break;
default:
this.char = char;
return hscript_Token.TDot;
}
break;
case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
var n1 = (char - 48) * 1.0;
var exp1 = 0.;
while(true) {
char = this.input.charCodeAt(this.readPos++);
exp1 *= 10;
switch(char) {
case 46:
if(exp1 > 0) {
if(exp1 == 10 && this.input.charCodeAt(this.readPos++) == 46) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(hscript_Token.TOp("..."),_this.head);
var i = n1 | 0;
return hscript_Token.TConst(i == n1 ? hscript_Const.CInt(i) : hscript_Const.CFloat(n1));
}
this.invalidChar(char);
}
exp1 = 1.;
break;
case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
n1 = n1 * 10 + (char - 48);
break;
case 69:case 101:
var tk = this.token();
var pow = null;
if(tk == null) {
var _this1 = this.tokens;
_this1.head = new haxe_ds_GenericCell(tk,_this1.head);
} else {
switch(tk._hx_index) {
case 1:
var _g = tk.c;
if(_g._hx_index == 0) {
var e = _g.v;
pow = e;
} else {
var _this2 = this.tokens;
_this2.head = new haxe_ds_GenericCell(tk,_this2.head);
}
break;
case 3:
if(tk.s == "-") {
tk = this.token();
if(tk == null) {
var _this3 = this.tokens;
_this3.head = new haxe_ds_GenericCell(tk,_this3.head);
} else if(tk._hx_index == 1) {
var _g1 = tk.c;
if(_g1._hx_index == 0) {
var e1 = _g1.v;
pow = -e1;
} else {
var _this4 = this.tokens;
_this4.head = new haxe_ds_GenericCell(tk,_this4.head);
}
} else {
var _this5 = this.tokens;
_this5.head = new haxe_ds_GenericCell(tk,_this5.head);
}
} else {
var _this6 = this.tokens;
_this6.head = new haxe_ds_GenericCell(tk,_this6.head);
}
break;
default:
var _this7 = this.tokens;
_this7.head = new haxe_ds_GenericCell(tk,_this7.head);
}
}
if(pow == null) {
this.invalidChar(char);
}
return hscript_Token.TConst(hscript_Const.CFloat(Math.pow(10,pow) / exp1 * n1 * 10));
case 120:
if(n1 > 0 || exp1 > 0) {
this.invalidChar(char);
}
var n2 = 0;
while(true) {
char = this.input.charCodeAt(this.readPos++);
switch(char) {
case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
n2 = (n2 << 4) + char - 48;
break;
case 65:case 66:case 67:case 68:case 69:case 70:
n2 = (n2 << 4) + (char - 55);
break;
case 97:case 98:case 99:case 100:case 101:case 102:
n2 = (n2 << 4) + (char - 87);
break;
default:
this.char = char;
return hscript_Token.TConst(hscript_Const.CInt(n2));
}
}
break;
default:
this.char = char;
var i1 = n1 | 0;
return hscript_Token.TConst(exp1 > 0 ? hscript_Const.CFloat(n1 * 10 / exp1) : i1 == n1 ? hscript_Const.CInt(i1) : hscript_Const.CFloat(n1));
}
}
break;
case 58:
return hscript_Token.TDoubleDot;
case 59:
return hscript_Token.TSemicolon;
case 61:
char = this.input.charCodeAt(this.readPos++);
if(char == 61) {
return hscript_Token.TOp("==");
} else if(char == 62) {
return hscript_Token.TOp("=>");
}
this.char = char;
return hscript_Token.TOp("=");
case 63:
return hscript_Token.TQuestion;
case 64:
char = this.input.charCodeAt(this.readPos++);
if(this.idents[char] || char == 58) {
var id1 = String.fromCodePoint(char);
while(true) {
char = this.input.charCodeAt(this.readPos++);
if(!this.idents[char]) {
this.char = char;
return hscript_Token.TMeta(id1);
}
id1 += String.fromCodePoint(char);
}
}
this.invalidChar(char);
break;
case 91:
return hscript_Token.TBkOpen;
case 93:
return hscript_Token.TBkClose;
case 123:
return hscript_Token.TBrOpen;
case 125:
return hscript_Token.TBrClose;
default:
if(this.ops[char]) {
var op = String.fromCodePoint(char);
var prev = -1;
while(true) {
char = this.input.charCodeAt(this.readPos++);
if(char != char) {
char = 0;
}
if(!this.ops[char] || prev == 61) {
if(HxOverrides.cca(op,0) == 47) {
return this.tokenComment(op,char);
}
this.char = char;
return hscript_Token.TOp(op);
}
prev = char;
op += String.fromCodePoint(char);
}
}
if(this.idents[char]) {
var id2 = String.fromCodePoint(char);
while(true) {
char = this.input.charCodeAt(this.readPos++);
if(char != char) {
char = 0;
}
if(!this.idents[char]) {
this.char = char;
return hscript_Token.TId(id2);
}
id2 += String.fromCodePoint(char);
}
}
this.invalidChar(char);
}
char = this.input.charCodeAt(this.readPos++);
}
}
,preprocValue: function(id) {
return this.preprocesorValues.h[id];
}
,preprocStack: null
,parsePreproCond: function() {
var tk = this.token();
if(tk == null) {
return this.unexpected(tk);
} else {
switch(tk._hx_index) {
case 2:
var id = tk.s;
return hscript_Expr.EIdent(id);
case 3:
if(tk.s == "!") {
return hscript_Expr.EUnop("!",true,this.parsePreproCond());
} else {
return this.unexpected(tk);
}
break;
case 4:
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(hscript_Token.TPOpen,_this.head);
return this.parseExpr();
default:
return this.unexpected(tk);
}
}
}
,evalPreproCond: function(e) {
switch(e._hx_index) {
case 1:
var id = e.v;
return this.preprocValue(id) != null;
case 3:
var e1 = e.e;
return this.evalPreproCond(e1);
case 6:
var _g = e.e2;
var _g1 = e.e1;
switch(e.op) {
case "&&":
var e2 = _g;
var e1 = _g1;
if(this.evalPreproCond(e1)) {
return this.evalPreproCond(e2);
} else {
return false;
}
break;
case "||":
var e2 = _g;
var e1 = _g1;
if(!this.evalPreproCond(e1)) {
return this.evalPreproCond(e2);
} else {
return true;
}
break;
default:
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EInvalidPreprocessor("Can't eval " + $hxEnums[e.__enum__].__constructs__[e._hx_index]));
}
return false;
}
break;
case 7:
var _g = e.prefix;
if(e.op == "!") {
var e1 = e.e;
return !this.evalPreproCond(e1);
} else {
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EInvalidPreprocessor("Can't eval " + $hxEnums[e.__enum__].__constructs__[e._hx_index]));
}
return false;
}
break;
default:
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EInvalidPreprocessor("Can't eval " + $hxEnums[e.__enum__].__constructs__[e._hx_index]));
}
return false;
}
}
,preprocess: function(id) {
switch(id) {
case "else":case "elseif":
if(this.preprocStack.length > 0) {
if(this.preprocStack[this.preprocStack.length - 1].r) {
this.preprocStack[this.preprocStack.length - 1].r = false;
this.skipTokens();
return this.token();
} else if(id == "else") {
this.preprocStack.pop();
this.preprocStack.push({ r : true});
return this.token();
} else {
this.preprocStack.pop();
return this.preprocess("if");
}
} else {
return hscript_Token.TPrepro(id);
}
break;
case "end":
if(this.preprocStack.length > 0) {
this.preprocStack.pop();
return this.token();
} else {
return hscript_Token.TPrepro(id);
}
break;
case "if":
var e = this.parsePreproCond();
if(this.evalPreproCond(e)) {
this.preprocStack.push({ r : true});
return this.token();
}
this.preprocStack.push({ r : false});
this.skipTokens();
return this.token();
default:
return hscript_Token.TPrepro(id);
}
}
,skipTokens: function() {
var spos = this.preprocStack.length - 1;
var obj = this.preprocStack[spos];
var pos = this.readPos;
while(true) {
var tk = this.token();
if(tk == hscript_Token.TEof) {
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EInvalidPreprocessor("Unclosed"));
}
}
if(this.preprocStack[spos] != obj) {
var _this = this.tokens;
_this.head = new haxe_ds_GenericCell(tk,_this.head);
break;
}
}
}
,tokenComment: function(op,char) {
var c = HxOverrides.cca(op,1);
var s = this.input;
if(c == 47) {
while(char != 13 && char != 10) {
char = this.input.charCodeAt(this.readPos++);
if(char != char) {
break;
}
}
this.char = char;
return this.token();
}
if(c == 42) {
var old = this.line;
if(op == "/**/") {
this.char = char;
return this.token();
}
while(true) {
while(char != 42) {
if(char == 10) {
this.line++;
}
char = this.input.charCodeAt(this.readPos++);
if(char != char) {
this.line = old;
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EUnterminatedComment);
}
break;
}
}
char = this.input.charCodeAt(this.readPos++);
if(char != char) {
this.line = old;
if(!this.resumeErrors) {
throw haxe_Exception.thrown(hscript_Error.EUnterminatedComment);
}
break;
}
if(char == 47) {
break;
}
}
return this.token();
}
this.char = char;
return hscript_Token.TOp(op);
}
,constString: function(c) {
switch(c._hx_index) {
case 0:
var v = c.v;
if(v == null) {
return "null";
} else {
return "" + v;
}
break;
case 1:
var f = c.f;
if(f == null) {
return "null";
} else {
return "" + f;
}
break;
case 2:
var s = c.s;
return s;
}
}
,tokenString: function(t) {
switch(t._hx_index) {
case 0:
return "<eof>";
case 1:
var c = t.c;
return this.constString(c);
case 2:
var s = t.s;
return s;
case 3:
var s = t.s;
return s;
case 4:
return "(";
case 5:
return ")";
case 6:
return "{";
case 7:
return "}";
case 8:
return ".";
case 9:
return ",";
case 10:
return ";";
case 11:
return "[";
case 12:
return "]";
case 13:
return "?";
case 14:
return ":";
case 15:
var id = t.s;
return "@" + id;
case 16:
var id = t.s;
return "#" + id;
}
}
,__class__: hscript_Parser
};
var hscript_Tools = function() { };
$hxClasses["hscript.Tools"] = hscript_Tools;
hscript_Tools.__name__ = "hscript.Tools";
hscript_Tools.iter = function(e,f) {
switch(e._hx_index) {
case 0:
var _g = e.c;
break;
case 1:
var _g = e.v;
break;
case 2:
var _g = e.t;
var _g = e.n;
var e1 = e.e;
if(e1 != null) {
f(e1);
}
break;
case 3:
var e1 = e.e;
f(e1);
break;
case 4:
var el = e.e;
var _g = 0;
while(_g < el.length) {
var e1 = el[_g];
++_g;
f(e1);
}
break;
case 5:
var _g = e.f;
var e1 = e.e;
f(e1);
break;
case 6:
var _g = e.op;
var e2 = e.e2;
var e1 = e.e1;
f(e1);
f(e2);
break;
case 7:
var _g = e.prefix;
var _g = e.op;
var e1 = e.e;
f(e1);
break;
case 8:
var args = e.params;
var e1 = e.e;
f(e1);
var _g = 0;
while(_g < args.length) {
var a = args[_g];
++_g;
f(a);
}
break;
case 9:
var e2 = e.e2;
var e1 = e.e1;
var c = e.cond;
f(c);
f(e1);
if(e2 != null) {
f(e2);
}
break;
case 10:
var e1 = e.e;
var c = e.cond;
f(c);
f(e1);
break;
case 11:
var _g = e.v;
var e1 = e.e;
var it = e.it;
f(it);
f(e1);
break;
case 12:case 13:
break;
case 14:
var _g = e.ret;
var _g = e.name;
var _g = e.args;
var e1 = e.e;
f(e1);
break;
case 15:
var e1 = e.e;
if(e1 != null) {
f(e1);
}
break;
case 16:
var i = e.index;
var e1 = e.e;
f(e1);
f(i);
break;
case 17:
var el = e.e;
var _g = 0;
while(_g < el.length) {
var e1 = el[_g];
++_g;
f(e1);
}
break;
case 18:
var _g = e.cl;
var el = e.params;
var _g = 0;
while(_g < el.length) {
var e1 = el[_g];
++_g;
f(e1);
}
break;
case 19:
var e1 = e.e;
f(e1);
break;
case 20:
var _g = e.t;
var _g = e.v;
var c = e.ecatch;
var e1 = e.e;
f(e1);
f(c);
break;
case 21:
var fl = e.fl;
var _g = 0;
while(_g < fl.length) {
var fi = fl[_g];
++_g;
f(fi.e);
}
break;
case 22:
var e2 = e.e2;
var e1 = e.e1;
var c = e.cond;
f(c);
f(e1);
f(e2);
break;
case 23:
var def = e.defaultExpr;
var cases = e.cases;
var e1 = e.e;
f(e1);
var _g = 0;
while(_g < cases.length) {
var c = cases[_g];
++_g;
var _g1 = 0;
var _g2 = c.values;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
f(v);
}
f(c.expr);
}
if(def != null) {
f(def);
}
break;
case 24:
var e1 = e.e;
var c = e.cond;
f(c);
f(e1);
break;
case 25:
var e1 = e.e;
var args = e.args;
var name = e.name;
if(args != null) {
var _g = 0;
while(_g < args.length) {
var a = args[_g];
++_g;
f(a);
}
}
f(e1);
break;
case 26:
var _g = e.t;
var e1 = e.e;
f(e1);
break;
}
};
hscript_Tools.map = function(e,f) {
var edef;
switch(e._hx_index) {
case 0:
var _g = e.c;
edef = e;
break;
case 1:
var _g = e.v;
edef = e;
break;
case 2:
var e1 = e.e;
var t = e.t;
var n = e.n;
edef = hscript_Expr.EVar(n,t,e1 != null ? f(e1) : null);
break;
case 3:
var e1 = e.e;
edef = hscript_Expr.EParent(f(e1));
break;
case 4:
var el = e.e;
var _g = [];
var _g1 = 0;
while(_g1 < el.length) {
var e1 = el[_g1];
++_g1;
_g.push(f(e1));
}
edef = hscript_Expr.EBlock(_g);
break;
case 5:
var fi = e.f;
var e1 = e.e;
edef = hscript_Expr.EField(f(e1),fi);
break;
case 6:
var e2 = e.e2;
var e1 = e.e1;
var op = e.op;
edef = hscript_Expr.EBinop(op,f(e1),f(e2));
break;
case 7:
var e1 = e.e;
var pre = e.prefix;
var op = e.op;
edef = hscript_Expr.EUnop(op,pre,f(e1));
break;
case 8:
var args = e.params;
var e1 = e.e;
var edef1 = f(e1);
var _g = [];
var _g1 = 0;
while(_g1 < args.length) {
var a = args[_g1];
++_g1;
_g.push(f(a));
}
edef = hscript_Expr.ECall(edef1,_g);
break;
case 9:
var e2 = e.e2;
var e1 = e.e1;
var c = e.cond;
edef = hscript_Expr.EIf(f(c),f(e1),e2 != null ? f(e2) : null);
break;
case 10:
var e1 = e.e;
var c = e.cond;
edef = hscript_Expr.EWhile(f(c),f(e1));
break;
case 11:
var e1 = e.e;
var it = e.it;
var v = e.v;
edef = hscript_Expr.EFor(v,f(it),f(e1));
break;
case 12:case 13:
edef = e;
break;
case 14:
var t = e.ret;
var name = e.name;
var e1 = e.e;
var args = e.args;
edef = hscript_Expr.EFunction(args,f(e1),name,t);
break;
case 15:
var e1 = e.e;
edef = hscript_Expr.EReturn(e1 != null ? f(e1) : null);
break;
case 16:
var i = e.index;
var e1 = e.e;
edef = hscript_Expr.EArray(f(e1),f(i));
break;
case 17:
var el = e.e;
var _g = [];
var _g1 = 0;
while(_g1 < el.length) {
var e1 = el[_g1];
++_g1;
_g.push(f(e1));
}
edef = hscript_Expr.EArrayDecl(_g);
break;
case 18:
var el = e.params;
var cl = e.cl;
var _g = [];
var _g1 = 0;
while(_g1 < el.length) {
var e1 = el[_g1];
++_g1;
_g.push(f(e1));
}
edef = hscript_Expr.ENew(cl,_g);
break;
case 19:
var e1 = e.e;
edef = hscript_Expr.EThrow(f(e1));
break;
case 20:
var c = e.ecatch;
var t = e.t;
var v = e.v;
var e1 = e.e;
edef = hscript_Expr.ETry(f(e1),v,t,f(c));
break;
case 21:
var fl = e.fl;
var _g = [];
var _g1 = 0;
while(_g1 < fl.length) {
var fi = fl[_g1];
++_g1;
_g.push({ name : fi.name, e : f(fi.e)});
}
edef = hscript_Expr.EObject(_g);
break;
case 22:
var e2 = e.e2;
var e1 = e.e1;
var c = e.cond;
edef = hscript_Expr.ETernary(f(c),f(e1),f(e2));
break;
case 23:
var def = e.defaultExpr;
var cases = e.cases;
var e1 = e.e;
var edef1 = f(e1);
var _g = [];
var _g1 = 0;
while(_g1 < cases.length) {
var c = cases[_g1];
++_g1;
var _g2 = [];
var _g3 = 0;
var _g4 = c.values;
while(_g3 < _g4.length) {
var v = _g4[_g3];
++_g3;
_g2.push(f(v));
}
_g.push({ values : _g2, expr : f(c.expr)});
}
edef = hscript_Expr.ESwitch(edef1,_g,def == null ? null : f(def));
break;
case 24:
var e1 = e.e;
var c = e.cond;
edef = hscript_Expr.EDoWhile(f(c),f(e1));
break;
case 25:
var e1 = e.e;
var args = e.args;
var name = e.name;
var edef1;
if(args == null) {
edef1 = null;
} else {
var _g = [];
var _g1 = 0;
while(_g1 < args.length) {
var a = args[_g1];
++_g1;
_g.push(f(a));
}
edef1 = _g;
}
edef = hscript_Expr.EMeta(name,edef1,f(e1));
break;
case 26:
var t = e.t;
var e1 = e.e;
edef = hscript_Expr.ECheckType(f(e1),t);
break;
}
return edef;
};
hscript_Tools.expr = function(e) {
return e;
};
hscript_Tools.mk = function(e,p) {
return e;
};
var io_newgrounds_ICallable = function() { };
$hxClasses["io.newgrounds.ICallable"] = io_newgrounds_ICallable;
io_newgrounds_ICallable.__name__ = "io.newgrounds.ICallable";
io_newgrounds_ICallable.__isInterface__ = true;
io_newgrounds_ICallable.prototype = {
component: null
,send: null
,queue: null
,destroy: null
,__class__: io_newgrounds_ICallable
};
var io_newgrounds_Call = function(core,component,requireSession,isSecure) {
if(isSecure == null) {
isSecure = false;
}
if(requireSession == null) {
requireSession = false;
}
this._core = core;
this.component = component;
this._requireSession = requireSession;
this._isSecure = isSecure && core.encryptionHandler != null;
};
$hxClasses["io.newgrounds.Call"] = io_newgrounds_Call;
io_newgrounds_Call.__name__ = "io.newgrounds.Call";
io_newgrounds_Call.__interfaces__ = [io_newgrounds_ICallable];
io_newgrounds_Call.prototype = {
component: null
,_core: null
,_properties: null
,_parameters: null
,_requireSession: null
,_isSecure: null
,_dataHandlers: null
,_successHandlers: null
,_httpErrorHandlers: null
,_statusHandlers: null
,addProperty: function(name,value) {
if(this._properties == null) {
this._properties = new haxe_ds_StringMap();
}
this._properties.h[name] = value;
return this;
}
,addComponentParameter: function(name,value,defaultValue) {
if(value == defaultValue) {
return this;
}
if(this._parameters == null) {
this._parameters = new haxe_ds_StringMap();
}
this._parameters.h[name] = value;
return this;
}
,addDataHandler: function(handler) {
if(this._dataHandlers == null) {
this._dataHandlers = new io_newgrounds_utils_TypedDispatcher();
}
this._dataHandlers.add(handler);
return this;
}
,addSuccessHandler: function(handler) {
if(this._successHandlers == null) {
this._successHandlers = new io_newgrounds_utils_Dispatcher();
}
this._successHandlers.add(handler);
return this;
}
,addErrorHandler: function(handler) {
if(this._httpErrorHandlers == null) {
this._httpErrorHandlers = new io_newgrounds_utils_TypedDispatcher();
}
this._httpErrorHandlers.add(handler);
return this;
}
,addStatusHandler: function(handler) {
if(this._statusHandlers == null) {
this._statusHandlers = new io_newgrounds_utils_TypedDispatcher();
}
this._statusHandlers.add(handler);
return this;
}
,send: function() {
var data = { };
data.app_id = this._core.appId;
data.call = { };
data.call.component = this.component;
if(this._core.debug) {
this.addProperty("debug",true);
}
if(this._properties == null || !Object.prototype.hasOwnProperty.call(this._properties.h,"session_id")) {
if(this._core.sessionId != null) {
this.addProperty("session_id",this._core.sessionId);
} else if(this._requireSession) {
var this1 = { message : "cannot send \"" + this.component + "\" call without a sessionId", code : null};
this._core.logError(this1,{ fileName : "io/newgrounds/Call.hx", lineNumber : 137, className : "io.newgrounds.Call", methodName : "send"});
return;
}
}
if(this._properties != null) {
var field = haxe_ds_StringMap.keysIterator(this._properties.h);
while(field.hasNext()) {
var field1 = field.next();
data[field1] = this._properties.h[field1];
}
}
if(this._parameters != null) {
data.call.parameters = { };
var field = haxe_ds_StringMap.keysIterator(this._parameters.h);
while(field.hasNext()) {
var field1 = field.next();
data.call.parameters[field1] = this._parameters.h[field1];
}
}
var _this = this._core;
var any = "Post - " + JSON.stringify(data);
if(_this.verbose) {
_this.log(any,{ fileName : "io/newgrounds/Call.hx", lineNumber : 156, className : "io.newgrounds.Call", methodName : "send"});
}
if(this._isSecure) {
var secureData = this._core.encryptionHandler(JSON.stringify(data.call));
data.call = { };
data.call.secure = secureData;
var _this = this._core;
if(_this.verbose) {
_this.log(" secure - " + secureData,{ fileName : "io/newgrounds/Call.hx", lineNumber : 164, className : "io.newgrounds.Call", methodName : "send"});
}
}
this._core.markCallPending_io_newgrounds_Call_T(this);
io_newgrounds_utils_AsyncHttp.send(this._core,JSON.stringify(data),$bind(this,this.onData),$bind(this,this.onHttpError),$bind(this,this.onStatus));
}
,queue: function() {
this._core.queueCall_io_newgrounds_Call_T(this);
}
,onData: function(reply) {
var _this = this._core;
if(_this.verbose) {
_this.log("Reply - " + reply,{ fileName : "io/newgrounds/Call.hx", lineNumber : 180, className : "io.newgrounds.Call", methodName : "onData"});
}
if(this._dataHandlers == null && this._successHandlers == null) {
return;
}
var response = io_newgrounds_objects_events_Response._new(this._core,reply);
if(this._dataHandlers != null) {
this._dataHandlers.dispatch(response);
}
if(response.success && response.result.data.success && this._successHandlers != null) {
this._successHandlers.dispatch();
}
this.destroy();
}
,onHttpError: function(message) {
this._core.logError(message,{ fileName : "io/newgrounds/Call.hx", lineNumber : 198, className : "io.newgrounds.Call", methodName : "onHttpError"});
if(this._httpErrorHandlers == null) {
return;
}
var this1 = { message : message, code : null};
var error = this1;
this._httpErrorHandlers.dispatch(error);
}
,onStatus: function(status) {
if(this._statusHandlers == null) {
return;
}
this._statusHandlers.dispatch(status);
}
,destroy: function() {
this._core = null;
this._properties = null;
this._parameters = null;
this._dataHandlers = null;
this._successHandlers = null;
this._httpErrorHandlers = null;
this._statusHandlers = null;
}
,__class__: io_newgrounds_Call
};
var io_newgrounds_utils_Dispatcher = function() {
this._list = [];
this._once = [];
};
$hxClasses["io.newgrounds.utils.Dispatcher"] = io_newgrounds_utils_Dispatcher;
io_newgrounds_utils_Dispatcher.__name__ = "io.newgrounds.utils.Dispatcher";
io_newgrounds_utils_Dispatcher.prototype = {
_list: null
,_once: null
,add: function(handler,once) {
if(once == null) {
once = false;
}
if(this._list.indexOf(handler) != -1) {
if(!once && this._once.indexOf(handler) != -1) {
HxOverrides.remove(this._once,handler);
}
return false;
}
this._list.unshift(handler);
if(once) {
this._once.unshift(handler);
}
return true;
}
,addOnce: function(handler) {
return this.add(handler,true);
}
,remove: function(handler) {
HxOverrides.remove(this._once,handler);
return HxOverrides.remove(this._list,handler);
}
,dispatch: function() {
var i = this._list.length - 1;
while(i >= 0) {
var handler = this._list[i];
if(HxOverrides.remove(this._once,handler)) {
HxOverrides.remove(this._list,handler);
}
handler();
--i;
}
}
,__class__: io_newgrounds_utils_Dispatcher
};
var io_newgrounds_NGLite = function(appId,sessionId,debug,onSessionFail) {
if(debug == null) {
debug = false;
}
if(appId == null) {
appId = "test";
}
this._pendingCalls = [];
this._queuedCalls = [];
this.appId = appId;
this.set_sessionId(sessionId);
this.debug = debug;
this.calls = new io_newgrounds_components_ComponentList(this);
if(this.sessionId != null) {
var _g = $bind(this,this.checkInitialSession);
var onFail = onSessionFail;
var tmp = function(response) {
_g(onFail,response);
};
var _g1 = $bind(this,this.initialSessionFail);
var onFail1 = onSessionFail;
var tmp1 = function(error) {
_g1(onFail1,error);
};
this.calls.app.checkSession().addDataHandler(tmp).addErrorHandler(tmp1).send();
}
};
$hxClasses["io.newgrounds.NGLite"] = io_newgrounds_NGLite;
io_newgrounds_NGLite.__name__ = "io.newgrounds.NGLite";
io_newgrounds_NGLite.core = null;
io_newgrounds_NGLite.create = function(appId,sessionId,onSessionFail) {
if(appId == null) {
appId = "test";
}
io_newgrounds_NGLite.core = new io_newgrounds_NGLite(appId,sessionId,false,onSessionFail);
io_newgrounds_NGLite.onCoreReady.dispatch();
};
io_newgrounds_NGLite.createAndCheckSession = function(appId,backupSession,onSessionFail) {
if(appId == null) {
appId = "test";
}
var session = io_newgrounds_NGLite.getSessionId();
if(session == null) {
session = backupSession;
}
io_newgrounds_NGLite.create(appId,session,onSessionFail);
};
io_newgrounds_NGLite.getUrl = function() {
return window.document.location.href;
};
io_newgrounds_NGLite.getSessionId = function() {
var url = window.document.location.href;
var index = url.indexOf("?");
if(index != -1) {
var _g = 0;
var _g1 = HxOverrides.substr(url,index + 1,null).split("&");
while(_g < _g1.length) {
var param = _g1[_g];
++_g;
index = param.indexOf("=");
if(index != -1 && HxOverrides.substr(param,0,index) == "ngio_session_id") {
return HxOverrides.substr(param,index + 1,null);
}
}
}
return null;
};
io_newgrounds_NGLite.prototype = {
queueCall_io_newgrounds_Call_T: function(call) {
if(this.verbose) {
this.log("queued - " + call.component,{ fileName : "io/newgrounds/NGLite.hx", lineNumber : 193, className : "io.newgrounds.NGLite", methodName : "queueCall"});
}
this._queuedCalls.push(call);
this.checkQueue();
}
,markCallPending_io_newgrounds_Call_T: function(call) {
var _gthis = this;
this._pendingCalls.push(call);
call.addDataHandler(function(_) {
_gthis.onCallComplete(call);
});
call.addErrorHandler(function(_) {
_gthis.onCallComplete(call);
});
}
,verbose: null
,debug: null
,appId: null
,host: null
,sessionId: null
,set_sessionId: function(value) {
return this.sessionId = value == "" ? null : value;
}
,calls: null
,encryptionHandler: null
,checkInitialSession: function(onFail,response) {
if(!response.success || !response.result.data.success || response.result.data.session.expired) {
this.initialSessionFail(onFail,response.success ? response.result.data.error : response.error);
}
}
,initialSessionFail: function(onFail,error) {
this.set_sessionId(null);
if(onFail != null) {
onFail(error);
}
}
,_queuedCalls: null
,_pendingCalls: null
,onCallComplete: function(call) {
HxOverrides.remove(this._pendingCalls,call);
this.checkQueue();
}
,checkQueue: function() {
if(this._pendingCalls.length == 0 && this._queuedCalls.length > 0) {
this._queuedCalls.shift().send();
}
}
,log: function(any,pos) {
haxe_Log.trace("[Newgrounds API] :: " + Std.string(any),pos);
}
,logVerbose: function(any,pos) {
if(this.verbose) {
this.log(any,pos);
}
}
,logError: function(any,pos) {
this.log("Error: " + Std.string(any),pos);
}
,assert: function(condition,msg,pos) {
if(!condition) {
this.logError(msg,pos);
}
return condition;
}
,initEncryption: function(key,cipher,format) {
if(format == null) {
format = "base64";
}
if(cipher == null) {
cipher = "rc4";
}
if(cipher == "none") {
this.encryptionHandler = null;
} else if(cipher == "rc4") {
var _g = $bind(this,this.encryptRc4);
var key1 = key;
var format1 = format;
this.encryptionHandler = function(data) {
return _g(key1,format1,data);
};
} else {
throw haxe_Exception.thrown("aes not yet implemented");
}
}
,encryptRc4: function(key,format,data) {
if(format == "hex") {
throw haxe_Exception.thrown("hex format not yet implemented");
}
var keyBytes;
if(format == "base64") {
keyBytes = haxe_crypto_Base64.decode(key);
} else {
keyBytes = null;
}
var dataBytes = new io_newgrounds_crypto_Rc4(keyBytes).crypt(haxe_io_Bytes.ofString(data));
if(format == "base64") {
return haxe_crypto_Base64.encode(dataBytes);
}
return null;
}
,__class__: io_newgrounds_NGLite
,__properties__: {set_sessionId:"set_sessionId"}
};
var io_newgrounds_NG = function(appId,sessionId,debug,onSessionFail) {
if(debug == null) {
debug = false;
}
if(appId == null) {
appId = "test";
}
this.host = io_newgrounds_NG.getHost();
this.onLogin = new io_newgrounds_utils_Dispatcher();
this.onLogOut = new io_newgrounds_utils_Dispatcher();
this.onMedalsLoaded = new io_newgrounds_utils_Dispatcher();
this.onScoreBoardsLoaded = new io_newgrounds_utils_Dispatcher();
this.attemptingLogin = sessionId != null;
io_newgrounds_NGLite.call(this,appId,sessionId,debug,onSessionFail);
};
$hxClasses["io.newgrounds.NG"] = io_newgrounds_NG;
io_newgrounds_NG.__name__ = "io.newgrounds.NG";
io_newgrounds_NG.core = null;
io_newgrounds_NG.create = function(appId,sessionId,debug,onSessionFail) {
if(debug == null) {
debug = false;
}
if(appId == null) {
appId = "test";
}
io_newgrounds_NG.core = new io_newgrounds_NG(appId,sessionId,debug,onSessionFail);
io_newgrounds_NG.onCoreReady.dispatch();
};
io_newgrounds_NG.createAndCheckSession = function(appId,debug,backupSession,onSessionFail) {
if(debug == null) {
debug = false;
}
if(appId == null) {
appId = "test";
}
var session = io_newgrounds_NGLite.getSessionId();
if(session == null) {
session = backupSession;
}
io_newgrounds_NG.create(appId,session,debug,onSessionFail);
if(io_newgrounds_NG.core.sessionId != null) {
io_newgrounds_NG.core.attemptingLogin = true;
}
};
io_newgrounds_NG.openPassportHelper = function(url) {
var $window = "_blank";
window.open(url,$window);
};
io_newgrounds_NG.getHost = function() {
var url = window.document.location.href;
if(url == null || url == "") {
return "AppView";
}
if(url.indexOf("file") == 0 || url.indexOf("127.0.0.1") != -1) {
return "LocalHost";
}
if(io_newgrounds_NG.urlParser.match(url)) {
return io_newgrounds_NG.urlParser.matched(1);
}
return "Unknown";
};
io_newgrounds_NG.__super__ = io_newgrounds_NGLite;
io_newgrounds_NG.prototype = $extend(io_newgrounds_NGLite.prototype,{
get_user: function() {
if(this._session == null) {
return null;
}
return this._session.user;
}
,get_passportUrl: function() {
if(this._session == null || io_newgrounds_objects_Session.get_status(this._session) != "request-login") {
return null;
}
return this._session.passport_url;
}
,medals: null
,scoreBoards: null
,onLogin: null
,onLogOut: null
,onMedalsLoaded: null
,onScoreBoardsLoaded: null
,loggedIn: null
,attemptingLogin: null
,_loginCancelled: null
,_passportCallback: null
,_session: null
,checkInitialSession: function(failHandler,response) {
this.onSessionReceive(response,null,null,failHandler);
}
,requestLogin: function(onSuccess,onPending,onFail,onCancel) {
if(this.attemptingLogin) {
this.logError("cannot request another login until the previous attempt is complete",{ fileName : "io/newgrounds/NG.hx", lineNumber : 157, className : "io.newgrounds.NG", methodName : "requestLogin"});
return;
}
if(this.loggedIn) {
this.logError("cannot log in, already logged in",{ fileName : "io/newgrounds/NG.hx", lineNumber : 163, className : "io.newgrounds.NG", methodName : "requestLogin"});
return;
}
this.attemptingLogin = true;
this._loginCancelled = false;
this._passportCallback = null;
var _g = $bind(this,this.onSessionReceive);
var onSuccess1 = onSuccess;
var onPending1 = onPending;
var onFail1 = onFail;
var onCancel1 = onCancel;
var call = function(response) {
_g(response,onSuccess1,onPending1,onFail1,onCancel1);
};
var call1 = this.calls.app.startSession(true).addDataHandler(call);
if(onFail != null) {
call1.addErrorHandler(onFail);
}
call1.send();
}
,onSessionReceive: function(response,onSuccess,onPending,onFail,onCancel) {
if(!response.success || !response.result.data.success) {
this.set_sessionId(null);
this.endLoginAndCall(null);
if(onFail != null) {
onFail(!response.success ? response.error : response.result.data.error);
}
return;
}
this._session = response.result.data.session;
this.set_sessionId(this._session.id);
var any = "session started - status: " + io_newgrounds_objects_Session.get_status(this._session);
if(this.verbose) {
this.log(any,{ fileName : "io/newgrounds/NG.hx", lineNumber : 202, className : "io.newgrounds.NG", methodName : "onSessionReceive"});
}
if(io_newgrounds_objects_Session.get_status(this._session) == "request-login") {
var _g = $bind(this,this.checkSession);
var response = null;
var onSuccess1 = onSuccess;
var onCancel1 = onCancel;
this._passportCallback = function() {
_g(response,onSuccess1,onCancel1);
};
if(onPending != null) {
onPending();
} else {
this.openPassportUrl();
}
} else {
this.checkSession(null,onSuccess,onCancel);
}
}
,openPassportUrl: function() {
if(this.get_passportUrl() != null) {
var any = "loading passport: " + this.get_passportUrl();
if(this.verbose) {
this.log(any,{ fileName : "io/newgrounds/NG.hx", lineNumber : 224, className : "io.newgrounds.NG", methodName : "openPassportUrl"});
}
io_newgrounds_NG.openPassportHelper(this.get_passportUrl());
this.dispatchPassportCallback();
} else {
this.logError("Cannot open passport",{ fileName : "io/newgrounds/NG.hx", lineNumber : 229, className : "io.newgrounds.NG", methodName : "openPassportUrl"});
}
}
,onPassportUrlOpen: function() {
this.dispatchPassportCallback();
}
,dispatchPassportCallback: function() {
if(this._passportCallback != null) {
if(this.verbose) {
this.log("dispatching passport callback",{ fileName : "io/newgrounds/NG.hx", lineNumber : 271, className : "io.newgrounds.NG", methodName : "dispatchPassportCallback"});
}
var callback = this._passportCallback;
this._passportCallback = null;
callback();
}
}
,checkSession: function(response,onSuccess,onCancel) {
var _gthis = this;
if(this._loginCancelled) {
this.log("login cancelled via cancelLoginRequest",{ fileName : "io/newgrounds/NG.hx", lineNumber : 282, className : "io.newgrounds.NG", methodName : "checkSession"});
this.endLoginAndCall(onCancel);
return;
}
if(response != null) {
if(!response.success || !response.result.data.success) {
this.log("login cancelled via passport",{ fileName : "io/newgrounds/NG.hx", lineNumber : 292, className : "io.newgrounds.NG", methodName : "checkSession"});
this.endLoginAndCall(onCancel);
return;
}
if(this.verbose) {
this.log("Session received",{ fileName : "io/newgrounds/NG.hx", lineNumber : 298, className : "io.newgrounds.NG", methodName : "checkSession"});
}
this._session = response.result.data.session;
}
if(io_newgrounds_objects_Session.get_status(this._session) == "user-loaded") {
this.loggedIn = true;
this.endLoginAndCall(onSuccess);
this.onLogin.dispatch();
} else if(io_newgrounds_objects_Session.get_status(this._session) == "request-login") {
var _g = $bind(this,this.checkSession);
var onSuccess1 = onSuccess;
var onCancel1 = onCancel;
var call = function(response) {
_g(response,onSuccess1,onCancel1);
};
var call1 = this.calls.app.checkSession().addDataHandler(call);
this.timer(3.0,function() {
if(_gthis.verbose) {
_gthis.log("3s elapsed, checking session again",{ fileName : "io/newgrounds/NG.hx", lineNumber : 317, className : "io.newgrounds.NG", methodName : "checkSession"});
}
if(!_gthis._loginCancelled) {
call1.send();
} else {
_gthis.log("login cancelled via cancelLoginRequest",{ fileName : "io/newgrounds/NG.hx", lineNumber : 324, className : "io.newgrounds.NG", methodName : "checkSession"});
_gthis.endLoginAndCall(onCancel);
}
});
} else {
this.log("login cancelled via passport",{ fileName : "io/newgrounds/NG.hx", lineNumber : 332, className : "io.newgrounds.NG", methodName : "checkSession"});
this.endLoginAndCall(onCancel);
}
}
,cancelLoginRequest: function() {
if(this.attemptingLogin) {
this._loginCancelled = true;
this.dispatchPassportCallback();
}
}
,endLoginAndCall: function(callback) {
this.attemptingLogin = false;
this._loginCancelled = false;
if(callback != null) {
callback();
}
}
,logOut: function(onComplete) {
var call = this.calls.app.endSession().addSuccessHandler($bind(this,this.onLogOutSuccessful));
if(onComplete != null) {
call.addSuccessHandler(onComplete);
}
call.addSuccessHandler(($_=this.onLogOut,$bind($_,$_.dispatch))).send();
}
,onLogOutSuccessful: function() {
this._session = null;
this.set_sessionId(null);
this.loggedIn = false;
}
,requestMedals: function(onSuccess,onFail) {
var call = this.calls.medal.getList().addDataHandler($bind(this,this.onMedalsReceived));
if(onSuccess != null) {
call.addSuccessHandler(onSuccess);
}
if(onFail != null) {
call.addErrorHandler(onFail);
}
call.send();
}
,onMedalsReceived: function(response) {
if(!response.success || !response.result.data.success) {
return;
}
var idList = [];
if(this.medals == null) {
this.medals = new haxe_ds_IntMap();
var _g = 0;
var _g1 = response.result.data.medals;
while(_g < _g1.length) {
var medalData = _g1[_g];
++_g;
var medal = new io_newgrounds_objects_Medal(this,medalData);
this.medals.h[medal._data.id] = medal;
idList.push(medal._data.id);
}
} else {
var _g = 0;
var _g1 = response.result.data.medals;
while(_g < _g1.length) {
var medalData = _g1[_g];
++_g;
this.medals.h[medalData.id].parse(medalData);
idList.push(medalData.id);
}
}
var any = "" + response.result.data.medals.length + " Medals received [" + idList.join(", ") + "]";
if(this.verbose) {
this.log(any,{ fileName : "io/newgrounds/NG.hx", lineNumber : 421, className : "io.newgrounds.NG", methodName : "onMedalsReceived"});
}
this.onMedalsLoaded.dispatch();
}
,requestScoreBoards: function(onSuccess,onFail) {
if(this.scoreBoards != null) {
this.log("aborting scoreboard request, all scoreboards are loaded",{ fileName : "io/newgrounds/NG.hx", lineNumber : 434, className : "io.newgrounds.NG", methodName : "requestScoreBoards"});
if(onSuccess != null) {
onSuccess();
}
return;
}
var call = this.calls.scoreBoard.getBoards().addDataHandler($bind(this,this.onBoardsReceived));
if(onSuccess != null) {
call.addSuccessHandler(onSuccess);
}
if(onFail != null) {
call.addErrorHandler(onFail);
}
call.send();
}
,onBoardsReceived: function(response) {
if(!response.success || !response.result.data.success) {
return;
}
var idList = [];
if(this.scoreBoards == null) {
this.scoreBoards = new haxe_ds_IntMap();
var _g = 0;
var _g1 = response.result.data.scoreboards;
while(_g < _g1.length) {
var boardData = _g1[_g];
++_g;
var board = new io_newgrounds_objects_ScoreBoard(this,boardData);
this.scoreBoards.h[board._data.id] = board;
idList.push(board._data.id);
}
}
var any = "" + response.result.data.scoreboards.length + " ScoreBoards received [" + idList.join(", ") + "]";
if(this.verbose) {
this.log(any,{ fileName : "io/newgrounds/NG.hx", lineNumber : 473, className : "io.newgrounds.NG", methodName : "onBoardsReceived"});
}
this.onScoreBoardsLoaded.dispatch();
}
,timer: function(delay,callback) {
var timer = new haxe_Timer(delay * 1000 | 0);
var func = function() {
timer.stop();
callback();
};
timer.run = func;
}
,__class__: io_newgrounds_NG
,__properties__: $extend(io_newgrounds_NGLite.prototype.__properties__,{get_passportUrl:"get_passportUrl",get_user:"get_user"})
});
var io_newgrounds_components_Component = function(core) {
this._core = core;
};
$hxClasses["io.newgrounds.components.Component"] = io_newgrounds_components_Component;
io_newgrounds_components_Component.__name__ = "io.newgrounds.components.Component";
io_newgrounds_components_Component.prototype = {
_core: null
,__class__: io_newgrounds_components_Component
};
var io_newgrounds_components_AppComponent = function(core) {
io_newgrounds_components_Component.call(this,core);
};
$hxClasses["io.newgrounds.components.AppComponent"] = io_newgrounds_components_AppComponent;
io_newgrounds_components_AppComponent.__name__ = "io.newgrounds.components.AppComponent";
io_newgrounds_components_AppComponent.__super__ = io_newgrounds_components_Component;
io_newgrounds_components_AppComponent.prototype = $extend(io_newgrounds_components_Component.prototype,{
startSession: function(force) {
if(force == null) {
force = false;
}
return new io_newgrounds_Call(this._core,"App.startSession").addComponentParameter("force",force,false);
}
,checkSession: function() {
return new io_newgrounds_Call(this._core,"App.checkSession",true);
}
,endSession: function() {
return new io_newgrounds_Call(this._core,"App.endSession",true);
}
,getCurrentVersion: function(version) {
return new io_newgrounds_Call(this._core,"App.getCurrentVersion").addComponentParameter("version",version);
}
,getHostLicense: function() {
return new io_newgrounds_Call(this._core,"App.getHostLicense").addComponentParameter("host",this._core.host);
}
,logView: function() {
return new io_newgrounds_Call(this._core,"App.logView").addComponentParameter("host",this._core.host);
}
,__class__: io_newgrounds_components_AppComponent
});
var io_newgrounds_components_ComponentList = function(core) {
this._core = core;
this.medal = new io_newgrounds_components_MedalComponent(this._core);
this.app = new io_newgrounds_components_AppComponent(this._core);
this.event = new io_newgrounds_components_EventComponent(this._core);
this.scoreBoard = new io_newgrounds_components_ScoreBoardComponent(this._core);
this.loader = new io_newgrounds_components_LoaderComponent(this._core);
this.gateway = new io_newgrounds_components_GatewayComponent(this._core);
};
$hxClasses["io.newgrounds.components.ComponentList"] = io_newgrounds_components_ComponentList;
io_newgrounds_components_ComponentList.__name__ = "io.newgrounds.components.ComponentList";
io_newgrounds_components_ComponentList.prototype = {
_core: null
,medal: null
,app: null
,event: null
,scoreBoard: null
,loader: null
,gateway: null
,__class__: io_newgrounds_components_ComponentList
};
var io_newgrounds_components_EventComponent = function(core) {
io_newgrounds_components_Component.call(this,core);
};
$hxClasses["io.newgrounds.components.EventComponent"] = io_newgrounds_components_EventComponent;
io_newgrounds_components_EventComponent.__name__ = "io.newgrounds.components.EventComponent";
io_newgrounds_components_EventComponent.__super__ = io_newgrounds_components_Component;
io_newgrounds_components_EventComponent.prototype = $extend(io_newgrounds_components_Component.prototype,{
logEvent: function(eventName) {
return new io_newgrounds_Call(this._core,"Event.logEvent").addComponentParameter("event_name",eventName).addComponentParameter("host",this._core.host);
}
,__class__: io_newgrounds_components_EventComponent
});
var io_newgrounds_components_GatewayComponent = function(core) {
io_newgrounds_components_Component.call(this,core);
};
$hxClasses["io.newgrounds.components.GatewayComponent"] = io_newgrounds_components_GatewayComponent;
io_newgrounds_components_GatewayComponent.__name__ = "io.newgrounds.components.GatewayComponent";
io_newgrounds_components_GatewayComponent.__super__ = io_newgrounds_components_Component;
io_newgrounds_components_GatewayComponent.prototype = $extend(io_newgrounds_components_Component.prototype,{
getDatetime: function() {
return new io_newgrounds_Call(this._core,"Gateway.getDatetime");
}
,getVersion: function() {
return new io_newgrounds_Call(this._core,"Gateway.getVersion");
}
,ping: function() {
return new io_newgrounds_Call(this._core,"Gateway.ping");
}
,__class__: io_newgrounds_components_GatewayComponent
});
var io_newgrounds_components_LoaderComponent = function(core) {
io_newgrounds_components_Component.call(this,core);
};
$hxClasses["io.newgrounds.components.LoaderComponent"] = io_newgrounds_components_LoaderComponent;
io_newgrounds_components_LoaderComponent.__name__ = "io.newgrounds.components.LoaderComponent";
io_newgrounds_components_LoaderComponent.__super__ = io_newgrounds_components_Component;
io_newgrounds_components_LoaderComponent.prototype = $extend(io_newgrounds_components_Component.prototype,{
loadAuthorUrl: function(redirect) {
if(redirect == null) {
redirect = false;
}
return new io_newgrounds_Call(this._core,"Loader.loadAuthorUrl").addComponentParameter("host",this._core.host).addComponentParameter("redirect",redirect,true);
}
,loadMoreGames: function(redirect) {
if(redirect == null) {
redirect = false;
}
return new io_newgrounds_Call(this._core,"Loader.loadMoreGames").addComponentParameter("host",this._core.host).addComponentParameter("redirect",redirect,true);
}
,loadNewgrounds: function(redirect) {
if(redirect == null) {
redirect = false;
}
return new io_newgrounds_Call(this._core,"Loader.loadNewgrounds").addComponentParameter("host",this._core.host).addComponentParameter("redirect",redirect,true);
}
,loadOfficialUrl: function(redirect) {
if(redirect == null) {
redirect = false;
}
return new io_newgrounds_Call(this._core,"Loader.loadOfficialUrl").addComponentParameter("host",this._core.host).addComponentParameter("redirect",redirect,true);
}
,loadReferral: function(redirect) {
if(redirect == null) {
redirect = false;
}
return new io_newgrounds_Call(this._core,"Loader.loadReferral").addComponentParameter("host",this._core.host).addComponentParameter("redirect",redirect,true);
}
,__class__: io_newgrounds_components_LoaderComponent
});
var io_newgrounds_components_MedalComponent = function(core) {
io_newgrounds_components_Component.call(this,core);
};
$hxClasses["io.newgrounds.components.MedalComponent"] = io_newgrounds_components_MedalComponent;
io_newgrounds_components_MedalComponent.__name__ = "io.newgrounds.components.MedalComponent";
io_newgrounds_components_MedalComponent.__super__ = io_newgrounds_components_Component;
io_newgrounds_components_MedalComponent.prototype = $extend(io_newgrounds_components_Component.prototype,{
unlock: function(id) {
return new io_newgrounds_Call(this._core,"Medal.unlock",true,true).addComponentParameter("id",id);
}
,getList: function() {
return new io_newgrounds_Call(this._core,"Medal.getList");
}
,__class__: io_newgrounds_components_MedalComponent
});
var io_newgrounds_components_ScoreBoardComponent = function(core) {
io_newgrounds_components_Component.call(this,core);
};
$hxClasses["io.newgrounds.components.ScoreBoardComponent"] = io_newgrounds_components_ScoreBoardComponent;
io_newgrounds_components_ScoreBoardComponent.__name__ = "io.newgrounds.components.ScoreBoardComponent";
io_newgrounds_components_ScoreBoardComponent.__super__ = io_newgrounds_components_Component;
io_newgrounds_components_ScoreBoardComponent.prototype = $extend(io_newgrounds_components_Component.prototype,{
allById: null
,getBoards: function() {
return new io_newgrounds_Call(this._core,"ScoreBoard.getBoards");
}
,getScores: function(id,limit,skip,period,social,tag,user) {
if(social == null) {
social = false;
}
if(period == null) {
period = "D";
}
if(skip == null) {
skip = 0;
}
if(limit == null) {
limit = 10;
}
if(user != null && typeof(user) != "string" && !(typeof(user) == "number" && ((user | 0) === user))) {
user = user.id;
}
return new io_newgrounds_Call(this._core,"ScoreBoard.getScores").addComponentParameter("id",id).addComponentParameter("limit",limit,10).addComponentParameter("skip",skip,0).addComponentParameter("period",period,"D").addComponentParameter("social",social,false).addComponentParameter("tag",tag,null).addComponentParameter("user",user,null);
}
,postScore: function(id,value,tag) {
return new io_newgrounds_Call(this._core,"ScoreBoard.postScore",true,true).addComponentParameter("id",id).addComponentParameter("value",value).addComponentParameter("tag",tag,null);
}
,createBoard: function(data) {
var board = new io_newgrounds_objects_ScoreBoard(this._core,data);
var _this = this._core;
if(_this.verbose) {
_this.log("created " + Std.string(board),{ fileName : "io/newgrounds/components/ScoreBoardComponent.hx", lineNumber : 93, className : "io.newgrounds.components.ScoreBoardComponent", methodName : "createBoard"});
}
this.allById.h[board._data.id] = board;
return board;
}
,__class__: io_newgrounds_components_ScoreBoardComponent
});
var io_newgrounds_crypto_Rc4 = function(key) {
this.index2 = 0;
this.index1 = 0;
this.perm = new haxe_io_Bytes(new ArrayBuffer(256));
var _g = 0;
while(_g < 256) {
var i = _g++;
this.perm.b[i] = i & 255;
}
var j = 0;
var _g = 0;
while(_g < 256) {
var i = _g++;
j = (j + this.perm.b[i] + key.b[i % key.length]) % 256;
var temp = this.perm.b[i];
this.perm.b[i] = this.perm.b[j] & 255;
this.perm.b[j] = temp & 255;
}
};
$hxClasses["io.newgrounds.crypto.Rc4"] = io_newgrounds_crypto_Rc4;
io_newgrounds_crypto_Rc4.__name__ = "io.newgrounds.crypto.Rc4";
io_newgrounds_crypto_Rc4.prototype = {
perm: null
,index1: null
,index2: null
,swap: function(i,j) {
var temp = this.perm.b[i];
this.perm.b[i] = this.perm.b[j] & 255;
this.perm.b[j] = temp & 255;
}
,crypt: function(input) {
var output = new haxe_io_Bytes(new ArrayBuffer(input.length));
var _g = 0;
var _g1 = input.length;
while(_g < _g1) {
var i = _g++;
this.index1 = (this.index1 + 1) % 256;
this.index2 = (this.index2 + this.perm.b[this.index1]) % 256;
var i1 = this.index1;
var j = this.index2;
var temp = this.perm.b[i1];
this.perm.b[i1] = this.perm.b[j] & 255;
this.perm.b[j] = temp & 255;
var j1 = (this.perm.b[this.index1] + this.perm.b[this.index2]) % 256;
output.b[i] = (input.b[i] ^ this.perm.b[j1]) & 255;
}
return output;
}
,__class__: io_newgrounds_crypto_Rc4
};
var io_newgrounds_objects_Error = {};
io_newgrounds_objects_Error.__properties__ = {get_message:"get_message",get_code:"get_code"};
io_newgrounds_objects_Error.get_code = function(this1) {
return this1.code;
};
io_newgrounds_objects_Error.get_message = function(this1) {
return this1.message;
};
io_newgrounds_objects_Error._new = function(message,code) {
var this1 = { message : message, code : code};
return this1;
};
io_newgrounds_objects_Error.toString = function(this1) {
return (this1.code != null ? "#" + this1.code + " - " : "") + this1.message;
};
var io_newgrounds_objects_Object = function(core,data) {
this._core = core;
this.onUpdate = new io_newgrounds_utils_Dispatcher();
if(data != null) {
this.parse(data);
}
};
$hxClasses["io.newgrounds.objects.Object"] = io_newgrounds_objects_Object;
io_newgrounds_objects_Object.__name__ = "io.newgrounds.objects.Object";
io_newgrounds_objects_Object.prototype = {
_core: null
,_data: null
,onUpdate: null
,parse: function(data) {
this._data = data;
this.onUpdate.dispatch();
}
,destroy: function() {
this._core = null;
}
,__class__: io_newgrounds_objects_Object
};
var io_newgrounds_objects_Medal = function(core,data) {
this.onUnlock = new io_newgrounds_utils_Dispatcher();
io_newgrounds_objects_Object.call(this,core,data);
};
$hxClasses["io.newgrounds.objects.Medal"] = io_newgrounds_objects_Medal;
io_newgrounds_objects_Medal.__name__ = "io.newgrounds.objects.Medal";
io_newgrounds_objects_Medal.__super__ = io_newgrounds_objects_Object;
io_newgrounds_objects_Medal.prototype = $extend(io_newgrounds_objects_Object.prototype,{
get_id: function() {
return this._data.id;
}
,get_name: function() {
return this._data.name;
}
,get_description: function() {
return this._data.description;
}
,get_icon: function() {
return this._data.icon;
}
,get_value: function() {
return this._data.value;
}
,get_difficulty: function() {
return this._data.difficulty;
}
,get_secret: function() {
return this._data.secret == 1;
}
,get_unlocked: function() {
return this._data.unlocked;
}
,onUnlock: null
,parse: function(data) {
var wasLocked = this._data == null || !this._data.unlocked;
io_newgrounds_objects_Object.prototype.parse.call(this,data);
if(wasLocked && this._data.unlocked) {
this.onUnlock.dispatch();
}
}
,sendUnlock: function() {
if(this._core.sessionId == null) {
this._data.unlocked = true;
this.onUnlock.dispatch();
}
this._core.calls.medal.unlock(this._data.id).addDataHandler($bind(this,this.onUnlockResponse)).send();
}
,onUnlockResponse: function(response) {
if(response.success && response.result.data.success) {
this.parse(response.result.data.medal);
if(!this._data.unlocked) {
this._data.unlocked = true;
this.onUnlock.dispatch();
}
}
}
,sendDebugUnlock: function() {
if(io_newgrounds_NG.core.sessionId == null) {
this.onUnlock.dispatch();
} else {
this._data.unlocked = false;
this.sendUnlock();
}
}
,get_difficultyName: function() {
switch(this._data.difficulty) {
case 1:
return "Easy";
case 2:
return "Moderate";
case 3:
return "Challenging";
case 4:
return "Difficult";
case 5:
return "Brutal";
default:
throw haxe_Exception.thrown("invalid difficulty: " + this._data.difficulty);
}
}
,toString: function() {
var tmp = "Medal: " + this._data.id + "@" + this._data.name + " (" + (this._data.unlocked ? "unlocked" : "locked") + ", " + this._data.value + " pts, ";
var tmp1;
switch(this._data.difficulty) {
case 1:
tmp1 = "Easy";
break;
case 2:
tmp1 = "Moderate";
break;
case 3:
tmp1 = "Challenging";
break;
case 4:
tmp1 = "Difficult";
break;
case 5:
tmp1 = "Brutal";
break;
default:
throw haxe_Exception.thrown("invalid difficulty: " + this._data.difficulty);
}
return tmp + tmp1 + ").";
}
,__class__: io_newgrounds_objects_Medal
,__properties__: {get_difficultyName:"get_difficultyName",get_unlocked:"get_unlocked",get_secret:"get_secret",get_difficulty:"get_difficulty",get_value:"get_value",get_icon:"get_icon",get_description:"get_description",get_name:"get_name",get_id:"get_id"}
});
var io_newgrounds_objects_Score = {};
io_newgrounds_objects_Score.__properties__ = {get_formattedValue:"get_formattedValue",get_formatted_value:"get_formatted_value"};
io_newgrounds_objects_Score.get_formatted_value = function(this1) {
return this1.formatted_value;
};
io_newgrounds_objects_Score.get_formattedValue = function(this1) {
return this1.formatted_value;
};
var io_newgrounds_objects_ScoreBoard = function(core,data) {
io_newgrounds_objects_Object.call(this,core,data);
};
$hxClasses["io.newgrounds.objects.ScoreBoard"] = io_newgrounds_objects_ScoreBoard;
io_newgrounds_objects_ScoreBoard.__name__ = "io.newgrounds.objects.ScoreBoard";
io_newgrounds_objects_ScoreBoard.__super__ = io_newgrounds_objects_Object;
io_newgrounds_objects_ScoreBoard.prototype = $extend(io_newgrounds_objects_Object.prototype,{
scores: null
,get_id: function() {
return this._data.id;
}
,get_name: function() {
return this._data.name;
}
,requestScores: function(limit,skip,period,social,tag,user) {
if(social == null) {
social = false;
}
if(period == null) {
period = "A";
}
if(skip == null) {
skip = 0;
}
if(limit == null) {
limit = 10;
}
this._core.calls.scoreBoard.getScores(this._data.id,limit,skip,period,social,tag,user).addDataHandler($bind(this,this.onScoresReceived)).send();
}
,onScoresReceived: function(response) {
if(!response.success || !response.result.data.success) {
return;
}
this.scores = response.result.data.scores;
var _this = this._core;
if(_this.verbose) {
_this.log("received " + this.scores.length + " scores",{ fileName : "io/newgrounds/objects/ScoreBoard.hx", lineNumber : 55, className : "io.newgrounds.objects.ScoreBoard", methodName : "onScoresReceived"});
}
this.onUpdate.dispatch();
}
,postScore: function(value,tag) {
this._core.calls.scoreBoard.postScore(this._data.id,value,tag).addDataHandler($bind(this,this.onScorePosted)).send();
}
,onScorePosted: function(response) {
}
,toString: function() {
return "ScoreBoard: " + this._data.id + "@" + this._data.name;
}
,__class__: io_newgrounds_objects_ScoreBoard
,__properties__: {get_name:"get_name",get_id:"get_id"}
});
var io_newgrounds_objects_Session = {};
io_newgrounds_objects_Session.__properties__ = {get_status:"get_status",get_passport_url:"get_passport_url",get_passportUrl:"get_passportUrl"};
io_newgrounds_objects_Session.get_passportUrl = function(this1) {
return this1.passport_url;
};
io_newgrounds_objects_Session.get_passport_url = function(this1) {
return this1.passport_url;
};
io_newgrounds_objects_Session.get_status = function(this1) {
if(this1.expired || this1.id == null || this1.id == "") {
return "session-expired";
}
if(this1.user != null && this1.user.name != null && this1.user.name != "") {
return "user-loaded";
}
return "request-login";
};
var io_newgrounds_objects_events_Response = {};
io_newgrounds_objects_events_Response.__properties__ = {get_appId:"get_appId",get_result:"get_result",get_debug:"get_debug",get_error:"get_error",get_success:"get_success"};
io_newgrounds_objects_events_Response.get_success = function(this1) {
return this1.success;
};
io_newgrounds_objects_events_Response.get_error = function(this1) {
return this1.error;
};
io_newgrounds_objects_events_Response.get_debug = function(this1) {
return this1.debug;
};
io_newgrounds_objects_events_Response.get_result = function(this1) {
return this1.result;
};
io_newgrounds_objects_events_Response.get_appId = function(this1) {
return this1.app_id;
};
io_newgrounds_objects_events_Response._new = function(core,reply) {
var this1;
try {
this1 = JSON.parse(reply);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this1 = JSON.parse("{\"success\":false,\"error\":{\"message\":\"Error parsing reply:'" + reply + "' error:'" + Std.string(e) + "'\",\"code\":0}}");
}
if(!this1.success) {
var tmp = this1.error;
core.logError("Call unseccessful: " + (tmp == null ? "null" : (tmp.code != null ? "#" + tmp.code + " - " : "") + tmp.message),{ fileName : "io/newgrounds/objects/events/Response.hx", lineNumber : 40, className : "io.newgrounds.objects.events._Response.Response_Impl_", methodName : "_new"});
} else if(!this1.result.data.success) {
var tmp = this1.result.data.error;
core.logError("" + this1.result.component + " fail: " + (tmp == null ? "null" : (tmp.code != null ? "#" + tmp.code + " - " : "") + tmp.message),{ fileName : "io/newgrounds/objects/events/Response.hx", lineNumber : 42, className : "io.newgrounds.objects.events._Response.Response_Impl_", methodName : "_new"});
}
return this1;
};
var io_newgrounds_objects_events_Result = {};
io_newgrounds_objects_events_Result.__properties__ = {get_error:"get_error",get_debug:"get_debug",get_success:"get_success",get_data:"get_data",get_echo:"get_echo",get_component:"get_component"};
io_newgrounds_objects_events_Result.get_component = function(this1) {
return this1.component;
};
io_newgrounds_objects_events_Result.get_echo = function(this1) {
return this1.echo;
};
io_newgrounds_objects_events_Result.get_data = function(this1) {
return this1.data;
};
io_newgrounds_objects_events_Result.get_success = function(this1) {
return this1.data.success;
};
io_newgrounds_objects_events_Result.get_debug = function(this1) {
return this1.data.debug;
};
io_newgrounds_objects_events_Result.get_error = function(this1) {
return this1.data.error;
};
var io_newgrounds_objects_events_GetHostResult = {};
io_newgrounds_objects_events_GetHostResult.__properties__ = {get_hostApproved:"get_hostApproved",get_host_approved:"get_host_approved"};
io_newgrounds_objects_events_GetHostResult.get_host_approved = function(this1) {
return this1.host_approved;
};
io_newgrounds_objects_events_GetHostResult.get_hostApproved = function(this1) {
return this1.host_approved;
};
var io_newgrounds_objects_events_GetCurrentVersionResult = {};
io_newgrounds_objects_events_GetCurrentVersionResult.__properties__ = {get_clientDeprecated:"get_clientDeprecated",get_client_deprecated:"get_client_deprecated",get_currentVersion:"get_currentVersion",get_current_version:"get_current_version"};
io_newgrounds_objects_events_GetCurrentVersionResult.get_current_version = function(this1) {
return this1.current_version;
};
io_newgrounds_objects_events_GetCurrentVersionResult.get_currentVersion = function(this1) {
return this1.current_version;
};
io_newgrounds_objects_events_GetCurrentVersionResult.get_client_deprecated = function(this1) {
return this1.client_deprecated;
};
io_newgrounds_objects_events_GetCurrentVersionResult.get_clientDeprecated = function(this1) {
return this1.client_deprecated;
};
var io_newgrounds_objects_events_LogEventResult = {};
io_newgrounds_objects_events_LogEventResult.__properties__ = {get_eventName:"get_eventName",get_event_name:"get_event_name"};
io_newgrounds_objects_events_LogEventResult.get_event_name = function(this1) {
return this1.event_name;
};
io_newgrounds_objects_events_LogEventResult.get_eventName = function(this1) {
return this1.event_name;
};
var io_newgrounds_objects_events_GetDateTimeResult = {};
io_newgrounds_objects_events_GetDateTimeResult.__properties__ = {get_dateTime:"get_dateTime",get_datetime:"get_datetime"};
io_newgrounds_objects_events_GetDateTimeResult.get_datetime = function(this1) {
return this1.datetime;
};
io_newgrounds_objects_events_GetDateTimeResult.get_dateTime = function(this1) {
return this1.datetime;
};
var io_newgrounds_objects_events_MedalUnlockResult = {};
io_newgrounds_objects_events_MedalUnlockResult.__properties__ = {get_medalScore:"get_medalScore",get_medal_score:"get_medal_score"};
io_newgrounds_objects_events_MedalUnlockResult.get_medal_score = function(this1) {
return this1.medal_score;
};
io_newgrounds_objects_events_MedalUnlockResult.get_medalScore = function(this1) {
return this1.medal_score;
};
var io_newgrounds_utils_AsyncHttp = function() { };
$hxClasses["io.newgrounds.utils.AsyncHttp"] = io_newgrounds_utils_AsyncHttp;
io_newgrounds_utils_AsyncHttp.__name__ = "io.newgrounds.utils.AsyncHttp";
io_newgrounds_utils_AsyncHttp.send = function(core,data,onData,onError,onStatus) {
if(core.verbose) {
core.log("sending: " + data,{ fileName : "io/newgrounds/utils/AsyncHttp.hx", lineNumber : 35, className : "io.newgrounds.utils.AsyncHttp", methodName : "send"});
}
io_newgrounds_utils_AsyncHttp.sendSync(core,data,onData,onError,onStatus);
};
io_newgrounds_utils_AsyncHttp.sendSync = function(core,data,onData,onError,onStatus) {
var http = new haxe_http_HttpJs("https://newgrounds.io/gateway_v3.php");
http.setParameter("input",data);
http.onData = onData;
http.onError = onError;
http.onStatus = onStatus;
http.request(true);
};
var io_newgrounds_utils_TypedDispatcher = function() {
this._list = [];
this._once = [];
};
$hxClasses["io.newgrounds.utils.TypedDispatcher"] = io_newgrounds_utils_TypedDispatcher;
io_newgrounds_utils_TypedDispatcher.__name__ = "io.newgrounds.utils.TypedDispatcher";
io_newgrounds_utils_TypedDispatcher.prototype = {
_list: null
,_once: null
,add: function(handler,once) {
if(once == null) {
once = false;
}
if(this._list.indexOf(handler) != -1) {
if(!once && this._once.indexOf(handler) != -1) {
HxOverrides.remove(this._once,handler);
}
return false;
}
this._list.unshift(handler);
if(once) {
this._once.unshift(handler);
}
return true;
}
,addOnce: function(handler) {
return this.add(handler,true);
}
,remove: function(handler) {
HxOverrides.remove(this._once,handler);
return HxOverrides.remove(this._list,handler);
}
,dispatch: function(arg) {
var i = this._list.length - 1;
while(i >= 0) {
var handler = this._list[i];
if(HxOverrides.remove(this._once,handler)) {
HxOverrides.remove(this._list,handler);
}
handler(arg);
--i;
}
}
,__class__: io_newgrounds_utils_TypedDispatcher
};
var js_Browser = function() { };
$hxClasses["js.Browser"] = js_Browser;
js_Browser.__name__ = "js.Browser";
js_Browser.getLocalStorage = function() {
try {
var s = window.localStorage;
s.getItem("");
if(s.length == 0) {
var key = "_hx_" + Math.random();
s.setItem(key,key);
s.removeItem(key);
}
return s;
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
return null;
}
};
js_Browser.createXMLHttpRequest = function() {
if(typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
}
if(typeof ActiveXObject != "undefined") {
return new ActiveXObject("Microsoft.XMLHTTP");
}
throw haxe_Exception.thrown("Unable to create XMLHttpRequest object.");
};
var js_html__$CanvasElement_CanvasUtil = function() { };
$hxClasses["js.html._CanvasElement.CanvasUtil"] = js_html__$CanvasElement_CanvasUtil;
js_html__$CanvasElement_CanvasUtil.__name__ = "js.html._CanvasElement.CanvasUtil";
js_html__$CanvasElement_CanvasUtil.getContextWebGL = function(canvas,attribs) {
var name = "webgl";
var ctx = canvas.getContext(name,attribs);
if(ctx != null) {
return ctx;
}
var name = "experimental-webgl";
var ctx = canvas.getContext(name,attribs);
if(ctx != null) {
return ctx;
}
return null;
};
var js_lib__$ArrayBuffer_ArrayBufferCompat = function() { };
$hxClasses["js.lib._ArrayBuffer.ArrayBufferCompat"] = js_lib__$ArrayBuffer_ArrayBufferCompat;
js_lib__$ArrayBuffer_ArrayBufferCompat.__name__ = "js.lib._ArrayBuffer.ArrayBufferCompat";
js_lib__$ArrayBuffer_ArrayBufferCompat.sliceImpl = function(begin,end) {
var u = new Uint8Array(this,begin,end == null ? null : end - begin);
var resultArray = new Uint8Array(u.byteLength);
resultArray.set(u);
return resultArray.buffer;
};
var lime__$internal_backend_html5_GameDeviceData = function() {
this.connected = true;
this.buttons = [];
this.axes = [];
};
$hxClasses["lime._internal.backend.html5.GameDeviceData"] = lime__$internal_backend_html5_GameDeviceData;
lime__$internal_backend_html5_GameDeviceData.__name__ = "lime._internal.backend.html5.GameDeviceData";
lime__$internal_backend_html5_GameDeviceData.prototype = {
connected: null
,id: null
,isGamepad: null
,buttons: null
,axes: null
,__class__: lime__$internal_backend_html5_GameDeviceData
};
var lime__$internal_backend_html5_HTML5AudioSource = function(parent) {
this.parent = parent;
this.id = -1;
this.gain = 1;
this.position = new lime_math_Vector4();
};
$hxClasses["lime._internal.backend.html5.HTML5AudioSource"] = lime__$internal_backend_html5_HTML5AudioSource;
lime__$internal_backend_html5_HTML5AudioSource.__name__ = "lime._internal.backend.html5.HTML5AudioSource";
lime__$internal_backend_html5_HTML5AudioSource.prototype = {
completed: null
,gain: null
,id: null
,length: null
,loops: null
,parent: null
,playing: null
,position: null
,dispose: function() {
}
,init: function() {
}
,play: function() {
if(this.playing || this.parent.buffer == null || this.parent.buffer.__srcHowl == 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 != null) {
this.parent.buffer.__srcHowl.pause(this.id);
}
}
,stop: function() {
this.playing = false;
if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null) {
this.parent.buffer.__srcHowl.stop(this.id);
this.parent.buffer.__srcHowl.off("end",$bind(this,this.howl_onEnd),this.id);
}
}
,howl_onEnd: function() {
this.playing = false;
if(this.loops > 0) {
this.loops--;
this.stop();
this.play();
return;
} else if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null) {
this.parent.buffer.__srcHowl.stop(this.id);
this.parent.buffer.__srcHowl.off("end",$bind(this,this.howl_onEnd),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 && this.parent.buffer.__srcHowl != null) {
var time = (this.parent.buffer.__srcHowl.seek(this.id) * 1000 | 0) - this.parent.offset;
if(time < 0) {
return 0;
}
return time;
}
return 0;
}
,setCurrentTime: function(value) {
if(this.parent.buffer != null && this.parent.buffer.__srcHowl != 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.parent.buffer.__srcHowl != 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 && this.parent.buffer.__srcHowl != null) {
return this.parent.buffer.__srcHowl.duration() * 1000 | 0;
}
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;
if(this.parent.buffer.__srcHowl != null && this.parent.buffer.__srcHowl.pos != null) {
this.parent.buffer.__srcHowl.pos(this.position.x,this.position.y,this.position.z,this.id);
}
return this.position;
}
,__class__: lime__$internal_backend_html5_HTML5AudioSource
};
var lime__$internal_backend_html5_HTML5HTTPRequest = function() {
this.validStatus0 = new EReg("Tizen","gi").match(window.navigator.userAgent);
};
$hxClasses["lime._internal.backend.html5.HTML5HTTPRequest"] = lime__$internal_backend_html5_HTML5HTTPRequest;
lime__$internal_backend_html5_HTML5HTTPRequest.__name__ = "lime._internal.backend.html5.HTML5HTTPRequest";
lime__$internal_backend_html5_HTML5HTTPRequest.originElement = null;
lime__$internal_backend_html5_HTML5HTTPRequest.originHostname = null;
lime__$internal_backend_html5_HTML5HTTPRequest.originPort = null;
lime__$internal_backend_html5_HTML5HTTPRequest.originProtocol = null;
lime__$internal_backend_html5_HTML5HTTPRequest.supportsImageProgress = null;
lime__$internal_backend_html5_HTML5HTTPRequest.loadImage = function(uri) {
var promise = new lime_app_Promise();
if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit) {
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++;
lime__$internal_backend_html5_HTML5HTTPRequest.__loadImage(uri,promise,0);
} else {
lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.add({ instance : null, uri : uri, promise : promise, type : "IMAGE", options : 0});
}
return promise.future;
};
lime__$internal_backend_html5_HTML5HTTPRequest.loadImageFromBytes = function(bytes,type) {
var uri = URL.createObjectURL(new Blob([bytes.b.bufferValue],{ type : type}));
if(uri != null) {
var promise = new lime_app_Promise();
if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit) {
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++;
lime__$internal_backend_html5_HTML5HTTPRequest.__loadImage(uri,promise,1);
} else {
lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.add({ instance : null, uri : uri, promise : promise, type : "IMAGE", options : 1});
}
return promise.future;
} else {
return lime__$internal_backend_html5_HTML5HTTPRequest.loadImage("data:" + type + ";base64," + lime__$internal_format_Base64.encode(bytes));
}
};
lime__$internal_backend_html5_HTML5HTTPRequest.processQueue = function() {
if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit && lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.length > 0) {
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++;
var queueItem = lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.pop();
switch(queueItem.type) {
case "BINARY":
queueItem.instance.__loadData(queueItem.uri,queueItem.promise);
break;
case "IMAGE":
lime__$internal_backend_html5_HTML5HTTPRequest.__loadImage(queueItem.uri,queueItem.promise,queueItem.options);
break;
case "TEXT":
queueItem.instance.__loadText(queueItem.uri,queueItem.promise);
break;
default:
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--;
}
}
};
lime__$internal_backend_html5_HTML5HTTPRequest.__createBlobURIFromBytes = function(bytes,type) {
return URL.createObjectURL(new Blob([bytes.b.bufferValue],{ type : type}));
};
lime__$internal_backend_html5_HTML5HTTPRequest.__fixHostname = function(hostname) {
if(hostname == null) {
return "";
} else {
return hostname;
}
};
lime__$internal_backend_html5_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;
};
lime__$internal_backend_html5_HTML5HTTPRequest.__fixProtocol = function(protocol) {
if(protocol == null || protocol == "") {
return "http:";
} else {
return protocol;
}
};
lime__$internal_backend_html5_HTML5HTTPRequest.__isInMemoryURI = function(uri) {
if(!StringTools.startsWith(uri,"data:")) {
return StringTools.startsWith(uri,"blob:");
} else {
return true;
}
};
lime__$internal_backend_html5_HTML5HTTPRequest.__isSameOrigin = function(path) {
if(path == null || path == "") {
return true;
}
if(lime__$internal_backend_html5_HTML5HTTPRequest.__isInMemoryURI(path)) {
return true;
}
if(lime__$internal_backend_html5_HTML5HTTPRequest.originElement == null) {
lime__$internal_backend_html5_HTML5HTTPRequest.originElement = window.document.createElement("a");
lime__$internal_backend_html5_HTML5HTTPRequest.originHostname = lime__$internal_backend_html5_HTML5HTTPRequest.__fixHostname($global.location.hostname);
lime__$internal_backend_html5_HTML5HTTPRequest.originProtocol = lime__$internal_backend_html5_HTML5HTTPRequest.__fixProtocol($global.location.protocol);
lime__$internal_backend_html5_HTML5HTTPRequest.originPort = lime__$internal_backend_html5_HTML5HTTPRequest.__fixPort($global.location.port,lime__$internal_backend_html5_HTML5HTTPRequest.originProtocol);
}
var a = lime__$internal_backend_html5_HTML5HTTPRequest.originElement;
a.href = path;
if(a.hostname == "") {
a.href = a.href;
}
var hostname = lime__$internal_backend_html5_HTML5HTTPRequest.__fixHostname(a.hostname);
var protocol = lime__$internal_backend_html5_HTML5HTTPRequest.__fixProtocol(a.protocol);
var port = lime__$internal_backend_html5_HTML5HTTPRequest.__fixPort(a.port,protocol);
var sameHost = hostname == "" || hostname == lime__$internal_backend_html5_HTML5HTTPRequest.originHostname;
var samePort = port == "" || port == lime__$internal_backend_html5_HTML5HTTPRequest.originPort;
if(protocol != "file:" && sameHost) {
return samePort;
} else {
return false;
}
};
lime__$internal_backend_html5_HTML5HTTPRequest.__loadImage = function(uri,promise,options) {
var image = new Image();
if(!lime__$internal_backend_html5_HTML5HTTPRequest.__isSameOrigin(uri)) {
image.crossOrigin = "Anonymous";
}
if(lime__$internal_backend_html5_HTML5HTTPRequest.supportsImageProgress == null) {
lime__$internal_backend_html5_HTML5HTTPRequest.supportsImageProgress = 'onprogress' in image;
}
if(lime__$internal_backend_html5_HTML5HTTPRequest.supportsImageProgress || lime__$internal_backend_html5_HTML5HTTPRequest.__isInMemoryURI(uri)) {
image.addEventListener("load",function(event) {
lime__$internal_backend_html5_HTML5HTTPRequest.__revokeBlobURI(uri,options);
var buffer = new lime_graphics_ImageBuffer(null,image.width,image.height);
buffer.__srcImage = image;
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--;
lime__$internal_backend_html5_HTML5HTTPRequest.processQueue();
promise.complete(new lime_graphics_Image(buffer));
},false);
image.addEventListener("progress",function(event) {
promise.progress(event.loaded,event.total);
},false);
image.addEventListener("error",function(event) {
lime__$internal_backend_html5_HTML5HTTPRequest.__revokeBlobURI(uri,options);
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--;
lime__$internal_backend_html5_HTML5HTTPRequest.processQueue();
promise.error(event.detail);
},false);
image.src = uri;
} else {
var request = new XMLHttpRequest();
request.onload = function(_) {
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--;
lime__$internal_backend_html5_HTML5HTTPRequest.processQueue();
var img = new lime_graphics_Image();
img.__fromBytes(haxe_io_Bytes.ofData(request.response),function(img) {
promise.complete(img);
});
};
request.onerror = function(event) {
promise.error(event.message);
};
request.onprogress = function(event) {
if(event.lengthComputable) {
promise.progress(event.loaded,event.total);
}
};
request.open("GET",uri,true);
request.responseType = "arraybuffer";
request.overrideMimeType("text/plain; charset=x-user-defined");
request.send(null);
}
};
lime__$internal_backend_html5_HTML5HTTPRequest.__revokeBlobURI = function(uri,options) {
if((options & 1) != 0) {
URL.revokeObjectURL(uri);
}
};
lime__$internal_backend_html5_HTML5HTTPRequest.prototype = {
binary: null
,parent: null
,request: null
,validStatus0: null
,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 = haxe_ds_StringMap.keysIterator(this.parent.formData.h);
while(key.hasNext()) {
var key1 = key.next();
if(query.length > 0) {
query += "&";
}
var value = this.parent.formData.h[key1];
if(key1.indexOf("[]") > -1 && ((value) instanceof Array)) {
var _g = [];
var x = $getIterator(value);
while(x.hasNext()) {
var x1 = x.next();
_g.push(encodeURIComponent(x1));
}
var arrayValue = _g.join("&amp;" + key1 + "=");
query += encodeURIComponent(key1) + "=" + arrayValue;
} else {
var query1 = encodeURIComponent(key1) + "=";
var s = Std.string(value);
query += query1 + encodeURIComponent(s);
}
}
if(this.parent.method == "GET" && query != "") {
if(uri.indexOf("?") > -1) {
uri += "&" + query;
} else {
uri += "?" + query;
}
query = "";
}
}
this.request.open(Std.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.b.bufferValue);
} else {
this.request.send(query);
}
}
,loadData: function(uri) {
var promise = new lime_app_Promise();
if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit) {
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++;
this.__loadData(uri,promise);
} else {
lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.add({ instance : this, uri : uri, promise : promise, type : "BINARY", options : 0});
}
return promise.future;
}
,loadText: function(uri) {
var promise = new lime_app_Promise();
if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit) {
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++;
this.__loadText(uri,promise);
} else {
lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.add({ instance : this, uri : uri, promise : promise, type : "TEXT", options : 0});
}
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.trim(HxOverrides.substr(line,0,line.indexOf(":")));
value = StringTools.trim(HxOverrides.substr(line,line.indexOf(":") + 1,null));
if(name != "") {
this.parent.responseHeaders.push(new lime_net_HTTPRequestHeader(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(event) {
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.ofString(_gthis.request.responseText);
}
} else if(_gthis.request.response != null) {
bytes = haxe_io_Bytes.ofData(_gthis.request.response);
}
_gthis.processResponse();
promise.complete(bytes);
} else {
_gthis.processResponse();
promise.error(_gthis.request.status);
}
_gthis.request = null;
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--;
lime__$internal_backend_html5_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(event) {
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;
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--;
lime__$internal_backend_html5_HTML5HTTPRequest.processQueue();
};
this.binary = false;
this.load(uri,progress,readyStateChange);
}
,__class__: lime__$internal_backend_html5_HTML5HTTPRequest
};
var lime__$internal_backend_html5_HTML5Window = function(parent) {
this.inputing = false;
this.unusedTouchesPool = new haxe_ds_List();
this.scale = 1.0;
this.currentTouches = new haxe_ds_IntMap();
this.parent = parent;
this.cursor = lime_ui_MouseCursor.DEFAULT;
this.cacheMouseX = 0;
this.cacheMouseY = 0;
var attributes = parent.__attributes;
if(!Object.prototype.hasOwnProperty.call(attributes,"context")) {
attributes.context = { };
}
this.renderType = attributes.context.type;
if(Object.prototype.hasOwnProperty.call(attributes,"element")) {
parent.element = attributes.element;
}
var element = parent.element;
if(Object.prototype.hasOwnProperty.call(attributes,"allowHighDPI") && attributes.allowHighDPI && this.renderType != "dom") {
this.scale = window.devicePixelRatio;
}
parent.__scale = this.scale;
this.setWidth = Object.prototype.hasOwnProperty.call(attributes,"width") ? attributes.width : 0;
this.setHeight = Object.prototype.hasOwnProperty.call(attributes,"height") ? attributes.height : 0;
parent.__width = this.setWidth;
parent.__height = this.setHeight;
parent.id = lime__$internal_backend_html5_HTML5Window.windowID++;
if(((element) instanceof HTMLCanvasElement)) {
this.canvas = element;
} else if(this.renderType == "dom") {
this.div = window.document.createElement("div");
} else {
this.canvas = window.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 style = this.div.style;
style.setProperty("-webkit-transform","translate3D(0,0,0)",null);
style.setProperty("transform","translate3D(0,0,0)",null);
style.position = "relative";
style.overflow = "hidden";
style.setProperty("-webkit-user-select","none",null);
style.setProperty("-moz-user-select","none",null);
style.setProperty("-ms-user-select","none",null);
style.setProperty("-o-user-select","none",null);
}
if(parent.__width == 0 && parent.__height == 0) {
if(element != null) {
parent.__width = element.clientWidth;
parent.__height = element.clientHeight;
} else {
parent.__width = window.innerWidth;
parent.__height = window.innerHeight;
}
this.cacheElementWidth = parent.__width;
this.cacheElementHeight = parent.__height;
this.resizeElement = true;
}
if(this.canvas != null) {
this.canvas.width = Math.round(parent.__width * this.scale);
this.canvas.height = Math.round(parent.__height * this.scale);
this.canvas.style.width = parent.__width + "px";
this.canvas.style.height = parent.__height + "px";
} else {
this.div.style.width = parent.__width + "px";
this.div.style.height = parent.__height + "px";
}
if(Object.prototype.hasOwnProperty.call(attributes,"resizable") && attributes.resizable || !Object.prototype.hasOwnProperty.call(attributes,"width") && this.setWidth == 0 && this.setHeight == 0) {
parent.__resizable = true;
}
this.updateSize();
if(element != null) {
if(this.canvas != null) {
if(element != this.canvas) {
element.appendChild(this.canvas);
}
} else {
element.appendChild(this.div);
}
var events = ["mousedown","mouseenter","mouseleave","mousemove","mouseup","wheel"];
var _g = 0;
while(_g < events.length) {
var event = events[_g];
++_g;
element.addEventListener(event,$bind(this,this.handleMouseEvent),true);
}
element.addEventListener("contextmenu",$bind(this,this.handleContextMenuEvent),true);
element.addEventListener("dragstart",$bind(this,this.handleDragEvent),true);
element.addEventListener("dragover",$bind(this,this.handleDragEvent),true);
element.addEventListener("drop",$bind(this,this.handleDragEvent),true);
element.addEventListener("touchstart",$bind(this,this.handleTouchEvent),true);
element.addEventListener("touchmove",$bind(this,this.handleTouchEvent),true);
element.addEventListener("touchend",$bind(this,this.handleTouchEvent),true);
element.addEventListener("touchcancel",$bind(this,this.handleTouchEvent),true);
element.addEventListener("gamepadconnected",$bind(this,this.handleGamepadEvent),true);
element.addEventListener("gamepaddisconnected",$bind(this,this.handleGamepadEvent),true);
}
this.createContext();
if(parent.context.type == "webgl") {
this.canvas.addEventListener("webglcontextlost",$bind(this,this.handleContextEvent),false);
this.canvas.addEventListener("webglcontextrestored",$bind(this,this.handleContextEvent),false);
}
};
$hxClasses["lime._internal.backend.html5.HTML5Window"] = lime__$internal_backend_html5_HTML5Window;
lime__$internal_backend_html5_HTML5Window.__name__ = "lime._internal.backend.html5.HTML5Window";
lime__$internal_backend_html5_HTML5Window.textArea = null;
lime__$internal_backend_html5_HTML5Window.textInput = null;
lime__$internal_backend_html5_HTML5Window.prototype = {
canvas: null
,div: null
,cacheElementHeight: null
,cacheElementWidth: null
,cacheMouseX: null
,cacheMouseY: null
,cursor: null
,currentTouches: null
,isFullscreen: null
,parent: null
,primaryTouch: null
,renderType: null
,requestedFullscreen: null
,resizeElement: null
,scale: null
,setHeight: null
,setWidth: null
,textInputEnabled: null
,unusedTouchesPool: null
,alert: function(message,title) {
if(message != null) {
window.alert(Std.string(message));
}
}
,close: function() {
this.parent.application.__removeWindow(this.parent);
}
,createContext: function() {
var context = new lime_graphics_RenderContext();
var contextAttributes = this.parent.__attributes.context;
context.window = this.parent;
context.attributes = contextAttributes;
if(this.div != null) {
context.dom = this.div;
context.type = "dom";
context.version = "";
} else if(this.canvas != null) {
var webgl = null;
var forceCanvas = this.renderType == "canvas";
var forceWebGL = this.renderType == "opengl" || this.renderType == "opengles" || this.renderType == "webgl";
var allowWebGL2 = !Object.prototype.hasOwnProperty.call(contextAttributes,"version") || contextAttributes.version != "1";
var isWebGL2 = false;
if(forceWebGL || !forceCanvas && (!Object.prototype.hasOwnProperty.call(contextAttributes,"hardware") || contextAttributes.hardware)) {
var transparentBackground = Object.prototype.hasOwnProperty.call(contextAttributes,"background") && contextAttributes.background == null;
var colorDepth = Object.prototype.hasOwnProperty.call(contextAttributes,"colorDepth") ? contextAttributes.colorDepth : 16;
var options = Object.prototype.hasOwnProperty.call(contextAttributes,"antialiasing") && contextAttributes.antialiasing > 0;
var options1 = Object.prototype.hasOwnProperty.call(contextAttributes,"depth") ? contextAttributes.depth : true;
var options2 = Object.prototype.hasOwnProperty.call(contextAttributes,"stencil") && contextAttributes.stencil;
var options3 = { alpha : transparentBackground || colorDepth > 16, antialias : options, depth : options1, premultipliedAlpha : true, stencil : options2, preserveDrawingBuffer : false, failIfMajorPerformanceCaveat : 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.canvas.getContext(name,options3);
if(webgl != null && name == "webgl2") {
isWebGL2 = true;
}
if(webgl != null) {
break;
}
}
}
if(webgl == null) {
context.canvas2D = this.canvas.getContext("2d");
context.type = "canvas";
context.version = "";
} else {
context.webgl = lime_graphics_WebGLRenderContext.fromWebGL2RenderContext(webgl);
if(isWebGL2) {
context.webgl2 = webgl;
}
if(lime_graphics_opengl_GL.context == null) {
lime_graphics_opengl_GL.context = webgl;
lime_graphics_opengl_GL.type = "webgl";
lime_graphics_opengl_GL.version = isWebGL2 ? 2 : 1;
}
context.type = "webgl";
context.version = isWebGL2 ? "2" : "1";
}
}
this.parent.context = context;
}
,focus: function() {
}
,getCursor: function() {
return this.cursor;
}
,getDisplay: function() {
return lime_system_System.getDisplay(0);
}
,getDisplayMode: function() {
return lime_system_System.getDisplay(0).currentMode;
}
,getFrameRate: function() {
if(this.parent.application == null) {
return 0;
}
if(this.parent.application.__backend.framePeriod < 0) {
return 60;
} else if(this.parent.application.__backend.framePeriod == 1000) {
return 0;
} else {
return 1000 / this.parent.application.__backend.framePeriod;
}
}
,getMouseLock: function() {
return false;
}
,getTextInputEnabled: function() {
return this.textInputEnabled;
}
,handleContextEvent: function(event) {
switch(event.type) {
case "webglcontextlost":
if(event.cancelable) {
event.preventDefault();
}
var tmp = lime_graphics_opengl_GL.context != null;
this.parent.context = null;
this.parent.onRenderContextLost.dispatch();
break;
case "webglcontextrestored":
this.createContext();
this.parent.onRenderContextRestored.dispatch(this.parent.context);
break;
default:
}
}
,handleContextMenuEvent: function(event) {
if((this.parent.onMouseUp.canceled || this.parent.onMouseDown.canceled) && event.cancelable) {
event.preventDefault();
}
}
,handleCutOrCopyEvent: function(event) {
event.clipboardData.setData("text/plain",lime_system_Clipboard.get_text());
if(event.cancelable) {
event.preventDefault();
}
}
,handleDragEvent: function(event) {
switch(event.type) {
case "dragover":
event.preventDefault();
return false;
case "dragstart":
if((js_Boot.__cast(event.target , HTMLElement)).nodeName.toLowerCase() == "img" && event.cancelable) {
event.preventDefault();
return false;
}
break;
case "drop":
if(event.dataTransfer != null && event.dataTransfer.files.length > 0) {
this.parent.onDropFile.dispatch(event.dataTransfer.files);
event.preventDefault();
return false;
}
break;
}
return true;
}
,handleFocusEvent: function(event) {
var _gthis = this;
if(this.textInputEnabled) {
if(event.relatedTarget == null || this.isDescendent(event.relatedTarget)) {
haxe_Timer.delay(function() {
if(_gthis.textInputEnabled) {
lime__$internal_backend_html5_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;
this.parent.onRestore.dispatch();
var changeEvents = ["fullscreenchange","mozfullscreenchange","webkitfullscreenchange","MSFullscreenChange"];
var errorEvents = ["fullscreenerror","mozfullscreenerror","webkitfullscreenerror","MSFullscreenError"];
var _g = 0;
var _g1 = changeEvents.length;
while(_g < _g1) {
var i = _g++;
window.document.removeEventListener(changeEvents[i],$bind(this,this.handleFullscreenEvent),false);
window.document.removeEventListener(errorEvents[i],$bind(this,this.handleFullscreenEvent),false);
}
}
}
,handleGamepadEvent: function(event) {
switch(event.type) {
case "gamepadconnected":
lime_ui_Joystick.__connect(event.gamepad.index);
if(event.gamepad.mapping == "standard") {
lime_ui_Gamepad.__connect(event.gamepad.index);
}
break;
case "gamepaddisconnected":
lime_ui_Joystick.__disconnect(event.gamepad.index);
lime_ui_Gamepad.__disconnect(event.gamepad.index);
break;
default:
}
}
,handleInputEvent: function(event) {
if(this.inputing) {
return;
}
if(lime__$internal_backend_html5_HTML5Window.textInput.value != lime__$internal_backend_html5_HTML5Window.dummyCharacter) {
var value = StringTools.replace(lime__$internal_backend_html5_HTML5Window.textInput.value,lime__$internal_backend_html5_HTML5Window.dummyCharacter,"");
if(value.length > 0) {
this.parent.onTextInput.dispatch(value);
}
lime__$internal_backend_html5_HTML5Window.textInput.value = lime__$internal_backend_html5_HTML5Window.dummyCharacter;
}
}
,handleMouseEvent: function(event) {
var x = 0.0;
var y = 0.0;
if(event.type != "wheel") {
if(this.parent.element != null) {
if(this.canvas != null) {
var rect = this.canvas.getBoundingClientRect();
x = (event.clientX - rect.left) * (this.parent.__width / rect.width);
y = (event.clientY - rect.top) * (this.parent.__height / rect.height);
} else if(this.div != null) {
var rect = this.div.getBoundingClientRect();
x = event.clientX - rect.left;
y = event.clientY - rect.top;
} else {
var rect = this.parent.element.getBoundingClientRect();
x = (event.clientX - rect.left) * (this.parent.__width / rect.width);
y = (event.clientY - rect.top) * (this.parent.__height / rect.height);
}
} else {
x = event.clientX;
y = event.clientY;
}
switch(event.type) {
case "mousedown":
if(event.currentTarget == this.parent.element) {
window.addEventListener("mouseup",$bind(this,this.handleMouseEvent));
}
this.parent.onMouseDown.dispatch(x,y,event.button);
if(this.parent.onMouseDown.canceled && event.cancelable) {
event.preventDefault();
}
break;
case "mouseenter":
if(event.target == this.parent.element) {
this.parent.onEnter.dispatch();
if(this.parent.onEnter.canceled && event.cancelable) {
event.preventDefault();
}
}
break;
case "mouseleave":
if(event.target == this.parent.element) {
this.parent.onLeave.dispatch();
if(this.parent.onLeave.canceled && event.cancelable) {
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.cancelable) {
event.preventDefault();
}
}
break;
case "mouseup":
window.removeEventListener("mouseup",$bind(this,this.handleMouseEvent));
if(event.currentTarget == this.parent.element) {
event.stopPropagation();
}
this.parent.onMouseUp.dispatch(x,y,event.button);
if(this.parent.onMouseUp.canceled && event.cancelable) {
event.preventDefault();
}
break;
default:
}
this.cacheMouseX = x;
this.cacheMouseY = y;
} else {
var deltaMode;
switch(event.deltaMode) {
case 0:
deltaMode = lime_ui_MouseWheelMode.PIXELS;
break;
case 1:
deltaMode = lime_ui_MouseWheelMode.LINES;
break;
case 2:
deltaMode = lime_ui_MouseWheelMode.PAGES;
break;
default:
deltaMode = lime_ui_MouseWheelMode.UNKNOWN;
}
this.parent.onMouseWheel.dispatch(event.deltaX,-event.deltaY,deltaMode);
if(this.parent.onMouseWheel.canceled && event.cancelable) {
event.preventDefault();
}
}
}
,handlePasteEvent: function(event) {
if(event.clipboardData.types.indexOf("text/plain") > -1) {
var text = event.clipboardData.getData("text/plain");
lime_system_Clipboard.set_text(text);
if(this.textInputEnabled) {
this.parent.onTextInput.dispatch(text);
}
if(event.cancelable) {
event.preventDefault();
}
}
}
,handleResizeEvent: function(event) {
this.primaryTouch = null;
this.updateSize();
}
,handleTouchEvent: function(event) {
if(event.cancelable) {
event.preventDefault();
}
var rect = null;
if(this.parent.element != null) {
if(this.canvas != null) {
rect = this.canvas.getBoundingClientRect();
} else if(this.div != null) {
rect = this.div.getBoundingClientRect();
} else {
rect = this.parent.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(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.h[data.identifier] = touch;
lime_ui_Touch.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.h[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;
switch(event.type) {
case "touchcancel":
lime_ui_Touch.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.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.onMove.dispatch(touch);
if(touch == this.primaryTouch) {
this.parent.onMouseMove.dispatch(x,y);
}
break;
default:
}
}
}
}
}
,isDescendent: function(node) {
if(node == this.parent.element) {
return true;
}
while(node != null) {
if(node.parentNode == this.parent.element) {
return true;
}
node = node.parentNode;
}
return false;
}
,move: function(x,y) {
}
,readPixels: function(rect) {
if(this.canvas != null) {
var stageRect = new lime_math_Rectangle(0,0,this.canvas.width,this.canvas.height);
if(rect == null) {
rect = stageRect;
} else {
rect.intersection(stageRect,rect);
}
if(rect.width > 0 && rect.height > 0) {
var canvas2 = window.document.createElement("canvas");
canvas2.width = rect.width | 0;
canvas2.height = rect.height | 0;
var context = canvas2.getContext("2d");
context.drawImage(this.canvas,-rect.x,-rect.y);
return lime_graphics_Image.fromCanvas(canvas2);
}
}
return null;
}
,resize: function(width,height) {
}
,setBorderless: function(value) {
return value;
}
,setClipboard: function(value) {
if(lime__$internal_backend_html5_HTML5Window.textArea == null) {
lime__$internal_backend_html5_HTML5Window.textArea = window.document.createElement("textarea");
lime__$internal_backend_html5_HTML5Window.textArea.style.height = "0px";
lime__$internal_backend_html5_HTML5Window.textArea.style.left = "-100px";
lime__$internal_backend_html5_HTML5Window.textArea.style.opacity = "0";
lime__$internal_backend_html5_HTML5Window.textArea.style.position = "fixed";
lime__$internal_backend_html5_HTML5Window.textArea.style.top = "-100px";
lime__$internal_backend_html5_HTML5Window.textArea.style.width = "0px";
window.document.body.appendChild(lime__$internal_backend_html5_HTML5Window.textArea);
}
lime__$internal_backend_html5_HTML5Window.textArea.value = value;
lime__$internal_backend_html5_HTML5Window.textArea.focus();
lime__$internal_backend_html5_HTML5Window.textArea.select();
if(window.document.queryCommandEnabled("copy")) {
window.document.execCommand("copy");
}
}
,setCursor: function(value) {
if(this.cursor != value) {
if(value == null) {
this.parent.element.style.cursor = "none";
} else {
var tmp;
switch(value._hx_index) {
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.parent.element.style.cursor = tmp;
}
this.cursor = value;
}
return this.cursor;
}
,setDisplayMode: function(value) {
return value;
}
,setFrameRate: function(value) {
if(this.parent.application != null) {
if(value >= 60) {
if(this.parent == this.parent.application.__window) {
this.parent.application.__backend.framePeriod = -1;
}
} else if(value > 0) {
if(this.parent == this.parent.application.__window) {
this.parent.application.__backend.framePeriod = 1000 / value;
}
} else if(this.parent == this.parent.application.__window) {
this.parent.application.__backend.framePeriod = 1000;
}
}
return value;
}
,setFullscreen: function(value) {
if(value) {
if(!this.requestedFullscreen && !this.isFullscreen) {
this.requestedFullscreen = true;
if(($_=this.parent.element,$bind($_,$_.requestFullscreen))) {
document.addEventListener("fullscreenchange",$bind(this,this.handleFullscreenEvent),false);
document.addEventListener("fullscreenerror",$bind(this,this.handleFullscreenEvent),false);
this.parent.element.requestFullscreen();
} else if(this.parent.element.mozRequestFullScreen) {
document.addEventListener("mozfullscreenchange",$bind(this,this.handleFullscreenEvent),false);
document.addEventListener("mozfullscreenerror",$bind(this,this.handleFullscreenEvent),false);
this.parent.element.mozRequestFullScreen();
} else if(this.parent.element.webkitRequestFullscreen) {
document.addEventListener("webkitfullscreenchange",$bind(this,this.handleFullscreenEvent),false);
document.addEventListener("webkitfullscreenerror",$bind(this,this.handleFullscreenEvent),false);
this.parent.element.webkitRequestFullscreen();
} else if(this.parent.element.msRequestFullscreen) {
document.addEventListener("MSFullscreenChange",$bind(this,this.handleFullscreenEvent),false);
document.addEventListener("MSFullscreenError",$bind(this,this.handleFullscreenEvent),false);
this.parent.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__$internal_graphics_ImageCanvasUtil.convertToCanvas(image);
var link = window.document.querySelector("link[rel*='icon']");
if(link == null) {
link = window.document.createElement("link");
}
link.type = "image/x-icon";
link.rel = "shortcut icon";
link.href = image.buffer.get_src().toDataURL("image/x-icon");
window.document.getElementsByTagName("head")[0].appendChild(link);
}
,setMaximized: function(value) {
return false;
}
,setMinimized: function(value) {
return false;
}
,setMouseLock: function(value) {
}
,setResizable: function(value) {
return value;
}
,setTextInputEnabled: function(value) {
if(value) {
if(lime__$internal_backend_html5_HTML5Window.textInput == null) {
lime__$internal_backend_html5_HTML5Window.textInput = window.document.createElement("input");
lime__$internal_backend_html5_HTML5Window.textInput.type = "text";
lime__$internal_backend_html5_HTML5Window.textInput.style.position = "absolute";
lime__$internal_backend_html5_HTML5Window.textInput.style.opacity = "0";
lime__$internal_backend_html5_HTML5Window.textInput.style.color = "transparent";
lime__$internal_backend_html5_HTML5Window.textInput.value = lime__$internal_backend_html5_HTML5Window.dummyCharacter;
lime__$internal_backend_html5_HTML5Window.textInput.autocapitalize = "off";
lime__$internal_backend_html5_HTML5Window.textInput.autocorrect = "off";
lime__$internal_backend_html5_HTML5Window.textInput.autocomplete = "off";
lime__$internal_backend_html5_HTML5Window.textInput.style.left = "0px";
lime__$internal_backend_html5_HTML5Window.textInput.style.top = "50%";
if(new EReg("(iPad|iPhone|iPod).*OS 8_","gi").match(window.navigator.userAgent)) {
lime__$internal_backend_html5_HTML5Window.textInput.style.fontSize = "0px";
lime__$internal_backend_html5_HTML5Window.textInput.style.width = "0px";
lime__$internal_backend_html5_HTML5Window.textInput.style.height = "0px";
} else {
lime__$internal_backend_html5_HTML5Window.textInput.style.width = "1px";
lime__$internal_backend_html5_HTML5Window.textInput.style.height = "1px";
}
lime__$internal_backend_html5_HTML5Window.textInput.style.pointerEvents = "none";
lime__$internal_backend_html5_HTML5Window.textInput.style.zIndex = "-10000000";
}
if(lime__$internal_backend_html5_HTML5Window.textInput.parentNode == null) {
this.parent.element.appendChild(lime__$internal_backend_html5_HTML5Window.textInput);
}
if(!this.textInputEnabled) {
lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("input",$bind(this,this.handleInputEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("blur",$bind(this,this.handleFocusEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("cut",$bind(this,this.handleCutOrCopyEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("copy",$bind(this,this.handleCutOrCopyEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("paste",$bind(this,this.handlePasteEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("compositionstart",$bind(this,this.handleCompositionstartEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("compositionend",$bind(this,this.handleCompositionendEvent),true);
}
lime__$internal_backend_html5_HTML5Window.textInput.focus();
lime__$internal_backend_html5_HTML5Window.textInput.select();
} else if(lime__$internal_backend_html5_HTML5Window.textInput != null) {
lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("input",$bind(this,this.handleInputEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("blur",$bind(this,this.handleFocusEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("cut",$bind(this,this.handleCutOrCopyEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("copy",$bind(this,this.handleCutOrCopyEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("paste",$bind(this,this.handlePasteEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("compositionstart",$bind(this,this.handleCompositionstartEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("compositionend",$bind(this,this.handleCompositionendEvent),true);
lime__$internal_backend_html5_HTML5Window.textInput.blur();
}
return this.textInputEnabled = value;
}
,inputing: null
,handleCompositionstartEvent: function(e) {
this.inputing = true;
}
,handleCompositionendEvent: function(e) {
this.inputing = false;
this.handleInputEvent(e);
}
,setTitle: function(value) {
if(value != null) {
window.document.title = value;
}
return value;
}
,updateSize: function() {
if(!this.parent.__resizable) {
return;
}
var elementWidth;
var elementHeight;
if(this.parent.element != null) {
elementWidth = this.parent.element.clientWidth;
elementHeight = this.parent.element.clientHeight;
} else {
elementWidth = window.innerWidth;
elementHeight = 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.parent.element != null && (this.div == null || this.div != null && stretch)) {
if(stretch) {
if(this.parent.__width != elementWidth || this.parent.__height != elementHeight) {
this.parent.__width = elementWidth;
this.parent.__height = elementHeight;
if(this.canvas != null) {
if(this.parent.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.parent.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";
}
}
}
}
}
,warpMouse: function(x,y) {
}
,__class__: lime__$internal_backend_html5_HTML5Window
};
var lime__$internal_backend_native_NativeCFFI = function() { };
$hxClasses["lime._internal.backend.native.NativeCFFI"] = lime__$internal_backend_native_NativeCFFI;
lime__$internal_backend_native_NativeCFFI.__name__ = "lime._internal.backend.native.NativeCFFI";
var lime__$internal_format_BMP = function() { };
$hxClasses["lime._internal.format.BMP"] = lime__$internal_format_BMP;
lime__$internal_format_BMP.__name__ = "lime._internal.format.BMP";
lime__$internal_format_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__$internal_format_BMPType.RGB;
}
var fileHeaderLength = 14;
var infoHeaderLength = 40;
var pixelValuesLength = image.width * image.height * 4;
if(type != null) {
switch(type._hx_index) {
case 0:
pixelValuesLength = (image.width * 3 + image.width * 3 % 4) * image.height;
break;
case 1:
infoHeaderLength = 108;
break;
case 2:
fileHeaderLength = 0;
pixelValuesLength += image.width * image.height;
break;
}
}
var data = new haxe_io_Bytes(new ArrayBuffer(fileHeaderLength + infoHeaderLength + pixelValuesLength));
var position = 0;
if(fileHeaderLength > 0) {
data.b[position++] = 66;
data.b[position++] = 77;
data.setInt32(position,data.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__$internal_format_BMPType.ICO ? image.height * 2 : image.height);
position += 4;
data.setUInt16(position,1);
position += 2;
data.setUInt16(position,type == lime__$internal_format_BMPType.RGB ? 24 : 32);
position += 2;
data.setInt32(position,type == lime__$internal_format_BMPType.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__$internal_format_BMPType.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.b[position++] = 32;
data.b[position++] = 110;
data.b[position++] = 105;
data.b[position++] = 87;
var _g = 0;
while(_g < 48) {
var i = _g++;
data.b[position++] = 0;
}
}
var pixels = image.getPixels(new lime_math_Rectangle(0,0,image.width,image.height),1);
var readPosition = 0;
var a;
var r;
var g;
var b;
if(type != null) {
switch(type._hx_index) {
case 0:
var _g = 0;
var _g1 = image.height;
while(_g < _g1) {
var y = _g++;
readPosition = (image.height - 1 - y) * 4 * image.width;
var _g2 = 0;
var _g3 = image.width;
while(_g2 < _g3) {
var x = _g2++;
a = pixels.b[readPosition++];
r = pixels.b[readPosition++];
g = pixels.b[readPosition++];
b = pixels.b[readPosition++];
data.b[position++] = b & 255;
data.b[position++] = g & 255;
data.b[position++] = r & 255;
}
var _g4 = 0;
var _g5 = image.width * 3 % 4;
while(_g4 < _g5) {
var i = _g4++;
data.b[position++] = 0;
}
}
break;
case 1:
var _g = 0;
var _g1 = image.height;
while(_g < _g1) {
var y = _g++;
readPosition = (image.height - 1 - y) * 4 * image.width;
var _g2 = 0;
var _g3 = image.width;
while(_g2 < _g3) {
var x = _g2++;
a = pixels.b[readPosition++];
r = pixels.b[readPosition++];
g = pixels.b[readPosition++];
b = pixels.b[readPosition++];
data.b[position++] = b & 255;
data.b[position++] = g & 255;
data.b[position++] = r & 255;
data.b[position++] = a & 255;
}
}
break;
case 2:
var andMask = new haxe_io_Bytes(new ArrayBuffer(image.width * image.height));
var maskPosition = 0;
var _g = 0;
var _g1 = image.height;
while(_g < _g1) {
var y = _g++;
readPosition = (image.height - 1 - y) * 4 * image.width;
var _g2 = 0;
var _g3 = image.width;
while(_g2 < _g3) {
var x = _g2++;
a = pixels.b[readPosition++];
r = pixels.b[readPosition++];
g = pixels.b[readPosition++];
b = pixels.b[readPosition++];
data.b[position++] = b & 255;
data.b[position++] = g & 255;
data.b[position++] = r & 255;
data.b[position++] = a & 255;
andMask.b[maskPosition++] = 0;
}
}
data.blit(position,andMask,0,image.width * image.height);
break;
}
}
return data;
};
var lime__$internal_format_BMPType = $hxEnums["lime._internal.format.BMPType"] = { __ename__ : "lime._internal.format.BMPType", __constructs__ : ["RGB","BITFIELD","ICO"]
,RGB: {_hx_index:0,__enum__:"lime._internal.format.BMPType",toString:$estr}
,BITFIELD: {_hx_index:1,__enum__:"lime._internal.format.BMPType",toString:$estr}
,ICO: {_hx_index:2,__enum__:"lime._internal.format.BMPType",toString:$estr}
};
var lime__$internal_format_Base64 = function() { };
$hxClasses["lime._internal.format.Base64"] = lime__$internal_format_Base64;
lime__$internal_format_Base64.__name__ = "lime._internal.format.Base64";
lime__$internal_format_Base64.decode = function(source) {
return haxe_crypto_Base64.decode(source);
};
lime__$internal_format_Base64.encode = function(source) {
var result = [];
var dictionary = lime__$internal_format_Base64.DICTIONARY;
var extendedDictionary = lime__$internal_format_Base64.EXTENDED_DICTIONARY;
var numBytes = source.length;
var numInputTriplets = Math.floor(numBytes / 3);
var numChunksToWrite = numInputTriplets * 2;
result.length = Math.ceil(numBytes / 3) * 2;
var numBytesRead = 0;
var numChunksWritten = 0;
var inputTriplet;
while(numChunksWritten < numChunksToWrite) {
inputTriplet = source.b[numBytesRead] << 16 | source.b[numBytesRead + 1] << 8 | source.b[numBytesRead + 2];
result[numChunksWritten] = extendedDictionary[inputTriplet >> 12 & 4095];
result[numChunksWritten + 1] = extendedDictionary[inputTriplet & 4095];
numBytesRead += 3;
numChunksWritten += 2;
}
switch(numBytes - numInputTriplets * 3) {
case 1:
inputTriplet = source.b[numBytesRead] << 16;
result[numChunksWritten] = extendedDictionary[inputTriplet >> 12 & 4095];
result[numChunksWritten + 1] = "==";
break;
case 2:
inputTriplet = source.b[numBytesRead] << 16 | source.b[numBytesRead + 1] << 8;
result[numChunksWritten] = extendedDictionary[inputTriplet >> 12 & 4095];
result[numChunksWritten + 1] = dictionary[inputTriplet >> 6 & 63] + "=";
break;
default:
}
return result.join("");
};
var lime__$internal_format_Deflate = function() { };
$hxClasses["lime._internal.format.Deflate"] = lime__$internal_format_Deflate;
lime__$internal_format_Deflate.__name__ = "lime._internal.format.Deflate";
lime__$internal_format_Deflate.compress = function(bytes) {
var data = pako.deflateRaw(bytes.b.bufferValue);
return haxe_io_Bytes.ofData(data);
};
lime__$internal_format_Deflate.decompress = function(bytes) {
var data = pako.inflateRaw(bytes.b.bufferValue);
return haxe_io_Bytes.ofData(data);
};
var lime__$internal_format_GZip = function() { };
$hxClasses["lime._internal.format.GZip"] = lime__$internal_format_GZip;
lime__$internal_format_GZip.__name__ = "lime._internal.format.GZip";
lime__$internal_format_GZip.compress = function(bytes) {
var data = pako.gzip(bytes.b.bufferValue);
return haxe_io_Bytes.ofData(data);
};
lime__$internal_format_GZip.decompress = function(bytes) {
var data = pako.ungzip(bytes.b.bufferValue);
return haxe_io_Bytes.ofData(data);
};
var lime__$internal_format_JPEG = function() { };
$hxClasses["lime._internal.format.JPEG"] = lime__$internal_format_JPEG;
lime__$internal_format_JPEG.__name__ = "lime._internal.format.JPEG";
lime__$internal_format_JPEG.decodeBytes = function(bytes,decodeData) {
if(decodeData == null) {
decodeData = true;
}
return null;
};
lime__$internal_format_JPEG.decodeFile = function(path,decodeData) {
if(decodeData == null) {
decodeData = true;
}
return null;
};
lime__$internal_format_JPEG.encode = function(image,quality) {
if(image.get_premultiplied() || image.get_format() != 0) {
image = image.clone();
image.set_premultiplied(false);
image.set_format(0);
}
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image,false);
if(image.buffer.__srcCanvas != null) {
var data = image.buffer.__srcCanvas.toDataURL("image/jpeg",quality / 100);
var buffer = window.atob(data.split(";base64,")[1]);
var bytes = new haxe_io_Bytes(new ArrayBuffer(buffer.length));
var _g = 0;
var _g1 = buffer.length;
while(_g < _g1) {
var i = _g++;
bytes.b[i] = HxOverrides.cca(buffer,i) & 255;
}
return bytes;
}
return null;
};
var lime__$internal_format_LZMA = function() { };
$hxClasses["lime._internal.format.LZMA"] = lime__$internal_format_LZMA;
lime__$internal_format_LZMA.__name__ = "lime._internal.format.LZMA";
lime__$internal_format_LZMA.compress = function(bytes) {
return null;
};
lime__$internal_format_LZMA.decompress = function(bytes) {
return null;
};
var lime__$internal_format_PNG = function() { };
$hxClasses["lime._internal.format.PNG"] = lime__$internal_format_PNG;
lime__$internal_format_PNG.__name__ = "lime._internal.format.PNG";
lime__$internal_format_PNG.decodeBytes = function(bytes,decodeData) {
if(decodeData == null) {
decodeData = true;
}
return null;
};
lime__$internal_format_PNG.decodeFile = function(path,decodeData) {
if(decodeData == null) {
decodeData = true;
}
return null;
};
lime__$internal_format_PNG.encode = function(image) {
if(image.get_premultiplied() || image.get_format() != 0) {
image = image.clone();
image.set_premultiplied(false);
image.set_format(0);
}
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image,false);
if(image.buffer.__srcCanvas != null) {
var data = image.buffer.__srcCanvas.toDataURL("image/png");
var buffer = window.atob(data.split(";base64,")[1]);
var bytes = new haxe_io_Bytes(new ArrayBuffer(buffer.length));
var _g = 0;
var _g1 = buffer.length;
while(_g < _g1) {
var i = _g++;
bytes.b[i] = HxOverrides.cca(buffer,i) & 255;
}
return bytes;
}
return null;
};
var lime__$internal_format_Zlib = function() { };
$hxClasses["lime._internal.format.Zlib"] = lime__$internal_format_Zlib;
lime__$internal_format_Zlib.__name__ = "lime._internal.format.Zlib";
lime__$internal_format_Zlib.compress = function(bytes) {
var data = pako.deflate(bytes.b.bufferValue);
return haxe_io_Bytes.ofData(data);
};
lime__$internal_format_Zlib.decompress = function(bytes) {
var data = pako.inflate(bytes.b.bufferValue);
return haxe_io_Bytes.ofData(data);
};
var lime__$internal_graphics_ImageCanvasUtil = function() { };
$hxClasses["lime._internal.graphics.ImageCanvasUtil"] = lime__$internal_graphics_ImageCanvasUtil;
lime__$internal_graphics_ImageCanvasUtil.__name__ = "lime._internal.graphics.ImageCanvasUtil";
lime__$internal_graphics_ImageCanvasUtil.colorTransform = function(image,rect,colorMatrix) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
lime__$internal_graphics_ImageDataUtil.colorTransform(image,rect,colorMatrix);
};
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas = function(image,clear) {
if(clear == null) {
clear = false;
}
var buffer = image.buffer;
if(buffer.__srcImage != null) {
if(buffer.__srcCanvas == null) {
lime__$internal_graphics_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);
lime__$internal_graphics_ImageCanvasUtil.createCanvas(image,buffer.width,buffer.height);
lime__$internal_graphics_ImageCanvasUtil.createImageData(image);
buffer.__srcContext.putImageData(buffer.__srcImageData,0,0);
} else if(image.type == lime_graphics_ImageType.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.CANVAS;
};
lime__$internal_graphics_ImageCanvasUtil.convertToData = function(image,clear) {
if(clear == null) {
clear = false;
}
var buffer = image.buffer;
if(buffer.__srcImage != null) {
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image);
}
if(buffer.__srcCanvas != null && buffer.data == null) {
lime__$internal_graphics_ImageCanvasUtil.createImageData(image);
if(image.type == lime_graphics_ImageType.CANVAS) {
image.dirty = false;
}
} else if(image.type == lime_graphics_ImageType.CANVAS && buffer.__srcCanvas != null && image.dirty) {
if(buffer.__srcImageData == null) {
lime__$internal_graphics_ImageCanvasUtil.createImageData(image);
} else {
buffer.__srcImageData = buffer.__srcContext.getImageData(0,0,buffer.width,buffer.height);
var elements = buffer.__srcImageData.data.buffer;
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint8Array(buffer1,0);
} else {
this1 = new Uint8Array(buffer1,0,len);
}
} else {
this1 = null;
}
buffer.data = this1;
}
image.dirty = false;
}
if(clear) {
image.buffer.__srcCanvas = null;
image.buffer.__srcContext = null;
}
image.type = lime_graphics_ImageType.DATA;
};
lime__$internal_graphics_ImageCanvasUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage);
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
lime__$internal_graphics_ImageDataUtil.copyChannel(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
};
lime__$internal_graphics_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();
}
var tempData = sourceImage.clone();
tempData.copyChannel(alphaImage,new lime_math_Rectangle(sourceRect.x + alphaPoint.x,sourceRect.y + alphaPoint.y,sourceRect.width,sourceRect.height),new lime_math_Vector2(sourceRect.x,sourceRect.y),lime_graphics_ImageChannel.ALPHA,lime_graphics_ImageChannel.ALPHA);
sourceImage = tempData;
}
lime__$internal_graphics_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);
}
}
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(sourceImage);
if(sourceImage.buffer.get_src() != null) {
image.buffer.__srcContext.globalCompositeOperation = "source-over";
image.buffer.__srcContext.drawImage(sourceImage.buffer.get_src(),sourceRect.x + sourceImage.offsetX | 0,sourceRect.y + sourceImage.offsetY | 0,sourceRect.width | 0,sourceRect.height | 0,destPoint.x + image.offsetX | 0,destPoint.y + image.offsetY | 0,sourceRect.width | 0,sourceRect.height | 0);
}
image.dirty = true;
image.version++;
};
lime__$internal_graphics_ImageCanvasUtil.createCanvas = function(image,width,height) {
var buffer = image.buffer;
if(buffer.__srcCanvas == null) {
buffer.__srcCanvas = window.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");
}
}
};
lime__$internal_graphics_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 array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint8Array(buffer1,0);
} else {
this1 = new Uint8Array(buffer1,0,len);
}
} else {
this1 = null;
}
buffer.data = this1;
}
};
lime__$internal_graphics_ImageCanvasUtil.fillRect = function(image,rect,color,format) {
lime__$internal_graphics_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;
a = image.get_transparent() ? color >> 24 & 255 : 255;
} else {
r = color >> 24 & 255;
g = color >> 16 & 255;
b = color >> 8 & 255;
a = image.get_transparent() ? color & 255 : 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++;
};
lime__$internal_graphics_ImageCanvasUtil.floodFill = function(image,x,y,color,format) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
lime__$internal_graphics_ImageDataUtil.floodFill(image,x,y,color,format);
};
lime__$internal_graphics_ImageCanvasUtil.getPixel = function(image,x,y,format) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
return lime__$internal_graphics_ImageDataUtil.getPixel(image,x,y,format);
};
lime__$internal_graphics_ImageCanvasUtil.getPixel32 = function(image,x,y,format) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
return lime__$internal_graphics_ImageDataUtil.getPixel32(image,x,y,format);
};
lime__$internal_graphics_ImageCanvasUtil.getPixels = function(image,rect,format) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
return lime__$internal_graphics_ImageDataUtil.getPixels(image,rect,format);
};
lime__$internal_graphics_ImageCanvasUtil.merge = function(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage);
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
lime__$internal_graphics_ImageDataUtil.merge(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
};
lime__$internal_graphics_ImageCanvasUtil.resize = function(image,newWidth,newHeight) {
var buffer = image.buffer;
if(buffer.__srcCanvas == null) {
lime__$internal_graphics_ImageCanvasUtil.createCanvas(image,newWidth,newHeight);
buffer.__srcContext.drawImage(buffer.get_src(),0,0,newWidth,newHeight);
} else {
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image,true);
var sourceCanvas = buffer.__srcCanvas;
buffer.__srcCanvas = null;
lime__$internal_graphics_ImageCanvasUtil.createCanvas(image,newWidth,newHeight);
buffer.__srcContext.drawImage(sourceCanvas,0,0,newWidth,newHeight);
}
buffer.__srcImageData = null;
buffer.data = null;
image.dirty = true;
image.version++;
};
lime__$internal_graphics_ImageCanvasUtil.scroll = function(image,x,y) {
if(x % image.width == 0 && y % image.height == 0) {
return;
}
var copy = image.clone();
lime__$internal_graphics_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++;
};
lime__$internal_graphics_ImageCanvasUtil.setPixel = function(image,x,y,color,format) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
lime__$internal_graphics_ImageDataUtil.setPixel(image,x,y,color,format);
};
lime__$internal_graphics_ImageCanvasUtil.setPixel32 = function(image,x,y,color,format) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
lime__$internal_graphics_ImageDataUtil.setPixel32(image,x,y,color,format);
};
lime__$internal_graphics_ImageCanvasUtil.setPixels = function(image,rect,bytePointer,format,endian) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image);
lime__$internal_graphics_ImageDataUtil.setPixels(image,rect,bytePointer,format,endian);
};
lime__$internal_graphics_ImageCanvasUtil.sync = function(image,clear) {
if(image == null) {
return;
}
if(image.type == lime_graphics_ImageType.CANVAS && (image.buffer.__srcCanvas != null || image.buffer.data != null)) {
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image,clear);
} else if(image.type == lime_graphics_ImageType.DATA) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(image,clear);
}
};
var lime__$internal_graphics_ImageDataUtil = function() { };
$hxClasses["lime._internal.graphics.ImageDataUtil"] = lime__$internal_graphics_ImageDataUtil;
lime__$internal_graphics_ImageDataUtil.__name__ = "lime._internal.graphics.ImageDataUtil";
lime__$internal_graphics_ImageDataUtil.displaceMap = function(target,source,map,mapPoint,componentX,componentY,smooth) {
var targetData = target.buffer.data;
var sourceData = source.buffer.data;
var mapData = map.buffer.data;
var targetFormat = target.buffer.format;
var sourceFormat = source.buffer.format;
var mapFormat = map.buffer.format;
var targetPremultiplied = target.get_premultiplied();
var sourcePremultiplied = source.get_premultiplied();
var mapPremultiplied = map.get_premultiplied();
var sourceView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(source);
var mapView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(map);
var row;
var sourceOffset;
var sourcePixel = 0;
var mapPixel = 0;
var targetPixel = 0;
var mapPixelX;
var mapPixelY;
var mapPixelA;
var s1 = 0;
var s2 = 0;
var s3 = 0;
var s4 = 0;
var mPointXFloor;
var mPointYFloor;
var disOffsetXFloor;
var disOffsetYFloor;
var disX;
var disY;
var _g = 0;
var _g1 = sourceView.height;
while(_g < _g1) {
var y = _g++;
row = sourceView.byteOffset + sourceView.stride * y;
var _g2 = 0;
var _g3 = sourceView.width;
while(_g2 < _g3) {
var x = _g2++;
sourceOffset = row + x * 4;
mPointXFloor = mapPoint.x | 0;
mPointYFloor = mapPoint.y | 0;
if(smooth) {
var offset = sourceView.byteOffset + sourceView.stride * (y - mPointYFloor + 1) + (x - mPointXFloor) * 4;
var format = mapFormat;
var premultiplied = mapPremultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
case 0:
s1 = (mapData[offset] & 255) << 24 | (mapData[offset + 1] & 255) << 16 | (mapData[offset + 2] & 255) << 8 | mapData[offset + 3] & 255;
break;
case 1:
s1 = (mapData[offset + 1] & 255) << 24 | (mapData[offset + 2] & 255) << 16 | (mapData[offset + 3] & 255) << 8 | mapData[offset] & 255;
break;
case 2:
s1 = (mapData[offset + 2] & 255) << 24 | (mapData[offset + 1] & 255) << 16 | (mapData[offset] & 255) << 8 | mapData[offset + 3] & 255;
break;
}
if(premultiplied) {
if((s1 & 255) != 0 && (s1 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (s1 & 255);
s1 = (lime_math_RGBA.__clamp[Math.round((s1 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s1 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s1 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s1 & 255 & 255;
}
}
var offset1 = sourceView.byteOffset + sourceView.stride * (y - mPointYFloor) + (x - mPointXFloor + 1) * 4;
var format1 = mapFormat;
var premultiplied1 = mapPremultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
case 0:
s2 = (mapData[offset1] & 255) << 24 | (mapData[offset1 + 1] & 255) << 16 | (mapData[offset1 + 2] & 255) << 8 | mapData[offset1 + 3] & 255;
break;
case 1:
s2 = (mapData[offset1 + 1] & 255) << 24 | (mapData[offset1 + 2] & 255) << 16 | (mapData[offset1 + 3] & 255) << 8 | mapData[offset1] & 255;
break;
case 2:
s2 = (mapData[offset1 + 2] & 255) << 24 | (mapData[offset1 + 1] & 255) << 16 | (mapData[offset1] & 255) << 8 | mapData[offset1 + 3] & 255;
break;
}
if(premultiplied1) {
if((s2 & 255) != 0 && (s2 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (s2 & 255);
s2 = (lime_math_RGBA.__clamp[Math.round((s2 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s2 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s2 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s2 & 255 & 255;
}
}
var offset2 = sourceView.byteOffset + sourceView.stride * (y - mPointYFloor + 1) + (x - mPointXFloor + 1) * 4;
var format2 = mapFormat;
var premultiplied2 = mapPremultiplied;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
switch(format2) {
case 0:
s3 = (mapData[offset2] & 255) << 24 | (mapData[offset2 + 1] & 255) << 16 | (mapData[offset2 + 2] & 255) << 8 | mapData[offset2 + 3] & 255;
break;
case 1:
s3 = (mapData[offset2 + 1] & 255) << 24 | (mapData[offset2 + 2] & 255) << 16 | (mapData[offset2 + 3] & 255) << 8 | mapData[offset2] & 255;
break;
case 2:
s3 = (mapData[offset2 + 2] & 255) << 24 | (mapData[offset2 + 1] & 255) << 16 | (mapData[offset2] & 255) << 8 | mapData[offset2 + 3] & 255;
break;
}
if(premultiplied2) {
if((s3 & 255) != 0 && (s3 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (s3 & 255);
s3 = (lime_math_RGBA.__clamp[Math.round((s3 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s3 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s3 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s3 & 255 & 255;
}
}
var offset3 = sourceView.byteOffset + sourceView.stride * (y - mPointYFloor) + (x - mPointXFloor) * 4;
var format3 = mapFormat;
var premultiplied3 = mapPremultiplied;
if(premultiplied3 == null) {
premultiplied3 = false;
}
if(format3 == null) {
format3 = 0;
}
switch(format3) {
case 0:
s4 = (mapData[offset3] & 255) << 24 | (mapData[offset3 + 1] & 255) << 16 | (mapData[offset3 + 2] & 255) << 8 | mapData[offset3 + 3] & 255;
break;
case 1:
s4 = (mapData[offset3 + 1] & 255) << 24 | (mapData[offset3 + 2] & 255) << 16 | (mapData[offset3 + 3] & 255) << 8 | mapData[offset3] & 255;
break;
case 2:
s4 = (mapData[offset3 + 2] & 255) << 24 | (mapData[offset3 + 1] & 255) << 16 | (mapData[offset3] & 255) << 8 | mapData[offset3 + 3] & 255;
break;
}
if(premultiplied3) {
if((s4 & 255) != 0 && (s4 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (s4 & 255);
s4 = (lime_math_RGBA.__clamp[Math.round((s4 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s4 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s4 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s4 & 255 & 255;
}
}
mapPixel = lime__$internal_graphics_ImageDataUtil.bilinear(s1,s2,s3,s4,mapPoint.x - mPointXFloor,mapPoint.y - mPointYFloor);
} else {
var offset4 = mapView.byteOffset + mapView.stride * (y - mPointYFloor) + (x - mPointXFloor) * 4;
var format4 = mapFormat;
var premultiplied4 = mapPremultiplied;
if(premultiplied4 == null) {
premultiplied4 = false;
}
if(format4 == null) {
format4 = 0;
}
switch(format4) {
case 0:
mapPixel = (mapData[offset4] & 255) << 24 | (mapData[offset4 + 1] & 255) << 16 | (mapData[offset4 + 2] & 255) << 8 | mapData[offset4 + 3] & 255;
break;
case 1:
mapPixel = (mapData[offset4 + 1] & 255) << 24 | (mapData[offset4 + 2] & 255) << 16 | (mapData[offset4 + 3] & 255) << 8 | mapData[offset4] & 255;
break;
case 2:
mapPixel = (mapData[offset4 + 2] & 255) << 24 | (mapData[offset4 + 1] & 255) << 16 | (mapData[offset4] & 255) << 8 | mapData[offset4 + 3] & 255;
break;
}
if(premultiplied4) {
if((mapPixel & 255) != 0 && (mapPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (mapPixel & 255);
mapPixel = (lime_math_RGBA.__clamp[Math.round((mapPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((mapPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((mapPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | mapPixel & 255 & 255;
}
}
}
mapPixelA = (mapPixel & 255) / 255.0;
mapPixelX = ((mapPixel >>> 24 & 255) - 128) / 255.0 * mapPixelA;
mapPixelY = ((mapPixel >>> 16 & 255) - 128) / 255.0 * mapPixelA;
disX = mapPixelX * componentX.x + mapPixelY * componentY.x;
disY = mapPixelX * componentX.y + mapPixelY * componentY.y;
disOffsetXFloor = Math.floor(disX * sourceView.width);
disOffsetYFloor = Math.floor(disY * sourceView.height);
if(smooth) {
var offset5 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor + 1) + (x + disOffsetXFloor) * 4;
var format5 = sourceFormat;
var premultiplied5 = sourcePremultiplied;
if(premultiplied5 == null) {
premultiplied5 = false;
}
if(format5 == null) {
format5 = 0;
}
switch(format5) {
case 0:
s1 = (sourceData[offset5] & 255) << 24 | (sourceData[offset5 + 1] & 255) << 16 | (sourceData[offset5 + 2] & 255) << 8 | sourceData[offset5 + 3] & 255;
break;
case 1:
s1 = (sourceData[offset5 + 1] & 255) << 24 | (sourceData[offset5 + 2] & 255) << 16 | (sourceData[offset5 + 3] & 255) << 8 | sourceData[offset5] & 255;
break;
case 2:
s1 = (sourceData[offset5 + 2] & 255) << 24 | (sourceData[offset5 + 1] & 255) << 16 | (sourceData[offset5] & 255) << 8 | sourceData[offset5 + 3] & 255;
break;
}
if(premultiplied5) {
if((s1 & 255) != 0 && (s1 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (s1 & 255);
s1 = (lime_math_RGBA.__clamp[Math.round((s1 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s1 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s1 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s1 & 255 & 255;
}
}
var offset6 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor) + (x + disOffsetXFloor + 1) * 4;
var format6 = sourceFormat;
var premultiplied6 = sourcePremultiplied;
if(premultiplied6 == null) {
premultiplied6 = false;
}
if(format6 == null) {
format6 = 0;
}
switch(format6) {
case 0:
s2 = (sourceData[offset6] & 255) << 24 | (sourceData[offset6 + 1] & 255) << 16 | (sourceData[offset6 + 2] & 255) << 8 | sourceData[offset6 + 3] & 255;
break;
case 1:
s2 = (sourceData[offset6 + 1] & 255) << 24 | (sourceData[offset6 + 2] & 255) << 16 | (sourceData[offset6 + 3] & 255) << 8 | sourceData[offset6] & 255;
break;
case 2:
s2 = (sourceData[offset6 + 2] & 255) << 24 | (sourceData[offset6 + 1] & 255) << 16 | (sourceData[offset6] & 255) << 8 | sourceData[offset6 + 3] & 255;
break;
}
if(premultiplied6) {
if((s2 & 255) != 0 && (s2 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (s2 & 255);
s2 = (lime_math_RGBA.__clamp[Math.round((s2 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s2 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s2 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s2 & 255 & 255;
}
}
var offset7 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor + 1) + (x + disOffsetXFloor + 1) * 4;
var format7 = sourceFormat;
var premultiplied7 = sourcePremultiplied;
if(premultiplied7 == null) {
premultiplied7 = false;
}
if(format7 == null) {
format7 = 0;
}
switch(format7) {
case 0:
s3 = (sourceData[offset7] & 255) << 24 | (sourceData[offset7 + 1] & 255) << 16 | (sourceData[offset7 + 2] & 255) << 8 | sourceData[offset7 + 3] & 255;
break;
case 1:
s3 = (sourceData[offset7 + 1] & 255) << 24 | (sourceData[offset7 + 2] & 255) << 16 | (sourceData[offset7 + 3] & 255) << 8 | sourceData[offset7] & 255;
break;
case 2:
s3 = (sourceData[offset7 + 2] & 255) << 24 | (sourceData[offset7 + 1] & 255) << 16 | (sourceData[offset7] & 255) << 8 | sourceData[offset7 + 3] & 255;
break;
}
if(premultiplied7) {
if((s3 & 255) != 0 && (s3 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (s3 & 255);
s3 = (lime_math_RGBA.__clamp[Math.round((s3 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s3 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s3 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s3 & 255 & 255;
}
}
var offset8 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor) + (x + disOffsetXFloor) * 4;
var format8 = sourceFormat;
var premultiplied8 = sourcePremultiplied;
if(premultiplied8 == null) {
premultiplied8 = false;
}
if(format8 == null) {
format8 = 0;
}
switch(format8) {
case 0:
s4 = (sourceData[offset8] & 255) << 24 | (sourceData[offset8 + 1] & 255) << 16 | (sourceData[offset8 + 2] & 255) << 8 | sourceData[offset8 + 3] & 255;
break;
case 1:
s4 = (sourceData[offset8 + 1] & 255) << 24 | (sourceData[offset8 + 2] & 255) << 16 | (sourceData[offset8 + 3] & 255) << 8 | sourceData[offset8] & 255;
break;
case 2:
s4 = (sourceData[offset8 + 2] & 255) << 24 | (sourceData[offset8 + 1] & 255) << 16 | (sourceData[offset8] & 255) << 8 | sourceData[offset8 + 3] & 255;
break;
}
if(premultiplied8) {
if((s4 & 255) != 0 && (s4 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (s4 & 255);
s4 = (lime_math_RGBA.__clamp[Math.round((s4 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s4 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s4 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s4 & 255 & 255;
}
}
sourcePixel = lime__$internal_graphics_ImageDataUtil.bilinear(s1,s2,s3,s4,disX * sourceView.width - disOffsetXFloor,disY * sourceView.height - disOffsetYFloor);
} else {
var offset9 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor) + (x + disOffsetXFloor) * 4;
var format9 = sourceFormat;
var premultiplied9 = sourcePremultiplied;
if(premultiplied9 == null) {
premultiplied9 = false;
}
if(format9 == null) {
format9 = 0;
}
switch(format9) {
case 0:
sourcePixel = (sourceData[offset9] & 255) << 24 | (sourceData[offset9 + 1] & 255) << 16 | (sourceData[offset9 + 2] & 255) << 8 | sourceData[offset9 + 3] & 255;
break;
case 1:
sourcePixel = (sourceData[offset9 + 1] & 255) << 24 | (sourceData[offset9 + 2] & 255) << 16 | (sourceData[offset9 + 3] & 255) << 8 | sourceData[offset9] & 255;
break;
case 2:
sourcePixel = (sourceData[offset9 + 2] & 255) << 24 | (sourceData[offset9 + 1] & 255) << 16 | (sourceData[offset9] & 255) << 8 | sourceData[offset9 + 3] & 255;
break;
}
if(premultiplied9) {
if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255);
sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255;
}
}
}
var format10 = targetFormat;
var premultiplied10 = targetPremultiplied;
if(premultiplied10 == null) {
premultiplied10 = false;
}
if(format10 == null) {
format10 = 0;
}
if(premultiplied10) {
if((sourcePixel & 255) == 0) {
if(sourcePixel != 0) {
sourcePixel = 0;
}
} else if((sourcePixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[sourcePixel & 255];
sourcePixel = ((sourcePixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((sourcePixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((sourcePixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255;
}
}
switch(format10) {
case 0:
targetData[sourceOffset] = sourcePixel >>> 24 & 255;
targetData[sourceOffset + 1] = sourcePixel >>> 16 & 255;
targetData[sourceOffset + 2] = sourcePixel >>> 8 & 255;
targetData[sourceOffset + 3] = sourcePixel & 255;
break;
case 1:
targetData[sourceOffset] = sourcePixel & 255;
targetData[sourceOffset + 1] = sourcePixel >>> 24 & 255;
targetData[sourceOffset + 2] = sourcePixel >>> 16 & 255;
targetData[sourceOffset + 3] = sourcePixel >>> 8 & 255;
break;
case 2:
targetData[sourceOffset] = sourcePixel >>> 8 & 255;
targetData[sourceOffset + 1] = sourcePixel >>> 16 & 255;
targetData[sourceOffset + 2] = sourcePixel >>> 24 & 255;
targetData[sourceOffset + 3] = sourcePixel & 255;
break;
}
}
}
target.dirty = true;
target.version++;
};
lime__$internal_graphics_ImageDataUtil.bilinear = function(s1,s2,s3,s4,su,sv) {
return lime__$internal_graphics_ImageDataUtil.lerpRGBA(lime__$internal_graphics_ImageDataUtil.lerpRGBA(s4,s2,su),lime__$internal_graphics_ImageDataUtil.lerpRGBA(s1,s3,su),sv);
};
lime__$internal_graphics_ImageDataUtil.lerpRGBA = function(v0,v1,x) {
var result = 0;
var value = Math.floor(lime__$internal_graphics_ImageDataUtil.lerp(v0 >>> 24 & 255,v1 >>> 24 & 255,x));
result = (value & 255) << 24 | (result >>> 16 & 255 & 255) << 16 | (result >>> 8 & 255 & 255) << 8 | result & 255 & 255;
var value = Math.floor(lime__$internal_graphics_ImageDataUtil.lerp(v0 >>> 16 & 255,v1 >>> 16 & 255,x));
result = (result >>> 24 & 255 & 255) << 24 | (value & 255) << 16 | (result >>> 8 & 255 & 255) << 8 | result & 255 & 255;
var value = Math.floor(lime__$internal_graphics_ImageDataUtil.lerp(v0 >>> 8 & 255,v1 >>> 8 & 255,x));
result = (result >>> 24 & 255 & 255) << 24 | (result >>> 16 & 255 & 255) << 16 | (value & 255) << 8 | result & 255 & 255;
var value = Math.floor(lime__$internal_graphics_ImageDataUtil.lerp(v0 & 255,v1 & 255,x));
result = (result >>> 24 & 255 & 255) << 24 | (result >>> 16 & 255 & 255) << 16 | (result >>> 8 & 255 & 255) << 8 | value & 255;
return result;
};
lime__$internal_graphics_ImageDataUtil.lerp4f = function(v0,v1,x) {
return new lime_math_Vector4(lime__$internal_graphics_ImageDataUtil.lerp(v0.x,v1.x,x),lime__$internal_graphics_ImageDataUtil.lerp(v0.y,v1.y,x),lime__$internal_graphics_ImageDataUtil.lerp(v0.z,v1.z,x),lime__$internal_graphics_ImageDataUtil.lerp(v0.w,v1.w,x));
};
lime__$internal_graphics_ImageDataUtil.lerp = function(v0,v1,x) {
return (1.0 - x) * v0 + x * v1;
};
lime__$internal_graphics_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__$internal_graphics__$ImageDataUtil_ImageDataView(image,rect);
var alphaTable = lime_math_ColorMatrix.getAlphaTable(colorMatrix);
var redTable = lime_math_ColorMatrix.getRedTable(colorMatrix);
var greenTable = lime_math_ColorMatrix.getGreenTable(colorMatrix);
var blueTable = lime_math_ColorMatrix.getBlueTable(colorMatrix);
var row;
var offset;
var pixel = 0;
var _g = 0;
var _g1 = dataView.height;
while(_g < _g1) {
var y = _g++;
row = dataView.byteOffset + dataView.stride * y;
var _g2 = 0;
var _g3 = dataView.width;
while(_g2 < _g3) {
var x = _g2++;
offset = row + x * 4;
var format1 = format;
var premultiplied1 = premultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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(premultiplied1) {
if((pixel & 255) != 0 && (pixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (pixel & 255);
pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.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;
var format2 = format;
var premultiplied2 = premultiplied;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied2) {
if((pixel & 255) == 0) {
if(pixel != 0) {
pixel = 0;
}
} else if((pixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255];
pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255;
}
}
switch(format2) {
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++;
};
lime__$internal_graphics_ImageDataUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) {
var destIdx;
switch(destChannel._hx_index) {
case 0:
destIdx = 0;
break;
case 1:
destIdx = 1;
break;
case 2:
destIdx = 2;
break;
case 3:
destIdx = 3;
break;
}
var srcIdx;
switch(sourceChannel._hx_index) {
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__$internal_graphics__$ImageDataUtil_ImageDataView(sourceImage,sourceRect);
var destView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(image,new lime_math_Rectangle(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 = 0;
var destPixel = 0;
var value = 0;
var _g = 0;
var _g1 = destView.height;
while(_g < _g1) {
var y = _g++;
srcPosition = srcView.byteOffset + srcView.stride * y;
destPosition = destView.byteOffset + destView.stride * y;
var _g2 = 0;
var _g3 = destView.width;
while(_g2 < _g3) {
var x = _g2++;
var format = srcFormat;
var premultiplied = srcPremultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
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(premultiplied) {
if((srcPixel & 255) != 0 && (srcPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (srcPixel & 255);
srcPixel = (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | srcPixel & 255 & 255;
}
}
var format1 = destFormat;
var premultiplied1 = destPremultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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(premultiplied1) {
if((destPixel & 255) != 0 && (destPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (destPixel & 255);
destPixel = (lime_math_RGBA.__clamp[Math.round((destPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 8 & 255) * lime_math_RGBA.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;
}
var format2 = destFormat;
var premultiplied2 = destPremultiplied;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied2) {
if((destPixel & 255) == 0) {
if(destPixel != 0) {
destPixel = 0;
}
} else if((destPixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[destPixel & 255];
destPixel = ((destPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
}
}
switch(format2) {
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++;
};
lime__$internal_graphics_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__$internal_graphics__$ImageDataUtil_ImageDataView(sourceImage,sourceRect);
var destRect = new lime_math_Rectangle(destPoint.x,destPoint.y,sourceView.width,sourceView.height);
var destView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(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 = 0;
var destPixel = 0;
var sourcePremultiplied = sourceImage.buffer.premultiplied;
var destPremultiplied = image.buffer.premultiplied;
var sourceBytesPerPixel = sourceImage.buffer.bitsPerPixel / 8 | 0;
var destBytesPerPixel = image.buffer.bitsPerPixel / 8 | 0;
var useAlphaImage = alphaImage != null && alphaImage.get_transparent();
var blend = mergeAlpha || useAlphaImage && !image.get_transparent() || !mergeAlpha && !image.get_transparent() && sourceImage.get_transparent();
if(!useAlphaImage) {
if(blend) {
var _g = 0;
var _g1 = destView.height;
while(_g < _g1) {
var y = _g++;
sourcePosition = sourceView.byteOffset + sourceView.stride * y;
destPosition = destView.byteOffset + destView.stride * y;
var _g2 = 0;
var _g3 = destView.width;
while(_g2 < _g3) {
var x = _g2++;
var format = sourceFormat;
var premultiplied = sourcePremultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
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(premultiplied) {
if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255);
sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255;
}
}
var format1 = destFormat;
var premultiplied1 = destPremultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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(premultiplied1) {
if((destPixel & 255) != 0 && (destPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (destPixel & 255);
destPixel = (lime_math_RGBA.__clamp[Math.round((destPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 8 & 255) * lime_math_RGBA.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_RGBA.__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_RGBA.__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_RGBA.__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_RGBA.__clamp[Math.round(blendAlpha * 255.0)];
destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255;
}
var format2 = destFormat;
var premultiplied2 = destPremultiplied;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied2) {
if((destPixel & 255) == 0) {
if(destPixel != 0) {
destPixel = 0;
}
} else if((destPixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[destPixel & 255];
destPixel = ((destPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
}
}
switch(format2) {
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 _g = 0;
var _g1 = destView.height;
while(_g < _g1) {
var y = _g++;
sourcePosition = sourceView.byteOffset + sourceView.stride * y;
destPosition = destView.byteOffset + destView.stride * y;
destData.set(sourceData.subarray(sourcePosition,sourcePosition + destView.width * destBytesPerPixel),destPosition);
}
} else {
var _g = 0;
var _g1 = destView.height;
while(_g < _g1) {
var y = _g++;
sourcePosition = sourceView.byteOffset + sourceView.stride * y;
destPosition = destView.byteOffset + destView.stride * y;
var _g2 = 0;
var _g3 = destView.width;
while(_g2 < _g3) {
var x = _g2++;
var format = sourceFormat;
var premultiplied = sourcePremultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
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(premultiplied) {
if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255);
sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255;
}
}
var format1 = destFormat;
var premultiplied1 = destPremultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
if(premultiplied1) {
if((sourcePixel & 255) == 0) {
if(sourcePixel != 0) {
sourcePixel = 0;
}
} else if((sourcePixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[sourcePixel & 255];
sourcePixel = ((sourcePixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((sourcePixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((sourcePixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255;
}
}
switch(format1) {
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 {
var alphaData = alphaImage.buffer.data;
var alphaFormat = alphaImage.buffer.format;
var alphaPosition;
var alphaPixel = 0;
var alphaView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(alphaImage,new lime_math_Rectangle(sourceView.x + (alphaPoint == null ? 0 : alphaPoint.x),sourceView.y + (alphaPoint == null ? 0 : alphaPoint.y),sourceView.width,sourceView.height));
destView.clip(destPoint.x | 0,destPoint.y | 0,alphaView.width,alphaView.height);
if(blend) {
var _g = 0;
var _g1 = destView.height;
while(_g < _g1) {
var y = _g++;
sourcePosition = sourceView.byteOffset + sourceView.stride * y;
destPosition = destView.byteOffset + destView.stride * y;
alphaPosition = alphaView.byteOffset + alphaView.stride * y;
var _g2 = 0;
var _g3 = destView.width;
while(_g2 < _g3) {
var x = _g2++;
var format = sourceFormat;
var premultiplied = sourcePremultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
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(premultiplied) {
if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255);
sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255;
}
}
var format1 = destFormat;
var premultiplied1 = destPremultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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(premultiplied1) {
if((destPixel & 255) != 0 && (destPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (destPixel & 255);
destPixel = (lime_math_RGBA.__clamp[Math.round((destPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | destPixel & 255 & 255;
}
}
var format2 = alphaFormat;
var premultiplied2 = false;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
switch(format2) {
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;
}
if(premultiplied2) {
if((alphaPixel & 255) != 0 && (alphaPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (alphaPixel & 255);
alphaPixel = (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | alphaPixel & 255 & 255;
}
}
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 value = lime_math_RGBA.__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_RGBA.__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_RGBA.__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_RGBA.__clamp[Math.round(blendAlpha * 255.0)];
destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255;
var format3 = destFormat;
var premultiplied3 = destPremultiplied;
if(premultiplied3 == null) {
premultiplied3 = false;
}
if(format3 == null) {
format3 = 0;
}
if(premultiplied3) {
if((destPixel & 255) == 0) {
if(destPixel != 0) {
destPixel = 0;
}
} else if((destPixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[destPixel & 255];
destPixel = ((destPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
}
}
switch(format3) {
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 _g = 0;
var _g1 = destView.height;
while(_g < _g1) {
var y = _g++;
sourcePosition = sourceView.byteOffset + sourceView.stride * y;
destPosition = destView.byteOffset + destView.stride * y;
alphaPosition = alphaView.byteOffset + alphaView.stride * y;
var _g2 = 0;
var _g3 = destView.width;
while(_g2 < _g3) {
var x = _g2++;
var format = sourceFormat;
var premultiplied = sourcePremultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
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(premultiplied) {
if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255);
sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255;
}
}
var format1 = alphaFormat;
var premultiplied1 = false;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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;
}
if(premultiplied1) {
if((alphaPixel & 255) != 0 && (alphaPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (alphaPixel & 255);
alphaPixel = (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | alphaPixel & 255 & 255;
}
}
var value = Math.round((sourcePixel & 255) * ((alphaPixel & 255) / 255));
sourcePixel = (sourcePixel >>> 24 & 255 & 255) << 24 | (sourcePixel >>> 16 & 255 & 255) << 16 | (sourcePixel >>> 8 & 255 & 255) << 8 | value & 255;
var format2 = destFormat;
var premultiplied2 = destPremultiplied;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied2) {
if((sourcePixel & 255) == 0) {
if(sourcePixel != 0) {
sourcePixel = 0;
}
} else if((sourcePixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[sourcePixel & 255];
sourcePixel = ((sourcePixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((sourcePixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((sourcePixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255;
}
}
switch(format2) {
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++;
};
lime__$internal_graphics_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 this1 = 0;
var rgba = this1;
rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
fillColor = rgba;
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 format = 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_RGBA.a16 = lime_math_RGBA.__alpha16[fillColor & 255];
fillColor = ((fillColor >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | fillColor & 255 & 255;
}
}
var dataView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(image,rect);
var row;
var _g = 0;
var _g1 = dataView.height;
while(_g < _g1) {
var y = _g++;
row = dataView.byteOffset + dataView.stride * y;
var _g2 = 0;
var _g3 = dataView.width;
while(_g2 < _g3) {
var x = _g2++;
var offset = row + x * 4;
var format1 = format;
var premultiplied = false;
if(premultiplied == null) {
premultiplied = false;
}
if(format1 == null) {
format1 = 0;
}
if(premultiplied) {
if((fillColor & 255) == 0) {
if(fillColor != 0) {
fillColor = 0;
}
} else if((fillColor & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[fillColor & 255];
fillColor = ((fillColor >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | fillColor & 255 & 255;
}
}
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++;
};
lime__$internal_graphics_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 format = image.buffer.format;
var premultiplied = image.buffer.premultiplied;
var fillColor = color;
var hitColor = 0;
var offset = (y + image.offsetY) * (image.buffer.width * 4) + (x + image.offsetX) * 4;
var format1 = format;
var premultiplied1 = premultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
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(premultiplied1) {
if((hitColor & 255) != 0 && (hitColor & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (hitColor & 255);
hitColor = (lime_math_RGBA.__clamp[Math.round((hitColor >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((hitColor >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((hitColor >>> 8 & 255) * lime_math_RGBA.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_RGBA.a16 = lime_math_RGBA.__alpha16[fillColor & 255];
fillColor = ((fillColor >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * lime_math_RGBA.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 = 0;
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;
var format1 = format;
var premultiplied1 = premultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
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(premultiplied1) {
if((readColor & 255) != 0 && (readColor & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (readColor & 255);
readColor = (lime_math_RGBA.__clamp[Math.round((readColor >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((readColor >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((readColor >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | readColor & 255 & 255;
}
}
if(readColor == hitColor) {
var format2 = format;
var premultiplied2 = false;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied2) {
if((fillColor & 255) == 0) {
if(fillColor != 0) {
fillColor = 0;
}
} else if((fillColor & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[fillColor & 255];
fillColor = ((fillColor >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | fillColor & 255 & 255;
}
}
switch(format2) {
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++;
};
lime__$internal_graphics_ImageDataUtil.gaussianBlur = function(image,sourceImage,sourceRect,destPoint,blurX,blurY,quality,strength,color) {
if(strength == null) {
strength = 1;
}
if(quality == null) {
quality = 1;
}
if(blurY == null) {
blurY = 4;
}
if(blurX == null) {
blurX = 4;
}
var imagePremultiplied = image.get_premultiplied();
if(imagePremultiplied) {
image.set_premultiplied(false);
}
lime__$internal_graphics_StackBlur.blur(image,sourceImage,sourceRect,destPoint,blurX,blurY,quality);
image.dirty = true;
image.version++;
if(imagePremultiplied) {
image.set_premultiplied(true);
}
return image;
};
lime__$internal_graphics_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 argb = mask;
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;
_mask = rgba;
break;
case 2:
var bgra = color;
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;
_color = rgba;
var bgra = mask;
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;
_mask = rgba;
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 _g = 0;
var _g1 = image.width;
while(_g < _g1) {
var x = _g++;
hit = false;
var _g2 = 0;
var _g3 = image.height;
while(_g2 < _g3) {
var y = _g2++;
pixel = image.getPixel32(x,y,0);
hit = findColor ? (pixel & _mask) == _color : (pixel & _mask) != _color;
if(hit) {
if(x < left) {
left = x;
}
break;
}
}
if(hit) {
break;
}
}
var ix;
var _g = 0;
var _g1 = image.width;
while(_g < _g1) {
var x = _g++;
ix = image.width - 1 - x;
hit = false;
var _g2 = 0;
var _g3 = image.height;
while(_g2 < _g3) {
var y = _g2++;
pixel = image.getPixel32(ix,y,0);
hit = findColor ? (pixel & _mask) == _color : (pixel & _mask) != _color;
if(hit) {
if(ix > right) {
right = ix;
}
break;
}
}
if(hit) {
break;
}
}
var _g = 0;
var _g1 = image.height;
while(_g < _g1) {
var y = _g++;
hit = false;
var _g2 = 0;
var _g3 = image.width;
while(_g2 < _g3) {
var x = _g2++;
pixel = image.getPixel32(x,y,0);
hit = findColor ? (pixel & _mask) == _color : (pixel & _mask) != _color;
if(hit) {
if(y < top) {
top = y;
}
break;
}
}
if(hit) {
break;
}
}
var iy;
var _g = 0;
var _g1 = image.height;
while(_g < _g1) {
var y = _g++;
iy = image.height - 1 - y;
hit = false;
var _g2 = 0;
var _g3 = image.width;
while(_g2 < _g3) {
var x = _g2++;
pixel = image.getPixel32(x,iy,0);
hit = findColor ? (pixel & _mask) == _color : (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(left,top,w,h);
};
lime__$internal_graphics_ImageDataUtil.getPixel = function(image,x,y,format) {
var pixel = 0;
var data = image.buffer.data;
var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
var format1 = image.buffer.format;
var premultiplied = image.buffer.premultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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_RGBA.unmult = 255.0 / (pixel & 255);
pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.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 this1 = 0;
var bgra = this1;
bgra = (pixel >>> 8 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 24 & 255 & 255) << 8 | pixel & 255 & 255;
return bgra;
default:
return pixel;
}
};
lime__$internal_graphics_ImageDataUtil.getPixel32 = function(image,x,y,format) {
var pixel = 0;
var data = image.buffer.data;
var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
var format1 = image.buffer.format;
var premultiplied = image.buffer.premultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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_RGBA.unmult = 255.0 / (pixel & 255);
pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.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 this1 = 0;
var bgra = this1;
bgra = (pixel >>> 8 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 24 & 255 & 255) << 8 | pixel & 255 & 255;
return bgra;
default:
return pixel;
}
};
lime__$internal_graphics_ImageDataUtil.getPixels = function(image,rect,format) {
if(image.buffer.data == null) {
return null;
}
var length = rect.width * rect.height | 0;
var bytes = new haxe_io_Bytes(new ArrayBuffer(length * 4));
var data = image.buffer.data;
var sourceFormat = image.buffer.format;
var premultiplied = image.buffer.premultiplied;
var dataView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(image,rect);
var position;
var argb = 0;
var bgra = 0;
var pixel = 0;
var destPosition = 0;
var _g = 0;
var _g1 = dataView.height;
while(_g < _g1) {
var y = _g++;
position = dataView.byteOffset + dataView.stride * y;
var _g2 = 0;
var _g3 = dataView.width;
while(_g2 < _g3) {
var x = _g2++;
var format1 = sourceFormat;
var premultiplied1 = premultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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(premultiplied1) {
if((pixel & 255) != 0 && (pixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (pixel & 255);
pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.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.b[destPosition++] = pixel >>> 24 & 255 & 255;
bytes.b[destPosition++] = pixel >>> 16 & 255 & 255;
bytes.b[destPosition++] = pixel >>> 8 & 255 & 255;
bytes.b[destPosition++] = pixel & 255 & 255;
position += 4;
}
}
return bytes;
};
lime__$internal_graphics_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__$internal_graphics__$ImageDataUtil_ImageDataView(sourceImage,sourceRect);
var destView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(image,new lime_math_Rectangle(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 = 0;
var destPixel = 0;
var _g = 0;
var _g1 = destView.height;
while(_g < _g1) {
var y = _g++;
sourcePosition = sourceView.byteOffset + sourceView.stride * y;
destPosition = destView.byteOffset + destView.stride * y;
var _g2 = 0;
var _g3 = destView.width;
while(_g2 < _g3) {
var x = _g2++;
var format = sourceFormat;
var premultiplied = sourcePremultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
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(premultiplied) {
if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255);
sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255;
}
}
var format1 = destFormat;
var premultiplied1 = destPremultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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(premultiplied1) {
if((destPixel & 255) != 0 && (destPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (destPixel & 255);
destPixel = (lime_math_RGBA.__clamp[Math.round((destPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | destPixel & 255 & 255;
}
}
var value = ((sourcePixel >>> 24 & 255) * redMultiplier + (destPixel >>> 24 & 255) * (256 - redMultiplier)) / 256 | 0;
destPixel = (value & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
var value1 = ((sourcePixel >>> 16 & 255) * greenMultiplier + (destPixel >>> 16 & 255) * (256 - greenMultiplier)) / 256 | 0;
destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
var value2 = ((sourcePixel >>> 8 & 255) * blueMultiplier + (destPixel >>> 8 & 255) * (256 - blueMultiplier)) / 256 | 0;
destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255;
var value3 = ((sourcePixel & 255) * alphaMultiplier + (destPixel & 255) * (256 - alphaMultiplier)) / 256 | 0;
destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255;
var format2 = destFormat;
var premultiplied2 = destPremultiplied;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied2) {
if((destPixel & 255) == 0) {
if(destPixel != 0) {
destPixel = 0;
}
} else if((destPixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[destPixel & 255];
destPixel = ((destPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
}
}
switch(format2) {
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++;
};
lime__$internal_graphics_ImageDataUtil.multiplyAlpha = function(image) {
var data = image.buffer.data;
if(data == null || !image.buffer.transparent) {
return;
}
var format = image.buffer.format;
var length = data.length / 4 | 0;
var pixel = 0;
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
var offset = i * 4;
var format1 = format;
var premultiplied = false;
if(premultiplied == null) {
premultiplied = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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_RGBA.unmult = 255.0 / (pixel & 255);
pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | pixel & 255 & 255;
}
}
var offset1 = i * 4;
var format2 = format;
var premultiplied1 = true;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied1) {
if((pixel & 255) == 0) {
if(pixel != 0) {
pixel = 0;
}
} else if((pixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255];
pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255;
}
}
switch(format2) {
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++;
};
lime__$internal_graphics_ImageDataUtil.resize = function(image,newWidth,newHeight) {
var buffer = image.buffer;
if(buffer.width == newWidth && buffer.height == newHeight) {
return;
}
var elements = newWidth * newHeight * 4;
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint8Array(buffer1,0);
} else {
this1 = new Uint8Array(buffer1,0,len);
}
} else {
this1 = null;
}
var newBuffer = new lime_graphics_ImageBuffer(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 _g = 0;
var _g1 = newHeight;
while(_g < _g1) {
var y = _g++;
var _g2 = 0;
var _g3 = newWidth;
while(_g2 < _g3) {
var x = _g2++;
u = (x + 0.5) / newWidth * imageWidth - 0.5;
v = (y + 0.5) / newHeight * imageHeight - 0.5;
sourceX = u | 0;
sourceY = v | 0;
sourceIndex = (sourceY * imageWidth + sourceX) * 4;
sourceIndexX = sourceX < imageWidth - 1 ? sourceIndex + 4 : sourceIndex;
sourceIndexY = sourceY < imageHeight - 1 ? sourceIndex + imageWidth * 4 : sourceIndex;
sourceIndexXY = sourceIndexX != sourceIndex ? sourceIndexY + 4 : sourceIndexY;
index = (y * newWidth + x) * 4;
uRatio = u - sourceX;
vRatio = v - sourceY;
uOpposite = 1 - uRatio;
vOpposite = 1 - vRatio;
newData[index] = (UInt.toFloat(data[sourceIndex]) * uOpposite + UInt.toFloat(data[sourceIndexX]) * uRatio) * vOpposite + (UInt.toFloat(data[sourceIndexY]) * uOpposite + UInt.toFloat(data[sourceIndexXY]) * uRatio) * vRatio | 0;
newData[index + 1] = (UInt.toFloat(data[sourceIndex + 1]) * uOpposite + UInt.toFloat(data[sourceIndexX + 1]) * uRatio) * vOpposite + (UInt.toFloat(data[sourceIndexY + 1]) * uOpposite + UInt.toFloat(data[sourceIndexXY + 1]) * uRatio) * vRatio | 0;
newData[index + 2] = (UInt.toFloat(data[sourceIndex + 2]) * uOpposite + UInt.toFloat(data[sourceIndexX + 2]) * uRatio) * vOpposite + (UInt.toFloat(data[sourceIndexY + 2]) * uOpposite + UInt.toFloat(data[sourceIndexXY + 2]) * uRatio) * vRatio | 0;
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++;
};
lime__$internal_graphics_ImageDataUtil.resizeBuffer = function(image,newWidth,newHeight) {
var buffer = image.buffer;
var data = image.get_data();
var elements = newWidth * newHeight * 4;
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint8Array(buffer1,0);
} else {
this1 = new Uint8Array(buffer1,0,len);
}
} else {
this1 = null;
}
var newData = this1;
var sourceIndex;
var index;
var _g = 0;
var _g1 = buffer.height;
while(_g < _g1) {
var y = _g++;
var _g2 = 0;
var _g3 = buffer.width;
while(_g2 < _g3) {
var x = _g2++;
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;
buffer.__srcImage = null;
buffer.__srcImageData = null;
buffer.__srcCanvas = null;
buffer.__srcContext = null;
image.dirty = true;
image.version++;
};
lime__$internal_graphics_ImageDataUtil.setFormat = function(image,format) {
var data = image.buffer.data;
if(data == null) {
return;
}
var index;
var a16;
var length = data.length / 4 | 0;
var r1;
var g1;
var b1;
var a1;
var r2;
var g2;
var b2;
var a2;
var r;
var g;
var b;
var a;
switch(image.get_format()) {
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 _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
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++;
};
lime__$internal_graphics_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 this1 = 0;
var rgba = this1;
rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
pixel = rgba;
break;
default:
pixel = color;
}
var this1 = 0;
var source = this1;
var data = image.buffer.data;
var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
var format = image.buffer.format;
var premultiplied = image.buffer.premultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(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_RGBA.unmult = 255.0 / (source & 255);
source = (lime_math_RGBA.__clamp[Math.round((source >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((source >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((source >>> 8 & 255) * lime_math_RGBA.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 data = image.buffer.data;
var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
var format = image.buffer.format;
var premultiplied = image.buffer.premultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
if(premultiplied) {
if((pixel & 255) == 0) {
if(pixel != 0) {
pixel = 0;
}
} else if((pixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255];
pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.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++;
};
lime__$internal_graphics_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 this1 = 0;
var rgba = this1;
rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
pixel = rgba;
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;
var format = image.buffer.format;
var premultiplied = image.buffer.premultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
if(premultiplied) {
if((pixel & 255) == 0) {
if(pixel != 0) {
pixel = 0;
}
} else if((pixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255];
pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.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++;
};
lime__$internal_graphics_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__$internal_graphics__$ImageDataUtil_ImageDataView(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.BIG_ENDIAN;
var _g = 0;
var _g1 = dataView.height;
while(_g < _g1) {
var y = _g++;
row = dataView.byteOffset + dataView.stride * y;
var _g2 = 0;
var _g3 = dataView.width;
while(_g2 < _g3) {
var x = _g2++;
if(littleEndian) {
color = bytes.getInt32(dataPosition);
} else {
color = bytes.b[dataPosition + 3] | bytes.b[dataPosition + 2] << 8 | bytes.b[dataPosition + 1] << 16 | bytes.b[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;
var format1 = sourceFormat;
var premultiplied1 = premultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
if(premultiplied1) {
if((pixel & 255) == 0) {
if(pixel != 0) {
pixel = 0;
}
} else if((pixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255];
pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255;
}
}
switch(format1) {
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++;
};
lime__$internal_graphics_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 argb = mask;
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;
_mask = rgba;
var argb = threshold;
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;
_threshold = rgba;
break;
case 2:
var bgra = color;
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;
_color = rgba;
var bgra = mask;
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;
_mask = rgba;
var bgra = threshold;
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;
_threshold = rgba;
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__$internal_graphics__$ImageDataUtil_ImageDataView(sourceImage,sourceRect);
var destView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(image,new lime_math_Rectangle(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 = 0;
var destPixel = 0;
var pixelMask;
var test;
var value;
var _g = 0;
var _g1 = destView.height;
while(_g < _g1) {
var y = _g++;
srcPosition = srcView.byteOffset + srcView.stride * y;
destPosition = destView.byteOffset + destView.stride * y;
var _g2 = 0;
var _g3 = destView.width;
while(_g2 < _g3) {
var x = _g2++;
var format = srcFormat;
var premultiplied = srcPremultiplied;
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
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(premultiplied) {
if((srcPixel & 255) != 0 && (srcPixel & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (srcPixel & 255);
srcPixel = (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | srcPixel & 255 & 255;
}
}
pixelMask = srcPixel & _mask;
var tmp1 = pixelMask >>> 24 & 255;
var tmp2 = _threshold >>> 24 & 255;
if(tmp1 != tmp2) {
value = UInt.gt(tmp1,tmp2) ? 1 : -1;
} else {
tmp1 = pixelMask >>> 16 & 255;
tmp2 = _threshold >>> 16 & 255;
if(tmp1 != tmp2) {
value = UInt.gt(tmp1,tmp2) ? 1 : -1;
} else {
tmp1 = pixelMask >>> 8 & 255;
tmp2 = _threshold >>> 8 & 255;
if(tmp1 != tmp2) {
value = UInt.gt(tmp1,tmp2) ? 1 : -1;
} else {
tmp1 = pixelMask & 255;
tmp2 = _threshold & 255;
value = tmp1 != tmp2 ? UInt.gt(tmp1,tmp2) ? 1 : -1 : 0;
}
}
}
switch(_operation) {
case 0:
test = value != 0;
break;
case 1:
test = value == 0;
break;
case 2:
test = value == -1;
break;
case 3:
test = value == 0 || value == -1;
break;
case 4:
test = value == 1;
break;
case 5:
test = value == 0 || value == 1;
break;
default:
test = false;
}
if(test) {
var format1 = destFormat;
var premultiplied1 = destPremultiplied;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format1 == null) {
format1 = 0;
}
if(premultiplied1) {
if((_color & 255) == 0) {
if(_color != 0) {
_color = 0;
}
} else if((_color & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[_color & 255];
_color = ((_color >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((_color >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((_color >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | _color & 255 & 255;
}
}
switch(format1) {
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) {
var format2 = destFormat;
var premultiplied2 = destPremultiplied;
if(premultiplied2 == null) {
premultiplied2 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied2) {
if((srcPixel & 255) == 0) {
if(srcPixel != 0) {
srcPixel = 0;
}
} else if((srcPixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[srcPixel & 255];
srcPixel = ((srcPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((srcPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((srcPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | srcPixel & 255 & 255;
}
}
switch(format2) {
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;
};
lime__$internal_graphics_ImageDataUtil.unmultiplyAlpha = function(image) {
var data = image.buffer.data;
if(data == null) {
return;
}
var format = image.buffer.format;
var length = data.length / 4 | 0;
var pixel = 0;
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
var offset = i * 4;
var format1 = format;
var premultiplied = true;
if(premultiplied == null) {
premultiplied = false;
}
if(format1 == null) {
format1 = 0;
}
switch(format1) {
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_RGBA.unmult = 255.0 / (pixel & 255);
pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | pixel & 255 & 255;
}
}
var offset1 = i * 4;
var format2 = format;
var premultiplied1 = false;
if(premultiplied1 == null) {
premultiplied1 = false;
}
if(format2 == null) {
format2 = 0;
}
if(premultiplied1) {
if((pixel & 255) == 0) {
if(pixel != 0) {
pixel = 0;
}
} else if((pixel & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255];
pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255;
}
}
switch(format2) {
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++;
};
lime__$internal_graphics_ImageDataUtil.__boxBlur = function(imgA,imgB,w,h,bx,by) {
imgB.set(imgA);
var bx1 = bx | 0;
var by1 = by | 0;
lime__$internal_graphics_ImageDataUtil.__boxBlurH(imgB,imgA,w,h,bx1,0);
lime__$internal_graphics_ImageDataUtil.__boxBlurH(imgB,imgA,w,h,bx1,1);
lime__$internal_graphics_ImageDataUtil.__boxBlurH(imgB,imgA,w,h,bx1,2);
lime__$internal_graphics_ImageDataUtil.__boxBlurH(imgB,imgA,w,h,bx1,3);
var iarr = 1 / (by1 + by1 + 1);
var ws = w * 4;
var ti;
var li;
var ri;
var fv;
var lv;
var val;
var _g = 0;
var _g1 = w;
while(_g < _g1) {
var i = _g++;
ti = i * 4;
li = ti;
ri = ti + by1 * ws;
fv = imgA[ti];
lv = imgA[ti + ws * (h - 1)];
val = (by1 + 1) * fv;
var _g2 = 0;
var _g3 = by1;
while(_g2 < _g3) {
var j = _g2++;
val = val + imgA[ti + j * ws];
}
var _g4 = 0;
var _g5 = by1 + 1;
while(_g4 < _g5) {
var j1 = _g4++;
val = val + (imgA[ri] - fv);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
ri += ws;
ti += ws;
}
var _g6 = by1 + 1;
var _g7 = h - by1;
while(_g6 < _g7) {
var j2 = _g6++;
val = val + (imgA[ri] - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ri += ws;
ti += ws;
}
var _g8 = h - by1;
var _g9 = h;
while(_g8 < _g9) {
var j3 = _g8++;
val = val + (lv - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ti += ws;
}
}
var iarr = 1 / (by1 + by1 + 1);
var ws = w * 4;
var ti;
var li;
var ri;
var fv;
var lv;
var val;
var _g = 0;
var _g1 = w;
while(_g < _g1) {
var i = _g++;
ti = i * 4 + 1;
li = ti;
ri = ti + by1 * ws;
fv = imgA[ti];
lv = imgA[ti + ws * (h - 1)];
val = (by1 + 1) * fv;
var _g2 = 0;
var _g3 = by1;
while(_g2 < _g3) {
var j = _g2++;
val = val + imgA[ti + j * ws];
}
var _g4 = 0;
var _g5 = by1 + 1;
while(_g4 < _g5) {
var j1 = _g4++;
val = val + (imgA[ri] - fv);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
ri += ws;
ti += ws;
}
var _g6 = by1 + 1;
var _g7 = h - by1;
while(_g6 < _g7) {
var j2 = _g6++;
val = val + (imgA[ri] - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ri += ws;
ti += ws;
}
var _g8 = h - by1;
var _g9 = h;
while(_g8 < _g9) {
var j3 = _g8++;
val = val + (lv - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ti += ws;
}
}
var iarr = 1 / (by1 + by1 + 1);
var ws = w * 4;
var ti;
var li;
var ri;
var fv;
var lv;
var val;
var _g = 0;
var _g1 = w;
while(_g < _g1) {
var i = _g++;
ti = i * 4 + 2;
li = ti;
ri = ti + by1 * ws;
fv = imgA[ti];
lv = imgA[ti + ws * (h - 1)];
val = (by1 + 1) * fv;
var _g2 = 0;
var _g3 = by1;
while(_g2 < _g3) {
var j = _g2++;
val = val + imgA[ti + j * ws];
}
var _g4 = 0;
var _g5 = by1 + 1;
while(_g4 < _g5) {
var j1 = _g4++;
val = val + (imgA[ri] - fv);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
ri += ws;
ti += ws;
}
var _g6 = by1 + 1;
var _g7 = h - by1;
while(_g6 < _g7) {
var j2 = _g6++;
val = val + (imgA[ri] - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ri += ws;
ti += ws;
}
var _g8 = h - by1;
var _g9 = h;
while(_g8 < _g9) {
var j3 = _g8++;
val = val + (lv - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ti += ws;
}
}
var iarr = 1 / (by1 + by1 + 1);
var ws = w * 4;
var ti;
var li;
var ri;
var fv;
var lv;
var val;
var _g = 0;
var _g1 = w;
while(_g < _g1) {
var i = _g++;
ti = i * 4 + 3;
li = ti;
ri = ti + by1 * ws;
fv = imgA[ti];
lv = imgA[ti + ws * (h - 1)];
val = (by1 + 1) * fv;
var _g2 = 0;
var _g3 = by1;
while(_g2 < _g3) {
var j = _g2++;
val = val + imgA[ti + j * ws];
}
var _g4 = 0;
var _g5 = by1 + 1;
while(_g4 < _g5) {
var j1 = _g4++;
val = val + (imgA[ri] - fv);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
ri += ws;
ti += ws;
}
var _g6 = by1 + 1;
var _g7 = h - by1;
while(_g6 < _g7) {
var j2 = _g6++;
val = val + (imgA[ri] - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ri += ws;
ti += ws;
}
var _g8 = h - by1;
var _g9 = h;
while(_g8 < _g9) {
var j3 = _g8++;
val = val + (lv - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ti += ws;
}
}
};
lime__$internal_graphics_ImageDataUtil.__boxBlurH = function(imgA,imgB,w,h,r,off) {
var iarr = 1 / (r + r + 1);
var ti;
var li;
var ri;
var fv;
var lv;
var val;
var _g = 0;
var _g1 = h;
while(_g < _g1) {
var i = _g++;
ti = i * w;
li = ti;
ri = ti + r;
fv = imgA[ti * 4 + off];
lv = imgA[(ti + w - 1) * 4 + off];
val = (r + 1) * fv;
var _g2 = 0;
var _g3 = r;
while(_g2 < _g3) {
var j = _g2++;
val = val + imgA[(ti + j) * 4 + off];
}
var _g4 = 0;
var _g5 = r + 1;
while(_g4 < _g5) {
var j1 = _g4++;
val = val + (imgA[ri * 4 + off] - fv);
imgB[ti * 4 + off] = Math.round(UInt.toFloat(val) * iarr);
++ri;
++ti;
}
var _g6 = r + 1;
var _g7 = w - r;
while(_g6 < _g7) {
var j2 = _g6++;
val = val + (imgA[ri * 4 + off] - imgA[li * 4 + off]);
imgB[ti * 4 + off] = Math.round(UInt.toFloat(val) * iarr);
++ri;
++li;
++ti;
}
var _g8 = w - r;
var _g9 = w;
while(_g8 < _g9) {
var j3 = _g8++;
val = val + (lv - imgA[li * 4 + off]);
imgB[ti * 4 + off] = Math.round(UInt.toFloat(val) * iarr);
++li;
++ti;
}
}
};
lime__$internal_graphics_ImageDataUtil.__boxBlurT = function(imgA,imgB,w,h,r,off) {
var iarr = 1 / (r + r + 1);
var ws = w * 4;
var ti;
var li;
var ri;
var fv;
var lv;
var val;
var _g = 0;
var _g1 = w;
while(_g < _g1) {
var i = _g++;
ti = i * 4 + off;
li = ti;
ri = ti + r * ws;
fv = imgA[ti];
lv = imgA[ti + ws * (h - 1)];
val = (r + 1) * fv;
var _g2 = 0;
var _g3 = r;
while(_g2 < _g3) {
var j = _g2++;
val = val + imgA[ti + j * ws];
}
var _g4 = 0;
var _g5 = r + 1;
while(_g4 < _g5) {
var j1 = _g4++;
val = val + (imgA[ri] - fv);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
ri += ws;
ti += ws;
}
var _g6 = r + 1;
var _g7 = h - r;
while(_g6 < _g7) {
var j2 = _g6++;
val = val + (imgA[ri] - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ri += ws;
ti += ws;
}
var _g8 = h - r;
var _g9 = h;
while(_g8 < _g9) {
var j3 = _g8++;
val = val + (lv - imgA[li]);
imgB[ti] = Math.round(UInt.toFloat(val) * iarr);
li += ws;
ti += ws;
}
}
};
lime__$internal_graphics_ImageDataUtil.__calculateSourceOffset = function(sourceRect,destPoint,destX,destY) {
var sourceX = destX - (destPoint.x | 0);
var sourceY = destY - (destPoint.y | 0);
var offset = 0;
if(sourceX < 0 || sourceY < 0 || sourceX >= sourceRect.width || sourceY >= sourceRect.height) {
offset = -1;
} else {
offset = 4 * (sourceY * (sourceRect.width | 0) + sourceX);
}
return offset;
};
lime__$internal_graphics_ImageDataUtil.__getBoxesForGaussianBlur = 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 _g = 0;
var _g1 = n;
while(_g < _g1) {
var i = _g++;
sizes.push(i < m ? wl : wu);
}
return sizes;
};
lime__$internal_graphics_ImageDataUtil.__pixelCompare = function(n1,n2) {
var tmp1 = n1 >>> 24 & 255;
var tmp2 = n2 >>> 24 & 255;
if(tmp1 != tmp2) {
if(UInt.gt(tmp1,tmp2)) {
return 1;
} else {
return -1;
}
} else {
tmp1 = n1 >>> 16 & 255;
tmp2 = n2 >>> 16 & 255;
if(tmp1 != tmp2) {
if(UInt.gt(tmp1,tmp2)) {
return 1;
} else {
return -1;
}
} else {
tmp1 = n1 >>> 8 & 255;
tmp2 = n2 >>> 8 & 255;
if(tmp1 != tmp2) {
if(UInt.gt(tmp1,tmp2)) {
return 1;
} else {
return -1;
}
} else {
tmp1 = n1 & 255;
tmp2 = n2 & 255;
if(tmp1 != tmp2) {
if(UInt.gt(tmp1,tmp2)) {
return 1;
} else {
return -1;
}
} else {
return 0;
}
}
}
}
};
lime__$internal_graphics_ImageDataUtil.__translatePixel = function(imgB,sourceRect,destRect,destPoint,destX,destY,strength) {
var d = 4 * (destY * (destRect.width | 0) + destX);
var s = lime__$internal_graphics_ImageDataUtil.__calculateSourceOffset(sourceRect,destPoint,destX,destY);
if(s < 0) {
imgB[d] = imgB[d + 1] = imgB[d + 2] = imgB[d + 3] = 0;
} else {
imgB[d] = imgB[s];
imgB[d + 1] = imgB[s + 1];
imgB[d + 2] = imgB[s + 2];
var a = UInt.toFloat(imgB[s + 3]) * strength | 0;
imgB[d + 3] = a < 0 ? 0 : a > 255 ? 255 : a;
}
};
var lime__$internal_graphics__$ImageDataUtil_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();
};
$hxClasses["lime._internal.graphics._ImageDataUtil.ImageDataView"] = lime__$internal_graphics__$ImageDataUtil_ImageDataView;
lime__$internal_graphics__$ImageDataUtil_ImageDataView.__name__ = "lime._internal.graphics._ImageDataUtil.ImageDataView";
lime__$internal_graphics__$ImageDataUtil_ImageDataView.prototype = {
x: null
,y: null
,height: null
,width: null
,byteOffset: null
,image: null
,rect: null
,stride: null
,tempRect: null
,clip: function(x,y,width,height) {
if(this.tempRect == null) {
this.tempRect = new lime_math_Rectangle();
}
this.tempRect.setTo(x,y,width,height);
this.rect.intersection(this.tempRect,this.rect);
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;
}
,__class__: lime__$internal_graphics__$ImageDataUtil_ImageDataView
};
var lime__$internal_graphics_StackBlur = function() { };
$hxClasses["lime._internal.graphics.StackBlur"] = lime__$internal_graphics_StackBlur;
lime__$internal_graphics_StackBlur.__name__ = "lime._internal.graphics.StackBlur";
lime__$internal_graphics_StackBlur.blur = function(dest,source,sourceRect,destPoint,blurX,blurY,quality) {
dest.copyPixels(source,sourceRect,destPoint);
lime__$internal_graphics_StackBlur.__stackBlurCanvasRGBA(dest,sourceRect.width | 0,sourceRect.height | 0,blurX,blurY,quality);
};
lime__$internal_graphics_StackBlur.__stackBlurCanvasRGBA = function(image,width,height,blurX,blurY,quality) {
var radiusX = Math.round(blurX) >> 1;
var radiusY = Math.round(blurY) >> 1;
if(lime__$internal_graphics_StackBlur.MUL_TABLE == null) {
return;
}
if(radiusX >= lime__$internal_graphics_StackBlur.MUL_TABLE.length) {
radiusX = lime__$internal_graphics_StackBlur.MUL_TABLE.length - 1;
}
if(radiusY >= lime__$internal_graphics_StackBlur.MUL_TABLE.length) {
radiusY = lime__$internal_graphics_StackBlur.MUL_TABLE.length - 1;
}
if(radiusX < 0 || radiusY < 0) {
return;
}
var iterations = quality;
if(iterations < 1) {
iterations = 1;
}
if(iterations > 3) {
iterations = 3;
}
var px = image.get_data();
var x;
var y;
var i;
var p;
var yp;
var yi;
var yw;
var r;
var g;
var b;
var a;
var pr;
var pg;
var pb;
var pa;
var f;
var divx = radiusX + radiusX + 1;
var divy = radiusY + radiusY + 1;
var w = width;
var h = height;
var w1 = w - 1;
var h1 = h - 1;
var rxp1 = radiusX + 1;
var ryp1 = radiusY + 1;
var ssx = new lime__$internal_graphics_BlurStack();
var sx = ssx;
var _g = 1;
var _g1 = divx;
while(_g < _g1) {
var i1 = _g++;
sx = sx.n = new lime__$internal_graphics_BlurStack();
}
sx.n = ssx;
var ssy = new lime__$internal_graphics_BlurStack();
var sy = ssy;
var _g = 1;
var _g1 = divy;
while(_g < _g1) {
var i1 = _g++;
sy = sy.n = new lime__$internal_graphics_BlurStack();
}
sy.n = ssy;
var si = null;
var mtx = lime__$internal_graphics_StackBlur.MUL_TABLE[radiusX];
var stx = lime__$internal_graphics_StackBlur.SHG_TABLE[radiusX];
var mty = lime__$internal_graphics_StackBlur.MUL_TABLE[radiusY];
var sty = lime__$internal_graphics_StackBlur.SHG_TABLE[radiusY];
while(iterations > 0) {
--iterations;
yi = 0;
yw = yi;
var ms = mtx;
var ss = stx;
y = h;
while(true) {
pr = px[yi];
r = rxp1 * pr;
pg = px[yi + 1];
g = rxp1 * pg;
pb = px[yi + 2];
b = rxp1 * pb;
pa = px[yi + 3];
a = rxp1 * pa;
sx = ssx;
i = rxp1;
while(true) {
sx.r = pr;
sx.g = pg;
sx.b = pb;
sx.a = pa;
sx = sx.n;
if(!(--i > -1)) {
break;
}
}
var _g = 1;
var _g1 = rxp1;
while(_g < _g1) {
var i1 = _g++;
p = yi + ((w1 < i1 ? w1 : i1) << 2);
r += sx.r = px[p];
g += sx.g = px[p + 1];
b += sx.b = px[p + 2];
a += sx.a = px[p + 3];
sx = sx.n;
}
si = ssx;
var _g2 = 0;
var _g3 = w;
while(_g2 < _g3) {
var x = _g2++;
px[yi++] = r * ms >>> ss;
px[yi++] = g * ms >>> ss;
px[yi++] = b * ms >>> ss;
px[yi++] = a * ms >>> ss;
p = x + radiusX + 1;
p = yw + (p < w1 ? p : w1) << 2;
r -= si.r - (si.r = px[p]);
g -= si.g - (si.g = px[p + 1]);
b -= si.b - (si.b = px[p + 2]);
a -= si.a - (si.a = px[p + 3]);
si = si.n;
}
yw += w;
if(!(--y > 0)) {
break;
}
}
ms = mty;
ss = sty;
var _g4 = 0;
var _g5 = w;
while(_g4 < _g5) {
var x1 = _g4++;
yi = x1 << 2;
pr = px[yi];
r = ryp1 * pr;
pg = px[yi + 1];
g = ryp1 * pg;
pb = px[yi + 2];
b = ryp1 * pb;
pa = px[yi + 3];
a = ryp1 * pa;
sy = ssy;
var _g6 = 0;
var _g7 = ryp1;
while(_g6 < _g7) {
var i2 = _g6++;
sy.r = pr;
sy.g = pg;
sy.b = pb;
sy.a = pa;
sy = sy.n;
}
yp = w;
var _g8 = 1;
var _g9 = radiusY + 1;
while(_g8 < _g9) {
var i3 = _g8++;
yi = yp + x1 << 2;
r += sy.r = px[yi];
g += sy.g = px[yi + 1];
b += sy.b = px[yi + 2];
a += sy.a = px[yi + 3];
sy = sy.n;
if(i3 < h1) {
yp += w;
}
}
yi = x1;
si = ssy;
if(iterations > 0) {
var _g10 = 0;
var _g11 = h;
while(_g10 < _g11) {
var y1 = _g10++;
p = yi << 2;
pa = a * ms >>> ss;
px[p + 3] = pa;
if(pa > 0) {
px[p] = r * ms >>> ss;
px[p + 1] = g * ms >>> ss;
px[p + 2] = b * ms >>> ss;
} else {
px[p] = px[p + 1] = px[p + 2] = 0;
}
p = y1 + ryp1;
p = x1 + (p < h1 ? p : h1) * w << 2;
r -= si.r - (si.r = px[p]);
g -= si.g - (si.g = px[p + 1]);
b -= si.b - (si.b = px[p + 2]);
a -= si.a - (si.a = px[p + 3]);
si = si.n;
yi += w;
}
} else {
var _g12 = 0;
var _g13 = h;
while(_g12 < _g13) {
var y2 = _g12++;
p = yi << 2;
pa = a * ms >>> ss;
px[p + 3] = pa;
if(pa > 0) {
f = 255 / pa;
pr = (r * ms >>> ss) * f | 0;
pg = (g * ms >>> ss) * f | 0;
pb = (b * ms >>> ss) * f | 0;
px[p] = pr > 255 ? 255 : pr;
px[p + 1] = pg > 255 ? 255 : pg;
px[p + 2] = pb > 255 ? 255 : pb;
} else {
px[p] = px[p + 1] = px[p + 2] = 0;
}
p = y2 + ryp1;
p = x1 + (p < h1 ? p : h1) * w << 2;
r -= si.r - (si.r = px[p]);
g -= si.g - (si.g = px[p + 1]);
b -= si.b - (si.b = px[p + 2]);
a -= si.a - (si.a = px[p + 3]);
si = si.n;
yi += w;
}
}
}
}
};
var lime__$internal_graphics_BlurStack = function() {
this.r = 0;
this.g = 0;
this.b = 0;
this.a = 0;
this.n = null;
};
$hxClasses["lime._internal.graphics.BlurStack"] = lime__$internal_graphics_BlurStack;
lime__$internal_graphics_BlurStack.__name__ = "lime._internal.graphics.BlurStack";
lime__$internal_graphics_BlurStack.prototype = {
r: null
,g: null
,b: null
,a: null
,n: null
,__class__: lime__$internal_graphics_BlurStack
};
var lime__$internal_macros_AssetsMacro = function() { };
$hxClasses["lime._internal.macros.AssetsMacro"] = lime__$internal_macros_AssetsMacro;
lime__$internal_macros_AssetsMacro.__name__ = "lime._internal.macros.AssetsMacro";
var lime_app_Event = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app.Event"] = lime_app_Event;
lime_app_Event.__name__ = "lime.app.Event";
lime_app_Event.prototype = {
canceled: null
,__listeners: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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;
}
,dispatch: null
,has: function(listener) {
var _g = 0;
var _g1 = this.__listeners;
while(_g < _g1.length) {
var l = _g1[_g];
++_g;
if(Reflect.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__class__: lime_app_Event
};
var lime_app_Future = function(work,async) {
if(async == null) {
async = false;
}
if(work != null) {
if(async) {
var promise = new lime_app_Promise();
promise.future = this;
lime_app__$Future_FutureWork.queue({ promise : promise, work : work});
} else {
try {
this.value = work();
this.isComplete = true;
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.error = e;
this.isError = true;
}
}
}
};
$hxClasses["lime.app.Future"] = lime_app_Future;
lime_app_Future.__name__ = "lime.app.Future";
lime_app_Future.ofEvents = function(onComplete,onError,onProgress) {
var promise = new lime_app_Promise();
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;
};
lime_app_Future.withError = function(error) {
var future = new lime_app_Future();
future.isError = true;
future.error = error;
return future;
};
lime_app_Future.withValue = function(value) {
var future = new lime_app_Future();
future.isComplete = true;
future.value = value;
return future;
};
lime_app_Future.prototype = {
error: null
,isComplete: null
,isError: null
,value: null
,__completeListeners: null
,__errorListeners: null
,__progressListeners: null
,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.warn("Cannot block thread in JavaScript",{ fileName : "lime/app/Future.hx", lineNumber : 208, 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 lime_app_Future();
future.isError = true;
future.error = this.error;
return future;
} else {
var promise = new lime_app_Promise();
this.onError($bind(promise,promise.error));
this.onProgress($bind(promise,promise.progress));
this.onComplete(function(val) {
var future = next(val);
future.onError($bind(promise,promise.error));
future.onComplete($bind(promise,promise.complete));
});
return promise.future;
}
}
,__class__: lime_app_Future
};
var lime_app__$Future_FutureWork = function() { };
$hxClasses["lime.app._Future.FutureWork"] = lime_app__$Future_FutureWork;
lime_app__$Future_FutureWork.__name__ = "lime.app._Future.FutureWork";
lime_app__$Future_FutureWork.threadPool = null;
lime_app__$Future_FutureWork.queue = function(state) {
if(lime_app__$Future_FutureWork.threadPool == null) {
lime_app__$Future_FutureWork.threadPool = new lime_system_ThreadPool();
lime_app__$Future_FutureWork.threadPool.doWork.add(lime_app__$Future_FutureWork.threadPool_doWork);
lime_app__$Future_FutureWork.threadPool.onComplete.add(lime_app__$Future_FutureWork.threadPool_onComplete);
lime_app__$Future_FutureWork.threadPool.onError.add(lime_app__$Future_FutureWork.threadPool_onError);
}
lime_app__$Future_FutureWork.threadPool.queue(state);
};
lime_app__$Future_FutureWork.threadPool_doWork = function(state) {
try {
var result = state.work();
lime_app__$Future_FutureWork.threadPool.sendComplete({ promise : state.promise, result : result});
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
lime_app__$Future_FutureWork.threadPool.sendError({ promise : state.promise, error : e});
}
};
lime_app__$Future_FutureWork.threadPool_onComplete = function(state) {
state.promise.complete(state.result);
};
lime_app__$Future_FutureWork.threadPool_onError = function(state) {
state.promise.error(state.error);
};
var lime_app_Promise = function() {
this.future = new lime_app_Future();
};
$hxClasses["lime.app.Promise"] = lime_app_Promise;
lime_app_Promise.__name__ = "lime.app.Promise";
lime_app_Promise.prototype = {
future: null
,isComplete: null
,isError: null
,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;
}
,__class__: lime_app_Promise
,__properties__: {get_isError:"get_isError",get_isComplete:"get_isComplete"}
};
var lime_app__$Event_$Array_$String_$_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Array_String__Void"] = lime_app__$Event_$Array_$String_$_$Void;
lime_app__$Event_$Array_$String_$_$Void.__name__ = "lime.app._Event_Array_String__Void";
lime_app__$Event_$Array_$String_$_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Array_$String_$_$Void
};
var lime_app__$Event_$Dynamic_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Dynamic_Void"] = lime_app__$Event_$Dynamic_$Void;
lime_app__$Event_$Dynamic_$Void.__name__ = "lime.app._Event_Dynamic_Void";
lime_app__$Event_$Dynamic_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Dynamic_$Void
};
var lime_app__$Event_$Float_$Float_$Float_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Float_Float_Float_Void"] = lime_app__$Event_$Float_$Float_$Float_$Void;
lime_app__$Event_$Float_$Float_$Float_$Void.__name__ = "lime.app._Event_Float_Float_Float_Void";
lime_app__$Event_$Float_$Float_$Float_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Float_$Float_$Float_$Void
};
var lime_app__$Event_$Float_$Float_$Int_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Float_Float_Int_Void"] = lime_app__$Event_$Float_$Float_$Int_$Void;
lime_app__$Event_$Float_$Float_$Int_$Void.__name__ = "lime.app._Event_Float_Float_Int_Void";
lime_app__$Event_$Float_$Float_$Int_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Float_$Float_$Int_$Void
};
var lime_app__$Event_$Float_$Float_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Float_Float_Void"] = lime_app__$Event_$Float_$Float_$Void;
lime_app__$Event_$Float_$Float_$Void.__name__ = "lime.app._Event_Float_Float_Void";
lime_app__$Event_$Float_$Float_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Float_$Float_$Void
};
var lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Float_Float_lime_ui_MouseButton_Void"] = lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void;
lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void.__name__ = "lime.app._Event_Float_Float_lime_ui_MouseButton_Void";
lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void
};
var lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Float_Float_lime_ui_MouseWheelMode_Void"] = lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void;
lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void.__name__ = "lime.app._Event_Float_Float_lime_ui_MouseWheelMode_Void";
lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void
};
var lime_app__$Event_$Int_$Float_$Float_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Int_Float_Float_Void"] = lime_app__$Event_$Int_$Float_$Float_$Void;
lime_app__$Event_$Int_$Float_$Float_$Void.__name__ = "lime.app._Event_Int_Float_Float_Void";
lime_app__$Event_$Int_$Float_$Float_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Int_$Float_$Float_$Void
};
var lime_app__$Event_$Int_$Float_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Int_Float_Void"] = lime_app__$Event_$Int_$Float_$Void;
lime_app__$Event_$Int_$Float_$Void.__name__ = "lime.app._Event_Int_Float_Void";
lime_app__$Event_$Int_$Float_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Int_$Float_$Void
};
var lime_app__$Event_$Int_$Int_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Int_Int_Void"] = lime_app__$Event_$Int_$Int_$Void;
lime_app__$Event_$Int_$Int_$Void.__name__ = "lime.app._Event_Int_Int_Void";
lime_app__$Event_$Int_$Int_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Int_$Int_$Void
};
var lime_app__$Event_$Int_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Int_Void"] = lime_app__$Event_$Int_$Void;
lime_app__$Event_$Int_$Void.__name__ = "lime.app._Event_Int_Void";
lime_app__$Event_$Int_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Int_$Void
};
var lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Int_lime_ui_JoystickHatPosition_Void"] = lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void;
lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void.__name__ = "lime.app._Event_Int_lime_ui_JoystickHatPosition_Void";
lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void
};
var lime_app__$Event_$String_$Int_$Int_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_String_Int_Int_Void"] = lime_app__$Event_$String_$Int_$Int_$Void;
lime_app__$Event_$String_$Int_$Int_$Void.__name__ = "lime.app._Event_String_Int_Int_Void";
lime_app__$Event_$String_$Int_$Int_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$String_$Int_$Int_$Void
};
var lime_app__$Event_$String_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_String_Void"] = lime_app__$Event_$String_$Void;
lime_app__$Event_$String_$Void.__name__ = "lime.app._Event_String_Void";
lime_app__$Event_$String_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$String_$Void
};
var lime_app__$Event_$Void_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_Void_Void"] = lime_app__$Event_$Void_$Void;
lime_app__$Event_$Void_$Void.__name__ = "lime.app._Event_Void_Void";
lime_app__$Event_$Void_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$Void_$Void
};
var lime_app__$Event_$lime_$graphics_$RenderContext_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_graphics_RenderContext_Void"] = lime_app__$Event_$lime_$graphics_$RenderContext_$Void;
lime_app__$Event_$lime_$graphics_$RenderContext_$Void.__name__ = "lime.app._Event_lime_graphics_RenderContext_Void";
lime_app__$Event_$lime_$graphics_$RenderContext_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$graphics_$RenderContext_$Void
};
var lime_app__$Event_$lime_$ui_$GamepadAxis_$Float_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_ui_GamepadAxis_Float_Void"] = lime_app__$Event_$lime_$ui_$GamepadAxis_$Float_$Void;
lime_app__$Event_$lime_$ui_$GamepadAxis_$Float_$Void.__name__ = "lime.app._Event_lime_ui_GamepadAxis_Float_Void";
lime_app__$Event_$lime_$ui_$GamepadAxis_$Float_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$ui_$GamepadAxis_$Float_$Void
};
var lime_app__$Event_$lime_$ui_$GamepadButton_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_ui_GamepadButton_Void"] = lime_app__$Event_$lime_$ui_$GamepadButton_$Void;
lime_app__$Event_$lime_$ui_$GamepadButton_$Void.__name__ = "lime.app._Event_lime_ui_GamepadButton_Void";
lime_app__$Event_$lime_$ui_$GamepadButton_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$ui_$GamepadButton_$Void
};
var lime_app__$Event_$lime_$ui_$Gamepad_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_ui_Gamepad_Void"] = lime_app__$Event_$lime_$ui_$Gamepad_$Void;
lime_app__$Event_$lime_$ui_$Gamepad_$Void.__name__ = "lime.app._Event_lime_ui_Gamepad_Void";
lime_app__$Event_$lime_$ui_$Gamepad_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$ui_$Gamepad_$Void
};
var lime_app__$Event_$lime_$ui_$Joystick_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_ui_Joystick_Void"] = lime_app__$Event_$lime_$ui_$Joystick_$Void;
lime_app__$Event_$lime_$ui_$Joystick_$Void.__name__ = "lime.app._Event_lime_ui_Joystick_Void";
lime_app__$Event_$lime_$ui_$Joystick_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$ui_$Joystick_$Void
};
var lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void"] = lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void;
lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void.__name__ = "lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void";
lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void
};
var lime_app__$Event_$lime_$ui_$Touch_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_ui_Touch_Void"] = lime_app__$Event_$lime_$ui_$Touch_$Void;
lime_app__$Event_$lime_$ui_$Touch_$Void.__name__ = "lime.app._Event_lime_ui_Touch_Void";
lime_app__$Event_$lime_$ui_$Touch_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$ui_$Touch_$Void
};
var lime_app__$Event_$lime_$ui_$Window_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_ui_Window_Void"] = lime_app__$Event_$lime_$ui_$Window_$Void;
lime_app__$Event_$lime_$ui_$Window_$Void.__name__ = "lime.app._Event_lime_ui_Window_Void";
lime_app__$Event_$lime_$ui_$Window_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$ui_$Window_$Void
};
var lime_app__$Event_$lime_$utils_$Resource_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_lime_utils_Resource_Void"] = lime_app__$Event_$lime_$utils_$Resource_$Void;
lime_app__$Event_$lime_$utils_$Resource_$Void.__name__ = "lime.app._Event_lime_utils_Resource_Void";
lime_app__$Event_$lime_$utils_$Resource_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$lime_$utils_$Resource_$Void
};
var lime_app__$Event_$ofEvents_$T_$Void = function() {
this.canceled = false;
this.__listeners = [];
this.__priorities = [];
this.__repeat = [];
};
$hxClasses["lime.app._Event_ofEvents_T_Void"] = lime_app__$Event_$ofEvents_$T_$Void;
lime_app__$Event_$ofEvents_$T_$Void.__name__ = "lime.app._Event_ofEvents_T_Void";
lime_app__$Event_$ofEvents_$T_$Void.prototype = {
canceled: null
,__repeat: null
,__priorities: null
,add: function(listener,once,priority) {
if(priority == null) {
priority = 0;
}
if(once == null) {
once = false;
}
var _g = 0;
var _g1 = this.__priorities.length;
while(_g < _g1) {
var i = _g++;
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.compareMethods(l,listener)) {
return true;
}
}
return false;
}
,remove: function(listener) {
var i = this.__listeners.length;
while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) {
this.__listeners.splice(i,1);
this.__priorities.splice(i,1);
this.__repeat.splice(i,1);
}
}
,removeAll: function() {
var len = this.__listeners.length;
this.__listeners.splice(0,len);
this.__priorities.splice(0,len);
this.__repeat.splice(0,len);
}
,__listeners: null
,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;
}
}
}
,__class__: lime_app__$Event_$ofEvents_$T_$Void
};
var lime_graphics_CairoRenderContext = {};
lime_graphics_CairoRenderContext.fromRenderContext = function(context) {
return context.cairo;
};
var lime_graphics_Canvas2DRenderContext = {};
lime_graphics_Canvas2DRenderContext.fromRenderContext = function(context) {
return context.canvas2D;
};
var lime_graphics_DOMRenderContext = {};
lime_graphics_DOMRenderContext.fromRenderContext = function(context) {
return context.dom;
};
var lime_graphics_FlashRenderContext = {};
lime_graphics_FlashRenderContext.fromRenderContext = function(context) {
return null;
};
var lime_graphics_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.CANVAS;
}
this.type = type;
if(buffer == null) {
if(width > 0 && height > 0) {
switch(this.type._hx_index) {
case 0:
this.buffer = new lime_graphics_ImageBuffer(null,width,height);
lime__$internal_graphics_ImageCanvasUtil.createCanvas(this,width,height);
if(color != null && color != 0) {
this.fillRect(new lime_math_Rectangle(0,0,width,height),color);
}
break;
case 1:
var elements = width * height * 4;
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint8Array(buffer1,0);
} else {
this1 = new Uint8Array(buffer1,0,len);
}
} else {
this1 = null;
}
this.buffer = new lime_graphics_ImageBuffer(this1,width,height);
if(color != null && color != 0) {
this.fillRect(new lime_math_Rectangle(0,0,width,height),color);
}
break;
case 2:
break;
default:
}
}
} else {
this.__fromImageBuffer(buffer);
}
};
$hxClasses["lime.graphics.Image"] = lime_graphics_Image;
lime_graphics_Image.__name__ = "lime.graphics.Image";
lime_graphics_Image.fromBase64 = function(base64,type) {
if(base64 == null) {
return null;
}
var image = new lime_graphics_Image();
image.__fromBase64(base64,type);
return image;
};
lime_graphics_Image.fromBitmapData = function(bitmapData) {
if(bitmapData == null) {
return null;
}
return bitmapData.image;
};
lime_graphics_Image.fromBytes = function(bytes) {
if(bytes == null) {
return null;
}
var image = new lime_graphics_Image();
if(image.__fromBytes(bytes)) {
return image;
} else {
return null;
}
};
lime_graphics_Image.fromCanvas = function(canvas) {
if(canvas == null) {
return null;
}
var buffer = new lime_graphics_ImageBuffer(null,canvas.width,canvas.height);
buffer.set_src(canvas);
var image = new lime_graphics_Image(buffer);
image.type = lime_graphics_ImageType.CANVAS;
return image;
};
lime_graphics_Image.fromFile = function(path) {
if(path == null) {
return null;
}
var image = new lime_graphics_Image();
if(image.__fromFile(path)) {
return image;
} else {
return null;
}
};
lime_graphics_Image.fromImageElement = function(image) {
if(image == null) {
return null;
}
var buffer = new lime_graphics_ImageBuffer(null,image.width,image.height);
buffer.set_src(image);
var _image = new lime_graphics_Image(buffer);
_image.type = lime_graphics_ImageType.CANVAS;
return _image;
};
lime_graphics_Image.loadFromBase64 = function(base64,type) {
if(base64 == null || type == null) {
return lime_app_Future.withValue(null);
}
return lime__$internal_backend_html5_HTML5HTTPRequest.loadImage("data:" + type + ";base64," + base64);
};
lime_graphics_Image.loadFromBytes = function(bytes) {
if(bytes == null) {
return lime_app_Future.withValue(null);
}
var type = "";
if(lime_graphics_Image.__isPNG(bytes)) {
type = "image/png";
} else if(lime_graphics_Image.__isJPG(bytes)) {
type = "image/jpeg";
} else if(lime_graphics_Image.__isGIF(bytes)) {
type = "image/gif";
} else if(lime_graphics_Image.__isWebP(bytes)) {
type = "image/webp";
} else {
return lime_app_Future.withValue(null);
}
return lime__$internal_backend_html5_HTML5HTTPRequest.loadImageFromBytes(bytes,type);
};
lime_graphics_Image.loadFromFile = function(path) {
if(path == null) {
return lime_app_Future.withValue(null);
}
return lime__$internal_backend_html5_HTML5HTTPRequest.loadImage(path);
};
lime_graphics_Image.__isGIF = function(bytes) {
if(bytes == null || bytes.length < 6) {
return false;
}
var header = bytes.getString(0,6);
if(header != "GIF87a") {
return header == "GIF89a";
} else {
return true;
}
};
lime_graphics_Image.__isJPG = function(bytes) {
if(bytes == null || bytes.length < 4) {
return false;
}
if(bytes.b[0] == 255 && bytes.b[1] == 216 && bytes.b[bytes.length - 2] == 255) {
return bytes.b[bytes.length - 1] == 217;
} else {
return false;
}
};
lime_graphics_Image.__isPNG = function(bytes) {
if(bytes == null || bytes.length < 8) {
return false;
}
if(bytes.b[0] == 137 && bytes.b[1] == 80 && bytes.b[2] == 78 && bytes.b[3] == 71 && bytes.b[4] == 13 && bytes.b[5] == 10 && bytes.b[6] == 26) {
return bytes.b[7] == 10;
} else {
return false;
}
};
lime_graphics_Image.__isWebP = function(bytes) {
if(bytes == null || bytes.length < 16) {
return false;
}
if(bytes.getString(0,4) == "RIFF") {
return bytes.getString(8,4) == "WEBP";
} else {
return false;
}
};
lime_graphics_Image.prototype = {
buffer: null
,dirty: null
,height: null
,offsetX: null
,offsetY: null
,rect: null
,type: null
,version: null
,width: null
,x: null
,y: null
,clone: function() {
if(this.buffer != null) {
if(this.type == lime_graphics_ImageType.CANVAS) {
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this);
} else {
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
}
var image = new lime_graphics_Image(this.buffer.clone(),this.offsetX,this.offsetY,this.width,this.height,null,this.type);
image.version = this.version;
return image;
} else {
return new lime_graphics_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;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.colorTransform(this,rect,colorMatrix);
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageDataUtil.colorTransform(this,rect,colorMatrix);
break;
case 2:
rect.offset(this.offsetX,this.offsetY);
this.buffer.__srcBitmapData.colorTransform(rect.__toFlashRectangle(),lime_math_ColorMatrix.__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.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;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage);
lime__$internal_graphics_ImageDataUtil.copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
break;
case 2:
var srcChannel;
switch(sourceChannel._hx_index) {
case 0:
srcChannel = 1;
break;
case 1:
srcChannel = 2;
break;
case 2:
srcChannel = 4;
break;
case 3:
srcChannel = 8;
break;
}
var dstChannel;
switch(destChannel._hx_index) {
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();
}
if(alphaImage == sourceImage && (alphaPoint == null || alphaPoint.x == 0 && alphaPoint.y == 0)) {
alphaImage = null;
alphaPoint = null;
}
switch(this.type._hx_index) {
case 0:
if(alphaImage != null) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage);
if(alphaImage != null) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(alphaImage);
}
lime__$internal_graphics_ImageDataUtil.copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha);
} else {
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this);
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(sourceImage);
lime__$internal_graphics_ImageCanvasUtil.copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha);
}
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage);
if(alphaImage != null) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(alphaImage);
}
lime__$internal_graphics_ImageDataUtil.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) {
return lime__$internal_format_PNG.encode(this);
} else {
switch(format._hx_index) {
case 0:
return lime__$internal_format_BMP.encode(this);
case 1:
return lime__$internal_format_JPEG.encode(this,quality);
case 2:
return lime__$internal_format_PNG.encode(this);
}
}
}
,fillRect: function(rect,color,format) {
rect = this.__clipRect(rect);
if(this.buffer == null || rect == null) {
return;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.fillRect(this,rect,color,format);
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
if(this.buffer.data.length == 0) {
return;
}
lime__$internal_graphics_ImageDataUtil.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 this1 = 0;
var argb1 = this1;
argb1 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
argb = argb1;
break;
default:
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;
}
}
this.buffer.__srcBitmapData.fillRect(rect.__toFlashRectangle(),argb);
break;
default:
}
}
,floodFill: function(x,y,color,format) {
if(this.buffer == null) {
return;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.floodFill(this,x,y,color,format);
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageDataUtil.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 this1 = 0;
var argb1 = this1;
argb1 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
argb = argb1;
break;
default:
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;
}
}
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;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
return lime__$internal_graphics_ImageDataUtil.getColorBoundsRect(this,mask,color,findColor,format);
case 1:
return lime__$internal_graphics_ImageDataUtil.getColorBoundsRect(this,mask,color,findColor,format);
case 2:
var rect = this.buffer.__srcBitmapData.getColorBoundsRect(mask,color,findColor);
return new lime_math_Rectangle(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;
}
switch(this.type._hx_index) {
case 0:
return lime__$internal_graphics_ImageCanvasUtil.getPixel(this,x,y,format);
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
return lime__$internal_graphics_ImageDataUtil.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 this1 = 0;
var bgra = this1;
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 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;
}
}
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;
}
switch(this.type._hx_index) {
case 0:
return lime__$internal_graphics_ImageCanvasUtil.getPixel32(this,x,y,format);
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
return lime__$internal_graphics_ImageDataUtil.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 this1 = 0;
var bgra = this1;
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 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;
}
}
break;
default:
return 0;
}
}
,getPixels: function(rect,format) {
if(this.buffer == null) {
return null;
}
switch(this.type._hx_index) {
case 0:
return lime__$internal_graphics_ImageCanvasUtil.getPixels(this,rect,format);
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
return lime__$internal_graphics_ImageDataUtil.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;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this);
lime__$internal_graphics_ImageCanvasUtil.merge(this,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage);
lime__$internal_graphics_ImageDataUtil.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) {
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.resize(this,newWidth,newHeight);
break;
case 1:
lime__$internal_graphics_ImageDataUtil.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;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.scroll(this,x,y);
break;
case 1:
this.copyPixels(this,this.get_rect(),new lime_math_Vector2(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;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.setPixel(this,x,y,color,format);
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageDataUtil.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 this1 = 0;
var argb1 = this1;
argb1 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
argb = argb1;
break;
default:
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;
}
}
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;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.setPixel32(this,x,y,color,format);
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageDataUtil.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 this1 = 0;
var argb1 = this1;
argb1 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
argb = argb1;
break;
default:
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;
}
}
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.BIG_ENDIAN;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.setPixels(this,rect,bytePointer,format,endian);
break;
case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageDataUtil.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;
}
switch(this.type._hx_index) {
case 0:case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage);
return lime__$internal_graphics_ImageDataUtil.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 this1 = 0;
var argb = this1;
argb = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
_color = argb;
break;
default:
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;
}
}
var _mask;
if(format == null) {
var rgba = mask;
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;
_mask = argb;
} else {
switch(format) {
case 1:
_mask = mask;
break;
case 2:
var bgra = mask;
var this1 = 0;
var argb = this1;
argb = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
_mask = argb;
break;
default:
var rgba = mask;
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;
_mask = argb;
}
}
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(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(lime_graphics_Image.__isPNG(bytes)) {
type = "image/png";
} else if(lime_graphics_Image.__isJPG(bytes)) {
type = "image/jpeg";
} else if(lime_graphics_Image.__isGIF(bytes)) {
type = "image/gif";
} else {
return false;
}
this.__fromBase64(lime__$internal_format_Base64.encode(bytes),type,onload);
return true;
}
,__fromFile: function(path,onload,onerror) {
var _gthis = this;
var image = new Image();
if(!lime__$internal_backend_html5_HTML5HTTPRequest.__isSameOrigin(path)) {
image.crossOrigin = "Anonymous";
}
image.onload = function(_) {
_gthis.buffer = new lime_graphics_ImageBuffer(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(_) {
if(onerror != null) {
onerror();
}
};
image.src = path;
var image1 = image.complete;
return true;
}
,__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__$internal_graphics_ImageCanvasUtil.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) {
if(this.type._hx_index == 1) {
lime__$internal_graphics_ImageDataUtil.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;
if(newWidth == this.buffer.width && newHeight == this.buffer.height) {
return value;
}
switch(this.type._hx_index) {
case 0:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageDataUtil.resizeBuffer(this,newWidth,newHeight);
break;
case 1:
lime__$internal_graphics_ImageDataUtil.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) {
switch(this.type._hx_index) {
case 0:case 1:
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageDataUtil.multiplyAlpha(this);
break;
default:
}
} else if(!value && this.buffer.premultiplied) {
if(this.type._hx_index == 1) {
lime__$internal_graphics_ImageCanvasUtil.convertToData(this);
lime__$internal_graphics_ImageDataUtil.unmultiplyAlpha(this);
}
}
return value;
}
,get_rect: function() {
return new lime_math_Rectangle(0,0,this.width,this.height);
}
,get_src: function() {
if(this.buffer.__srcCanvas == null && (this.buffer.data != null || this.type == lime_graphics_ImageType.DATA)) {
lime__$internal_graphics_ImageCanvasUtil.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;
}
,__class__: lime_graphics_Image
,__properties__: {set_transparent:"set_transparent",get_transparent:"get_transparent",set_src:"set_src",get_src:"get_src",get_rect:"get_rect",set_premultiplied:"set_premultiplied",get_premultiplied:"get_premultiplied",set_powerOfTwo:"set_powerOfTwo",get_powerOfTwo:"get_powerOfTwo",set_format:"set_format",get_format:"get_format",set_data:"set_data",get_data:"get_data"}
};
var lime_graphics_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;
};
$hxClasses["lime.graphics.ImageBuffer"] = lime_graphics_ImageBuffer;
lime_graphics_ImageBuffer.__name__ = "lime.graphics.ImageBuffer";
lime_graphics_ImageBuffer.prototype = {
bitsPerPixel: null
,data: null
,format: null
,height: null
,premultiplied: null
,transparent: null
,width: null
,__srcBitmapData: null
,__srcCanvas: null
,__srcContext: null
,__srcCustom: null
,__srcImage: null
,__srcImageData: null
,clone: function() {
var buffer = new lime_graphics_ImageBuffer(this.data,this.width,this.height,this.bitsPerPixel);
if(this.data != null) {
var elements = this.data.byteLength;
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint8Array(buffer1,0);
} else {
this1 = new Uint8Array(buffer1,0,len);
}
} else {
this1 = null;
}
buffer.data = this1;
var elements = null;
var array = null;
var vector = null;
var view = this.data;
var buffer1 = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint8Array(buffer1,0);
} else {
this1 = new Uint8Array(buffer1,0,len);
}
} else {
this1 = null;
}
var copy = this1;
buffer.data.set(copy);
} else if(this.__srcImageData != null) {
buffer.__srcCanvas = window.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 copy = new Uint8ClampedArray(this.__srcImageData.data);
buffer.__srcImageData.data.set(copy);
} else if(this.__srcCanvas != null) {
buffer.__srcCanvas = window.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(((value) instanceof Image)) {
this.__srcImage = value;
} else if(((value) instanceof HTMLCanvasElement)) {
this.__srcCanvas = value;
this.__srcContext = this.__srcCanvas.getContext("2d");
}
return value;
}
,get_stride: function() {
return this.width * (this.bitsPerPixel / 8 | 0);
}
,__class__: lime_graphics_ImageBuffer
,__properties__: {get_stride:"get_stride",set_src:"set_src",get_src:"get_src"}
};
var lime_graphics_ImageChannel = $hxEnums["lime.graphics.ImageChannel"] = { __ename__ : "lime.graphics.ImageChannel", __constructs__ : ["RED","GREEN","BLUE","ALPHA"]
,RED: {_hx_index:0,__enum__:"lime.graphics.ImageChannel",toString:$estr}
,GREEN: {_hx_index:1,__enum__:"lime.graphics.ImageChannel",toString:$estr}
,BLUE: {_hx_index:2,__enum__:"lime.graphics.ImageChannel",toString:$estr}
,ALPHA: {_hx_index:3,__enum__:"lime.graphics.ImageChannel",toString:$estr}
};
var lime_graphics_ImageFileFormat = $hxEnums["lime.graphics.ImageFileFormat"] = { __ename__ : "lime.graphics.ImageFileFormat", __constructs__ : ["BMP","JPEG","PNG"]
,BMP: {_hx_index:0,__enum__:"lime.graphics.ImageFileFormat",toString:$estr}
,JPEG: {_hx_index:1,__enum__:"lime.graphics.ImageFileFormat",toString:$estr}
,PNG: {_hx_index:2,__enum__:"lime.graphics.ImageFileFormat",toString:$estr}
};
var lime_graphics_ImageType = $hxEnums["lime.graphics.ImageType"] = { __ename__ : "lime.graphics.ImageType", __constructs__ : ["CANVAS","DATA","FLASH","CUSTOM"]
,CANVAS: {_hx_index:0,__enum__:"lime.graphics.ImageType",toString:$estr}
,DATA: {_hx_index:1,__enum__:"lime.graphics.ImageType",toString:$estr}
,FLASH: {_hx_index:2,__enum__:"lime.graphics.ImageType",toString:$estr}
,CUSTOM: {_hx_index:3,__enum__:"lime.graphics.ImageType",toString:$estr}
};
var lime_graphics_OpenGLES2RenderContext = {};
lime_graphics_OpenGLES2RenderContext.fromGL = function(gl) {
return null;
};
lime_graphics_OpenGLES2RenderContext.fromOpenGLES3RenderContext = function(gl) {
return null;
};
lime_graphics_OpenGLES2RenderContext.fromRenderContext = function(context) {
return null;
};
lime_graphics_OpenGLES2RenderContext.fromWebGLRenderContext = function(gl) {
return null;
};
var lime_graphics_OpenGLES3RenderContext = {};
lime_graphics_OpenGLES3RenderContext.fromRenderContext = function(context) {
return null;
};
lime_graphics_OpenGLES3RenderContext.fromGL = function(gl) {
return null;
};
lime_graphics_OpenGLES3RenderContext.fromOpenGLES2RenderContext = function(context) {
return null;
};
lime_graphics_OpenGLES3RenderContext.fromWebGLRenderContext = function(context) {
return null;
};
lime_graphics_OpenGLES3RenderContext.fromWebGL2RenderContext = function(context) {
return null;
};
var lime_graphics_OpenGLRenderContext = {};
lime_graphics_OpenGLRenderContext.fromRenderContext = function(context) {
return null;
};
var lime_graphics_RenderContext = function() {
};
$hxClasses["lime.graphics.RenderContext"] = lime_graphics_RenderContext;
lime_graphics_RenderContext.__name__ = "lime.graphics.RenderContext";
lime_graphics_RenderContext.prototype = {
attributes: null
,cairo: null
,canvas2D: null
,dom: null
,flash: null
,gl: null
,gles2: null
,gles3: null
,type: null
,version: null
,webgl: null
,webgl2: null
,window: null
,__class__: lime_graphics_RenderContext
};
var lime_graphics_WebGL2RenderContext = {};
lime_graphics_WebGL2RenderContext.bufferData = function(this1,target,srcData,usage,srcOffset,length) {
if(srcOffset != null) {
this1.bufferData(target,srcData,usage,srcOffset,length);
} else {
this1.bufferData(target,srcData,usage);
}
};
lime_graphics_WebGL2RenderContext.bufferSubData = function(this1,target,dstByteOffset,srcData,srcOffset,length) {
if(srcOffset != null) {
this1.bufferSubData(target,dstByteOffset,srcData,srcOffset,length);
} else {
this1.bufferSubData(target,dstByteOffset,srcData);
}
};
lime_graphics_WebGL2RenderContext.compressedTexImage2D = function(this1,target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride) {
if(srcOffset != null) {
this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride);
} else {
this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData);
}
};
lime_graphics_WebGL2RenderContext.compressedTexSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride) {
if(srcOffset != null) {
this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride);
} else {
this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData);
}
};
lime_graphics_WebGL2RenderContext.getBufferSubData = function(this1,target,srcByteOffset,dstData,srcOffset,length) {
if(srcOffset != null) {
this1.getBufferSubData(target,srcByteOffset,dstData,srcOffset,length);
} else {
this1.getBufferSubData(target,srcByteOffset,dstData);
}
};
lime_graphics_WebGL2RenderContext.readPixels = function(this1,x,y,width,height,format,type,pixels,dstOffset) {
if(dstOffset != null) {
this1.readPixels(x,y,width,height,format,type,pixels,dstOffset);
} else {
this1.readPixels(x,y,width,height,format,type,pixels);
}
};
lime_graphics_WebGL2RenderContext.texImage2D = function(this1,target,level,internalformat,width,height,border,format,type,srcData,srcOffset) {
if(srcOffset != null) {
this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData,srcOffset);
} else if(format != null) {
this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData);
} else {
this1.texImage2D(target,level,internalformat,width,height,border);
}
};
lime_graphics_WebGL2RenderContext.texSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset) {
if(srcOffset != null) {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset);
} else if(type != null) {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData);
} else {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format);
}
};
lime_graphics_WebGL2RenderContext.uniform1fv = function(this1,location,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniform1fv(location,data,srcOffset,srcLength);
} else {
this1.uniform1fv(location,data);
}
};
lime_graphics_WebGL2RenderContext.uniform1iv = function(this1,location,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniform1iv(location,data,srcOffset,srcLength);
} else {
this1.uniform1iv(location,data);
}
};
lime_graphics_WebGL2RenderContext.uniform2fv = function(this1,location,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniform2fv(location,data,srcOffset,srcLength);
} else {
this1.uniform2fv(location,data);
}
};
lime_graphics_WebGL2RenderContext.uniform2iv = function(this1,location,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniform2iv(location,data,srcOffset,srcLength);
} else {
this1.uniform2iv(location,data);
}
};
lime_graphics_WebGL2RenderContext.uniform3fv = function(this1,location,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniform3fv(location,data,srcOffset,srcLength);
} else {
this1.uniform3fv(location,data);
}
};
lime_graphics_WebGL2RenderContext.uniform3iv = function(this1,location,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniform3iv(location,data,srcOffset,srcLength);
} else {
this1.uniform3iv(location,data);
}
};
lime_graphics_WebGL2RenderContext.uniform4fv = function(this1,location,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniform4fv(location,data,srcOffset,srcLength);
} else {
this1.uniform4fv(location,data);
}
};
lime_graphics_WebGL2RenderContext.uniform4iv = function(this1,location,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniform4iv(location,data,srcOffset,srcLength);
} else {
this1.uniform4iv(location,data);
}
};
lime_graphics_WebGL2RenderContext.uniformMatrix2fv = function(this1,location,transpose,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniformMatrix2fv(location,transpose,data,srcOffset,srcLength);
} else {
this1.uniformMatrix2fv(location,transpose,data);
}
};
lime_graphics_WebGL2RenderContext.uniformMatrix3fv = function(this1,location,transpose,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniformMatrix3fv(location,transpose,data,srcOffset,srcLength);
} else {
this1.uniformMatrix3fv(location,transpose,data);
}
};
lime_graphics_WebGL2RenderContext.uniformMatrix4fv = function(this1,location,transpose,data,srcOffset,srcLength) {
if(srcOffset != null) {
this1.uniformMatrix4fv(location,transpose,data,srcOffset,srcLength);
} else {
this1.uniformMatrix4fv(location,transpose,data);
}
};
lime_graphics_WebGL2RenderContext.fromGL = function(gl) {
return null;
};
lime_graphics_WebGL2RenderContext.fromRenderContext = function(context) {
return context.webgl2;
};
lime_graphics_WebGL2RenderContext.toWebGLRenderContext = function(gl) {
return gl;
};
var lime_graphics_WebGLRenderContext = {};
lime_graphics_WebGLRenderContext.bufferData = function(this1,target,srcData,usage) {
var srcOffset = null;
if(srcOffset != null) {
this1.bufferData(target,srcData,usage,srcOffset,null);
} else {
this1.bufferData(target,srcData,usage);
}
};
lime_graphics_WebGLRenderContext.bufferSubData = function(this1,target,offset,srcData) {
var srcOffset = null;
if(srcOffset != null) {
this1.bufferSubData(target,offset,srcData,srcOffset,null);
} else {
this1.bufferSubData(target,offset,srcData);
}
};
lime_graphics_WebGLRenderContext.compressedTexImage2D = function(this1,target,level,internalformat,width,height,border,srcData) {
var srcOffset = null;
if(srcOffset != null) {
this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData,srcOffset,null);
} else {
this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData);
}
};
lime_graphics_WebGLRenderContext.compressedTexSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,srcData) {
var srcOffset = null;
if(srcOffset != null) {
this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,null);
} else {
this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData);
}
};
lime_graphics_WebGLRenderContext.readPixels = function(this1,x,y,width,height,format,type,pixels) {
var dstOffset = null;
if(dstOffset != null) {
this1.readPixels(x,y,width,height,format,type,pixels,dstOffset);
} else {
this1.readPixels(x,y,width,height,format,type,pixels);
}
};
lime_graphics_WebGLRenderContext.texImage2D = function(this1,target,level,internalformat,width,height,border,format,type,srcData) {
var srcOffset = null;
if(srcOffset != null) {
this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData,srcOffset);
} else if(format != null) {
this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData);
} else {
this1.texImage2D(target,level,internalformat,width,height,border);
}
};
lime_graphics_WebGLRenderContext.texSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,type,srcData) {
var srcOffset = null;
if(srcOffset != null) {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset);
} else if(type != null) {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData);
} else {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format);
}
};
lime_graphics_WebGLRenderContext.uniformMatrix2fv = function(this1,location,transpose,v) {
var data = v;
var srcOffset = null;
if(srcOffset != null) {
this1.uniformMatrix2fv(location,transpose,data,srcOffset,null);
} else {
this1.uniformMatrix2fv(location,transpose,data);
}
};
lime_graphics_WebGLRenderContext.uniformMatrix3fv = function(this1,location,transpose,v) {
var data = v;
var srcOffset = null;
if(srcOffset != null) {
this1.uniformMatrix3fv(location,transpose,data,srcOffset,null);
} else {
this1.uniformMatrix3fv(location,transpose,data);
}
};
lime_graphics_WebGLRenderContext.uniformMatrix4fv = function(this1,location,transpose,v) {
var data = v;
var srcOffset = null;
if(srcOffset != null) {
this1.uniformMatrix4fv(location,transpose,data,srcOffset,null);
} else {
this1.uniformMatrix4fv(location,transpose,data);
}
};
lime_graphics_WebGLRenderContext.fromWebGL2RenderContext = function(gl) {
return gl;
};
lime_graphics_WebGLRenderContext.fromRenderContext = function(context) {
return context.webgl;
};
lime_graphics_WebGLRenderContext.fromGL = function(gl) {
return lime_graphics_opengl_GL.context;
};
var lime_graphics_cairo_Cairo = function(surface) {
var tmp = surface != null;
};
$hxClasses["lime.graphics.cairo.Cairo"] = lime_graphics_cairo_Cairo;
lime_graphics_cairo_Cairo.__name__ = "lime.graphics.cairo.Cairo";
lime_graphics_cairo_Cairo.__properties__ = {get_versionString:"get_versionString",get_version:"get_version"};
lime_graphics_cairo_Cairo.version = null;
lime_graphics_cairo_Cairo.versionString = null;
lime_graphics_cairo_Cairo.get_version = function() {
return 0;
};
lime_graphics_cairo_Cairo.get_versionString = function() {
return "";
};
lime_graphics_cairo_Cairo.prototype = {
target: null
,userData: null
,handle: null
,arc: function(xc,yc,radius,angle1,angle2) {
}
,arcNegative: function(xc,yc,radius,angle1,angle2) {
}
,clip: function() {
}
,clipExtents: function(x1,y1,x2,y2) {
}
,clipPreserve: function() {
}
,closePath: function() {
}
,copyPage: function() {
}
,curveTo: function(x1,y1,x2,y2,x3,y3) {
}
,fill: function() {
}
,fillExtents: function(x1,y1,x2,y2) {
}
,fillPreserve: function() {
}
,getOperator: function() {
return 0;
}
,identityMatrix: function() {
}
,inClip: function(x,y) {
return false;
}
,inFill: function(x,y) {
return false;
}
,inStroke: function(x,y) {
return false;
}
,lineTo: function(x,y) {
}
,mask: function(pattern) {
}
,maskSurface: function(surface,x,y) {
}
,moveTo: function(x,y) {
}
,newPath: function() {
}
,paint: function() {
}
,paintWithAlpha: function(alpha) {
}
,popGroup: function() {
return null;
}
,popGroupToSource: function() {
}
,pushGroup: function() {
}
,pushGroupWithContent: function(content) {
}
,recreate: function(surface) {
}
,rectangle: function(x,y,width,height) {
}
,relCurveTo: function(dx1,dy1,dx2,dy2,dx3,dy3) {
}
,relLineTo: function(dx,dy) {
}
,relMoveTo: function(dx,dy) {
}
,resetClip: function() {
}
,restore: function() {
}
,rotate: function(amount) {
}
,save: function() {
}
,scale: function(x,y) {
}
,setFontSize: function(size) {
}
,setOperator: function(value) {
return value;
}
,setSourceRGB: function(r,g,b) {
}
,setSourceRGBA: function(r,g,b,a) {
}
,setSourceSurface: function(surface,x,y) {
}
,showGlyphs: function(glyphs) {
}
,showPage: function() {
}
,showText: function(utf8) {
}
,status: function() {
return 0;
}
,stroke: function() {
}
,strokeExtents: function(x1,y1,x2,y2) {
}
,strokePreserve: function() {
}
,textPath: function(utf8) {
}
,transform: function(matrix) {
}
,translate: function(x,y) {
}
,get_antialias: function() {
return 0;
}
,set_antialias: function(value) {
return value;
}
,get_currentPoint: function() {
return null;
}
,get_dash: function() {
return [];
}
,set_dash: function(value) {
return value;
}
,get_dashCount: function() {
return 0;
}
,get_fillRule: function() {
return 0;
}
,set_fillRule: function(value) {
return value;
}
,get_fontFace: function() {
return 0;
}
,set_fontFace: function(value) {
return value;
}
,get_fontOptions: function() {
return null;
}
,set_fontOptions: function(value) {
return value;
}
,get_groupTarget: function() {
return 0;
}
,get_hasCurrentPoint: function() {
return false;
}
,get_lineCap: function() {
return 0;
}
,set_lineCap: function(value) {
return value;
}
,get_lineJoin: function() {
return 0;
}
,set_lineJoin: function(value) {
return value;
}
,get_lineWidth: function() {
return 0;
}
,set_lineWidth: function(value) {
return value;
}
,get_matrix: function() {
return null;
}
,set_matrix: function(value) {
return value;
}
,get_miterLimit: function() {
return 0;
}
,set_miterLimit: function(value) {
return value;
}
,get_source: function() {
return 0;
}
,set_source: function(value) {
return value;
}
,get_target: function() {
return 0;
}
,get_tolerance: function() {
return 0;
}
,set_tolerance: function(value) {
return value;
}
,__class__: lime_graphics_cairo_Cairo
,__properties__: {set_tolerance:"set_tolerance",get_tolerance:"get_tolerance",get_target:"get_target",set_source:"set_source",get_source:"get_source",set_miterLimit:"set_miterLimit",get_miterLimit:"get_miterLimit",set_matrix:"set_matrix",get_matrix:"get_matrix",set_lineWidth:"set_lineWidth",get_lineWidth:"get_lineWidth",set_lineJoin:"set_lineJoin",get_lineJoin:"get_lineJoin",set_lineCap:"set_lineCap",get_lineCap:"get_lineCap",get_hasCurrentPoint:"get_hasCurrentPoint",get_groupTarget:"get_groupTarget",set_fontOptions:"set_fontOptions",get_fontOptions:"get_fontOptions",set_fontFace:"set_fontFace",get_fontFace:"get_fontFace",set_fillRule:"set_fillRule",get_fillRule:"get_fillRule",get_dashCount:"get_dashCount",set_dash:"set_dash",get_dash:"get_dash",get_currentPoint:"get_currentPoint",set_antialias:"set_antialias",get_antialias:"get_antialias"}
};
var lime_graphics_cairo_CairoFTFontFace = {};
lime_graphics_cairo_CairoFTFontFace._new = function() {
var this1 = 0;
return this1;
};
lime_graphics_cairo_CairoFTFontFace.create = function(face,loadFlags) {
return 0;
};
var lime_graphics_cairo_CairoFontFace = {};
lime_graphics_cairo_CairoFontFace._new = function() {
var this1 = null;
return this1;
};
lime_graphics_cairo_CairoFontFace.status = function(this1) {
return 0;
};
var lime_graphics_cairo_CairoFontOptions = {};
lime_graphics_cairo_CairoFontOptions.__properties__ = {set_subpixelOrder:"set_subpixelOrder",get_subpixelOrder:"get_subpixelOrder",set_hintStyle:"set_hintStyle",get_hintStyle:"get_hintStyle",set_hintMetrics:"set_hintMetrics",get_hintMetrics:"get_hintMetrics",set_antialias:"set_antialias",get_antialias:"get_antialias"};
lime_graphics_cairo_CairoFontOptions._new = function() {
var this1 = null;
return this1;
};
lime_graphics_cairo_CairoFontOptions.get_antialias = function(this1) {
return 0;
};
lime_graphics_cairo_CairoFontOptions.set_antialias = function(this1,value) {
return value;
};
lime_graphics_cairo_CairoFontOptions.get_hintMetrics = function(this1) {
return 0;
};
lime_graphics_cairo_CairoFontOptions.set_hintMetrics = function(this1,value) {
return value;
};
lime_graphics_cairo_CairoFontOptions.get_hintStyle = function(this1) {
return 0;
};
lime_graphics_cairo_CairoFontOptions.set_hintStyle = function(this1,value) {
return value;
};
lime_graphics_cairo_CairoFontOptions.get_subpixelOrder = function(this1) {
return 0;
};
lime_graphics_cairo_CairoFontOptions.set_subpixelOrder = function(this1,value) {
return value;
};
var lime_graphics_cairo_CairoGlyph = function(index,x,y) {
if(y == null) {
y = 0;
}
if(x == null) {
x = 0;
}
this.index = index;
this.x = x;
this.y = y;
};
$hxClasses["lime.graphics.cairo.CairoGlyph"] = lime_graphics_cairo_CairoGlyph;
lime_graphics_cairo_CairoGlyph.__name__ = "lime.graphics.cairo.CairoGlyph";
lime_graphics_cairo_CairoGlyph.prototype = {
index: null
,x: null
,y: null
,__class__: lime_graphics_cairo_CairoGlyph
};
var lime_graphics_cairo_CairoImageSurface = {};
lime_graphics_cairo_CairoImageSurface.__properties__ = {get_width:"get_width",get_stride:"get_stride",get_height:"get_height",get_format:"get_format",get_data:"get_data"};
lime_graphics_cairo_CairoImageSurface._new = function(format,width,height) {
var this1 = 0;
return this1;
};
lime_graphics_cairo_CairoImageSurface.create = function(data,format,width,height,stride) {
return 0;
};
lime_graphics_cairo_CairoImageSurface.fromImage = function(image) {
return null;
};
lime_graphics_cairo_CairoImageSurface.get_data = function(this1) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_graphics_cairo_CairoImageSurface.get_format = function(this1) {
return 0;
};
lime_graphics_cairo_CairoImageSurface.get_height = function(this1) {
return 0;
};
lime_graphics_cairo_CairoImageSurface.get_stride = function(this1) {
return 0;
};
lime_graphics_cairo_CairoImageSurface.get_width = function(this1) {
return 0;
};
var lime_graphics_cairo_CairoPattern = {};
lime_graphics_cairo_CairoPattern.__properties__ = {set_matrix:"set_matrix",get_matrix:"get_matrix",set_filter:"set_filter",get_filter:"get_filter",set_extend:"set_extend",get_extend:"get_extend",get_colorStopCount:"get_colorStopCount"};
lime_graphics_cairo_CairoPattern._new = function(handle) {
var this1 = handle;
return this1;
};
lime_graphics_cairo_CairoPattern.addColorStopRGB = function(this1,offset,r,g,b) {
};
lime_graphics_cairo_CairoPattern.addColorStopRGBA = function(this1,offset,r,g,b,a) {
};
lime_graphics_cairo_CairoPattern.createForSurface = function(surface) {
return 0;
};
lime_graphics_cairo_CairoPattern.createLinear = function(x0,y0,x1,y1) {
return 0;
};
lime_graphics_cairo_CairoPattern.createRadial = function(cx0,cy0,radius0,cx1,cy1,radius1) {
return 0;
};
lime_graphics_cairo_CairoPattern.createRGB = function(r,g,b) {
return 0;
};
lime_graphics_cairo_CairoPattern.createRGBA = function(r,g,b,a) {
return 0;
};
lime_graphics_cairo_CairoPattern.get_colorStopCount = function(this1) {
return 0;
};
lime_graphics_cairo_CairoPattern.get_extend = function(this1) {
return 0;
};
lime_graphics_cairo_CairoPattern.set_extend = function(this1,value) {
return value;
};
lime_graphics_cairo_CairoPattern.get_filter = function(this1) {
return 0;
};
lime_graphics_cairo_CairoPattern.set_filter = function(this1,value) {
return value;
};
lime_graphics_cairo_CairoPattern.get_matrix = function(this1) {
return null;
};
lime_graphics_cairo_CairoPattern.set_matrix = function(this1,value) {
return value;
};
var lime_graphics_cairo_CairoSurface = {};
lime_graphics_cairo_CairoSurface.flush = function(this1) {
};
var lime_graphics_opengl_GL = function() { };
$hxClasses["lime.graphics.opengl.GL"] = lime_graphics_opengl_GL;
lime_graphics_opengl_GL.__name__ = "lime.graphics.opengl.GL";
lime_graphics_opengl_GL.context = null;
lime_graphics_opengl_GL.type = null;
lime_graphics_opengl_GL.version = null;
lime_graphics_opengl_GL.activeTexture = function(texture) {
lime_graphics_opengl_GL.context.activeTexture(texture);
};
lime_graphics_opengl_GL.attachShader = function(program,shader) {
lime_graphics_opengl_GL.context.attachShader(program,shader);
};
lime_graphics_opengl_GL.beginQuery = function(target,query) {
lime_graphics_opengl_GL.context.beginQuery(target,query);
};
lime_graphics_opengl_GL.beginTransformFeedback = function(primitiveNode) {
lime_graphics_opengl_GL.context.beginTransformFeedback(primitiveNode);
};
lime_graphics_opengl_GL.bindAttribLocation = function(program,index,name) {
lime_graphics_opengl_GL.context.bindAttribLocation(program,index,name);
};
lime_graphics_opengl_GL.bindBuffer = function(target,buffer) {
lime_graphics_opengl_GL.context.bindBuffer(target,buffer);
};
lime_graphics_opengl_GL.bindBufferBase = function(target,index,buffer) {
lime_graphics_opengl_GL.context.bindBufferBase(target,index,buffer);
};
lime_graphics_opengl_GL.bindBufferRange = function(target,index,buffer,offset,size) {
lime_graphics_opengl_GL.context.bindBufferRange(target,index,buffer,offset,lime_utils_DataPointer.fromFloat(size));
};
lime_graphics_opengl_GL.bindFramebuffer = function(target,framebuffer) {
lime_graphics_opengl_GL.context.bindFramebuffer(target,framebuffer);
};
lime_graphics_opengl_GL.bindRenderbuffer = function(target,renderbuffer) {
lime_graphics_opengl_GL.context.bindRenderbuffer(target,renderbuffer);
};
lime_graphics_opengl_GL.bindSampler = function(unit,sampler) {
lime_graphics_opengl_GL.context.bindSampler(unit,sampler);
};
lime_graphics_opengl_GL.bindTexture = function(target,texture) {
lime_graphics_opengl_GL.context.bindTexture(target,texture);
};
lime_graphics_opengl_GL.bindTransformFeedback = function(target,transformFeedback) {
lime_graphics_opengl_GL.context.bindTransformFeedback(target,transformFeedback);
};
lime_graphics_opengl_GL.bindVertexArray = function(vertexArray) {
lime_graphics_opengl_GL.context.bindVertexArray(vertexArray);
};
lime_graphics_opengl_GL.blitFramebuffer = function(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1,mask,filter) {
lime_graphics_opengl_GL.context.blitFramebuffer(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1,mask,filter);
};
lime_graphics_opengl_GL.blendColor = function(red,green,blue,alpha) {
lime_graphics_opengl_GL.context.blendColor(red,green,blue,alpha);
};
lime_graphics_opengl_GL.blendEquation = function(mode) {
lime_graphics_opengl_GL.context.blendEquation(mode);
};
lime_graphics_opengl_GL.blendEquationSeparate = function(modeRGB,modeAlpha) {
lime_graphics_opengl_GL.context.blendEquationSeparate(modeRGB,modeAlpha);
};
lime_graphics_opengl_GL.blendFunc = function(sfactor,dfactor) {
lime_graphics_opengl_GL.context.blendFunc(sfactor,dfactor);
};
lime_graphics_opengl_GL.blendFuncSeparate = function(srcRGB,dstRGB,srcAlpha,dstAlpha) {
lime_graphics_opengl_GL.context.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
};
lime_graphics_opengl_GL.bufferDataWEBGL = function(target,srcData,usage,srcOffset,length) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.bufferData(target,srcData,usage,srcOffset,length);
} else {
this1.bufferData(target,srcData,usage);
}
};
lime_graphics_opengl_GL.bufferSubDataWEBGL = function(target,dstByteOffset,srcData,srcOffset,length) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.bufferSubData(target,dstByteOffset,srcData,srcOffset,length);
} else {
this1.bufferSubData(target,dstByteOffset,srcData);
}
};
lime_graphics_opengl_GL.checkFramebufferStatus = function(target) {
return lime_graphics_opengl_GL.context.checkFramebufferStatus(target);
};
lime_graphics_opengl_GL.clear = function(mask) {
lime_graphics_opengl_GL.context.clear(mask);
};
lime_graphics_opengl_GL.clearBufferfi = function(buffer,drawbuffer,depth,stencil) {
lime_graphics_opengl_GL.context.clearBufferfi(buffer,drawbuffer,depth,stencil);
};
lime_graphics_opengl_GL.clearBufferfvWEBGL = function(buffer,drawbuffer,values,srcOffset) {
lime_graphics_opengl_GL.context.clearBufferfv(buffer,drawbuffer,values,srcOffset);
};
lime_graphics_opengl_GL.clearBufferivWEBGL = function(buffer,drawbuffer,values,srcOffset) {
lime_graphics_opengl_GL.context.clearBufferiv(buffer,drawbuffer,values,srcOffset);
};
lime_graphics_opengl_GL.clearBufferuivWEBGL = function(buffer,drawbuffer,values,srcOffset) {
lime_graphics_opengl_GL.context.clearBufferuiv(buffer,drawbuffer,values,srcOffset);
};
lime_graphics_opengl_GL.clearColor = function(red,green,blue,alpha) {
lime_graphics_opengl_GL.context.clearColor(red,green,blue,alpha);
};
lime_graphics_opengl_GL.clearDepth = function(depth) {
lime_graphics_opengl_GL.context.clearDepth(depth);
};
lime_graphics_opengl_GL.clearStencil = function(s) {
lime_graphics_opengl_GL.context.clearStencil(s);
};
lime_graphics_opengl_GL.clientWaitSync = function(sync,flags,timeout) {
return lime_graphics_opengl_GL.context.clientWaitSync(sync,flags,timeout);
};
lime_graphics_opengl_GL.colorMask = function(red,green,blue,alpha) {
lime_graphics_opengl_GL.context.colorMask(red,green,blue,alpha);
};
lime_graphics_opengl_GL.compileShader = function(shader) {
lime_graphics_opengl_GL.context.compileShader(shader);
};
lime_graphics_opengl_GL.compressedTexImage2DWEBGL = function(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride);
} else {
this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData);
}
};
lime_graphics_opengl_GL.compressedTexImage3DWEBGL = function(target,level,internalformat,width,height,depth,border,srcData,srcOffset,srcLengthOverride) {
lime_graphics_opengl_GL.context.compressedTexImage3D(target,level,internalformat,width,height,depth,border,srcData,srcOffset,srcLengthOverride);
};
lime_graphics_opengl_GL.compressedTexSubImage2DWEBGL = function(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride);
} else {
this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData);
}
};
lime_graphics_opengl_GL.compressedTexSubImage3DWEBGL = function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,srcData,srcOffset,srcLengthOverride) {
lime_graphics_opengl_GL.context.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,srcData,srcOffset,srcLengthOverride);
};
lime_graphics_opengl_GL.copyTexImage2D = function(target,level,internalformat,x,y,width,height,border) {
lime_graphics_opengl_GL.context.copyTexImage2D(target,level,internalformat,x,y,width,height,border);
};
lime_graphics_opengl_GL.copyTexSubImage2D = function(target,level,xoffset,yoffset,x,y,width,height) {
lime_graphics_opengl_GL.context.copyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height);
};
lime_graphics_opengl_GL.copyTexSubImage3D = function(target,level,xoffset,yoffset,zoffset,x,y,width,height) {
lime_graphics_opengl_GL.context.copyTexSubImage3D(target,level,xoffset,yoffset,zoffset,x,y,width,height);
};
lime_graphics_opengl_GL.createBuffer = function() {
return lime_graphics_opengl_GL.context.createBuffer();
};
lime_graphics_opengl_GL.createFramebuffer = function() {
return lime_graphics_opengl_GL.context.createFramebuffer();
};
lime_graphics_opengl_GL.createProgram = function() {
return lime_graphics_opengl_GL.context.createProgram();
};
lime_graphics_opengl_GL.createQuery = function() {
return lime_graphics_opengl_GL.context.createQuery();
};
lime_graphics_opengl_GL.createRenderbuffer = function() {
return lime_graphics_opengl_GL.context.createRenderbuffer();
};
lime_graphics_opengl_GL.createSampler = function() {
return lime_graphics_opengl_GL.context.createSampler();
};
lime_graphics_opengl_GL.createShader = function(type) {
return lime_graphics_opengl_GL.context.createShader(type);
};
lime_graphics_opengl_GL.createTexture = function() {
return lime_graphics_opengl_GL.context.createTexture();
};
lime_graphics_opengl_GL.createTransformFeedback = function() {
return lime_graphics_opengl_GL.context.createTransformFeedback();
};
lime_graphics_opengl_GL.createVertexArray = function() {
return lime_graphics_opengl_GL.context.createVertexArray();
};
lime_graphics_opengl_GL.cullFace = function(mode) {
lime_graphics_opengl_GL.context.cullFace(mode);
};
lime_graphics_opengl_GL.deleteBuffer = function(buffer) {
lime_graphics_opengl_GL.context.deleteBuffer(buffer);
};
lime_graphics_opengl_GL.deleteFramebuffer = function(framebuffer) {
lime_graphics_opengl_GL.context.deleteFramebuffer(framebuffer);
};
lime_graphics_opengl_GL.deleteProgram = function(program) {
lime_graphics_opengl_GL.context.deleteProgram(program);
};
lime_graphics_opengl_GL.deleteQuery = function(query) {
lime_graphics_opengl_GL.context.deleteQuery(query);
};
lime_graphics_opengl_GL.deleteRenderbuffer = function(renderbuffer) {
lime_graphics_opengl_GL.context.deleteRenderbuffer(renderbuffer);
};
lime_graphics_opengl_GL.deleteSampler = function(sampler) {
lime_graphics_opengl_GL.context.deleteSampler(sampler);
};
lime_graphics_opengl_GL.deleteShader = function(shader) {
lime_graphics_opengl_GL.context.deleteShader(shader);
};
lime_graphics_opengl_GL.deleteSync = function(sync) {
lime_graphics_opengl_GL.context.deleteSync(sync);
};
lime_graphics_opengl_GL.deleteTexture = function(texture) {
lime_graphics_opengl_GL.context.deleteTexture(texture);
};
lime_graphics_opengl_GL.deleteTransformFeedback = function(transformFeedback) {
lime_graphics_opengl_GL.context.deleteTransformFeedback(transformFeedback);
};
lime_graphics_opengl_GL.deleteVertexArray = function(vertexArray) {
lime_graphics_opengl_GL.context.deleteVertexArray(vertexArray);
};
lime_graphics_opengl_GL.depthFunc = function(func) {
lime_graphics_opengl_GL.context.depthFunc(func);
};
lime_graphics_opengl_GL.depthMask = function(flag) {
lime_graphics_opengl_GL.context.depthMask(flag);
};
lime_graphics_opengl_GL.depthRange = function(zNear,zFar) {
lime_graphics_opengl_GL.context.depthRange(zNear,zFar);
};
lime_graphics_opengl_GL.detachShader = function(program,shader) {
lime_graphics_opengl_GL.context.detachShader(program,shader);
};
lime_graphics_opengl_GL.disable = function(cap) {
lime_graphics_opengl_GL.context.disable(cap);
};
lime_graphics_opengl_GL.disableVertexAttribArray = function(index) {
lime_graphics_opengl_GL.context.disableVertexAttribArray(index);
};
lime_graphics_opengl_GL.drawArrays = function(mode,first,count) {
lime_graphics_opengl_GL.context.drawArrays(mode,first,count);
};
lime_graphics_opengl_GL.drawArraysInstanced = function(mode,first,count,instanceCount) {
lime_graphics_opengl_GL.context.drawArraysInstanced(mode,first,count,instanceCount);
};
lime_graphics_opengl_GL.drawBuffers = function(buffers) {
lime_graphics_opengl_GL.context.drawBuffers(buffers);
};
lime_graphics_opengl_GL.drawElements = function(mode,count,type,offset) {
lime_graphics_opengl_GL.context.drawElements(mode,count,type,offset);
};
lime_graphics_opengl_GL.drawElementsInstanced = function(mode,count,type,offset,instanceCount) {
lime_graphics_opengl_GL.context.drawElementsInstanced(mode,count,type,offset,instanceCount);
};
lime_graphics_opengl_GL.drawRangeElements = function(mode,start,end,count,type,offset) {
lime_graphics_opengl_GL.context.drawRangeElements(mode,start,end,count,type,offset);
};
lime_graphics_opengl_GL.enable = function(cap) {
lime_graphics_opengl_GL.context.enable(cap);
};
lime_graphics_opengl_GL.enableVertexAttribArray = function(index) {
lime_graphics_opengl_GL.context.enableVertexAttribArray(index);
};
lime_graphics_opengl_GL.endQuery = function(target) {
lime_graphics_opengl_GL.context.endQuery(target);
};
lime_graphics_opengl_GL.endTransformFeedback = function() {
lime_graphics_opengl_GL.context.endTransformFeedback();
};
lime_graphics_opengl_GL.fenceSync = function(condition,flags) {
return lime_graphics_opengl_GL.context.fenceSync(condition,flags);
};
lime_graphics_opengl_GL.finish = function() {
lime_graphics_opengl_GL.context.finish();
};
lime_graphics_opengl_GL.flush = function() {
lime_graphics_opengl_GL.context.flush();
};
lime_graphics_opengl_GL.framebufferRenderbuffer = function(target,attachment,renderbuffertarget,renderbuffer) {
lime_graphics_opengl_GL.context.framebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer);
};
lime_graphics_opengl_GL.framebufferTexture2D = function(target,attachment,textarget,texture,level) {
lime_graphics_opengl_GL.context.framebufferTexture2D(target,attachment,textarget,texture,level);
};
lime_graphics_opengl_GL.framebufferTextureLayer = function(target,attachment,texture,level,layer) {
lime_graphics_opengl_GL.context.framebufferTextureLayer(target,attachment,texture,level,layer);
};
lime_graphics_opengl_GL.frontFace = function(mode) {
lime_graphics_opengl_GL.context.frontFace(mode);
};
lime_graphics_opengl_GL.generateMipmap = function(target) {
lime_graphics_opengl_GL.context.generateMipmap(target);
};
lime_graphics_opengl_GL.getActiveAttrib = function(program,index) {
return lime_graphics_opengl_GL.context.getActiveAttrib(program,index);
};
lime_graphics_opengl_GL.getActiveUniform = function(program,index) {
return lime_graphics_opengl_GL.context.getActiveUniform(program,index);
};
lime_graphics_opengl_GL.getActiveUniformBlockName = function(program,uniformBlockIndex) {
return lime_graphics_opengl_GL.context.getActiveUniformBlockName(program,uniformBlockIndex);
};
lime_graphics_opengl_GL.getActiveUniformBlockParameter = function(program,uniformBlockIndex,pname) {
return lime_graphics_opengl_GL.context.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);
};
lime_graphics_opengl_GL.getActiveUniforms = function(program,uniformIndices,pname) {
return lime_graphics_opengl_GL.context.getActiveUniforms(program,uniformIndices,pname);
};
lime_graphics_opengl_GL.getAttachedShaders = function(program) {
return lime_graphics_opengl_GL.context.getAttachedShaders(program);
};
lime_graphics_opengl_GL.getAttribLocation = function(program,name) {
return lime_graphics_opengl_GL.context.getAttribLocation(program,name);
};
lime_graphics_opengl_GL.getBufferParameter = function(target,pname) {
return lime_graphics_opengl_GL.context.getBufferParameter(target,pname);
};
lime_graphics_opengl_GL.getBufferSubDataWEBGL = function(target,srcByteOffset,dstData,srcOffset,length) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.getBufferSubData(target,srcByteOffset,dstData,srcOffset,length);
} else {
this1.getBufferSubData(target,srcByteOffset,dstData);
}
};
lime_graphics_opengl_GL.getContextAttributes = function() {
return lime_graphics_opengl_GL.context.getContextAttributes();
};
lime_graphics_opengl_GL.getError = function() {
return lime_graphics_opengl_GL.context.getError();
};
lime_graphics_opengl_GL.getExtension = function(name) {
return lime_graphics_opengl_GL.context.getExtension(name);
};
lime_graphics_opengl_GL.getFragDataLocation = function(program,name) {
return lime_graphics_opengl_GL.context.getFragDataLocation(program,name);
};
lime_graphics_opengl_GL.getFramebufferAttachmentParameter = function(target,attachment,pname) {
return lime_graphics_opengl_GL.context.getFramebufferAttachmentParameter(target,attachment,pname);
};
lime_graphics_opengl_GL.getIndexedParameter = function(target,index) {
return lime_graphics_opengl_GL.context.getIndexedParameter(target,index);
};
lime_graphics_opengl_GL.getInternalformatParameter = function(target,internalformat,pname) {
return lime_graphics_opengl_GL.context.getInternalformatParameter(target,internalformat,pname);
};
lime_graphics_opengl_GL.getParameter = function(pname) {
return lime_graphics_opengl_GL.context.getParameter(pname);
};
lime_graphics_opengl_GL.getProgramInfoLog = function(program) {
return lime_graphics_opengl_GL.context.getProgramInfoLog(program);
};
lime_graphics_opengl_GL.getProgramParameter = function(program,pname) {
return lime_graphics_opengl_GL.context.getProgramParameter(program,pname);
};
lime_graphics_opengl_GL.getQuery = function(target,pname) {
return lime_graphics_opengl_GL.context.getQuery(target,pname);
};
lime_graphics_opengl_GL.getQueryParameter = function(query,pname) {
return lime_graphics_opengl_GL.context.getQueryParameter(query,pname);
};
lime_graphics_opengl_GL.getRenderbufferParameter = function(target,pname) {
return lime_graphics_opengl_GL.context.getRenderbufferParameter(target,pname);
};
lime_graphics_opengl_GL.getSamplerParameter = function(sampler,pname) {
return lime_graphics_opengl_GL.context.getSamplerParameter(sampler,pname);
};
lime_graphics_opengl_GL.getShaderInfoLog = function(shader) {
return lime_graphics_opengl_GL.context.getShaderInfoLog(shader);
};
lime_graphics_opengl_GL.getShaderParameter = function(shader,pname) {
return lime_graphics_opengl_GL.context.getShaderParameter(shader,pname);
};
lime_graphics_opengl_GL.getShaderPrecisionFormat = function(shadertype,precisiontype) {
return lime_graphics_opengl_GL.context.getShaderPrecisionFormat(shadertype,precisiontype);
};
lime_graphics_opengl_GL.getShaderSource = function(shader) {
return lime_graphics_opengl_GL.context.getShaderSource(shader);
};
lime_graphics_opengl_GL.getSupportedExtensions = function() {
return lime_graphics_opengl_GL.context.getSupportedExtensions();
};
lime_graphics_opengl_GL.getSyncParameter = function(sync,pname) {
return lime_graphics_opengl_GL.context.getSyncParameter(sync,pname);
};
lime_graphics_opengl_GL.getTexParameter = function(target,pname) {
return lime_graphics_opengl_GL.context.getTexParameter(target,pname);
};
lime_graphics_opengl_GL.getTransformFeedbackVarying = function(program,index) {
return lime_graphics_opengl_GL.context.getTransformFeedbackVarying(program,index);
};
lime_graphics_opengl_GL.getUniform = function(program,location) {
return lime_graphics_opengl_GL.context.getUniform(program,location);
};
lime_graphics_opengl_GL.getUniformBlockIndex = function(program,uniformBlockName) {
return lime_graphics_opengl_GL.context.getUniformBlockIndex(program,uniformBlockName);
};
lime_graphics_opengl_GL.getUniformIndices = function(program,uniformNames) {
return lime_graphics_opengl_GL.context.getUniformIndices(program,uniformNames);
};
lime_graphics_opengl_GL.getUniformLocation = function(program,name) {
return lime_graphics_opengl_GL.context.getUniformLocation(program,name);
};
lime_graphics_opengl_GL.getVertexAttrib = function(index,pname) {
return lime_graphics_opengl_GL.context.getVertexAttrib(index,pname);
};
lime_graphics_opengl_GL.getVertexAttribOffset = function(index,pname) {
return lime_utils_DataPointer.fromFloat(lime_graphics_opengl_GL.context.getVertexAttribOffset(index,pname));
};
lime_graphics_opengl_GL.hint = function(target,mode) {
lime_graphics_opengl_GL.context.hint(target,mode);
};
lime_graphics_opengl_GL.invalidateFramebuffer = function(target,attachments) {
lime_graphics_opengl_GL.context.invalidateFramebuffer(target,attachments);
};
lime_graphics_opengl_GL.invalidateSubFramebuffer = function(target,attachments,x,y,width,height) {
lime_graphics_opengl_GL.context.invalidateSubFramebuffer(target,attachments,x,y,width,height);
};
lime_graphics_opengl_GL.isBuffer = function(buffer) {
return lime_graphics_opengl_GL.context.isBuffer(buffer);
};
lime_graphics_opengl_GL.isContextLost = function() {
return lime_graphics_opengl_GL.context.isContextLost();
};
lime_graphics_opengl_GL.isEnabled = function(cap) {
return lime_graphics_opengl_GL.context.isEnabled(cap);
};
lime_graphics_opengl_GL.isFramebuffer = function(framebuffer) {
return lime_graphics_opengl_GL.context.isFramebuffer(framebuffer);
};
lime_graphics_opengl_GL.isProgram = function(program) {
return lime_graphics_opengl_GL.context.isProgram(program);
};
lime_graphics_opengl_GL.isQuery = function(query) {
return lime_graphics_opengl_GL.context.isQuery(query);
};
lime_graphics_opengl_GL.isRenderbuffer = function(renderbuffer) {
return lime_graphics_opengl_GL.context.isRenderbuffer(renderbuffer);
};
lime_graphics_opengl_GL.isSampler = function(sampler) {
return lime_graphics_opengl_GL.context.isSampler(sampler);
};
lime_graphics_opengl_GL.isShader = function(shader) {
return lime_graphics_opengl_GL.context.isShader(shader);
};
lime_graphics_opengl_GL.isSync = function(sync) {
return lime_graphics_opengl_GL.context.isSync(sync);
};
lime_graphics_opengl_GL.isTexture = function(texture) {
return lime_graphics_opengl_GL.context.isTexture(texture);
};
lime_graphics_opengl_GL.isTransformFeedback = function(transformFeedback) {
return lime_graphics_opengl_GL.context.isTransformFeedback(transformFeedback);
};
lime_graphics_opengl_GL.isVertexArray = function(vertexArray) {
return lime_graphics_opengl_GL.context.isVertexArray(vertexArray);
};
lime_graphics_opengl_GL.lineWidth = function(width) {
lime_graphics_opengl_GL.context.lineWidth(width);
};
lime_graphics_opengl_GL.linkProgram = function(program) {
lime_graphics_opengl_GL.context.linkProgram(program);
};
lime_graphics_opengl_GL.pauseTransformFeedback = function() {
lime_graphics_opengl_GL.context.pauseTransformFeedback();
};
lime_graphics_opengl_GL.pixelStorei = function(pname,param) {
lime_graphics_opengl_GL.context.pixelStorei(pname,param);
};
lime_graphics_opengl_GL.polygonOffset = function(factor,units) {
lime_graphics_opengl_GL.context.polygonOffset(factor,units);
};
lime_graphics_opengl_GL.readBuffer = function(src) {
lime_graphics_opengl_GL.context.readBuffer(src);
};
lime_graphics_opengl_GL.readPixelsWEBGL = function(x,y,width,height,format,type,pixels,dstOffset) {
var this1 = lime_graphics_opengl_GL.context;
if(dstOffset != null) {
this1.readPixels(x,y,width,height,format,type,pixels,dstOffset);
} else {
this1.readPixels(x,y,width,height,format,type,pixels);
}
};
lime_graphics_opengl_GL.renderbufferStorage = function(target,internalformat,width,height) {
lime_graphics_opengl_GL.context.renderbufferStorage(target,internalformat,width,height);
};
lime_graphics_opengl_GL.renderbufferStorageMultisample = function(target,samples,internalformat,width,height) {
lime_graphics_opengl_GL.context.renderbufferStorageMultisample(target,samples,internalformat,width,height);
};
lime_graphics_opengl_GL.resumeTransformFeedback = function() {
lime_graphics_opengl_GL.context.resumeTransformFeedback();
};
lime_graphics_opengl_GL.sampleCoverage = function(value,invert) {
lime_graphics_opengl_GL.context.sampleCoverage(value,invert);
};
lime_graphics_opengl_GL.samplerParameterf = function(sampler,pname,param) {
lime_graphics_opengl_GL.context.samplerParameterf(sampler,pname,param);
};
lime_graphics_opengl_GL.samplerParameteri = function(sampler,pname,param) {
lime_graphics_opengl_GL.context.samplerParameteri(sampler,pname,param);
};
lime_graphics_opengl_GL.scissor = function(x,y,width,height) {
lime_graphics_opengl_GL.context.scissor(x,y,width,height);
};
lime_graphics_opengl_GL.shaderSource = function(shader,source) {
lime_graphics_opengl_GL.context.shaderSource(shader,source);
};
lime_graphics_opengl_GL.stencilFunc = function(func,ref,mask) {
lime_graphics_opengl_GL.context.stencilFunc(func,ref,mask);
};
lime_graphics_opengl_GL.stencilFuncSeparate = function(face,func,ref,mask) {
lime_graphics_opengl_GL.context.stencilFuncSeparate(face,func,ref,mask);
};
lime_graphics_opengl_GL.stencilMask = function(mask) {
lime_graphics_opengl_GL.context.stencilMask(mask);
};
lime_graphics_opengl_GL.stencilMaskSeparate = function(face,mask) {
lime_graphics_opengl_GL.context.stencilMaskSeparate(face,mask);
};
lime_graphics_opengl_GL.stencilOp = function(fail,zfail,zpass) {
lime_graphics_opengl_GL.context.stencilOp(fail,zfail,zpass);
};
lime_graphics_opengl_GL.stencilOpSeparate = function(face,fail,zfail,zpass) {
lime_graphics_opengl_GL.context.stencilOpSeparate(face,fail,zfail,zpass);
};
lime_graphics_opengl_GL.texImage2DWEBGL = function(target,level,internalformat,width,height,border,format,type,srcData,srcOffset) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData,srcOffset);
} else if(format != null) {
this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData);
} else {
this1.texImage2D(target,level,internalformat,width,height,border);
}
};
lime_graphics_opengl_GL.texImage3DWEBGL = function(target,level,internalformat,width,height,depth,border,format,type,srcData,srcOffset) {
lime_graphics_opengl_GL.context.texImage3D(target,level,internalformat,width,height,depth,border,format,type,srcData,srcOffset);
};
lime_graphics_opengl_GL.texStorage2D = function(target,level,internalformat,width,height) {
lime_graphics_opengl_GL.context.texStorage2D(target,level,internalformat,width,height);
};
lime_graphics_opengl_GL.texStorage3D = function(target,level,internalformat,width,height,depth) {
lime_graphics_opengl_GL.context.texStorage3D(target,level,internalformat,width,height,depth);
};
lime_graphics_opengl_GL.texParameterf = function(target,pname,param) {
lime_graphics_opengl_GL.context.texParameterf(target,pname,param);
};
lime_graphics_opengl_GL.texParameteri = function(target,pname,param) {
lime_graphics_opengl_GL.context.texParameteri(target,pname,param);
};
lime_graphics_opengl_GL.texSubImage2DWEBGL = function(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset);
} else if(type != null) {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData);
} else {
this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format);
}
};
lime_graphics_opengl_GL.texSubImage3DWEBGL = function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,source,srcOffset) {
lime_graphics_opengl_GL.context.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,source,srcOffset);
};
lime_graphics_opengl_GL.transformFeedbackVaryings = function(program,varyings,bufferMode) {
lime_graphics_opengl_GL.context.transformFeedbackVaryings(program,varyings,bufferMode);
};
lime_graphics_opengl_GL.uniform1f = function(location,v0) {
lime_graphics_opengl_GL.context.uniform1f(location,v0);
};
lime_graphics_opengl_GL.uniform1fvWEBGL = function(location,data,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniform1fv(location,data,srcOffset,srcLength);
} else {
this1.uniform1fv(location,data);
}
};
lime_graphics_opengl_GL.uniform1i = function(location,v0) {
lime_graphics_opengl_GL.context.uniform1i(location,v0);
};
lime_graphics_opengl_GL.uniform1ivWEBGL = function(location,data,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniform1iv(location,data,srcOffset,srcLength);
} else {
this1.uniform1iv(location,data);
}
};
lime_graphics_opengl_GL.uniform1ui = function(location,v0) {
lime_graphics_opengl_GL.context.uniform1ui(location,v0);
};
lime_graphics_opengl_GL.uniform1uivWEBGL = function(location,data,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniform1uiv(location,data,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniform2f = function(location,v0,v1) {
lime_graphics_opengl_GL.context.uniform2f(location,v0,v1);
};
lime_graphics_opengl_GL.uniform2fvWEBGL = function(location,data,srcOffset,srcLength) {
lime_graphics_WebGL2RenderContext.uniform2fv(lime_graphics_opengl_GL.context,location,data,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniform2i = function(location,x,y) {
lime_graphics_opengl_GL.context.uniform2i(location,x,y);
};
lime_graphics_opengl_GL.uniform2ivWEBGL = function(location,data,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniform2iv(location,data,srcOffset,srcLength);
} else {
this1.uniform2iv(location,data);
}
};
lime_graphics_opengl_GL.uniform2ui = function(location,x,y) {
lime_graphics_opengl_GL.context.uniform2ui(location,x,y);
};
lime_graphics_opengl_GL.uniform2uivWEBGL = function(location,data,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniform2uiv(location,data,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniform3f = function(location,v0,v1,v2) {
lime_graphics_opengl_GL.context.uniform3f(location,v0,v1,v2);
};
lime_graphics_opengl_GL.uniform3fvWEBGL = function(location,data,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniform3fv(location,data,srcOffset,srcLength);
} else {
this1.uniform3fv(location,data);
}
};
lime_graphics_opengl_GL.uniform3i = function(location,v0,v1,v2) {
lime_graphics_opengl_GL.context.uniform3i(location,v0,v1,v2);
};
lime_graphics_opengl_GL.uniform3ivWEBGL = function(location,data,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniform3iv(location,data,srcOffset,srcLength);
} else {
this1.uniform3iv(location,data);
}
};
lime_graphics_opengl_GL.uniform3ui = function(location,v0,v1,v2) {
lime_graphics_opengl_GL.context.uniform3ui(location,v0,v1,v2);
};
lime_graphics_opengl_GL.uniform3uivWEBGL = function(location,data,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniform3uiv(location,data,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniform4f = function(location,v0,v1,v2,v3) {
lime_graphics_opengl_GL.context.uniform4f(location,v0,v1,v2,v3);
};
lime_graphics_opengl_GL.uniform4fvWEBGL = function(location,data,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniform4fv(location,data,srcOffset,srcLength);
} else {
this1.uniform4fv(location,data);
}
};
lime_graphics_opengl_GL.uniform4i = function(location,v0,v1,v2,v3) {
lime_graphics_opengl_GL.context.uniform4i(location,v0,v1,v2,v3);
};
lime_graphics_opengl_GL.uniform4ivWEBGL = function(location,data,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniform4iv(location,data,srcOffset,srcLength);
} else {
this1.uniform4iv(location,data);
}
};
lime_graphics_opengl_GL.uniform4ui = function(location,v0,v1,v2,v3) {
lime_graphics_opengl_GL.context.uniform4ui(location,v0,v1,v2,v3);
};
lime_graphics_opengl_GL.uniform4uivWEBGL = function(location,data,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniform4uiv(location,data,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniformBlockBinding = function(program,uniformBlockIndex,uniformBlockBinding) {
lime_graphics_opengl_GL.context.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding);
};
lime_graphics_opengl_GL.uniformMatrix2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniformMatrix2fv(location,transpose,v,srcOffset,srcLength);
} else {
this1.uniformMatrix2fv(location,transpose,v);
}
};
lime_graphics_opengl_GL.uniformMatrix2x3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniformMatrix2x3fv(location,transpose,v,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniformMatrix2x4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniformMatrix2x4fv(location,transpose,v,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniformMatrix3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniformMatrix3fv(location,transpose,v,srcOffset,srcLength);
} else {
this1.uniformMatrix3fv(location,transpose,v);
}
};
lime_graphics_opengl_GL.uniformMatrix3x2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniformMatrix3x2fv(location,transpose,v,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniformMatrix3x4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniformMatrix3x4fv(location,transpose,v,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniformMatrix4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
var this1 = lime_graphics_opengl_GL.context;
if(srcOffset != null) {
this1.uniformMatrix4fv(location,transpose,v,srcOffset,srcLength);
} else {
this1.uniformMatrix4fv(location,transpose,v);
}
};
lime_graphics_opengl_GL.uniformMatrix4x2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniformMatrix4x2fv(location,transpose,v,srcOffset,srcLength);
};
lime_graphics_opengl_GL.uniformMatrix4x3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
lime_graphics_opengl_GL.context.uniformMatrix4x3fv(location,transpose,v,srcOffset,srcLength);
};
lime_graphics_opengl_GL.useProgram = function(program) {
lime_graphics_opengl_GL.context.useProgram(program);
};
lime_graphics_opengl_GL.validateProgram = function(program) {
lime_graphics_opengl_GL.context.validateProgram(program);
};
lime_graphics_opengl_GL.vertexAttrib1f = function(index,v0) {
lime_graphics_opengl_GL.context.vertexAttrib1f(index,v0);
};
lime_graphics_opengl_GL.vertexAttrib1fv = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttrib1fv(index,v);
};
lime_graphics_opengl_GL.vertexAttrib1fvWEBGL = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttrib1fv(index,v);
};
lime_graphics_opengl_GL.vertexAttrib2f = function(index,v0,v1) {
lime_graphics_opengl_GL.context.vertexAttrib2f(index,v0,v1);
};
lime_graphics_opengl_GL.vertexAttrib2fv = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttrib2fv(index,v);
};
lime_graphics_opengl_GL.vertexAttrib2fvWEBGL = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttrib2fv(index,v);
};
lime_graphics_opengl_GL.vertexAttrib3f = function(index,v0,v1,v2) {
lime_graphics_opengl_GL.context.vertexAttrib3f(index,v0,v1,v2);
};
lime_graphics_opengl_GL.vertexAttrib3fv = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttrib3fv(index,v);
};
lime_graphics_opengl_GL.vertexAttrib3fvWEBGL = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttrib3fv(index,v);
};
lime_graphics_opengl_GL.vertexAttrib4f = function(index,v0,v1,v2,v3) {
lime_graphics_opengl_GL.context.vertexAttrib4f(index,v0,v1,v2,v3);
};
lime_graphics_opengl_GL.vertexAttrib4fv = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttrib4fv(index,v);
};
lime_graphics_opengl_GL.vertexAttrib4fvWEBGL = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttrib4fv(index,v);
};
lime_graphics_opengl_GL.vertexAttribDivisor = function(index,divisor) {
lime_graphics_opengl_GL.context.vertexAttribDivisor(index,divisor);
};
lime_graphics_opengl_GL.vertexAttribI4i = function(index,v0,v1,v2,v3) {
lime_graphics_opengl_GL.context.vertexAttribI4i(index,v0,v1,v2,v3);
};
lime_graphics_opengl_GL.vertexAttribI4iv = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttribI4iv(index,v);
};
lime_graphics_opengl_GL.vertexAttribI4ivWEBGL = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttribI4iv(index,v);
};
lime_graphics_opengl_GL.vertexAttribI4ui = function(index,v0,v1,v2,v3) {
lime_graphics_opengl_GL.context.vertexAttribI4ui(index,v0,v1,v2,v3);
};
lime_graphics_opengl_GL.vertexAttribI4uiv = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttribI4uiv(index,v);
};
lime_graphics_opengl_GL.vertexAttribI4uivWEBGL = function(index,v) {
lime_graphics_opengl_GL.context.vertexAttribI4uiv(index,v);
};
lime_graphics_opengl_GL.vertexAttribIPointer = function(index,size,type,stride,offset) {
lime_graphics_opengl_GL.context.vertexAttribIPointer(index,size,type,stride,offset);
};
lime_graphics_opengl_GL.vertexAttribPointer = function(index,size,type,normalized,stride,offset) {
lime_graphics_opengl_GL.context.vertexAttribPointer(index,size,type,normalized,stride,offset);
};
lime_graphics_opengl_GL.viewport = function(x,y,width,height) {
lime_graphics_opengl_GL.context.viewport(x,y,width,height);
};
lime_graphics_opengl_GL.waitSync = function(sync,flags,timeout) {
lime_graphics_opengl_GL.context.waitSync(sync,flags,timeout);
};
lime_graphics_opengl_GL.__getObjectID = function(object) {
if(object == null) {
return 0;
} else {
return object.id;
}
};
var lime_graphics_opengl_GLProgram = {};
lime_graphics_opengl_GLProgram.fromSources = function(gl,vertexSource,fragmentSource) {
var vertexShader = lime_graphics_opengl_GLShader.fromSource(gl,vertexSource,gl.VERTEX_SHADER);
var fragmentShader = lime_graphics_opengl_GLShader.fromSource(gl,fragmentSource,gl.FRAGMENT_SHADER);
var program = gl.createProgram();
gl.attachShader(program,vertexShader);
gl.attachShader(program,fragmentShader);
gl.linkProgram(program);
if(gl.getProgramParameter(program,35714) == 0) {
var message = "Unable to initialize the shader program";
message += "\n" + lime_graphics_opengl_GL.context.getProgramInfoLog(program);
lime_utils_Log.error(message,{ fileName : "lime/graphics/opengl/GLProgram.hx", lineNumber : 39, className : "lime.graphics.opengl._GLProgram.GLProgram_Impl_", methodName : "fromSources"});
}
return program;
};
var lime_graphics_opengl_GLShader = {};
lime_graphics_opengl_GLShader.fromSource = function(gl,source,type) {
var shader = gl.createShader(type);
gl.shaderSource(shader,source);
gl.compileShader(shader);
if(gl.getShaderParameter(shader,gl.COMPILE_STATUS) == 0) {
var message;
if(type == gl.VERTEX_SHADER) {
message = "Error compiling vertex shader";
} else if(type == gl.FRAGMENT_SHADER) {
message = "Error compiling fragment shader";
} else {
message = "Error compiling unknown shader type";
}
message += "\n" + gl.getShaderInfoLog(shader);
lime_utils_Log.error(message,{ fileName : "lime/graphics/opengl/GLShader.hx", lineNumber : 40, className : "lime.graphics.opengl._GLShader.GLShader_Impl_", methodName : "fromSource"});
}
return shader;
};
var lime_graphics_opengl_ext_KHR_$debug = function() {
this.STACK_UNDERFLOW = 1284;
this.STACK_OVERFLOW = 1283;
this.CONTEXT_FLAG_DEBUG_BIT = 2;
this.DEBUG_OUTPUT = 37600;
this.DEBUG_SEVERITY_LOW = 37192;
this.DEBUG_SEVERITY_MEDIUM = 37191;
this.DEBUG_SEVERITY_HIGH = 37190;
this.DEBUG_LOGGED_MESSAGES = 37189;
this.MAX_DEBUG_LOGGED_MESSAGES = 37188;
this.MAX_DEBUG_MESSAGE_LENGTH = 37187;
this.MAX_LABEL_LENGTH = 33512;
this.SAMPLER = 33510;
this.QUERY = 33507;
this.PROGRAM = 33506;
this.SHADER = 33505;
this.BUFFER = 33504;
this.DEBUG_GROUP_STACK_DEPTH = 33389;
this.MAX_DEBUG_GROUP_STACK_DEPTH = 33388;
this.DEBUG_SEVERITY_NOTIFICATION = 33387;
this.DEBUG_TYPE_POP_GROUP = 33386;
this.DEBUG_TYPE_PUSH_GROUP = 33385;
this.DEBUG_TYPE_MARKER = 33384;
this.DEBUG_TYPE_OTHER = 33361;
this.DEBUG_TYPE_PERFORMANCE = 33360;
this.DEBUG_TYPE_PORTABILITY = 33359;
this.DEBUG_TYPE_UNDEFINED_BEHAVIOR = 33358;
this.DEBUG_TYPE_DEPRECATED_BEHAVIOR = 33357;
this.DEBUG_TYPE_ERROR = 33356;
this.DEBUG_SOURCE_OTHER = 33355;
this.DEBUG_SOURCE_APPLICATION = 33354;
this.DEBUG_SOURCE_THIRD_PARTY = 33353;
this.DEBUG_SOURCE_SHADER_COMPILER = 33352;
this.DEBUG_SOURCE_WINDOW_SYSTEM = 33351;
this.DEBUG_SOURCE_API = 33350;
this.DEBUG_CALLBACK_USER_PARAM = 33349;
this.DEBUG_CALLBACK_FUNCTION = 33348;
this.DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 33347;
this.DEBUG_OUTPUT_SYNCHRONOUS = 33346;
};
$hxClasses["lime.graphics.opengl.ext.KHR_debug"] = lime_graphics_opengl_ext_KHR_$debug;
lime_graphics_opengl_ext_KHR_$debug.__name__ = "lime.graphics.opengl.ext.KHR_debug";
lime_graphics_opengl_ext_KHR_$debug.prototype = {
DEBUG_OUTPUT_SYNCHRONOUS: null
,DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: null
,DEBUG_CALLBACK_FUNCTION: null
,DEBUG_CALLBACK_USER_PARAM: null
,DEBUG_SOURCE_API: null
,DEBUG_SOURCE_WINDOW_SYSTEM: null
,DEBUG_SOURCE_SHADER_COMPILER: null
,DEBUG_SOURCE_THIRD_PARTY: null
,DEBUG_SOURCE_APPLICATION: null
,DEBUG_SOURCE_OTHER: null
,DEBUG_TYPE_ERROR: null
,DEBUG_TYPE_DEPRECATED_BEHAVIOR: null
,DEBUG_TYPE_UNDEFINED_BEHAVIOR: null
,DEBUG_TYPE_PORTABILITY: null
,DEBUG_TYPE_PERFORMANCE: null
,DEBUG_TYPE_OTHER: null
,DEBUG_TYPE_MARKER: null
,DEBUG_TYPE_PUSH_GROUP: null
,DEBUG_TYPE_POP_GROUP: null
,DEBUG_SEVERITY_NOTIFICATION: null
,MAX_DEBUG_GROUP_STACK_DEPTH: null
,DEBUG_GROUP_STACK_DEPTH: null
,BUFFER: null
,SHADER: null
,PROGRAM: null
,QUERY: null
,SAMPLER: null
,MAX_LABEL_LENGTH: null
,MAX_DEBUG_MESSAGE_LENGTH: null
,MAX_DEBUG_LOGGED_MESSAGES: null
,DEBUG_LOGGED_MESSAGES: null
,DEBUG_SEVERITY_HIGH: null
,DEBUG_SEVERITY_MEDIUM: null
,DEBUG_SEVERITY_LOW: null
,DEBUG_OUTPUT: null
,CONTEXT_FLAG_DEBUG_BIT: null
,STACK_OVERFLOW: null
,STACK_UNDERFLOW: null
,__class__: lime_graphics_opengl_ext_KHR_$debug
};
var lime_math_ARGB = {};
lime_math_ARGB.__properties__ = {set_r:"set_r",get_r:"get_r",set_g:"set_g",get_g:"get_g",set_b:"set_b",get_b:"get_b",set_a:"set_a",get_a:"get_a"};
lime_math_ARGB.a16 = null;
lime_math_ARGB.unmult = null;
lime_math_ARGB._new = function(argb) {
if(argb == null) {
argb = 0;
}
var this1 = argb;
return this1;
};
lime_math_ARGB.create = function(a,r,g,b) {
var this1 = 0;
var argb = this1;
argb = (a & 255) << 24 | (r & 255) << 16 | (g & 255) << 8 | b & 255;
return argb;
};
lime_math_ARGB.multiplyAlpha = function(this1) {
if((this1 >>> 24 & 255) == 0) {
this1 = 0;
} else if((this1 >>> 24 & 255) != 255) {
lime_math_ARGB.a16 = lime_math_RGBA.__alpha16[this1 >>> 24 & 255];
this1 = (this1 >>> 24 & 255 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_ARGB.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_ARGB.a16 >> 16 & 255) << 8 | (this1 & 255) * lime_math_ARGB.a16 >> 16 & 255;
}
};
lime_math_ARGB.readUInt8 = function(this1,data,offset,format,premultiplied) {
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
case 0:
this1 = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
break;
case 1:
this1 = (data[offset + 2] & 255) << 24 | (data[offset + 3] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 1] & 255;
break;
case 2:
this1 = (data[offset + 1] & 255) << 24 | (data[offset] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset + 2] & 255;
break;
}
if(premultiplied) {
if((this1 >>> 24 & 255) != 0 && (this1 >>> 24 & 255) != 255) {
lime_math_ARGB.unmult = 255.0 / (this1 >>> 24 & 255);
this1 = (this1 >>> 24 & 255 & 255) << 24 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 16 & 255) * lime_math_ARGB.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 8 & 255) * lime_math_ARGB.unmult)] & 255) << 8 | lime_math_RGBA.__clamp[Math.floor((this1 & 255) * lime_math_ARGB.unmult)] & 255;
}
}
};
lime_math_ARGB.set = function(this1,a,r,g,b) {
this1 = (a & 255) << 24 | (r & 255) << 16 | (g & 255) << 8 | b & 255;
};
lime_math_ARGB.unmultiplyAlpha = function(this1) {
if((this1 >>> 24 & 255) != 0 && (this1 >>> 24 & 255) != 255) {
lime_math_ARGB.unmult = 255.0 / (this1 >>> 24 & 255);
this1 = (this1 >>> 24 & 255 & 255) << 24 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 16 & 255) * lime_math_ARGB.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 8 & 255) * lime_math_ARGB.unmult)] & 255) << 8 | lime_math_RGBA.__clamp[Math.floor((this1 & 255) * lime_math_ARGB.unmult)] & 255;
}
};
lime_math_ARGB.writeUInt8 = function(this1,data,offset,format,premultiplied) {
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
if(premultiplied) {
if((this1 >>> 24 & 255) == 0) {
this1 = 0;
} else if((this1 >>> 24 & 255) != 255) {
lime_math_ARGB.a16 = lime_math_RGBA.__alpha16[this1 >>> 24 & 255];
this1 = (this1 >>> 24 & 255 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_ARGB.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_ARGB.a16 >> 16 & 255) << 8 | (this1 & 255) * lime_math_ARGB.a16 >> 16 & 255;
}
}
switch(format) {
case 0:
data[offset] = this1 >>> 16 & 255;
data[offset + 1] = this1 >>> 8 & 255;
data[offset + 2] = this1 & 255;
data[offset + 3] = this1 >>> 24 & 255;
break;
case 1:
data[offset] = this1 >>> 24 & 255;
data[offset + 1] = this1 >>> 16 & 255;
data[offset + 2] = this1 >>> 8 & 255;
data[offset + 3] = this1 & 255;
break;
case 2:
data[offset] = this1 & 255;
data[offset + 1] = this1 >>> 8 & 255;
data[offset + 2] = this1 >>> 16 & 255;
data[offset + 3] = this1 >>> 24 & 255;
break;
}
};
lime_math_ARGB.__fromBGRA = function(bgra) {
var this1 = 0;
var argb = this1;
argb = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
return argb;
};
lime_math_ARGB.__fromRGBA = function(rgba) {
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;
return argb;
};
lime_math_ARGB.get_a = function(this1) {
return this1 >>> 24 & 255;
};
lime_math_ARGB.set_a = function(this1,value) {
this1 = (value & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | this1 & 255 & 255;
return value;
};
lime_math_ARGB.get_b = function(this1) {
return this1 & 255;
};
lime_math_ARGB.set_b = function(this1,value) {
this1 = (this1 >>> 24 & 255 & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | value & 255;
return value;
};
lime_math_ARGB.get_g = function(this1) {
return this1 >>> 8 & 255;
};
lime_math_ARGB.set_g = function(this1,value) {
this1 = (this1 >>> 24 & 255 & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (value & 255) << 8 | this1 & 255 & 255;
return value;
};
lime_math_ARGB.get_r = function(this1) {
return this1 >>> 16 & 255;
};
lime_math_ARGB.set_r = function(this1,value) {
this1 = (this1 >>> 24 & 255 & 255) << 24 | (value & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | this1 & 255 & 255;
return value;
};
var lime_math_BGRA = {};
lime_math_BGRA.__properties__ = {set_r:"set_r",get_r:"get_r",set_g:"set_g",get_g:"get_g",set_b:"set_b",get_b:"get_b",set_a:"set_a",get_a:"get_a"};
lime_math_BGRA.a16 = null;
lime_math_BGRA.unmult = null;
lime_math_BGRA._new = function(bgra) {
if(bgra == null) {
bgra = 0;
}
var this1 = bgra;
return this1;
};
lime_math_BGRA.create = function(b,g,r,a) {
var this1 = 0;
var bgra = this1;
bgra = (b & 255) << 24 | (g & 255) << 16 | (r & 255) << 8 | a & 255;
return bgra;
};
lime_math_BGRA.multiplyAlpha = function(this1) {
if((this1 & 255) == 0) {
this1 = 0;
} else if((this1 & 255) != 255) {
lime_math_BGRA.a16 = lime_math_RGBA.__alpha16[this1 & 255];
this1 = ((this1 >>> 24 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 8 | this1 & 255 & 255;
}
};
lime_math_BGRA.readUInt8 = function(this1,data,offset,format,premultiplied) {
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
switch(format) {
case 0:
this1 = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
break;
case 1:
this1 = (data[offset + 3] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 1] & 255) << 8 | data[offset] & 255;
break;
case 2:
this1 = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
break;
}
if(premultiplied) {
if((this1 & 255) != 0 && (this1 & 255) != 255) {
lime_math_BGRA.unmult = 255.0 / (this1 & 255);
this1 = (lime_math_RGBA.__clamp[Math.floor((this1 >>> 24 & 255) * lime_math_BGRA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 16 & 255) * lime_math_BGRA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 8 & 255) * lime_math_BGRA.unmult)] & 255) << 8 | this1 & 255 & 255;
}
}
};
lime_math_BGRA.set = function(this1,b,g,r,a) {
this1 = (b & 255) << 24 | (g & 255) << 16 | (r & 255) << 8 | a & 255;
};
lime_math_BGRA.unmultiplyAlpha = function(this1) {
if((this1 & 255) != 0 && (this1 & 255) != 255) {
lime_math_BGRA.unmult = 255.0 / (this1 & 255);
this1 = (lime_math_RGBA.__clamp[Math.floor((this1 >>> 24 & 255) * lime_math_BGRA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 16 & 255) * lime_math_BGRA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 8 & 255) * lime_math_BGRA.unmult)] & 255) << 8 | this1 & 255 & 255;
}
};
lime_math_BGRA.writeUInt8 = function(this1,data,offset,format,premultiplied) {
if(premultiplied == null) {
premultiplied = false;
}
if(format == null) {
format = 0;
}
if(premultiplied) {
if((this1 & 255) == 0) {
this1 = 0;
} else if((this1 & 255) != 255) {
lime_math_BGRA.a16 = lime_math_RGBA.__alpha16[this1 & 255];
this1 = ((this1 >>> 24 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 8 | this1 & 255 & 255;
}
}
switch(format) {
case 0:
data[offset] = this1 >>> 8 & 255;
data[offset + 1] = this1 >>> 16 & 255;
data[offset + 2] = this1 >>> 24 & 255;
data[offset + 3] = this1 & 255;
break;
case 1:
data[offset] = this1 & 255;
data[offset + 1] = this1 >>> 8 & 255;
data[offset + 2] = this1 >>> 16 & 255;
data[offset + 3] = this1 >>> 24 & 255;
break;
case 2:
data[offset] = this1 >>> 24 & 255;
data[offset + 1] = this1 >>> 16 & 255;
data[offset + 2] = this1 >>> 8 & 255;
data[offset + 3] = this1 & 255;
break;
}
};
lime_math_BGRA.__fromARGB = function(argb) {
var this1 = 0;
var bgra = this1;
bgra = (argb & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb >>> 16 & 255 & 255) << 8 | argb >>> 24 & 255 & 255;
return bgra;
};
lime_math_BGRA.__fromRGBA = function(rgba) {
var this1 = 0;
var bgra = this1;
bgra = (rgba >>> 8 & 255 & 255) << 24 | (rgba >>> 16 & 255 & 255) << 16 | (rgba >>> 24 & 255 & 255) << 8 | rgba & 255 & 255;
return bgra;
};
lime_math_BGRA.get_a = function(this1) {
return this1 & 255;
};
lime_math_BGRA.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;
};
lime_math_BGRA.get_b = function(this1) {
return this1 >>> 24 & 255;
};
lime_math_BGRA.set_b = function(this1,value) {
this1 = (value & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | this1 & 255 & 255;
return value;
};
lime_math_BGRA.get_g = function(this1) {
return this1 >>> 16 & 255;
};
lime_math_BGRA.set_g = function(this1,value) {
this1 = (this1 >>> 24 & 255 & 255) << 24 | (value & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | this1 & 255 & 255;
return value;
};
lime_math_BGRA.get_r = function(this1) {
return this1 >>> 8 & 255;
};
lime_math_BGRA.set_r = function(this1,value) {
this1 = (this1 >>> 24 & 255 & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (value & 255) << 8 | this1 & 255 & 255;
return value;
};
var lime_math_ColorMatrix = {};
lime_math_ColorMatrix.__properties__ = {set_redOffset:"set_redOffset",get_redOffset:"get_redOffset",set_redMultiplier:"set_redMultiplier",get_redMultiplier:"get_redMultiplier",set_greenOffset:"set_greenOffset",get_greenOffset:"get_greenOffset",set_greenMultiplier:"set_greenMultiplier",get_greenMultiplier:"get_greenMultiplier",set_color:"set_color",get_color:"get_color",set_blueOffset:"set_blueOffset",get_blueOffset:"get_blueOffset",set_blueMultiplier:"set_blueMultiplier",get_blueMultiplier:"get_blueMultiplier",set_alphaOffset:"set_alphaOffset",get_alphaOffset:"get_alphaOffset",set_alphaMultiplier:"set_alphaMultiplier",get_alphaMultiplier:"get_alphaMultiplier"};
lime_math_ColorMatrix.__alphaTable = null;
lime_math_ColorMatrix.__blueTable = null;
lime_math_ColorMatrix.__greenTable = null;
lime_math_ColorMatrix.__redTable = null;
lime_math_ColorMatrix._new = function(data) {
var this1;
if(data != null && data.length == 20) {
this1 = data;
} else {
var elements = null;
var array = lime_math_ColorMatrix.__identity;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this2;
if(elements != null) {
this2 = new Float32Array(elements);
} else if(array != null) {
this2 = new Float32Array(array);
} else if(vector != null) {
this2 = new Float32Array(vector.__array);
} else if(view != null) {
this2 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this2 = new Float32Array(buffer,0);
} else {
this2 = new Float32Array(buffer,0,len);
}
} else {
this2 = null;
}
this1 = this2;
}
return this1;
};
lime_math_ColorMatrix.clone = function(this1) {
var elements = null;
var array = null;
var vector = null;
var view = lime_utils_Float32Array.toArrayBufferView(this1);
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Float32Array(elements);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
return lime_math_ColorMatrix._new(this1);
};
lime_math_ColorMatrix.concat = function(this1,second) {
this1[0] += second[0];
this1[6] += second[6];
this1[12] += second[12];
this1[18] += second[18];
};
lime_math_ColorMatrix.copyFrom = function(this1,other) {
this1.set(other);
};
lime_math_ColorMatrix.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;
};
lime_math_ColorMatrix.getAlphaTable = function(this1) {
if(lime_math_ColorMatrix.__alphaTable == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this2 = new Uint8Array(256);
lime_math_ColorMatrix.__alphaTable = this2;
}
var value;
lime_math_ColorMatrix.__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;
}
lime_math_ColorMatrix.__alphaTable[i] = value;
}
return lime_math_ColorMatrix.__alphaTable;
};
lime_math_ColorMatrix.getBlueTable = function(this1) {
if(lime_math_ColorMatrix.__blueTable == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this2 = new Uint8Array(256);
lime_math_ColorMatrix.__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;
}
lime_math_ColorMatrix.__blueTable[i] = value;
}
return lime_math_ColorMatrix.__blueTable;
};
lime_math_ColorMatrix.getGreenTable = function(this1) {
if(lime_math_ColorMatrix.__greenTable == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this2 = new Uint8Array(256);
lime_math_ColorMatrix.__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;
}
lime_math_ColorMatrix.__greenTable[i] = value;
}
return lime_math_ColorMatrix.__greenTable;
};
lime_math_ColorMatrix.getRedTable = function(this1) {
if(lime_math_ColorMatrix.__redTable == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this2 = new Uint8Array(256);
lime_math_ColorMatrix.__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;
}
lime_math_ColorMatrix.__redTable[i] = value;
}
return lime_math_ColorMatrix.__redTable;
};
lime_math_ColorMatrix.__toFlashColorTransform = function(this1) {
return null;
};
lime_math_ColorMatrix.get_alphaMultiplier = function(this1) {
return this1[18];
};
lime_math_ColorMatrix.set_alphaMultiplier = function(this1,value) {
return this1[18] = value;
};
lime_math_ColorMatrix.get_alphaOffset = function(this1) {
return this1[19] * 255;
};
lime_math_ColorMatrix.set_alphaOffset = function(this1,value) {
return this1[19] = value / 255;
};
lime_math_ColorMatrix.get_blueMultiplier = function(this1) {
return this1[12];
};
lime_math_ColorMatrix.set_blueMultiplier = function(this1,value) {
return this1[12] = value;
};
lime_math_ColorMatrix.get_blueOffset = function(this1) {
return this1[14] * 255;
};
lime_math_ColorMatrix.set_blueOffset = function(this1,value) {
return this1[14] = value / 255;
};
lime_math_ColorMatrix.get_color = function(this1) {
return (this1[4] * 255 | 0) << 16 | (this1[9] * 255 | 0) << 8 | (this1[14] * 255 | 0);
};
lime_math_ColorMatrix.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 lime_math_ColorMatrix.get_color(this1);
};
lime_math_ColorMatrix.get_greenMultiplier = function(this1) {
return this1[6];
};
lime_math_ColorMatrix.set_greenMultiplier = function(this1,value) {
return this1[6] = value;
};
lime_math_ColorMatrix.get_greenOffset = function(this1) {
return this1[9] * 255;
};
lime_math_ColorMatrix.set_greenOffset = function(this1,value) {
return this1[9] = value / 255;
};
lime_math_ColorMatrix.get_redMultiplier = function(this1) {
return this1[0];
};
lime_math_ColorMatrix.set_redMultiplier = function(this1,value) {
return this1[0] = value;
};
lime_math_ColorMatrix.get_redOffset = function(this1) {
return this1[4] * 255;
};
lime_math_ColorMatrix.set_redOffset = function(this1,value) {
return this1[4] = value / 255;
};
lime_math_ColorMatrix.get = function(this1,index) {
return this1[index];
};
lime_math_ColorMatrix.set = function(this1,index,value) {
return this1[index] = value;
};
var lime_math_Matrix4 = {};
lime_math_Matrix4.__properties__ = {set_position:"set_position",get_position:"get_position",get_determinant:"get_determinant"};
lime_math_Matrix4._new = function(data) {
var this1;
if(data != null && data.length == 16) {
this1 = data;
} else {
var elements = null;
var array = lime_math_Matrix4.__identity;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this2;
if(elements != null) {
this2 = new Float32Array(elements);
} else if(array != null) {
this2 = new Float32Array(array);
} else if(vector != null) {
this2 = new Float32Array(vector.__array);
} else if(view != null) {
this2 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this2 = new Float32Array(buffer,0);
} else {
this2 = new Float32Array(buffer,0,len);
}
} else {
this2 = null;
}
this1 = this2;
}
return this1;
};
lime_math_Matrix4.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 = lime_math_Matrix4.get(lhs,0);
var m221 = lime_math_Matrix4.get(lhs,4);
var m231 = lime_math_Matrix4.get(lhs,8);
var m241 = lime_math_Matrix4.get(lhs,12);
var m212 = lime_math_Matrix4.get(lhs,1);
var m222 = lime_math_Matrix4.get(lhs,5);
var m232 = lime_math_Matrix4.get(lhs,9);
var m242 = lime_math_Matrix4.get(lhs,13);
var m213 = lime_math_Matrix4.get(lhs,2);
var m223 = lime_math_Matrix4.get(lhs,6);
var m233 = lime_math_Matrix4.get(lhs,10);
var m243 = lime_math_Matrix4.get(lhs,14);
var m214 = lime_math_Matrix4.get(lhs,3);
var m224 = lime_math_Matrix4.get(lhs,7);
var m234 = lime_math_Matrix4.get(lhs,11);
var m244 = lime_math_Matrix4.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;
};
lime_math_Matrix4.appendRotation = function(this1,degrees,axis,pivotPoint) {
var m = lime_math_Matrix4.__getAxisRotation(this1,axis.x,axis.y,axis.z,degrees);
if(pivotPoint != null) {
var p = pivotPoint;
lime_math_Matrix4.appendTranslation(m,p.x,p.y,p.z);
}
lime_math_Matrix4.append(this1,m);
};
lime_math_Matrix4.appendScale = function(this1,xScale,yScale,zScale) {
var elements = null;
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 vector = null;
var view = null;
var buffer = null;
var len = null;
var this2;
if(elements != null) {
this2 = new Float32Array(elements);
} else if(array != null) {
this2 = new Float32Array(array);
} else if(vector != null) {
this2 = new Float32Array(vector.__array);
} else if(view != null) {
this2 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this2 = new Float32Array(buffer,0);
} else {
this2 = new Float32Array(buffer,0,len);
}
} else {
this2 = null;
}
lime_math_Matrix4.append(this1,lime_math_Matrix4._new(this2));
};
lime_math_Matrix4.appendTranslation = function(this1,x,y,z) {
this1[12] += x;
this1[13] += y;
this1[14] += z;
};
lime_math_Matrix4.clone = function(this1) {
var elements = null;
var array = null;
var vector = null;
var view = lime_utils_Float32Array.toArrayBufferView(this1);
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Float32Array(elements);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
return lime_math_Matrix4._new(this1);
};
lime_math_Matrix4.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.error("Column " + column + " out of bounds [0, ..., 3]",{ fileName : "lime/math/Matrix4.hx", lineNumber : 187, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyColumnFrom"});
}
};
lime_math_Matrix4.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.error("Column " + column + " out of bounds [0, ..., 3]",{ fileName : "lime/math/Matrix4.hx", lineNumber : 225, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyColumnTo"});
}
};
lime_math_Matrix4.copyFrom = function(this1,other) {
this1.set(other);
};
lime_math_Matrix4.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.error("Row " + row + " out of bounds [0, ..., 3]",{ fileName : "lime/math/Matrix4.hx", lineNumber : 272, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyRowFrom"});
}
};
lime_math_Matrix4.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.error("Row " + row + " out of bounds [0, ..., 3]",{ fileName : "lime/math/Matrix4.hx", lineNumber : 310, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyRowTo"});
}
};
lime_math_Matrix4.create2D = function(this1,a,b,c,d,tx,ty) {
if(ty == null) {
ty = 0;
}
if(tx == null) {
tx = 0;
}
this1[0] = a;
this1[1] = b;
this1[2] = 0;
this1[3] = 0;
this1[4] = c;
this1[5] = d;
this1[6] = 0;
this1[7] = 0;
this1[8] = 0;
this1[9] = 0;
this1[10] = 1;
this1[11] = 0;
this1[12] = tx;
this1[13] = ty;
this1[14] = 0;
this1[15] = 1;
};
lime_math_Matrix4.createOrtho = function(this1,left,right,bottom,top,zNear,zFar) {
var sx = 1.0 / (right - left);
var sy = 1.0 / (top - bottom);
var sz = 1.0 / (zFar - zNear);
this1[0] = 2 * sx;
this1[1] = 0;
this1[2] = 0;
this1[3] = 0;
this1[4] = 0;
this1[5] = 2 * sy;
this1[6] = 0;
this1[7] = 0;
this1[8] = 0;
this1[9] = 0;
this1[10] = -2 * sz;
this1[11] = 0;
this1[12] = -(left + right) * sx;
this1[13] = -(bottom + top) * sy;
this1[14] = -(zNear + zFar) * sz;
this1[15] = 1;
};
lime_math_Matrix4.deltaTransformVector = function(this1,v,result) {
if(result == null) {
result = new lime_math_Vector4();
}
var x = v.x;
var y = v.y;
var z = v.z;
result.x = x * this1[0] + y * this1[4] + z * this1[8] + this1[3];
result.y = x * this1[1] + y * this1[5] + z * this1[9] + this1[7];
result.z = x * this1[2] + y * this1[6] + z * this1[10] + this1[11];
return result;
};
lime_math_Matrix4.fromMatrix3 = function(matrix3) {
var mat = lime_math_Matrix4._new();
lime_math_Matrix4.create2D(mat,matrix3.a,matrix3.b,matrix3.c,matrix3.d,matrix3.tx,matrix3.ty);
return mat;
};
lime_math_Matrix4.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;
};
lime_math_Matrix4.interpolate = function(thisMat,toMat,percent,result) {
if(result == null) {
result = lime_math_Matrix4._new();
}
var _g = 0;
while(_g < 16) {
var i = _g++;
lime_math_Matrix4.set(result,i,lime_math_Matrix4.get(thisMat,i) + (lime_math_Matrix4.get(toMat,i) - lime_math_Matrix4.get(thisMat,i)) * percent);
}
return result;
};
lime_math_Matrix4.interpolateTo = function(this1,toMat,percent) {
var _g = 0;
while(_g < 16) {
var i = _g++;
this1[i] += (lime_math_Matrix4.get(toMat,i) - this1[i]) * percent;
}
};
lime_math_Matrix4.invert = function(this1) {
var d = lime_math_Matrix4.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;
};
lime_math_Matrix4.pointAt = function(this1,pos,at,up) {
if(at == null) {
at = new lime_math_Vector4(0,0,1);
}
if(up == null) {
up = new lime_math_Vector4(0,1,0);
}
var result = null;
if(result == null) {
result = new lime_math_Vector4();
}
result.x = pos.x - at.x;
result.y = pos.y - at.y;
result.z = pos.z - at.z;
var dir = result;
var vup = new lime_math_Vector4(up.x,up.y,up.z,up.w);
var l = Math.sqrt(dir.x * dir.x + dir.y * dir.y + dir.z * dir.z);
if(l != 0) {
dir.x /= l;
dir.y /= l;
dir.z /= l;
}
var l = Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z);
if(l != 0) {
vup.x /= l;
vup.y /= l;
vup.z /= l;
}
var dir2 = new lime_math_Vector4(dir.x,dir.y,dir.z,dir.w);
var s = vup.x * dir.x + vup.y * dir.y + vup.z * dir.z;
dir2.x *= s;
dir2.y *= s;
dir2.z *= s;
var result = null;
if(result == null) {
result = new lime_math_Vector4();
}
result.x = vup.x - dir2.x;
result.y = vup.y - dir2.y;
result.z = vup.z - dir2.z;
vup = result;
if(Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z) > 0) {
var l = Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z);
if(l != 0) {
vup.x /= l;
vup.y /= l;
vup.z /= l;
}
} else if(dir.x != 0) {
vup = new lime_math_Vector4(-dir.y,dir.x,0);
} else {
vup = new lime_math_Vector4(1,0,0);
}
var result = null;
if(result == null) {
result = new lime_math_Vector4();
}
var ya = vup.z * dir.x - vup.x * dir.z;
var za = vup.x * dir.y - vup.y * dir.x;
result.x = vup.y * dir.z - vup.z * dir.y;
result.y = ya;
result.z = za;
result.w = 1;
var right = result;
var l = Math.sqrt(right.x * right.x + right.y * right.y + right.z * right.z);
if(l != 0) {
right.x /= l;
right.y /= l;
right.z /= l;
}
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;
};
lime_math_Matrix4.prepend = function(this1,rhs) {
var m111 = lime_math_Matrix4.get(rhs,0);
var m121 = lime_math_Matrix4.get(rhs,4);
var m131 = lime_math_Matrix4.get(rhs,8);
var m141 = lime_math_Matrix4.get(rhs,12);
var m112 = lime_math_Matrix4.get(rhs,1);
var m122 = lime_math_Matrix4.get(rhs,5);
var m132 = lime_math_Matrix4.get(rhs,9);
var m142 = lime_math_Matrix4.get(rhs,13);
var m113 = lime_math_Matrix4.get(rhs,2);
var m123 = lime_math_Matrix4.get(rhs,6);
var m133 = lime_math_Matrix4.get(rhs,10);
var m143 = lime_math_Matrix4.get(rhs,14);
var m114 = lime_math_Matrix4.get(rhs,3);
var m124 = lime_math_Matrix4.get(rhs,7);
var m134 = lime_math_Matrix4.get(rhs,11);
var m144 = lime_math_Matrix4.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;
};
lime_math_Matrix4.prependRotation = function(this1,degrees,axis,pivotPoint) {
var m = lime_math_Matrix4.__getAxisRotation(this1,axis.x,axis.y,axis.z,degrees);
if(pivotPoint != null) {
var p = pivotPoint;
lime_math_Matrix4.appendTranslation(m,p.x,p.y,p.z);
}
lime_math_Matrix4.prepend(this1,m);
};
lime_math_Matrix4.prependScale = function(this1,xScale,yScale,zScale) {
var elements = null;
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 vector = null;
var view = null;
var buffer = null;
var len = null;
var this2;
if(elements != null) {
this2 = new Float32Array(elements);
} else if(array != null) {
this2 = new Float32Array(array);
} else if(vector != null) {
this2 = new Float32Array(vector.__array);
} else if(view != null) {
this2 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this2 = new Float32Array(buffer,0);
} else {
this2 = new Float32Array(buffer,0,len);
}
} else {
this2 = null;
}
lime_math_Matrix4.prepend(this1,lime_math_Matrix4._new(this2));
};
lime_math_Matrix4.prependTranslation = function(this1,x,y,z) {
var m = lime_math_Matrix4._new();
lime_math_Matrix4.set_position(m,new lime_math_Vector4(x,y,z));
lime_math_Matrix4.prepend(this1,m);
};
lime_math_Matrix4.transformVector = function(this1,v,result) {
if(result == null) {
result = new lime_math_Vector4();
}
var x = v.x;
var y = v.y;
var z = v.z;
result.x = x * this1[0] + y * this1[4] + z * this1[8] + this1[12];
result.y = x * this1[1] + y * this1[5] + z * this1[9] + this1[13];
result.z = x * this1[2] + y * this1[6] + z * this1[10] + this1[14];
result.w = x * this1[3] + y * this1[7] + z * this1[11] + this1[15];
return result;
};
lime_math_Matrix4.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;
}
};
lime_math_Matrix4.transpose = function(this1) {
var temp = this1[1];
this1[1] = this1[4];
this1[4] = temp;
var temp = this1[2];
this1[2] = this1[8];
this1[8] = temp;
var temp = this1[3];
this1[3] = this1[12];
this1[12] = temp;
var temp = this1[6];
this1[6] = this1[9];
this1[9] = temp;
var temp = this1[7];
this1[7] = this1[13];
this1[13] = temp;
var temp = this1[11];
this1[11] = this1[14];
this1[14] = temp;
};
lime_math_Matrix4.__getAxisRotation = function(this1,x,y,z,degrees) {
var m = lime_math_Matrix4._new();
var a1 = new lime_math_Vector4(x,y,z);
var rad = -degrees * (Math.PI / 180);
var c = Math.cos(rad);
var s = Math.sin(rad);
var t = 1.0 - c;
lime_math_Matrix4.set(m,0,c + a1.x * a1.x * t);
lime_math_Matrix4.set(m,5,c + a1.y * a1.y * t);
lime_math_Matrix4.set(m,10,c + a1.z * a1.z * t);
var tmp1 = a1.x * a1.y * t;
var tmp2 = a1.z * s;
lime_math_Matrix4.set(m,4,tmp1 + tmp2);
lime_math_Matrix4.set(m,1,tmp1 - tmp2);
tmp1 = a1.x * a1.z * t;
tmp2 = a1.y * s;
lime_math_Matrix4.set(m,8,tmp1 - tmp2);
lime_math_Matrix4.set(m,2,tmp1 + tmp2);
tmp1 = a1.y * a1.z * t;
tmp2 = a1.x * s;
lime_math_Matrix4.set(m,9,tmp1 + tmp2);
lime_math_Matrix4.set(m,6,tmp1 - tmp2);
return m;
};
lime_math_Matrix4.__swap = function(this1,a,b) {
var temp = this1[a];
this1[a] = this1[b];
this1[b] = temp;
};
lime_math_Matrix4.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]);
};
lime_math_Matrix4.get_position = function(this1) {
return new lime_math_Vector4(this1[12],this1[13],this1[14]);
};
lime_math_Matrix4.set_position = function(this1,val) {
this1[12] = val.x;
this1[13] = val.y;
this1[14] = val.z;
return val;
};
lime_math_Matrix4.get = function(this1,index) {
return this1[index];
};
lime_math_Matrix4.set = function(this1,index,value) {
this1[index] = value;
return value;
};
var lime_math_RGBA = {};
lime_math_RGBA.__properties__ = {set_r:"set_r",get_r:"get_r",set_g:"set_g",get_g:"get_g",set_b:"set_b",get_b:"get_b",set_a:"set_a",get_a:"get_a"};
lime_math_RGBA.__alpha16 = null;
lime_math_RGBA.__clamp = null;
lime_math_RGBA.a16 = null;
lime_math_RGBA.unmult = null;
lime_math_RGBA._new = function(rgba) {
if(rgba == null) {
rgba = 0;
}
var this1 = rgba;
return this1;
};
lime_math_RGBA.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;
};
lime_math_RGBA.multiplyAlpha = function(this1) {
if((this1 & 255) == 0) {
if(this1 != 0) {
this1 = 0;
}
} else if((this1 & 255) != 255) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[this1 & 255];
this1 = ((this1 >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | this1 & 255 & 255;
}
};
lime_math_RGBA.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) {
lime_math_RGBA.unmult = 255.0 / (this1 & 255);
this1 = (lime_math_RGBA.__clamp[Math.round((this1 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((this1 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((this1 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | this1 & 255 & 255;
}
}
};
lime_math_RGBA.set = function(this1,r,g,b,a) {
this1 = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | a & 255;
};
lime_math_RGBA.unmultiplyAlpha = function(this1) {
if((this1 & 255) != 0 && (this1 & 255) != 255) {
lime_math_RGBA.unmult = 255.0 / (this1 & 255);
this1 = (lime_math_RGBA.__clamp[Math.round((this1 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((this1 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((this1 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | this1 & 255 & 255;
}
};
lime_math_RGBA.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) {
lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[this1 & 255];
this1 = ((this1 >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_RGBA.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;
}
};
lime_math_RGBA.__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;
};
lime_math_RGBA.__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;
};
lime_math_RGBA.get_a = function(this1) {
return this1 & 255;
};
lime_math_RGBA.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;
};
lime_math_RGBA.get_b = function(this1) {
return this1 >>> 8 & 255;
};
lime_math_RGBA.set_b = function(this1,value) {
this1 = (this1 >>> 24 & 255 & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (value & 255) << 8 | this1 & 255 & 255;
return value;
};
lime_math_RGBA.get_g = function(this1) {
return this1 >>> 16 & 255;
};
lime_math_RGBA.set_g = function(this1,value) {
this1 = (this1 >>> 24 & 255 & 255) << 24 | (value & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | this1 & 255 & 255;
return value;
};
lime_math_RGBA.get_r = function(this1) {
return this1 >>> 24 & 255;
};
lime_math_RGBA.set_r = function(this1,value) {
this1 = (value & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | this1 & 255 & 255;
return value;
};
var lime_math_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;
};
$hxClasses["lime.math.Rectangle"] = lime_math_Rectangle;
lime_math_Rectangle.__name__ = "lime.math.Rectangle";
lime_math_Rectangle.prototype = {
height: null
,width: null
,x: null
,y: null
,clone: function() {
return new lime_math_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.containsVector(point);
}
,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;
}
}
,containsVector: function(vector) {
return this.contains(vector.x,vector.y);
}
,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;
}
,inflateVector: function(vector) {
this.inflate(vector.x,vector.y);
}
,intersection: function(toIntersect,result) {
if(result == null) {
result = new lime_math_Rectangle();
}
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) {
result.setEmpty();
return result;
}
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) {
result.setEmpty();
return result;
}
result.x = x0;
result.y = y0;
result.width = x1 - x0;
result.height = y1 - y0;
return result;
}
,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;
}
,offsetVector: function(vector) {
this.x += vector.x;
this.y += vector.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;
}
,union: function(toUnion,result) {
if(result == null) {
result = new lime_math_Rectangle();
}
if(this.width == 0 || this.height == 0) {
result.copyFrom(toUnion);
} else if(toUnion.width == 0 || toUnion.height == 0) {
result.copyFrom(this);
} else {
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();
result.setTo(x0,y0,x1 - x0,y1 - y0);
}
return result;
}
,__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(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(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(this.x,this.y);
}
,set_topLeft: function(p) {
this.x = p.x;
this.y = p.y;
return p.clone();
}
,__class__: lime_math_Rectangle
,__properties__: {set_topLeft:"set_topLeft",get_topLeft:"get_topLeft",set_top:"set_top",get_top:"get_top",set_size:"set_size",get_size:"get_size",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left",set_bottomRight:"set_bottomRight",get_bottomRight:"get_bottomRight",set_bottom:"set_bottom",get_bottom:"get_bottom"}
};
var lime_math_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;
};
$hxClasses["lime.math.Vector4"] = lime_math_Vector4;
lime_math_Vector4.__name__ = "lime.math.Vector4";
lime_math_Vector4.__properties__ = {get_Z_AXIS:"get_Z_AXIS",get_Y_AXIS:"get_Y_AXIS",get_X_AXIS:"get_X_AXIS"};
lime_math_Vector4.angleBetween = function(a,b) {
var a0 = new lime_math_Vector4(a.x,a.y,a.z,a.w);
var l = Math.sqrt(a0.x * a0.x + a0.y * a0.y + a0.z * a0.z);
if(l != 0) {
a0.x /= l;
a0.y /= l;
a0.z /= l;
}
var b0 = new lime_math_Vector4(b.x,b.y,b.z,b.w);
var l = Math.sqrt(b0.x * b0.x + b0.y * b0.y + b0.z * b0.z);
if(l != 0) {
b0.x /= l;
b0.y /= l;
b0.z /= l;
}
return Math.acos(a0.x * b0.x + a0.y * b0.y + a0.z * b0.z);
};
lime_math_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);
};
lime_math_Vector4.distanceSquared = function(pt1,pt2) {
var x = pt2.x - pt1.x;
var y = pt2.y - pt1.y;
var z = pt2.z - pt1.z;
return x * x + y * y + z * z;
};
lime_math_Vector4.get_X_AXIS = function() {
return new lime_math_Vector4(1,0,0);
};
lime_math_Vector4.get_Y_AXIS = function() {
return new lime_math_Vector4(0,1,0);
};
lime_math_Vector4.get_Z_AXIS = function() {
return new lime_math_Vector4(0,0,1);
};
lime_math_Vector4.prototype = {
w: null
,x: null
,y: null
,z: null
,add: function(a,result) {
if(result == null) {
result = new lime_math_Vector4();
}
result.x = this.x + a.x;
result.y = this.y + a.y;
result.z = this.z + a.z;
return result;
}
,clone: function() {
return new lime_math_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,result) {
if(result == null) {
result = new lime_math_Vector4();
}
var ya = this.z * a.x - this.x * a.z;
var za = this.x * a.y - this.y * a.x;
result.x = this.y * a.z - this.z * a.y;
result.y = ya;
result.z = za;
result.w = 1;
return result;
}
,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 = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
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,result) {
if(result == null) {
result = new lime_math_Vector4();
}
result.x = this.x - a.x;
result.y = this.y - a.y;
result.z = this.z - a.z;
return result;
}
,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;
}
,__class__: lime_math_Vector4
,__properties__: {get_lengthSquared:"get_lengthSquared",get_length:"get_length"}
};
var lime_media_AudioBuffer = function() {
};
$hxClasses["lime.media.AudioBuffer"] = lime_media_AudioBuffer;
lime_media_AudioBuffer.__name__ = "lime.media.AudioBuffer";
lime_media_AudioBuffer.fromBase64 = function(base64String) {
if(base64String == null) {
return null;
}
if(base64String.indexOf(",") == -1) {
base64String = "data:" + lime_media_AudioBuffer.__getCodec(lime__$internal_format_Base64.decode(base64String)) + ";base64," + base64String;
}
var audioBuffer = new lime_media_AudioBuffer();
audioBuffer.set_src(new Howl({ src : [base64String], html5 : true, preload : false}));
return audioBuffer;
};
lime_media_AudioBuffer.fromBytes = function(bytes) {
if(bytes == null) {
return null;
}
var audioBuffer = new lime_media_AudioBuffer();
audioBuffer.set_src(new Howl({ src : ["data:" + lime_media_AudioBuffer.__getCodec(bytes) + ";base64," + lime__$internal_format_Base64.encode(bytes)], html5 : true, preload : false}));
return audioBuffer;
};
lime_media_AudioBuffer.fromFile = function(path) {
if(path == null) {
return null;
}
var audioBuffer = new lime_media_AudioBuffer();
audioBuffer.__srcHowl = new Howl({ src : [path], preload : false});
return audioBuffer;
};
lime_media_AudioBuffer.fromFiles = function(paths) {
var audioBuffer = new lime_media_AudioBuffer();
audioBuffer.__srcHowl = new Howl({ src : paths, preload : false});
return audioBuffer;
};
lime_media_AudioBuffer.fromVorbisFile = function(vorbisFile) {
return null;
};
lime_media_AudioBuffer.loadFromFile = function(path) {
var promise = new lime_app_Promise();
var audioBuffer = lime_media_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;
};
lime_media_AudioBuffer.loadFromFiles = function(paths) {
var promise = new lime_app_Promise();
var audioBuffer = lime_media_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;
};
lime_media_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.b[2];
var _g1 = bytes.b[1];
switch(bytes.b[0]) {
case 73:
if(_g1 == 68) {
if(_g == 51) {
return "audio/mp3";
}
}
break;
case 255:
switch(_g1) {
case 243:case 250:case 251:
return "audio/mp3";
default:
}
break;
default:
}
}
break;
case "fLaC":
return "audio/flac";
default:
var _g = bytes.b[2];
var _g1 = bytes.b[1];
switch(bytes.b[0]) {
case 73:
if(_g1 == 68) {
if(_g == 51) {
return "audio/mp3";
}
}
break;
case 255:
switch(_g1) {
case 243:case 250:case 251:
return "audio/mp3";
default:
}
break;
default:
}
}
lime_utils_Log.error("Unsupported sound format",{ fileName : "lime/media/AudioBuffer.hx", lineNumber : 362, className : "lime.media.AudioBuffer", methodName : "__getCodec"});
return null;
};
lime_media_AudioBuffer.prototype = {
bitsPerSample: null
,channels: null
,data: null
,sampleRate: null
,__srcAudio: null
,__srcBuffer: null
,__srcCustom: null
,__srcHowl: null
,__srcSound: null
,__srcVorbisFile: null
,dispose: function() {
this.__srcHowl.unload();
}
,get_src: function() {
return this.__srcHowl;
}
,set_src: function(value) {
return this.__srcHowl = value;
}
,__class__: lime_media_AudioBuffer
,__properties__: {set_src:"set_src",get_src:"get_src"}
};
var lime_media_AudioContext = function(type) {
if(type != "custom") {
if(type == null || type == "web") {
try {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
this.web = new window.AudioContext ();
this.type = "web";
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
}
if(this.web == null && type != "web") {
this.html5 = new lime_media_HTML5AudioContext();
this.type = "html5";
}
} else {
this.type = "custom";
}
};
$hxClasses["lime.media.AudioContext"] = lime_media_AudioContext;
lime_media_AudioContext.__name__ = "lime.media.AudioContext";
lime_media_AudioContext.prototype = {
custom: null
,flash: null
,html5: null
,openal: null
,type: null
,web: null
,__class__: lime_media_AudioContext
};
var lime_media_AudioManager = function() { };
$hxClasses["lime.media.AudioManager"] = lime_media_AudioManager;
lime_media_AudioManager.__name__ = "lime.media.AudioManager";
lime_media_AudioManager.context = null;
lime_media_AudioManager.init = function(context) {
if(lime_media_AudioManager.context == null) {
if(context == null) {
lime_media_AudioManager.context = new lime_media_AudioContext();
context = lime_media_AudioManager.context;
if(context.type == "openal") {
var alc = context.openal;
var device = alc.openDevice();
var ctx = alc.createContext(device);
alc.makeContextCurrent(ctx);
alc.processContext(ctx);
}
}
lime_media_AudioManager.context = context;
}
};
lime_media_AudioManager.resume = function() {
if(lime_media_AudioManager.context != null && lime_media_AudioManager.context.type == "openal") {
var alc = lime_media_AudioManager.context.openal;
var currentContext = alc.getCurrentContext();
if(currentContext != null) {
var device = alc.getContextsDevice(currentContext);
alc.resumeDevice(device);
alc.processContext(currentContext);
}
}
};
lime_media_AudioManager.shutdown = function() {
if(lime_media_AudioManager.context != null && lime_media_AudioManager.context.type == "openal") {
var alc = lime_media_AudioManager.context.openal;
var currentContext = alc.getCurrentContext();
if(currentContext != null) {
var device = alc.getContextsDevice(currentContext);
alc.makeContextCurrent(null);
alc.destroyContext(currentContext);
if(device != null) {
alc.closeDevice(device);
}
}
}
lime_media_AudioManager.context = null;
};
lime_media_AudioManager.suspend = function() {
if(lime_media_AudioManager.context != null && lime_media_AudioManager.context.type == "openal") {
var alc = lime_media_AudioManager.context.openal;
var currentContext = alc.getCurrentContext();
if(currentContext != null) {
alc.suspendContext(currentContext);
var device = alc.getContextsDevice(currentContext);
if(device != null) {
alc.pauseDevice(device);
}
}
}
};
var lime_media_AudioSource = function(buffer,offset,length,loops) {
if(loops == null) {
loops = 0;
}
if(offset == null) {
offset = 0;
}
this.onComplete = new lime_app__$Event_$Void_$Void();
this.buffer = buffer;
this.offset = offset;
this.__backend = new lime__$internal_backend_html5_HTML5AudioSource(this);
if(length != null && length != 0) {
this.set_length(length);
}
this.set_loops(loops);
if(buffer != null) {
this.init();
}
};
$hxClasses["lime.media.AudioSource"] = lime_media_AudioSource;
lime_media_AudioSource.__name__ = "lime.media.AudioSource";
lime_media_AudioSource.prototype = {
onComplete: null
,buffer: null
,offset: null
,__backend: null
,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);
}
,__class__: lime_media_AudioSource
,__properties__: {set_position:"set_position",get_position:"get_position",set_loops:"set_loops",get_loops:"get_loops",set_length:"set_length",get_length:"get_length",set_gain:"set_gain",get_gain:"get_gain",set_currentTime:"set_currentTime",get_currentTime:"get_currentTime"}
};
var lime_media_FlashAudioContext = function() {
};
$hxClasses["lime.media.FlashAudioContext"] = lime_media_FlashAudioContext;
lime_media_FlashAudioContext.__name__ = "lime.media.FlashAudioContext";
lime_media_FlashAudioContext.prototype = {
createBuffer: function(stream,context) {
return null;
}
,getBytesLoaded: function(buffer) {
return 0;
}
,getBytesTotal: function(buffer) {
return 0;
}
,getID3: function(buffer) {
return null;
}
,getIsBuffering: function(buffer) {
return false;
}
,getIsURLInaccessible: function(buffer) {
return false;
}
,getLength: function(buffer) {
return 0;
}
,getURL: function(buffer) {
return null;
}
,close: function(buffer) {
}
,extract: function(buffer,target,length,startPosition) {
if(startPosition == null) {
startPosition = -1;
}
return 0;
}
,load: function(buffer,stream,context) {
}
,loadCompressedDataFromByteArray: function(buffer,bytes,bytesLength) {
}
,loadPCMFromByteArray: function(buffer,bytes,samples,format,stereo,sampleRate) {
if(sampleRate == null) {
sampleRate = 44100;
}
if(stereo == null) {
stereo = true;
}
}
,play: function(buffer,startTime,loops,sndTransform) {
if(loops == null) {
loops = 0;
}
if(startTime == null) {
startTime = 0;
}
return null;
}
,__class__: lime_media_FlashAudioContext
};
var lime_media_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;
};
$hxClasses["lime.media.HTML5AudioContext"] = lime_media_HTML5AudioContext;
lime_media_HTML5AudioContext.__name__ = "lime.media.HTML5AudioContext";
lime_media_HTML5AudioContext.prototype = {
HAVE_CURRENT_DATA: null
,HAVE_ENOUGH_DATA: null
,HAVE_FUTURE_DATA: null
,HAVE_METADATA: null
,HAVE_NOTHING: null
,NETWORK_EMPTY: null
,NETWORK_IDLE: null
,NETWORK_LOADING: null
,NETWORK_NO_SOURCE: null
,canPlayType: function(buffer,type) {
if(buffer.__srcAudio != null) {
return buffer.__srcAudio.canPlayType(type);
}
return null;
}
,createBuffer: function(urlString) {
var buffer = new lime_media_AudioBuffer();
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();
}
}
,pause: function(buffer) {
if(buffer.__srcAudio != null) {
buffer.__srcAudio.pause();
}
}
,play: function(buffer) {
if(buffer.__srcAudio != null) {
buffer.__srcAudio.play();
}
}
,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;
}
}
,__class__: lime_media_HTML5AudioContext
};
var lime_media_OpenALAudioContext = function() {
this.ALL_DEVICES_SPECIFIER = 4115;
this.DEFAULT_ALL_DEVICES_SPECIFIER = 4114;
this.ENUMERATE_ALL_EXT = 1;
this.DEVICE_SPECIFIER = 4101;
this.DEFAULT_DEVICE_SPECIFIER = 4100;
this.ALL_ATTRIBUTES = 4099;
this.ATTRIBUTES_SIZE = 4098;
this.INVALID_CONTEXT = 40962;
this.INVALID_DEVICE = 40961;
this.STEREO_SOURCES = 4113;
this.MONO_SOURCES = 4112;
this.SYNC = 4105;
this.REFRESH = 4104;
this.EXPONENT_DISTANCE_CLAMPED = 53254;
this.EXPONENT_DISTANCE = 53253;
this.LINEAR_DISTANCE_CLAMPED = 53252;
this.LINEAR_DISTANCE = 53251;
this.INVERSE_DISTANCE_CLAMPED = 53250;
this.INVERSE_DISTANCE = 53249;
this.DISTANCE_MODEL = 53248;
this.DOPPLER_VELOCITY = 49153;
this.SPEED_OF_SOUND = 49155;
this.DOPPLER_FACTOR = 49152;
this.EXTENSIONS = 45060;
this.RENDERER = 45059;
this.VERSION = 45058;
this.VENDOR = 45057;
this.OUT_OF_MEMORY = 40965;
this.INVALID_OPERATION = 40964;
this.INVALID_VALUE = 40963;
this.INVALID_ENUM = 40962;
this.INVALID_NAME = 40961;
this.NO_ERROR = 0;
this.SIZE = 8196;
this.CHANNELS = 8195;
this.BITS = 8194;
this.FREQUENCY = 8193;
this.FORMAT_STEREO16 = 4355;
this.FORMAT_STEREO8 = 4354;
this.FORMAT_MONO16 = 4353;
this.FORMAT_MONO8 = 4352;
this.UNDETERMINED = 4144;
this.STREAMING = 4137;
this.STATIC = 4136;
this.SOURCE_TYPE = 4135;
this.BYTE_OFFSET = 4134;
this.SAMPLE_OFFSET = 4133;
this.SEC_OFFSET = 4132;
this.MAX_DISTANCE = 4131;
this.CONE_OUTER_GAIN = 4130;
this.ROLLOFF_FACTOR = 4129;
this.REFERENCE_DISTANCE = 4128;
this.BUFFERS_PROCESSED = 4118;
this.BUFFERS_QUEUED = 4117;
this.STOPPED = 4116;
this.PAUSED = 4115;
this.PLAYING = 4114;
this.INITIAL = 4113;
this.SOURCE_STATE = 4112;
this.ORIENTATION = 4111;
this.MAX_GAIN = 4110;
this.MIN_GAIN = 4109;
this.GAIN = 4106;
this.BUFFER = 4105;
this.LOOPING = 4103;
this.VELOCITY = 4102;
this.DIRECTION = 4101;
this.POSITION = 4100;
this.PITCH = 4099;
this.CONE_OUTER_ANGLE = 4098;
this.CONE_INNER_ANGLE = 4097;
this.SOURCE_RELATIVE = 514;
this.TRUE = 1;
this.FALSE = 0;
this.NONE = 0;
};
$hxClasses["lime.media.OpenALAudioContext"] = lime_media_OpenALAudioContext;
lime_media_OpenALAudioContext.__name__ = "lime.media.OpenALAudioContext";
lime_media_OpenALAudioContext.prototype = {
NONE: null
,FALSE: null
,TRUE: null
,SOURCE_RELATIVE: null
,CONE_INNER_ANGLE: null
,CONE_OUTER_ANGLE: null
,PITCH: null
,POSITION: null
,DIRECTION: null
,VELOCITY: null
,LOOPING: null
,BUFFER: null
,GAIN: null
,MIN_GAIN: null
,MAX_GAIN: null
,ORIENTATION: null
,SOURCE_STATE: null
,INITIAL: null
,PLAYING: null
,PAUSED: null
,STOPPED: null
,BUFFERS_QUEUED: null
,BUFFERS_PROCESSED: null
,REFERENCE_DISTANCE: null
,ROLLOFF_FACTOR: null
,CONE_OUTER_GAIN: null
,MAX_DISTANCE: null
,SEC_OFFSET: null
,SAMPLE_OFFSET: null
,BYTE_OFFSET: null
,SOURCE_TYPE: null
,STATIC: null
,STREAMING: null
,UNDETERMINED: null
,FORMAT_MONO8: null
,FORMAT_MONO16: null
,FORMAT_STEREO8: null
,FORMAT_STEREO16: null
,FREQUENCY: null
,BITS: null
,CHANNELS: null
,SIZE: null
,NO_ERROR: null
,INVALID_NAME: null
,INVALID_ENUM: null
,INVALID_VALUE: null
,INVALID_OPERATION: null
,OUT_OF_MEMORY: null
,VENDOR: null
,VERSION: null
,RENDERER: null
,EXTENSIONS: null
,DOPPLER_FACTOR: null
,SPEED_OF_SOUND: null
,DOPPLER_VELOCITY: null
,DISTANCE_MODEL: null
,INVERSE_DISTANCE: null
,INVERSE_DISTANCE_CLAMPED: null
,LINEAR_DISTANCE: null
,LINEAR_DISTANCE_CLAMPED: null
,EXPONENT_DISTANCE: null
,EXPONENT_DISTANCE_CLAMPED: null
,REFRESH: null
,SYNC: null
,MONO_SOURCES: null
,STEREO_SOURCES: null
,INVALID_DEVICE: null
,INVALID_CONTEXT: null
,ATTRIBUTES_SIZE: null
,ALL_ATTRIBUTES: null
,DEFAULT_DEVICE_SPECIFIER: null
,DEVICE_SPECIFIER: null
,ENUMERATE_ALL_EXT: null
,DEFAULT_ALL_DEVICES_SPECIFIER: null
,ALL_DEVICES_SPECIFIER: null
,bufferData: function(buffer,format,data,size,freq) {
lime_media_openal_AL.bufferData(buffer,format,data,size,freq);
}
,buffer3f: function(buffer,param,value1,value2,value3) {
lime_media_openal_AL.buffer3f(buffer,param,value1,value2,value3);
}
,buffer3i: function(buffer,param,value1,value2,value3) {
lime_media_openal_AL.buffer3i(buffer,param,value1,value2,value3);
}
,bufferf: function(buffer,param,value) {
lime_media_openal_AL.bufferf(buffer,param,value);
}
,bufferfv: function(buffer,param,values) {
lime_media_openal_AL.bufferfv(buffer,param,values);
}
,bufferi: function(buffer,param,value) {
lime_media_openal_AL.bufferi(buffer,param,value);
}
,bufferiv: function(buffer,param,values) {
lime_media_openal_AL.bufferiv(buffer,param,values);
}
,closeDevice: function(device) {
return lime_media_openal_ALC.closeDevice(device);
}
,createContext: function(device,attrlist) {
return lime_media_openal_ALC.createContext(device,attrlist);
}
,createBuffer: function() {
return lime_media_openal_AL.createBuffer();
}
,createSource: function() {
return lime_media_openal_AL.createSource();
}
,deleteBuffer: function(buffer) {
lime_media_openal_AL.deleteBuffer(buffer);
}
,deleteBuffers: function(buffers) {
lime_media_openal_AL.deleteBuffers(buffers);
}
,deleteSource: function(source) {
lime_media_openal_AL.deleteSource(source);
}
,deleteSources: function(sources) {
lime_media_openal_AL.deleteSources(sources);
}
,destroyContext: function(context) {
if(context == null) {
return;
}
lime_media_openal_ALC.destroyContext(context);
}
,disable: function(capability) {
lime_media_openal_AL.disable(capability);
}
,distanceModel: function(distanceModel) {
lime_media_openal_AL.distanceModel(distanceModel);
}
,dopplerFactor: function(value) {
lime_media_openal_AL.dopplerFactor(value);
}
,dopplerVelocity: function(value) {
lime_media_openal_AL.dopplerVelocity(value);
}
,enable: function(capability) {
lime_media_openal_AL.enable(capability);
}
,genSource: function() {
return this.createSource();
}
,genSources: function(n) {
return lime_media_openal_AL.genSources(n);
}
,genBuffer: function() {
return this.createBuffer();
}
,genBuffers: function(n) {
return lime_media_openal_AL.genBuffers(n);
}
,getBoolean: function(param) {
return lime_media_openal_AL.getBoolean(param);
}
,getBooleanv: function(param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getBooleanv(param,count);
}
,getBuffer3f: function(buffer,param) {
return lime_media_openal_AL.getBuffer3f(buffer,param);
}
,getBuffer3i: function(buffer,param) {
return lime_media_openal_AL.getBuffer3i(buffer,param);
}
,getBufferf: function(buffer,param) {
return lime_media_openal_AL.getBufferf(buffer,param);
}
,getBufferfv: function(buffer,param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getBufferfv(buffer,param,count);
}
,getBufferi: function(buffer,param) {
return lime_media_openal_AL.getBufferi(buffer,param);
}
,getBufferiv: function(buffer,param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getBufferiv(buffer,param,count);
}
,getContextsDevice: function(context) {
if(context == null) {
return null;
}
return lime_media_openal_ALC.getContextsDevice(context);
}
,getCurrentContext: function() {
return lime_media_openal_ALC.getCurrentContext();
}
,getDouble: function(param) {
return lime_media_openal_AL.getDouble(param);
}
,getDoublev: function(param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getDoublev(param,count);
}
,getEnumValue: function(ename) {
return lime_media_openal_AL.getEnumValue(ename);
}
,getError: function(device) {
if(device == null) {
return lime_media_openal_AL.getError();
} else {
return lime_media_openal_ALC.getError(device);
}
}
,getErrorString: function(device) {
if(device == null) {
return lime_media_openal_AL.getErrorString();
} else {
return lime_media_openal_ALC.getErrorString(device);
}
}
,getFloat: function(param) {
return lime_media_openal_AL.getFloat(param);
}
,getFloatv: function(param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getFloatv(param,count);
}
,getInteger: function(param) {
return lime_media_openal_AL.getInteger(param);
}
,getIntegerv: function(param,count,device) {
if(count == null) {
count = 1;
}
if(device == null) {
return lime_media_openal_AL.getIntegerv(param,count);
} else {
return lime_media_openal_ALC.getIntegerv(device,param,count);
}
}
,getListener3f: function(param) {
return lime_media_openal_AL.getListener3f(param);
}
,getListener3i: function(param) {
return lime_media_openal_AL.getListener3i(param);
}
,getListenerf: function(param) {
return lime_media_openal_AL.getListenerf(param);
}
,getListenerfv: function(param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getListenerfv(param,count);
}
,getListeneri: function(param) {
return lime_media_openal_AL.getListeneri(param);
}
,getListeneriv: function(param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getListeneriv(param,count);
}
,getProcAddress: function(fname) {
return lime_media_openal_AL.getProcAddress(fname);
}
,getSource3f: function(source,param) {
return lime_media_openal_AL.getSource3f(source,param);
}
,getSourcef: function(source,param) {
return lime_media_openal_AL.getSourcef(source,param);
}
,getSource3i: function(source,param) {
return lime_media_openal_AL.getSource3i(source,param);
}
,getSourcefv: function(source,param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getSourcefv(source,param);
}
,getSourcei: function(source,param) {
return lime_media_openal_AL.getSourcei(source,param);
}
,getSourceiv: function(source,param,count) {
if(count == null) {
count = 1;
}
return lime_media_openal_AL.getSourceiv(source,param,count);
}
,getString: function(param,device) {
if(device == null) {
return lime_media_openal_AL.getString(param);
} else {
return lime_media_openal_ALC.getString(device,param);
}
}
,isBuffer: function(buffer) {
return lime_media_openal_AL.isBuffer(buffer);
}
,isEnabled: function(capability) {
return lime_media_openal_AL.isEnabled(capability);
}
,isExtensionPresent: function(extname) {
return lime_media_openal_AL.isExtensionPresent(extname);
}
,isSource: function(source) {
return lime_media_openal_AL.isSource(source);
}
,listener3f: function(param,value1,value2,value3) {
lime_media_openal_AL.listener3f(param,value1,value2,value3);
}
,listener3i: function(param,value1,value2,value3) {
lime_media_openal_AL.listener3i(param,value1,value2,value3);
}
,listenerf: function(param,value) {
lime_media_openal_AL.listenerf(param,value);
}
,listenerfv: function(param,values) {
lime_media_openal_AL.listenerfv(param,values);
}
,listeneri: function(param,value) {
lime_media_openal_AL.listeneri(param,value);
}
,listeneriv: function(param,values) {
lime_media_openal_AL.listeneriv(param,values);
}
,makeContextCurrent: function(context) {
return lime_media_openal_ALC.makeContextCurrent(context);
}
,openDevice: function(deviceName) {
return lime_media_openal_ALC.openDevice(deviceName);
}
,pauseDevice: function(device) {
lime_media_openal_ALC.pauseDevice(device);
}
,processContext: function(context) {
lime_media_openal_ALC.processContext(context);
}
,resumeDevice: function(device) {
lime_media_openal_ALC.resumeDevice(device);
}
,source3f: function(source,param,value1,value2,value3) {
lime_media_openal_AL.source3f(source,param,value1,value2,value3);
}
,source3i: function(source,param,value1,value2,value3) {
lime_media_openal_AL.source3i(source,param,value1,value2,value3);
}
,sourcef: function(source,param,value) {
lime_media_openal_AL.sourcef(source,param,value);
}
,sourcefv: function(source,param,values) {
lime_media_openal_AL.sourcefv(source,param,values);
}
,sourcei: function(source,param,value) {
lime_media_openal_AL.sourcei(source,param,value);
}
,sourceiv: function(source,param,values) {
lime_media_openal_AL.sourceiv(source,param,values);
}
,sourcePlay: function(source) {
lime_media_openal_AL.sourcePlay(source);
}
,sourcePlayv: function(sources) {
lime_media_openal_AL.sourcePlayv(sources);
}
,sourceStop: function(source) {
lime_media_openal_AL.sourceStop(source);
}
,sourceStopv: function(sources) {
lime_media_openal_AL.sourceStopv(sources);
}
,sourceRewind: function(source) {
lime_media_openal_AL.sourceRewind(source);
}
,sourceRewindv: function(sources) {
lime_media_openal_AL.sourceRewindv(sources);
}
,sourcePause: function(source) {
lime_media_openal_AL.sourcePause(source);
}
,sourcePausev: function(sources) {
lime_media_openal_AL.sourcePausev(sources);
}
,sourceQueueBuffer: function(source,buffer) {
lime_media_openal_AL.sourceQueueBuffer(source,buffer);
}
,sourceQueueBuffers: function(source,nb,buffers) {
lime_media_openal_AL.sourceQueueBuffers(source,nb,buffers);
}
,sourceUnqueueBuffer: function(source) {
return lime_media_openal_AL.sourceUnqueueBuffer(source);
}
,sourceUnqueueBuffers: function(source,nb) {
return lime_media_openal_AL.sourceUnqueueBuffers(source,nb);
}
,speedOfSound: function(value) {
lime_media_openal_AL.speedOfSound(value);
}
,suspendContext: function(context) {
lime_media_openal_ALC.suspendContext(context);
}
,__class__: lime_media_OpenALAudioContext
};
var lime_media_openal_AL = function() { };
$hxClasses["lime.media.openal.AL"] = lime_media_openal_AL;
lime_media_openal_AL.__name__ = "lime.media.openal.AL";
lime_media_openal_AL.removeDirectFilter = function(source) {
};
lime_media_openal_AL.removeSend = function(source,index) {
};
lime_media_openal_AL.auxf = function(aux,param,value) {
};
lime_media_openal_AL.auxfv = function(aux,param,values) {
};
lime_media_openal_AL.auxi = function(aux,param,value) {
};
lime_media_openal_AL.auxiv = function(aux,param,values) {
};
lime_media_openal_AL.bufferData = function(buffer,format,data,size,freq) {
};
lime_media_openal_AL.buffer3f = function(buffer,param,value1,value2,value3) {
};
lime_media_openal_AL.buffer3i = function(buffer,param,value1,value2,value3) {
};
lime_media_openal_AL.bufferf = function(buffer,param,value) {
};
lime_media_openal_AL.bufferfv = function(buffer,param,values) {
};
lime_media_openal_AL.bufferi = function(buffer,param,value) {
};
lime_media_openal_AL.bufferiv = function(buffer,param,values) {
};
lime_media_openal_AL.createAux = function() {
return null;
};
lime_media_openal_AL.createBuffer = function() {
return null;
};
lime_media_openal_AL.createEffect = function() {
return null;
};
lime_media_openal_AL.createFilter = function() {
return null;
};
lime_media_openal_AL.createSource = function() {
return null;
};
lime_media_openal_AL.deleteBuffer = function(buffer) {
};
lime_media_openal_AL.deleteBuffers = function(buffers) {
};
lime_media_openal_AL.deleteSource = function(source) {
};
lime_media_openal_AL.deleteSources = function(sources) {
};
lime_media_openal_AL.disable = function(capability) {
};
lime_media_openal_AL.distanceModel = function(distanceModel) {
};
lime_media_openal_AL.dopplerFactor = function(value) {
};
lime_media_openal_AL.dopplerVelocity = function(value) {
};
lime_media_openal_AL.effectf = function(effect,param,value) {
};
lime_media_openal_AL.effectfv = function(effect,param,values) {
};
lime_media_openal_AL.effecti = function(effect,param,value) {
};
lime_media_openal_AL.effectiv = function(effect,param,values) {
};
lime_media_openal_AL.enable = function(capability) {
};
lime_media_openal_AL.genSource = function() {
return null;
};
lime_media_openal_AL.genSources = function(n) {
return null;
};
lime_media_openal_AL.genBuffer = function() {
return null;
};
lime_media_openal_AL.genBuffers = function(n) {
return null;
};
lime_media_openal_AL.getBoolean = function(param) {
return false;
};
lime_media_openal_AL.getBooleanv = function(param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getBuffer3f = function(buffer,param) {
return null;
};
lime_media_openal_AL.getBuffer3i = function(buffer,param) {
return null;
};
lime_media_openal_AL.getBufferf = function(buffer,param) {
return 0;
};
lime_media_openal_AL.getBufferfv = function(buffer,param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getBufferi = function(buffer,param) {
return 0;
};
lime_media_openal_AL.getBufferiv = function(buffer,param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getDouble = function(param) {
return 0;
};
lime_media_openal_AL.getDoublev = function(param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getEnumValue = function(ename) {
return 0;
};
lime_media_openal_AL.getError = function() {
return 0;
};
lime_media_openal_AL.getErrorString = function() {
switch(lime_media_openal_AL.getError()) {
case 40961:
return "INVALID_NAME: Invalid parameter name";
case 40962:
return "INVALID_ENUM: Invalid enum value";
case 40963:
return "INVALID_VALUE: Invalid parameter value";
case 40964:
return "INVALID_OPERATION: Illegal operation or call";
case 40965:
return "OUT_OF_MEMORY: OpenAL has run out of memory";
default:
return "";
}
};
lime_media_openal_AL.getFilteri = function(filter,param) {
return 0;
};
lime_media_openal_AL.getFloat = function(param) {
return 0;
};
lime_media_openal_AL.getFloatv = function(param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getInteger = function(param) {
return 0;
};
lime_media_openal_AL.getIntegerv = function(param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getListener3f = function(param) {
return null;
};
lime_media_openal_AL.getListener3i = function(param) {
return null;
};
lime_media_openal_AL.getListenerf = function(param) {
return 0;
};
lime_media_openal_AL.getListenerfv = function(param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getListeneri = function(param) {
return 0;
};
lime_media_openal_AL.getListeneriv = function(param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getParameter = function(param) {
return null;
};
lime_media_openal_AL.getProcAddress = function(fname) {
return null;
};
lime_media_openal_AL.getSource3f = function(source,param) {
return null;
};
lime_media_openal_AL.getSourcef = function(source,param) {
return 0;
};
lime_media_openal_AL.getSource3i = function(source,param) {
return null;
};
lime_media_openal_AL.getSourcefv = function(source,param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getSourcei = function(source,param) {
return 0;
};
lime_media_openal_AL.getSourceiv = function(source,param,count) {
if(count == null) {
count = 1;
}
return null;
};
lime_media_openal_AL.getString = function(param) {
return null;
};
lime_media_openal_AL.isBuffer = function(buffer) {
return false;
};
lime_media_openal_AL.isEnabled = function(capability) {
return false;
};
lime_media_openal_AL.isExtensionPresent = function(extname) {
return false;
};
lime_media_openal_AL.isAux = function(aux) {
return false;
};
lime_media_openal_AL.isEffect = function(effect) {
return false;
};
lime_media_openal_AL.isFilter = function(filter) {
return false;
};
lime_media_openal_AL.isSource = function(source) {
return false;
};
lime_media_openal_AL.listener3f = function(param,value1,value2,value3) {
};
lime_media_openal_AL.listener3i = function(param,value1,value2,value3) {
};
lime_media_openal_AL.listenerf = function(param,value) {
};
lime_media_openal_AL.listenerfv = function(param,values) {
};
lime_media_openal_AL.listeneri = function(param,value) {
};
lime_media_openal_AL.listeneriv = function(param,values) {
};
lime_media_openal_AL.source3f = function(source,param,value1,value2,value3) {
};
lime_media_openal_AL.source3i = function(source,param,value1,value2,value3) {
};
lime_media_openal_AL.sourcef = function(source,param,value) {
};
lime_media_openal_AL.sourcefv = function(source,param,values) {
};
lime_media_openal_AL.sourcei = function(source,param,value) {
};
lime_media_openal_AL.filteri = function(filter,param,value) {
};
lime_media_openal_AL.filterf = function(filter,param,value) {
};
lime_media_openal_AL.sourceiv = function(source,param,values) {
};
lime_media_openal_AL.sourcePlay = function(source) {
};
lime_media_openal_AL.sourcePlayv = function(sources) {
};
lime_media_openal_AL.sourceStop = function(source) {
};
lime_media_openal_AL.sourceStopv = function(sources) {
};
lime_media_openal_AL.sourceRewind = function(source) {
};
lime_media_openal_AL.sourceRewindv = function(sources) {
};
lime_media_openal_AL.sourcePause = function(source) {
};
lime_media_openal_AL.sourcePausev = function(sources) {
};
lime_media_openal_AL.sourceQueueBuffer = function(source,buffer) {
};
lime_media_openal_AL.sourceQueueBuffers = function(source,nb,buffers) {
};
lime_media_openal_AL.sourceUnqueueBuffer = function(source) {
return 0;
};
lime_media_openal_AL.sourceUnqueueBuffers = function(source,nb) {
return null;
};
lime_media_openal_AL.speedOfSound = function(value) {
};
var lime_media_openal_ALAuxiliaryEffectSlot = {};
lime_media_openal_ALAuxiliaryEffectSlot._new = function(handle) {
var this1 = handle;
return this1;
};
var lime_media_openal_ALBuffer = {};
lime_media_openal_ALBuffer._new = function(handle) {
var this1 = handle;
return this1;
};
var lime_media_openal_ALC = function() { };
$hxClasses["lime.media.openal.ALC"] = lime_media_openal_ALC;
lime_media_openal_ALC.__name__ = "lime.media.openal.ALC";
lime_media_openal_ALC.closeDevice = function(device) {
return false;
};
lime_media_openal_ALC.createContext = function(device,attrlist) {
return null;
};
lime_media_openal_ALC.destroyContext = function(context) {
};
lime_media_openal_ALC.getContextsDevice = function(context) {
return null;
};
lime_media_openal_ALC.getCurrentContext = function() {
return null;
};
lime_media_openal_ALC.getError = function(device) {
return 0;
};
lime_media_openal_ALC.getErrorString = function(device) {
switch(lime_media_openal_ALC.getError(device)) {
case 40961:
return "INVALID_DEVICE: Invalid device (or no device?)";
case 40962:
return "INVALID_CONTEXT: Invalid context (or no context?)";
case 40963:
return "INVALID_ENUM: Invalid enum value";
case 40964:
return "INVALID_VALUE: Invalid param value";
case 40965:
return "OUT_OF_MEMORY: OpenAL has run out of memory";
default:
return "";
}
};
lime_media_openal_ALC.getIntegerv = function(device,param,size) {
return null;
};
lime_media_openal_ALC.getString = function(device,param) {
return null;
};
lime_media_openal_ALC.makeContextCurrent = function(context) {
return false;
};
lime_media_openal_ALC.openDevice = function(deviceName) {
return null;
};
lime_media_openal_ALC.pauseDevice = function(device) {
};
lime_media_openal_ALC.processContext = function(context) {
};
lime_media_openal_ALC.resumeDevice = function(device) {
};
lime_media_openal_ALC.suspendContext = function(context) {
};
var lime_media_openal_ALContext = {};
lime_media_openal_ALContext._new = function(handle) {
var this1 = handle;
return this1;
};
var lime_media_openal_ALDevice = {};
lime_media_openal_ALDevice._new = function(handle) {
var this1 = handle;
return this1;
};
var lime_media_openal_ALEffect = {};
lime_media_openal_ALEffect._new = function(handle) {
var this1 = handle;
return this1;
};
var lime_media_openal_ALFilter = {};
lime_media_openal_ALFilter._new = function(handle) {
var this1 = handle;
return this1;
};
var lime_media_openal_ALSource = {};
lime_media_openal_ALSource._new = function(handle) {
var this1 = handle;
return this1;
};
var lime_media_vorbis_VorbisComment = function() {
};
$hxClasses["lime.media.vorbis.VorbisComment"] = lime_media_vorbis_VorbisComment;
lime_media_vorbis_VorbisComment.__name__ = "lime.media.vorbis.VorbisComment";
lime_media_vorbis_VorbisComment.prototype = {
userComments: null
,vendor: null
,__class__: lime_media_vorbis_VorbisComment
};
var lime_media_vorbis_VorbisFile = function(handle) {
this.handle = handle;
};
$hxClasses["lime.media.vorbis.VorbisFile"] = lime_media_vorbis_VorbisFile;
lime_media_vorbis_VorbisFile.__name__ = "lime.media.vorbis.VorbisFile";
lime_media_vorbis_VorbisFile.fromBytes = function(bytes) {
return null;
};
lime_media_vorbis_VorbisFile.fromFile = function(path) {
return null;
};
lime_media_vorbis_VorbisFile.prototype = {
bitstream: null
,handle: null
,bitrate: function(bitstream) {
if(bitstream == null) {
bitstream = -1;
}
return 0;
}
,bitrateInstant: function() {
return 0;
}
,clear: function() {
}
,comment: function(bitstream) {
if(bitstream == null) {
bitstream = -1;
}
return null;
}
,crosslap: function(other) {
return 0;
}
,info: function(bitstream) {
if(bitstream == null) {
bitstream = -1;
}
return null;
}
,pcmSeek: function(pos) {
return 0;
}
,pcmSeekLap: function(pos) {
return 0;
}
,pcmSeekPage: function(pos) {
return 0;
}
,pcmSeekPageLap: function(pos) {
return 0;
}
,pcmTell: function() {
var this1 = new haxe__$Int64__$_$_$Int64(0,0);
return this1;
}
,pcmTotal: function(bitstream) {
if(bitstream == null) {
bitstream = -1;
}
var this1 = new haxe__$Int64__$_$_$Int64(0,0);
return this1;
}
,rawSeek: function(pos) {
return 0;
}
,rawSeekLap: function(pos) {
return 0;
}
,rawTell: function() {
var this1 = new haxe__$Int64__$_$_$Int64(0,0);
return this1;
}
,rawTotal: function(bitstream) {
if(bitstream == null) {
bitstream = -1;
}
var this1 = new haxe__$Int64__$_$_$Int64(0,0);
return this1;
}
,read: function(buffer,position,length,bigEndianPacking,wordSize,signed) {
if(signed == null) {
signed = true;
}
if(wordSize == null) {
wordSize = 2;
}
if(bigEndianPacking == null) {
bigEndianPacking = false;
}
if(length == null) {
length = 4096;
}
return 0;
}
,readFloat: function(pcmChannels,samples) {
return 0;
}
,seekable: function() {
return false;
}
,serialNumber: function(bitstream) {
if(bitstream == null) {
bitstream = -1;
}
return 0;
}
,streams: function() {
return 0;
}
,timeSeek: function(s) {
return 0;
}
,timeSeekLap: function(s) {
return 0;
}
,timeSeekPage: function(s) {
return 0;
}
,timeSeekPageLap: function(s) {
return 0;
}
,timeTell: function() {
return 0;
}
,timeTotal: function(bitstream) {
if(bitstream == null) {
bitstream = -1;
}
return 0;
}
,__class__: lime_media_vorbis_VorbisFile
};
var lime_media_vorbis_VorbisInfo = function() {
};
$hxClasses["lime.media.vorbis.VorbisInfo"] = lime_media_vorbis_VorbisInfo;
lime_media_vorbis_VorbisInfo.__name__ = "lime.media.vorbis.VorbisInfo";
lime_media_vorbis_VorbisInfo.prototype = {
bitrateLower: null
,bitrateNominal: null
,bitrateUpper: null
,channels: null
,rate: null
,version: null
,__class__: lime_media_vorbis_VorbisInfo
};
var lime_net__$IHTTPRequest = function() { };
$hxClasses["lime.net._IHTTPRequest"] = lime_net__$IHTTPRequest;
lime_net__$IHTTPRequest.__name__ = "lime.net._IHTTPRequest";
lime_net__$IHTTPRequest.__isInterface__ = true;
lime_net__$IHTTPRequest.prototype = {
contentType: null
,data: null
,enableResponseHeaders: null
,followRedirects: null
,formData: null
,headers: null
,method: null
,responseHeaders: null
,responseStatus: null
,timeout: null
,uri: null
,userAgent: null
,withCredentials: null
,cancel: null
,__class__: lime_net__$IHTTPRequest
};
var lime_net__$HTTPRequest_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();
this.headers = [];
this.method = "GET";
this.timeout = 30000;
this.withCredentials = false;
this.__backend = new lime__$internal_backend_html5_HTML5HTTPRequest();
this.__backend.init(this);
};
$hxClasses["lime.net._HTTPRequest.AbstractHTTPRequest"] = lime_net__$HTTPRequest_AbstractHTTPRequest;
lime_net__$HTTPRequest_AbstractHTTPRequest.__name__ = "lime.net._HTTPRequest.AbstractHTTPRequest";
lime_net__$HTTPRequest_AbstractHTTPRequest.__interfaces__ = [lime_net__$IHTTPRequest];
lime_net__$HTTPRequest_AbstractHTTPRequest.prototype = {
contentType: null
,data: null
,enableResponseHeaders: null
,followRedirects: null
,formData: null
,headers: null
,method: null
,responseData: null
,responseHeaders: null
,responseStatus: null
,timeout: null
,uri: null
,userAgent: null
,withCredentials: null
,__backend: null
,cancel: function() {
this.__backend.cancel();
}
,load: function(uri) {
return null;
}
,__class__: lime_net__$HTTPRequest_AbstractHTTPRequest
};
var lime_net_HTTPRequest = function(uri) {
lime_net__$HTTPRequest_AbstractHTTPRequest.call(this,uri);
};
$hxClasses["lime.net.HTTPRequest"] = lime_net_HTTPRequest;
lime_net_HTTPRequest.__name__ = "lime.net.HTTPRequest";
lime_net_HTTPRequest.__super__ = lime_net__$HTTPRequest_AbstractHTTPRequest;
lime_net_HTTPRequest.prototype = $extend(lime_net__$HTTPRequest_AbstractHTTPRequest.prototype,{
__class__: lime_net_HTTPRequest
});
var lime_net__$HTTPRequest_$Bytes = function(uri) {
lime_net__$HTTPRequest_AbstractHTTPRequest.call(this,uri);
};
$hxClasses["lime.net._HTTPRequest_Bytes"] = lime_net__$HTTPRequest_$Bytes;
lime_net__$HTTPRequest_$Bytes.__name__ = "lime.net._HTTPRequest_Bytes";
lime_net__$HTTPRequest_$Bytes.__super__ = lime_net__$HTTPRequest_AbstractHTTPRequest;
lime_net__$HTTPRequest_$Bytes.prototype = $extend(lime_net__$HTTPRequest_AbstractHTTPRequest.prototype,{
fromBytes: function(bytes) {
return bytes;
}
,load: function(uri) {
var _gthis = this;
if(uri != null) {
this.uri = uri;
}
var promise = new lime_app_Promise();
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;
}
,__class__: lime_net__$HTTPRequest_$Bytes
});
var lime_net__$HTTPRequest_$String = function(uri) {
lime_net__$HTTPRequest_AbstractHTTPRequest.call(this,uri);
};
$hxClasses["lime.net._HTTPRequest_String"] = lime_net__$HTTPRequest_$String;
lime_net__$HTTPRequest_$String.__name__ = "lime.net._HTTPRequest_String";
lime_net__$HTTPRequest_$String.__super__ = lime_net__$HTTPRequest_AbstractHTTPRequest;
lime_net__$HTTPRequest_$String.prototype = $extend(lime_net__$HTTPRequest_AbstractHTTPRequest.prototype,{
load: function(uri) {
var _gthis = this;
if(uri != null) {
this.uri = uri;
}
var promise = new lime_app_Promise();
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;
}
,__class__: lime_net__$HTTPRequest_$String
});
var lime_net_HTTPRequestHeader = function(name,value) {
if(value == null) {
value = "";
}
this.name = name;
this.value = value;
};
$hxClasses["lime.net.HTTPRequestHeader"] = lime_net_HTTPRequestHeader;
lime_net_HTTPRequestHeader.__name__ = "lime.net.HTTPRequestHeader";
lime_net_HTTPRequestHeader.prototype = {
name: null
,value: null
,__class__: lime_net_HTTPRequestHeader
};
var lime_net__$HTTPRequest_$lime_$text_$Font = function(uri) {
lime_net__$HTTPRequest_$Bytes.call(this,uri);
};
$hxClasses["lime.net._HTTPRequest_lime_text_Font"] = lime_net__$HTTPRequest_$lime_$text_$Font;
lime_net__$HTTPRequest_$lime_$text_$Font.__name__ = "lime.net._HTTPRequest_lime_text_Font";
lime_net__$HTTPRequest_$lime_$text_$Font.__super__ = lime_net__$HTTPRequest_$Bytes;
lime_net__$HTTPRequest_$lime_$text_$Font.prototype = $extend(lime_net__$HTTPRequest_$Bytes.prototype,{
fromBytes: function(bytes) {
return lime_text_Font.fromBytes(bytes);
}
,__class__: lime_net__$HTTPRequest_$lime_$text_$Font
});
var lime_net__$HTTPRequest_$lime_$utils_$Bytes = function(uri) {
lime_net__$HTTPRequest_$Bytes.call(this,uri);
};
$hxClasses["lime.net._HTTPRequest_lime_utils_Bytes"] = lime_net__$HTTPRequest_$lime_$utils_$Bytes;
lime_net__$HTTPRequest_$lime_$utils_$Bytes.__name__ = "lime.net._HTTPRequest_lime_utils_Bytes";
lime_net__$HTTPRequest_$lime_$utils_$Bytes.__super__ = lime_net__$HTTPRequest_$Bytes;
lime_net__$HTTPRequest_$lime_$utils_$Bytes.prototype = $extend(lime_net__$HTTPRequest_$Bytes.prototype,{
fromBytes: function(bytes) {
return lime_utils_Bytes.fromBytes(bytes);
}
,__class__: lime_net__$HTTPRequest_$lime_$utils_$Bytes
});
var lime_net__$HTTPRequest_$openfl_$utils_$ByteArray = function(uri) {
lime_net__$HTTPRequest_$Bytes.call(this,uri);
};
$hxClasses["lime.net._HTTPRequest_openfl_utils_ByteArray"] = lime_net__$HTTPRequest_$openfl_$utils_$ByteArray;
lime_net__$HTTPRequest_$openfl_$utils_$ByteArray.__name__ = "lime.net._HTTPRequest_openfl_utils_ByteArray";
lime_net__$HTTPRequest_$openfl_$utils_$ByteArray.__super__ = lime_net__$HTTPRequest_$Bytes;
lime_net__$HTTPRequest_$openfl_$utils_$ByteArray.prototype = $extend(lime_net__$HTTPRequest_$Bytes.prototype,{
fromBytes: function(bytes) {
return openfl_utils_ByteArray.fromBytes(bytes);
}
,__class__: lime_net__$HTTPRequest_$openfl_$utils_$ByteArray
});
var lime_system_BackgroundWorker = function() {
this.onProgress = new lime_app__$Event_$Dynamic_$Void();
this.onError = new lime_app__$Event_$Dynamic_$Void();
this.onComplete = new lime_app__$Event_$Dynamic_$Void();
this.doWork = new lime_app__$Event_$Dynamic_$Void();
};
$hxClasses["lime.system.BackgroundWorker"] = lime_system_BackgroundWorker;
lime_system_BackgroundWorker.__name__ = "lime.system.BackgroundWorker";
lime_system_BackgroundWorker.prototype = {
canceled: null
,completed: null
,doWork: null
,onComplete: null
,onError: null
,onProgress: null
,__runMessage: null
,cancel: function() {
this.canceled = true;
}
,run: function(message) {
this.canceled = false;
this.completed = false;
this.__runMessage = message;
this.__doWork();
}
,sendComplete: function(message) {
this.completed = true;
if(!this.canceled) {
this.canceled = true;
this.onComplete.dispatch(message);
}
}
,sendError: function(message) {
if(!this.canceled) {
this.canceled = true;
this.onError.dispatch(message);
}
}
,sendProgress: function(message) {
if(!this.canceled) {
this.onProgress.dispatch(message);
}
}
,__doWork: function() {
this.doWork.dispatch(this.__runMessage);
}
,__update: function(deltaTime) {
}
,__class__: lime_system_BackgroundWorker
};
var lime_system_CFFI = function() { };
$hxClasses["lime.system.CFFI"] = lime_system_CFFI;
lime_system_CFFI.__name__ = "lime.system.CFFI";
lime_system_CFFI.available = null;
lime_system_CFFI.enabled = null;
lime_system_CFFI.load = function(library,method,args,lazy) {
if(lazy == null) {
lazy = false;
}
if(args == null) {
args = 0;
}
if(!lime_system_CFFI.enabled) {
return Reflect.makeVarArgs(function(__) {
return { };
});
}
var result = null;
return result;
};
lime_system_CFFI.__findHaxelib = function(library) {
return "";
};
lime_system_CFFI.__loaderTrace = function(message) {
};
lime_system_CFFI.__sysName = function() {
return null;
};
lime_system_CFFI.__tryLoad = function(name,library,func,args) {
return null;
};
var lime_system_CFFIPointer = {};
lime_system_CFFIPointer._new = function(handle) {
var this1 = handle;
return this1;
};
lime_system_CFFIPointer.get = function(this1) {
var tmp = this1 != null;
return 0;
};
lime_system_CFFIPointer.equals = function(a,b) {
return lime_system_CFFIPointer.get(a) == b;
};
lime_system_CFFIPointer.equalsPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) == lime_system_CFFIPointer.get(b);
};
lime_system_CFFIPointer.greaterThan = function(a,b) {
return lime_system_CFFIPointer.get(a) > b;
};
lime_system_CFFIPointer.greaterThanPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) > lime_system_CFFIPointer.get(b);
};
lime_system_CFFIPointer.greaterThanOrEqual = function(a,b) {
return lime_system_CFFIPointer.get(a) >= b;
};
lime_system_CFFIPointer.greaterThanOrEqualPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) >= lime_system_CFFIPointer.get(b);
};
lime_system_CFFIPointer.lessThan = function(a,b) {
return lime_system_CFFIPointer.get(a) < b;
};
lime_system_CFFIPointer.lessThanPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) < lime_system_CFFIPointer.get(b);
};
lime_system_CFFIPointer.lessThanOrEqual = function(a,b) {
return lime_system_CFFIPointer.get(a) <= b;
};
lime_system_CFFIPointer.lessThanOrEqualPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) <= lime_system_CFFIPointer.get(b);
};
lime_system_CFFIPointer.notEquals = function(a,b) {
return lime_system_CFFIPointer.get(a) != b;
};
lime_system_CFFIPointer.notEqualsPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) != lime_system_CFFIPointer.get(b);
};
var lime_system_Clipboard = function() { };
$hxClasses["lime.system.Clipboard"] = lime_system_Clipboard;
lime_system_Clipboard.__name__ = "lime.system.Clipboard";
lime_system_Clipboard.__properties__ = {set_text:"set_text",get_text:"get_text"};
lime_system_Clipboard._text = null;
lime_system_Clipboard.__update = function() {
var cacheText = lime_system_Clipboard._text;
lime_system_Clipboard._text = null;
if(lime_system_Clipboard._text != cacheText) {
lime_system_Clipboard.onUpdate.dispatch();
}
};
lime_system_Clipboard.get_text = function() {
lime_system_Clipboard.__update();
return lime_system_Clipboard._text;
};
lime_system_Clipboard.set_text = function(value) {
var cacheText = lime_system_Clipboard._text;
lime_system_Clipboard._text = value;
var $window = lime_app_Application.current.__window;
if($window != null) {
$window.__backend.setClipboard(value);
}
if(lime_system_Clipboard._text != cacheText) {
lime_system_Clipboard.onUpdate.dispatch();
}
return value;
};
var lime_system_Display = function() {
};
$hxClasses["lime.system.Display"] = lime_system_Display;
lime_system_Display.__name__ = "lime.system.Display";
lime_system_Display.prototype = {
bounds: null
,currentMode: null
,id: null
,dpi: null
,name: null
,supportedModes: null
,__class__: lime_system_Display
};
var lime_system_DisplayMode = function(width,height,refreshRate,pixelFormat) {
this.width = width;
this.height = height;
this.refreshRate = refreshRate;
this.pixelFormat = pixelFormat;
};
$hxClasses["lime.system.DisplayMode"] = lime_system_DisplayMode;
lime_system_DisplayMode.__name__ = "lime.system.DisplayMode";
lime_system_DisplayMode.prototype = {
height: null
,pixelFormat: null
,refreshRate: null
,width: null
,__class__: lime_system_DisplayMode
};
var lime_system_Endian = $hxEnums["lime.system.Endian"] = { __ename__ : "lime.system.Endian", __constructs__ : ["LITTLE_ENDIAN","BIG_ENDIAN"]
,LITTLE_ENDIAN: {_hx_index:0,__enum__:"lime.system.Endian",toString:$estr}
,BIG_ENDIAN: {_hx_index:1,__enum__:"lime.system.Endian",toString:$estr}
};
var lime_system_Sensor = function(type,id) {
this.onUpdate = new lime_app__$Event_$Float_$Float_$Float_$Void();
this.type = type;
this.id = id;
};
$hxClasses["lime.system.Sensor"] = lime_system_Sensor;
lime_system_Sensor.__name__ = "lime.system.Sensor";
lime_system_Sensor.getSensors = function(type) {
if(type == null) {
return lime_system_Sensor.sensors.slice();
} else {
var result = [];
var _g = 0;
var _g1 = lime_system_Sensor.sensors;
while(_g < _g1.length) {
var sensor = _g1[_g];
++_g;
if(sensor.type == type) {
result.push(sensor);
}
}
return result;
}
};
lime_system_Sensor.registerSensor = function(type,id) {
var sensor = new lime_system_Sensor(type,id);
lime_system_Sensor.sensors.push(sensor);
lime_system_Sensor.sensorByID.h[id] = sensor;
return sensor;
};
lime_system_Sensor.prototype = {
id: null
,onUpdate: null
,type: null
,__class__: lime_system_Sensor
};
var lime_system_SensorType = $hxEnums["lime.system.SensorType"] = { __ename__ : "lime.system.SensorType", __constructs__ : ["ACCELEROMETER"]
,ACCELEROMETER: {_hx_index:0,__enum__:"lime.system.SensorType",toString:$estr}
};
var lime_system_System = function() { };
$hxClasses["lime.system.System"] = lime_system_System;
lime_system_System.__name__ = "lime.system.System";
lime_system_System.__properties__ = {get_userDirectory:"get_userDirectory",get_platformVersion:"get_platformVersion",get_platformName:"get_platformName",get_platformLabel:"get_platformLabel",get_numDisplays:"get_numDisplays",get_fontsDirectory:"get_fontsDirectory",get_endianness:"get_endianness",get_documentsDirectory:"get_documentsDirectory",get_deviceVendor:"get_deviceVendor",get_deviceModel:"get_deviceModel",get_desktopDirectory:"get_desktopDirectory",get_applicationStorageDirectory:"get_applicationStorageDirectory",get_applicationDirectory:"get_applicationDirectory",set_allowScreenTimeout:"set_allowScreenTimeout",get_allowScreenTimeout:"get_allowScreenTimeout"};
lime_system_System.disableCFFI = null;
lime_system_System.__applicationDirectory = null;
lime_system_System.__applicationEntryPoint = null;
lime_system_System.__applicationStorageDirectory = null;
lime_system_System.__desktopDirectory = null;
lime_system_System.__deviceModel = null;
lime_system_System.__deviceVendor = null;
lime_system_System.__documentsDirectory = null;
lime_system_System.__endianness = null;
lime_system_System.__fontsDirectory = null;
lime_system_System.__platformLabel = null;
lime_system_System.__platformName = null;
lime_system_System.__platformVersion = null;
lime_system_System.__userDirectory = null;
lime_system_System.embed = $hx_exports["lime"]["embed"] = function(projectName,element,width,height,config) {
if(lime_system_System.__applicationEntryPoint == null) {
return;
}
if(Object.prototype.hasOwnProperty.call(lime_system_System.__applicationEntryPoint.h,projectName)) {
var htmlElement = null;
if(typeof(element) == "string") {
htmlElement = window.document.getElementById(element);
} else if(element == null) {
htmlElement = window.document.createElement("div");
} else {
htmlElement = element;
}
if(htmlElement == null) {
window.console.log("[lime.embed] ERROR: Cannot find target element: " + Std.string(element));
return;
}
if(width == null) {
width = 0;
}
if(height == null) {
height = 0;
}
if(config == null) {
config = { };
}
if(Object.prototype.hasOwnProperty.call(config,"background") && typeof(config.background) == "string") {
var background = StringTools.replace(Std.string(config.background),"#","");
if(background.indexOf("0x") > -1) {
config.background = Std.parseInt(background);
} else {
config.background = Std.parseInt("0x" + background);
}
}
config.element = htmlElement;
config.width = width;
config.height = height;
lime_system_System.__applicationEntryPoint.h[projectName](config);
}
};
lime_system_System.exit = function(code) {
};
lime_system_System.getDisplay = function(id) {
if(id == 0) {
var display = new lime_system_Display();
display.id = 0;
display.name = "Generic Display";
display.dpi = 96 * window.devicePixelRatio;
display.currentMode = new lime_system_DisplayMode(window.screen.width,window.screen.height,60,1);
display.supportedModes = [display.currentMode];
display.bounds = new lime_math_Rectangle(0,0,display.currentMode.width,display.currentMode.height);
return display;
}
return null;
};
lime_system_System.getTimer = function() {
return window.performance.now() | 0;
};
lime_system_System.load = function(library,method,args,lazy) {
if(lazy == null) {
lazy = false;
}
if(args == null) {
args = 0;
}
return lime_system_CFFI.load(library,method,args,lazy);
};
lime_system_System.openFile = function(path) {
if(path != null) {
window.open(path,"_blank");
}
};
lime_system_System.openURL = function(url,target) {
if(target == null) {
target = "_blank";
}
if(url != null) {
window.open(url,target);
}
};
lime_system_System.__copyMissingFields = function(target,source) {
if(source == null || target == null) {
return;
}
var _g = 0;
var _g1 = Reflect.fields(source);
while(_g < _g1.length) {
var field = _g1[_g];
++_g;
if(!Object.prototype.hasOwnProperty.call(target,field)) {
target[field] = Reflect.field(source,field);
}
}
};
lime_system_System.__getDirectory = function(type) {
return null;
};
lime_system_System.__parseBool = function(value) {
return value == "true";
};
lime_system_System.__registerEntryPoint = function(projectName,entryPoint) {
if(lime_system_System.__applicationEntryPoint == null) {
lime_system_System.__applicationEntryPoint = new haxe_ds_StringMap();
}
lime_system_System.__applicationEntryPoint.h[projectName] = entryPoint;
};
lime_system_System.__runProcess = function(command,args) {
return null;
};
lime_system_System.get_allowScreenTimeout = function() {
return true;
};
lime_system_System.set_allowScreenTimeout = function(value) {
return true;
};
lime_system_System.get_applicationDirectory = function() {
if(lime_system_System.__applicationDirectory == null) {
lime_system_System.__applicationDirectory = lime_system_System.__getDirectory(0);
}
return lime_system_System.__applicationDirectory;
};
lime_system_System.get_applicationStorageDirectory = function() {
if(lime_system_System.__applicationStorageDirectory == null) {
lime_system_System.__applicationStorageDirectory = lime_system_System.__getDirectory(1);
}
return lime_system_System.__applicationStorageDirectory;
};
lime_system_System.get_deviceModel = function() {
var tmp = lime_system_System.__deviceModel == null;
return lime_system_System.__deviceModel;
};
lime_system_System.get_deviceVendor = function() {
var tmp = lime_system_System.__deviceVendor == null;
return lime_system_System.__deviceVendor;
};
lime_system_System.get_desktopDirectory = function() {
if(lime_system_System.__desktopDirectory == null) {
lime_system_System.__desktopDirectory = lime_system_System.__getDirectory(2);
}
return lime_system_System.__desktopDirectory;
};
lime_system_System.get_documentsDirectory = function() {
if(lime_system_System.__documentsDirectory == null) {
lime_system_System.__documentsDirectory = lime_system_System.__getDirectory(3);
}
return lime_system_System.__documentsDirectory;
};
lime_system_System.get_endianness = function() {
if(lime_system_System.__endianness == null) {
var arrayBuffer = new ArrayBuffer(2);
var elements = null;
var array = null;
var vector = null;
var view = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(arrayBuffer != null) {
if(len == null) {
this1 = new Uint8Array(arrayBuffer,0);
} else {
this1 = new Uint8Array(arrayBuffer,0,len);
}
} else {
this1 = null;
}
var uint8Array = this1;
var elements = null;
var array = null;
var vector = null;
var view = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint16Array(elements);
} else if(array != null) {
this1 = new Uint16Array(array);
} else if(vector != null) {
this1 = new Uint16Array(vector.__array);
} else if(view != null) {
this1 = new Uint16Array(view);
} else if(arrayBuffer != null) {
if(len == null) {
this1 = new Uint16Array(arrayBuffer,0);
} else {
this1 = new Uint16Array(arrayBuffer,0,len);
}
} else {
this1 = null;
}
var uint16array = this1;
uint8Array[0] = 170;
uint8Array[1] = 187;
if(uint16array[0] == 43707) {
lime_system_System.__endianness = lime_system_Endian.BIG_ENDIAN;
} else {
lime_system_System.__endianness = lime_system_Endian.LITTLE_ENDIAN;
}
}
return lime_system_System.__endianness;
};
lime_system_System.get_fontsDirectory = function() {
if(lime_system_System.__fontsDirectory == null) {
lime_system_System.__fontsDirectory = lime_system_System.__getDirectory(4);
}
return lime_system_System.__fontsDirectory;
};
lime_system_System.get_numDisplays = function() {
return 1;
};
lime_system_System.get_platformLabel = function() {
if(lime_system_System.__platformLabel == null) {
var name = lime_system_System.get_platformName();
var version = lime_system_System.get_platformVersion();
if(name != null && version != null) {
lime_system_System.__platformLabel = name + " " + version;
} else if(name != null) {
lime_system_System.__platformLabel = name;
}
}
return lime_system_System.__platformLabel;
};
lime_system_System.get_platformName = function() {
if(lime_system_System.__platformName == null) {
lime_system_System.__platformName = "HTML5";
}
return lime_system_System.__platformName;
};
lime_system_System.get_platformVersion = function() {
var tmp = lime_system_System.__platformVersion == null;
return lime_system_System.__platformVersion;
};
lime_system_System.get_userDirectory = function() {
if(lime_system_System.__userDirectory == null) {
lime_system_System.__userDirectory = lime_system_System.__getDirectory(5);
}
return lime_system_System.__userDirectory;
};
var lime_system_ThreadPool = function(minThreads,maxThreads) {
if(maxThreads == null) {
maxThreads = 1;
}
if(minThreads == null) {
minThreads = 0;
}
this.onRun = new lime_app__$Event_$Dynamic_$Void();
this.onProgress = new lime_app__$Event_$Dynamic_$Void();
this.onError = new lime_app__$Event_$Dynamic_$Void();
this.onComplete = new lime_app__$Event_$Dynamic_$Void();
this.doWork = new lime_app__$Event_$Dynamic_$Void();
this.minThreads = minThreads;
this.maxThreads = maxThreads;
this.currentThreads = 0;
};
$hxClasses["lime.system.ThreadPool"] = lime_system_ThreadPool;
lime_system_ThreadPool.__name__ = "lime.system.ThreadPool";
lime_system_ThreadPool.prototype = {
currentThreads: null
,doWork: null
,maxThreads: null
,minThreads: null
,onComplete: null
,onError: null
,onProgress: null
,onRun: null
,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);
}
,__class__: lime_system_ThreadPool
};
var lime_system__$ThreadPool_ThreadPoolMessageType = $hxEnums["lime.system._ThreadPool.ThreadPoolMessageType"] = { __ename__ : "lime.system._ThreadPool.ThreadPoolMessageType", __constructs__ : ["COMPLETE","ERROR","EXIT","PROGRESS","WORK"]
,COMPLETE: {_hx_index:0,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr}
,ERROR: {_hx_index:1,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr}
,EXIT: {_hx_index:2,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr}
,PROGRESS: {_hx_index:3,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr}
,WORK: {_hx_index:4,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr}
};
var lime_system__$ThreadPool_ThreadPoolMessage = function(type,state) {
this.type = type;
this.state = state;
};
$hxClasses["lime.system._ThreadPool.ThreadPoolMessage"] = lime_system__$ThreadPool_ThreadPoolMessage;
lime_system__$ThreadPool_ThreadPoolMessage.__name__ = "lime.system._ThreadPool.ThreadPoolMessage";
lime_system__$ThreadPool_ThreadPoolMessage.prototype = {
state: null
,type: null
,__class__: lime_system__$ThreadPool_ThreadPoolMessage
};
var lime_text_Glyph = {};
lime_text_Glyph._new = function(i) {
var this1 = i;
return this1;
};
var lime_text_GlyphMetrics = function() {
};
$hxClasses["lime.text.GlyphMetrics"] = lime_text_GlyphMetrics;
lime_text_GlyphMetrics.__name__ = "lime.text.GlyphMetrics";
lime_text_GlyphMetrics.prototype = {
advance: null
,height: null
,horizontalBearing: null
,verticalBearing: null
,__class__: lime_text_GlyphMetrics
};
var lime_text_harfbuzz_HB = function() { };
$hxClasses["lime.text.harfbuzz.HB"] = lime_text_harfbuzz_HB;
lime_text_harfbuzz_HB.__name__ = "lime.text.harfbuzz.HB";
lime_text_harfbuzz_HB.shape = function(font,buffer,features) {
};
var lime_text_harfbuzz_HBBlob = {};
lime_text_harfbuzz_HBBlob.__properties__ = {get_length:"get_length",get_immutable:"get_immutable",get_dataWritable:"get_dataWritable",get_data:"get_data",get_empty:"get_empty"};
lime_text_harfbuzz_HBBlob._new = function(data,length,memoryMode) {
var this1 = null;
return this1;
};
lime_text_harfbuzz_HBBlob.createSubBlob = function(this1,offset,length) {
return null;
};
lime_text_harfbuzz_HBBlob.makeImmutable = function(this1) {
};
lime_text_harfbuzz_HBBlob.get_data = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBlob.get_dataWritable = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBlob.get_empty = function() {
return null;
};
lime_text_harfbuzz_HBBlob.get_immutable = function(this1) {
return false;
};
lime_text_harfbuzz_HBBlob.get_length = function(this1) {
return 0;
};
var lime_text_harfbuzz_HBBuffer = {};
lime_text_harfbuzz_HBBuffer.__properties__ = {set_segmentProperties:"set_segmentProperties",get_segmentProperties:"get_segmentProperties",set_script:"set_script",get_script:"get_script",set_replacementCodepoint:"set_replacementCodepoint",get_replacementCodepoint:"get_replacementCodepoint",set_length:"set_length",get_length:"get_length",set_language:"set_language",get_language:"get_language",set_flags:"set_flags",get_flags:"get_flags",set_direction:"set_direction",get_direction:"get_direction",set_contentType:"set_contentType",get_contentType:"get_contentType",set_clusterLevel:"set_clusterLevel",get_clusterLevel:"get_clusterLevel",get_allocationSuccessful:"get_allocationSuccessful"};
lime_text_harfbuzz_HBBuffer._new = function() {
var this1 = null;
return this1;
};
lime_text_harfbuzz_HBBuffer.add = function(this1,codepoint,cluster) {
};
lime_text_harfbuzz_HBBuffer.addCodepoints = function(this1,text,textLength,itemOffset,itemLength) {
};
lime_text_harfbuzz_HBBuffer.addUTF8 = function(this1,text,itemOffset,itemLength) {
};
lime_text_harfbuzz_HBBuffer.addUTF16 = function(this1,text,textLength,itemOffset,itemLength) {
};
lime_text_harfbuzz_HBBuffer.addUTF32 = function(this1,text,textLength,itemOffset,itemLength) {
};
lime_text_harfbuzz_HBBuffer.clearContents = function(this1) {
};
lime_text_harfbuzz_HBBuffer.getGlyphInfo = function(this1) {
return null;
};
lime_text_harfbuzz_HBBuffer.getGlyphPositions = function(this1) {
return null;
};
lime_text_harfbuzz_HBBuffer.guessSegmentProperties = function(this1) {
};
lime_text_harfbuzz_HBBuffer.normalizeGlyphs = function(this1) {
};
lime_text_harfbuzz_HBBuffer.preallocate = function(this1,size) {
return false;
};
lime_text_harfbuzz_HBBuffer.reset = function(this1) {
};
lime_text_harfbuzz_HBBuffer.reverse = function(this1) {
};
lime_text_harfbuzz_HBBuffer.reverseClusters = function(this1) {
};
lime_text_harfbuzz_HBBuffer.get_allocationSuccessful = function(this1) {
return false;
};
lime_text_harfbuzz_HBBuffer.get_clusterLevel = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBuffer.set_clusterLevel = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBBuffer.get_contentType = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBuffer.set_contentType = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBBuffer.get_direction = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBuffer.set_direction = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBBuffer.get_empty = function() {
return null;
};
lime_text_harfbuzz_HBBuffer.get_flags = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBuffer.set_flags = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBBuffer.get_language = function(this1) {
return null;
};
lime_text_harfbuzz_HBBuffer.set_language = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBBuffer.get_length = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBuffer.set_length = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBBuffer.get_replacementCodepoint = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBuffer.set_replacementCodepoint = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBBuffer.get_script = function(this1) {
return 0;
};
lime_text_harfbuzz_HBBuffer.set_script = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBBuffer.get_segmentProperties = function(this1) {
return null;
};
lime_text_harfbuzz_HBBuffer.set_segmentProperties = function(this1,value) {
return value;
};
var lime_text_harfbuzz_HBFTFont = {};
lime_text_harfbuzz_HBFTFont.__properties__ = {set_loadFlags:"set_loadFlags",get_loadFlags:"get_loadFlags"};
lime_text_harfbuzz_HBFTFont._new = function(font) {
var this1;
if(font.src != null) {
this1 = null;
} else {
this1 = null;
}
return this1;
};
lime_text_harfbuzz_HBFTFont.get_loadFlags = function(this1) {
return 0;
};
lime_text_harfbuzz_HBFTFont.set_loadFlags = function(this1,value) {
return value;
};
var lime_text_harfbuzz_HBFace = {};
lime_text_harfbuzz_HBFace.__properties__ = {set_upem:"set_upem",get_upem:"get_upem",set_index:"set_index",get_index:"get_index",get_immutable:"get_immutable",set_glyphCount:"set_glyphCount",get_glyphCount:"get_glyphCount",get_empty:"get_empty"};
lime_text_harfbuzz_HBFace._new = function(blob,index) {
var this1 = null;
return this1;
};
lime_text_harfbuzz_HBFace.get_empty = function() {
return null;
};
lime_text_harfbuzz_HBFace.get_glyphCount = function(this1) {
return 0;
};
lime_text_harfbuzz_HBFace.set_glyphCount = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBFace.get_immutable = function(this1) {
return false;
};
lime_text_harfbuzz_HBFace.get_index = function(this1) {
return 0;
};
lime_text_harfbuzz_HBFace.set_index = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBFace.get_upem = function(this1) {
return 0;
};
lime_text_harfbuzz_HBFace.set_upem = function(this1,value) {
return value;
};
var lime_text_harfbuzz_HBFeature = function() {
};
$hxClasses["lime.text.harfbuzz.HBFeature"] = lime_text_harfbuzz_HBFeature;
lime_text_harfbuzz_HBFeature.__name__ = "lime.text.harfbuzz.HBFeature";
lime_text_harfbuzz_HBFeature.prototype = {
__class__: lime_text_harfbuzz_HBFeature
};
var lime_text_harfbuzz_HBFont = {};
lime_text_harfbuzz_HBFont.__properties__ = {set_scale:"set_scale",get_scale:"get_scale",set_ppem:"set_ppem",get_ppem:"get_ppem",get_parent:"get_parent",get_immutable:"get_immutable",get_face:"get_face",get_empty:"get_empty"};
lime_text_harfbuzz_HBFont._new = function(face) {
var this1 = null;
return this1;
};
lime_text_harfbuzz_HBFont.addGlyphOriginForDirection = function(this1,glyph,direction,x,y) {
};
lime_text_harfbuzz_HBFont.createSubFont = function(this1) {
return null;
};
lime_text_harfbuzz_HBFont.getGlyphAdvanceForDirection = function(this1,glyph,direction) {
return null;
};
lime_text_harfbuzz_HBFont.getGlyphKerningForDirection = function(this1,glyph,firstGlyph,secondGlyph,direction) {
return null;
};
lime_text_harfbuzz_HBFont.getGlyphOriginForDirection = function(this1,glyph,direction) {
return null;
};
lime_text_harfbuzz_HBFont.glyphFromString = function(this1,s) {
return 0;
};
lime_text_harfbuzz_HBFont.glyphToString = function(this1,codepoint) {
return null;
};
lime_text_harfbuzz_HBFont.makeImmutable = function(this1) {
};
lime_text_harfbuzz_HBFont.subtractGlyphOriginForDirection = function(this1,glyph,direction,x,y) {
};
lime_text_harfbuzz_HBFont.get_empty = function() {
return null;
};
lime_text_harfbuzz_HBFont.get_face = function(this1) {
return null;
};
lime_text_harfbuzz_HBFont.get_immutable = function(this1) {
return false;
};
lime_text_harfbuzz_HBFont.get_parent = function(this1) {
return null;
};
lime_text_harfbuzz_HBFont.get_ppem = function(this1) {
return null;
};
lime_text_harfbuzz_HBFont.set_ppem = function(this1,value) {
return value;
};
lime_text_harfbuzz_HBFont.get_scale = function(this1) {
return null;
};
lime_text_harfbuzz_HBFont.set_scale = function(this1,value) {
return value;
};
var lime_text_harfbuzz_HBGlyphInfo = function() {
};
$hxClasses["lime.text.harfbuzz.HBGlyphInfo"] = lime_text_harfbuzz_HBGlyphInfo;
lime_text_harfbuzz_HBGlyphInfo.__name__ = "lime.text.harfbuzz.HBGlyphInfo";
lime_text_harfbuzz_HBGlyphInfo.prototype = {
codepoint: null
,mask: null
,cluster: null
,__class__: lime_text_harfbuzz_HBGlyphInfo
};
var lime_text_harfbuzz_HBGlyphPosition = function() {
};
$hxClasses["lime.text.harfbuzz.HBGlyphPosition"] = lime_text_harfbuzz_HBGlyphPosition;
lime_text_harfbuzz_HBGlyphPosition.__name__ = "lime.text.harfbuzz.HBGlyphPosition";
lime_text_harfbuzz_HBGlyphPosition.prototype = {
xAdvance: null
,xOffset: null
,yAdvance: null
,yOffset: null
,__class__: lime_text_harfbuzz_HBGlyphPosition
};
var lime_text_harfbuzz_HBLanguage = {};
lime_text_harfbuzz_HBLanguage._new = function(language) {
var this1 = null;
return this1;
};
lime_text_harfbuzz_HBLanguage.toString = function(this1) {
return null;
};
lime_text_harfbuzz_HBLanguage.fromString = function(value) {
return lime_text_harfbuzz_HBLanguage._new(value);
};
var lime_text_harfbuzz_HBSegmentProperties = function() {
};
$hxClasses["lime.text.harfbuzz.HBSegmentProperties"] = lime_text_harfbuzz_HBSegmentProperties;
lime_text_harfbuzz_HBSegmentProperties.__name__ = "lime.text.harfbuzz.HBSegmentProperties";
lime_text_harfbuzz_HBSegmentProperties.prototype = {
__class__: lime_text_harfbuzz_HBSegmentProperties
};
var lime_ui_FileDialog = function() {
this.onSelectMultiple = new lime_app__$Event_$Array_$String_$_$Void();
this.onSelect = new lime_app__$Event_$String_$Void();
this.onSave = new lime_app__$Event_$String_$Void();
this.onOpen = new lime_app__$Event_$lime_$utils_$Resource_$Void();
this.onCancel = new lime_app__$Event_$Void_$Void();
};
$hxClasses["lime.ui.FileDialog"] = lime_ui_FileDialog;
lime_ui_FileDialog.__name__ = "lime.ui.FileDialog";
lime_ui_FileDialog.prototype = {
onCancel: null
,onOpen: null
,onSave: null
,onSelect: null
,onSelectMultiple: null
,browse: function(type,filter,defaultPath,title) {
if(type == null) {
type = lime_ui_FileDialogType.OPEN;
}
this.onCancel.dispatch();
return false;
}
,open: function(filter,defaultPath,title) {
this.onCancel.dispatch();
return false;
}
,save: function(data,filter,defaultPath,title,type) {
if(type == null) {
type = "application/octet-stream";
}
if(data == null) {
this.onCancel.dispatch();
return false;
}
var defaultExtension = "";
if(lime_graphics_Image.__isPNG(data)) {
type = "image/png";
defaultExtension = ".png";
} else if(lime_graphics_Image.__isJPG(data)) {
type = "image/jpeg";
defaultExtension = ".jpg";
} else if(lime_graphics_Image.__isGIF(data)) {
type = "image/gif";
defaultExtension = ".gif";
} else if(lime_graphics_Image.__isWebP(data)) {
type = "image/webp";
defaultExtension = ".webp";
}
var path = defaultPath != null ? haxe_io_Path.withoutDirectory(defaultPath) : "download" + defaultExtension;
var buffer = data.b.bufferValue;
buffer = buffer.slice(0,data.length);
window.saveAs(new Blob([buffer],{ type : type}),path,true);
this.onSave.dispatch(path);
return true;
}
,__class__: lime_ui_FileDialog
};
var lime_ui_FileDialogType = $hxEnums["lime.ui.FileDialogType"] = { __ename__ : "lime.ui.FileDialogType", __constructs__ : ["OPEN","OPEN_MULTIPLE","SAVE","OPEN_DIRECTORY"]
,OPEN: {_hx_index:0,__enum__:"lime.ui.FileDialogType",toString:$estr}
,OPEN_MULTIPLE: {_hx_index:1,__enum__:"lime.ui.FileDialogType",toString:$estr}
,SAVE: {_hx_index:2,__enum__:"lime.ui.FileDialogType",toString:$estr}
,OPEN_DIRECTORY: {_hx_index:3,__enum__:"lime.ui.FileDialogType",toString:$estr}
};
var lime_ui_Gamepad = function(id) {
this.onDisconnect = new lime_app__$Event_$Void_$Void();
this.onButtonUp = new lime_app__$Event_$lime_$ui_$GamepadButton_$Void();
this.onButtonDown = new lime_app__$Event_$lime_$ui_$GamepadButton_$Void();
this.onAxisMove = new lime_app__$Event_$lime_$ui_$GamepadAxis_$Float_$Void();
this.id = id;
this.connected = true;
};
$hxClasses["lime.ui.Gamepad"] = lime_ui_Gamepad;
lime_ui_Gamepad.__name__ = "lime.ui.Gamepad";
lime_ui_Gamepad.addMappings = function(mappings) {
};
lime_ui_Gamepad.__connect = function(id) {
if(!lime_ui_Gamepad.devices.h.hasOwnProperty(id)) {
var gamepad = new lime_ui_Gamepad(id);
lime_ui_Gamepad.devices.h[id] = gamepad;
lime_ui_Gamepad.onConnect.dispatch(gamepad);
}
};
lime_ui_Gamepad.__disconnect = function(id) {
var gamepad = lime_ui_Gamepad.devices.h[id];
if(gamepad != null) {
gamepad.connected = false;
}
lime_ui_Gamepad.devices.remove(id);
if(gamepad != null) {
gamepad.onDisconnect.dispatch();
}
};
lime_ui_Gamepad.prototype = {
connected: null
,id: null
,onAxisMove: null
,onButtonDown: null
,onButtonUp: null
,onDisconnect: null
,get_guid: function() {
var devices = lime_ui_Joystick.__getDeviceData();
return devices[this.id].id;
}
,get_name: function() {
var devices = lime_ui_Joystick.__getDeviceData();
return devices[this.id].id;
}
,__class__: lime_ui_Gamepad
,__properties__: {get_name:"get_name",get_guid:"get_guid"}
};
var lime_ui_GamepadAxis = {};
lime_ui_GamepadAxis.toString = function(this1) {
switch(this1) {
case 0:
return "LEFT_X";
case 1:
return "LEFT_Y";
case 2:
return "RIGHT_X";
case 3:
return "RIGHT_Y";
case 4:
return "TRIGGER_LEFT";
case 5:
return "TRIGGER_RIGHT";
default:
return "UNKNOWN (" + this1 + ")";
}
};
var lime_ui_GamepadButton = {};
lime_ui_GamepadButton.toString = function(this1) {
switch(this1) {
case 0:
return "A";
case 1:
return "B";
case 2:
return "X";
case 3:
return "Y";
case 4:
return "BACK";
case 5:
return "GUIDE";
case 6:
return "START";
case 7:
return "LEFT_STICK";
case 8:
return "RIGHT_STICK";
case 9:
return "LEFT_SHOULDER";
case 10:
return "RIGHT_SHOULDER";
case 11:
return "DPAD_UP";
case 12:
return "DPAD_DOWN";
case 13:
return "DPAD_LEFT";
case 14:
return "DPAD_RIGHT";
default:
return "UNKNOWN (" + this1 + ")";
}
};
var lime_ui_Joystick = function(id) {
this.onTrackballMove = new lime_app__$Event_$Int_$Float_$Float_$Void();
this.onHatMove = new lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void();
this.onDisconnect = new lime_app__$Event_$Void_$Void();
this.onButtonUp = new lime_app__$Event_$Int_$Void();
this.onButtonDown = new lime_app__$Event_$Int_$Void();
this.onAxisMove = new lime_app__$Event_$Int_$Float_$Void();
this.id = id;
this.connected = true;
};
$hxClasses["lime.ui.Joystick"] = lime_ui_Joystick;
lime_ui_Joystick.__name__ = "lime.ui.Joystick";
lime_ui_Joystick.__connect = function(id) {
if(!lime_ui_Joystick.devices.h.hasOwnProperty(id)) {
var joystick = new lime_ui_Joystick(id);
lime_ui_Joystick.devices.h[id] = joystick;
lime_ui_Joystick.onConnect.dispatch(joystick);
}
};
lime_ui_Joystick.__disconnect = function(id) {
var joystick = lime_ui_Joystick.devices.h[id];
if(joystick != null) {
joystick.connected = false;
}
lime_ui_Joystick.devices.remove(id);
if(joystick != null) {
joystick.onDisconnect.dispatch();
}
};
lime_ui_Joystick.__getDeviceData = function() {
if(navigator.getGamepads) {
return navigator.getGamepads();
} else if(navigator.webkitGetGamepads) {
return navigator.webkitGetGamepads();
} else {
return null;
}
};
lime_ui_Joystick.prototype = {
connected: null
,id: null
,onAxisMove: null
,onButtonDown: null
,onButtonUp: null
,onDisconnect: null
,onHatMove: null
,onTrackballMove: null
,get_guid: function() {
var devices = lime_ui_Joystick.__getDeviceData();
return devices[this.id].id;
}
,get_name: function() {
var devices = lime_ui_Joystick.__getDeviceData();
return devices[this.id].id;
}
,get_numAxes: function() {
var devices = lime_ui_Joystick.__getDeviceData();
return devices[this.id].axes.length;
}
,get_numButtons: function() {
var devices = lime_ui_Joystick.__getDeviceData();
return devices[this.id].buttons.length;
}
,get_numHats: function() {
return 0;
}
,get_numTrackballs: function() {
return 0;
}
,__class__: lime_ui_Joystick
,__properties__: {get_numTrackballs:"get_numTrackballs",get_numHats:"get_numHats",get_numButtons:"get_numButtons",get_numAxes:"get_numAxes",get_name:"get_name",get_guid:"get_guid"}
};
var lime_ui_JoystickHatPosition = {};
lime_ui_JoystickHatPosition.__properties__ = {set_up:"set_up",get_up:"get_up",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left",set_down:"set_down",get_down:"get_down",set_center:"set_center",get_center:"get_center"};
lime_ui_JoystickHatPosition._new = function(value) {
var this1 = value;
return this1;
};
lime_ui_JoystickHatPosition.get_center = function(this1) {
return this1 == 0;
};
lime_ui_JoystickHatPosition.set_center = function(this1,value) {
if(value) {
this1 = 0;
}
return value;
};
lime_ui_JoystickHatPosition.get_down = function(this1) {
return (this1 & 4) > 0;
};
lime_ui_JoystickHatPosition.set_down = function(this1,value) {
if(value) {
this1 |= 4;
} else {
this1 &= 268435455 - 4;
}
return value;
};
lime_ui_JoystickHatPosition.get_left = function(this1) {
return (this1 & 8) > 0;
};
lime_ui_JoystickHatPosition.set_left = function(this1,value) {
if(value) {
this1 |= 8;
} else {
this1 &= 268435455 - 8;
}
return value;
};
lime_ui_JoystickHatPosition.get_right = function(this1) {
return (this1 & 2) > 0;
};
lime_ui_JoystickHatPosition.set_right = function(this1,value) {
if(value) {
this1 |= 2;
} else {
this1 &= 268435455 - 2;
}
return value;
};
lime_ui_JoystickHatPosition.get_up = function(this1) {
return (this1 & 1) > 0;
};
lime_ui_JoystickHatPosition.set_up = function(this1,value) {
if(value) {
this1 |= 1;
} else {
this1 &= 268435455 - 1;
}
return value;
};
var lime_ui_KeyCode = {};
lime_ui_KeyCode.fromScanCode = function(scanCode) {
return 0;
};
lime_ui_KeyCode.toScanCode = function(keyCode) {
return 0;
};
lime_ui_KeyCode.gt = function(a,b) {
return a > b;
};
lime_ui_KeyCode.gte = function(a,b) {
return a >= b;
};
lime_ui_KeyCode.lt = function(a,b) {
return a < b;
};
lime_ui_KeyCode.lte = function(a,b) {
return a <= b;
};
lime_ui_KeyCode.plus = function(a,b) {
return a + b;
};
var lime_ui_KeyModifier = {};
lime_ui_KeyModifier.__properties__ = {set_shiftKey:"set_shiftKey",get_shiftKey:"get_shiftKey",set_numLock:"set_numLock",get_numLock:"get_numLock",set_metaKey:"set_metaKey",get_metaKey:"get_metaKey",set_ctrlKey:"set_ctrlKey",get_ctrlKey:"get_ctrlKey",set_capsLock:"set_capsLock",get_capsLock:"get_capsLock",set_altKey:"set_altKey",get_altKey:"get_altKey"};
lime_ui_KeyModifier.get_altKey = function(this1) {
if((this1 & 256) <= 0) {
return (this1 & 512) > 0;
} else {
return true;
}
};
lime_ui_KeyModifier.set_altKey = function(this1,value) {
if(value) {
this1 |= 768;
} else {
this1 &= 268435455 - 768;
}
return value;
};
lime_ui_KeyModifier.get_capsLock = function(this1) {
if((this1 & 8192) <= 0) {
return (this1 & 8192) > 0;
} else {
return true;
}
};
lime_ui_KeyModifier.set_capsLock = function(this1,value) {
if(value) {
this1 |= 8192;
} else {
this1 &= 268435455 - 8192;
}
return value;
};
lime_ui_KeyModifier.get_ctrlKey = function(this1) {
if((this1 & 64) <= 0) {
return (this1 & 128) > 0;
} else {
return true;
}
};
lime_ui_KeyModifier.set_ctrlKey = function(this1,value) {
if(value) {
this1 |= 192;
} else {
this1 &= 268435455 - 192;
}
return value;
};
lime_ui_KeyModifier.get_metaKey = function(this1) {
if((this1 & 1024) <= 0) {
return (this1 & 2048) > 0;
} else {
return true;
}
};
lime_ui_KeyModifier.set_metaKey = function(this1,value) {
if(value) {
this1 |= 3072;
} else {
this1 &= 268435455 - 3072;
}
return value;
};
lime_ui_KeyModifier.get_numLock = function(this1) {
if((this1 & 4096) <= 0) {
return (this1 & 4096) > 0;
} else {
return true;
}
};
lime_ui_KeyModifier.set_numLock = function(this1,value) {
if(value) {
this1 |= 4096;
} else {
this1 &= 268435455 - 4096;
}
return value;
};
lime_ui_KeyModifier.get_shiftKey = function(this1) {
if((this1 & 1) <= 0) {
return (this1 & 2) > 0;
} else {
return true;
}
};
lime_ui_KeyModifier.set_shiftKey = function(this1,value) {
if(value) {
this1 |= 3;
} else {
this1 &= 268435455 - 3;
}
return value;
};
var lime_ui_MouseCursor = $hxEnums["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"]
,ARROW: {_hx_index:0,__enum__:"lime.ui.MouseCursor",toString:$estr}
,CROSSHAIR: {_hx_index:1,__enum__:"lime.ui.MouseCursor",toString:$estr}
,DEFAULT: {_hx_index:2,__enum__:"lime.ui.MouseCursor",toString:$estr}
,MOVE: {_hx_index:3,__enum__:"lime.ui.MouseCursor",toString:$estr}
,POINTER: {_hx_index:4,__enum__:"lime.ui.MouseCursor",toString:$estr}
,RESIZE_NESW: {_hx_index:5,__enum__:"lime.ui.MouseCursor",toString:$estr}
,RESIZE_NS: {_hx_index:6,__enum__:"lime.ui.MouseCursor",toString:$estr}
,RESIZE_NWSE: {_hx_index:7,__enum__:"lime.ui.MouseCursor",toString:$estr}
,RESIZE_WE: {_hx_index:8,__enum__:"lime.ui.MouseCursor",toString:$estr}
,TEXT: {_hx_index:9,__enum__:"lime.ui.MouseCursor",toString:$estr}
,WAIT: {_hx_index:10,__enum__:"lime.ui.MouseCursor",toString:$estr}
,WAIT_ARROW: {_hx_index:11,__enum__:"lime.ui.MouseCursor",toString:$estr}
,CUSTOM: {_hx_index:12,__enum__:"lime.ui.MouseCursor",toString:$estr}
};
var lime_ui_MouseWheelMode = $hxEnums["lime.ui.MouseWheelMode"] = { __ename__ : "lime.ui.MouseWheelMode", __constructs__ : ["PIXELS","LINES","PAGES","UNKNOWN"]
,PIXELS: {_hx_index:0,__enum__:"lime.ui.MouseWheelMode",toString:$estr}
,LINES: {_hx_index:1,__enum__:"lime.ui.MouseWheelMode",toString:$estr}
,PAGES: {_hx_index:2,__enum__:"lime.ui.MouseWheelMode",toString:$estr}
,UNKNOWN: {_hx_index:3,__enum__:"lime.ui.MouseWheelMode",toString:$estr}
};
var lime_ui_ScanCode = {};
lime_ui_ScanCode.fromKeyCode = function(keyCode) {
return lime_ui_KeyCode.toScanCode(keyCode);
};
lime_ui_ScanCode.toKeyCode = function(scanCode) {
return lime_ui_KeyCode.fromScanCode(scanCode);
};
lime_ui_ScanCode.gt = function(a,b) {
return a > b;
};
lime_ui_ScanCode.gte = function(a,b) {
return a >= b;
};
lime_ui_ScanCode.lt = function(a,b) {
return a < b;
};
lime_ui_ScanCode.lte = function(a,b) {
return a <= b;
};
lime_ui_ScanCode.plus = function(a,b) {
return a + b;
};
var lime_ui_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;
};
$hxClasses["lime.ui.Touch"] = lime_ui_Touch;
lime_ui_Touch.__name__ = "lime.ui.Touch";
lime_ui_Touch.prototype = {
device: null
,dx: null
,dy: null
,id: null
,pressure: null
,x: null
,y: null
,__class__: lime_ui_Touch
};
var lime_ui_Window = function(application,attributes) {
this.onTextInput = new lime_app__$Event_$String_$Void();
this.onTextEdit = new lime_app__$Event_$String_$Int_$Int_$Void();
this.onRestore = new lime_app__$Event_$Void_$Void();
this.onResize = new lime_app__$Event_$Int_$Int_$Void();
this.onRenderContextRestored = new lime_app__$Event_$lime_$graphics_$RenderContext_$Void();
this.onRenderContextLost = new lime_app__$Event_$Void_$Void();
this.onRender = new lime_app__$Event_$lime_$graphics_$RenderContext_$Void();
this.onMove = new lime_app__$Event_$Float_$Float_$Void();
this.onMouseWheel = new lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void();
this.onMouseUp = new lime_app__$Event_$Float_$Float_$Int_$Void();
this.onMouseMoveRelative = new lime_app__$Event_$Float_$Float_$Void();
this.onMouseMove = new lime_app__$Event_$Float_$Float_$Void();
this.onMouseDown = new lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void();
this.onMinimize = new lime_app__$Event_$Void_$Void();
this.onMaximize = new lime_app__$Event_$Void_$Void();
this.onLeave = new lime_app__$Event_$Void_$Void();
this.onKeyUp = new lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void();
this.onKeyDown = new lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void();
this.onFullscreen = new lime_app__$Event_$Void_$Void();
this.onFocusOut = new lime_app__$Event_$Void_$Void();
this.onFocusIn = new lime_app__$Event_$Void_$Void();
this.onExpose = new lime_app__$Event_$Void_$Void();
this.onEnter = new lime_app__$Event_$Void_$Void();
this.onDropFile = new lime_app__$Event_$String_$Void();
this.onDeactivate = new lime_app__$Event_$Void_$Void();
this.onClose = new lime_app__$Event_$Void_$Void();
this.onActivate = new lime_app__$Event_$Void_$Void();
this.application = application;
this.__attributes = attributes != null ? attributes : { };
if(Object.prototype.hasOwnProperty.call(this.__attributes,"parameters")) {
this.parameters = this.__attributes.parameters;
}
this.__width = 0;
this.__height = 0;
this.__fullscreen = false;
this.__scale = 1;
this.__x = 0;
this.__y = 0;
this.__title = "";
this.id = -1;
this.__backend = new lime__$internal_backend_html5_HTML5Window(this);
};
$hxClasses["lime.ui.Window"] = lime_ui_Window;
lime_ui_Window.__name__ = "lime.ui.Window";
lime_ui_Window.prototype = {
application: null
,context: null
,display: null
,element: null
,hidden: null
,id: null
,onActivate: null
,onClose: null
,onDeactivate: null
,onDropFile: null
,onEnter: null
,onExpose: null
,onFocusIn: null
,onFocusOut: null
,onFullscreen: null
,onKeyDown: null
,onKeyUp: null
,onLeave: null
,onMaximize: null
,onMinimize: null
,onMouseDown: null
,onMouseMove: null
,onMouseMoveRelative: null
,onMouseUp: null
,onMouseWheel: null
,onMove: null
,onRender: null
,onRenderContextLost: null
,onRenderContextRestored: null
,onResize: null
,onRestore: null
,onTextEdit: null
,onTextInput: null
,parameters: null
,scale: null
,stage: null
,__attributes: null
,__backend: null
,__borderless: null
,__fullscreen: null
,__height: null
,__hidden: null
,__maximized: null
,__minimized: null
,__resizable: null
,__scale: null
,__title: null
,__width: null
,__x: null
,__y: null
,alert: function(message,title) {
this.__backend.alert(message,title);
}
,close: function() {
this.__backend.close();
}
,focus: function() {
this.__backend.focus();
}
,move: function(x,y) {
this.__backend.move(x,y);
this.__x = x;
this.__y = y;
}
,readPixels: function(rect) {
return this.__backend.readPixels(rect);
}
,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]";
}
,warpMouse: function(x,y) {
this.__backend.warpMouse(x,y);
}
,get_cursor: function() {
return this.__backend.getCursor();
}
,set_cursor: function(value) {
return this.__backend.setCursor(value);
}
,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_frameRate: function() {
return this.__backend.getFrameRate();
}
,set_frameRate: function(value) {
return this.__backend.setFrameRate(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_hidden: function() {
return this.__hidden;
}
,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_mouseLock: function() {
return this.__backend.getMouseLock();
}
,set_mouseLock: function(value) {
this.__backend.setMouseLock(value);
return 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_textInputEnabled: function() {
return this.__backend.getTextInputEnabled();
}
,set_textInputEnabled: function(value) {
return this.__backend.setTextInputEnabled(value);
}
,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;
}
,__class__: lime_ui_Window
,__properties__: {set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x",set_width:"set_width",get_width:"get_width",set_title:"set_title",get_title:"get_title",set_textInputEnabled:"set_textInputEnabled",get_textInputEnabled:"get_textInputEnabled",get_scale:"get_scale",set_resizable:"set_resizable",get_resizable:"get_resizable",set_mouseLock:"set_mouseLock",get_mouseLock:"get_mouseLock",set_minimized:"set_minimized",get_minimized:"get_minimized",set_maximized:"set_maximized",get_maximized:"get_maximized",get_hidden:"get_hidden",set_height:"set_height",get_height:"get_height",set_fullscreen:"set_fullscreen",get_fullscreen:"get_fullscreen",set_frameRate:"set_frameRate",get_frameRate:"get_frameRate",set_displayMode:"set_displayMode",get_displayMode:"get_displayMode",get_display:"get_display",set_cursor:"set_cursor",get_cursor:"get_cursor",set_borderless:"set_borderless",get_borderless:"get_borderless"}
};
var lime_utils_TAError = $hxEnums["lime.utils.TAError"] = { __ename__ : "lime.utils.TAError", __constructs__ : ["RangeError"]
,RangeError: {_hx_index:0,__enum__:"lime.utils.TAError",toString:$estr}
};
var lime_utils_AssetBundle = function() {
this.data = new haxe_ds_StringMap();
this.paths = [];
};
$hxClasses["lime.utils.AssetBundle"] = lime_utils_AssetBundle;
lime_utils_AssetBundle.__name__ = "lime.utils.AssetBundle";
lime_utils_AssetBundle.fromBytes = function(bytes) {
var input = new haxe_io_BytesInput(bytes);
return lime_utils_AssetBundle.__extractBundle(input);
};
lime_utils_AssetBundle.fromFile = function(path) {
return null;
};
lime_utils_AssetBundle.loadFromBytes = function(bytes) {
return lime_app_Future.withValue(lime_utils_AssetBundle.fromBytes(bytes));
};
lime_utils_AssetBundle.loadFromFile = function(path) {
return lime_utils_Bytes.loadFromFile(path).then(lime_utils_AssetBundle.loadFromBytes);
};
lime_utils_AssetBundle.__extractBundle = function(input) {
var entries = haxe_zip_Reader.readZip(input);
var bundle = new lime_utils_AssetBundle();
var _g_head = entries.h;
while(_g_head != null) {
var val = _g_head.item;
_g_head = _g_head.next;
var entry = val;
if(entry.compressed) {
var bytes = entry.data;
var this1 = bundle.data;
var key = entry.fileName;
var value = lime_utils_Bytes.decompress(bytes,lime_utils_CompressionAlgorithm.DEFLATE);
this1.h[key] = value;
} else {
bundle.data.h[entry.fileName] = entry.data;
}
bundle.paths.push(entry.fileName);
}
return bundle;
};
lime_utils_AssetBundle.prototype = {
data: null
,paths: null
,__class__: lime_utils_AssetBundle
};
var lime_utils_AssetCache = function() {
this.enabled = true;
this.audio = new haxe_ds_StringMap();
this.font = new haxe_ds_StringMap();
this.image = new haxe_ds_StringMap();
this.version = 750521;
};
$hxClasses["lime.utils.AssetCache"] = lime_utils_AssetCache;
lime_utils_AssetCache.__name__ = "lime.utils.AssetCache";
lime_utils_AssetCache.prototype = {
audio: null
,enabled: null
,image: null
,font: null
,version: null
,exists: function(id,type) {
if(type == "IMAGE" || type == null) {
if(Object.prototype.hasOwnProperty.call(this.image.h,id)) {
return true;
}
}
if(type == "FONT" || type == null) {
if(Object.prototype.hasOwnProperty.call(this.font.h,id)) {
return true;
}
}
if(type == "SOUND" || type == "MUSIC" || type == null) {
if(Object.prototype.hasOwnProperty.call(this.audio.h,id)) {
return true;
}
}
return false;
}
,set: function(id,type,asset) {
switch(type) {
case "FONT":
this.font.h[id] = asset;
break;
case "IMAGE":
if(!((asset) instanceof lime_graphics_Image)) {
throw haxe_Exception.thrown("Cannot cache non-Image asset: " + Std.string(asset) + " as Image");
}
this.image.h[id] = asset;
break;
case "MUSIC":case "SOUND":
if(!((asset) instanceof lime_media_AudioBuffer)) {
throw haxe_Exception.thrown("Cannot cache non-AudioBuffer asset: " + Std.string(asset) + " as AudioBuffer");
}
this.audio.h[id] = asset;
break;
default:
throw haxe_Exception.thrown(type + " assets are not cachable");
}
}
,clear: function(prefix) {
if(prefix == null) {
this.audio = new haxe_ds_StringMap();
this.font = new haxe_ds_StringMap();
this.image = new haxe_ds_StringMap();
} else {
var keys = haxe_ds_StringMap.keysIterator(this.audio.h);
var key = keys;
while(key.hasNext()) {
var key1 = key.next();
if(StringTools.startsWith(key1,prefix)) {
var _this = this.audio;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
}
var keys = haxe_ds_StringMap.keysIterator(this.font.h);
var key = keys;
while(key.hasNext()) {
var key1 = key.next();
if(StringTools.startsWith(key1,prefix)) {
var _this = this.font;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
}
var keys = haxe_ds_StringMap.keysIterator(this.image.h);
var key = keys;
while(key.hasNext()) {
var key1 = key.next();
if(StringTools.startsWith(key1,prefix)) {
var _this = this.image;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
}
}
}
,__class__: lime_utils_AssetCache
};
var lime_utils_AssetLibrary = function() {
this.types = new haxe_ds_StringMap();
this.sizes = new haxe_ds_StringMap();
this.preload = new haxe_ds_StringMap();
this.paths = new haxe_ds_StringMap();
this.pathGroups = new haxe_ds_StringMap();
this.classTypes = new haxe_ds_StringMap();
this.cachedText = new haxe_ds_StringMap();
this.cachedImages = new haxe_ds_StringMap();
this.cachedFonts = new haxe_ds_StringMap();
this.cachedBytes = new haxe_ds_StringMap();
this.cachedAudioBuffers = new haxe_ds_StringMap();
this.onChange = new lime_app__$Event_$Void_$Void();
this.bytesLoaded = 0;
this.bytesTotal = 0;
};
$hxClasses["lime.utils.AssetLibrary"] = lime_utils_AssetLibrary;
lime_utils_AssetLibrary.__name__ = "lime.utils.AssetLibrary";
lime_utils_AssetLibrary.fromBytes = function(bytes,rootPath) {
return lime_utils_AssetLibrary.fromManifest(lime_utils_AssetManifest.fromBytes(bytes,rootPath));
};
lime_utils_AssetLibrary.fromFile = function(path,rootPath) {
return lime_utils_AssetLibrary.fromManifest(lime_utils_AssetManifest.fromFile(path,rootPath));
};
lime_utils_AssetLibrary.fromBundle = function(bundle) {
if(Object.prototype.hasOwnProperty.call(bundle.data.h,"library.json")) {
var manifest = lime_utils_AssetManifest.fromBytes(bundle.data.h["library.json"]);
if(manifest != null) {
var library = null;
if(manifest.libraryType == null) {
library = new lime_utils_AssetLibrary();
} else {
var name = manifest.libraryType;
var libraryClass = $hxClasses[name];
if(libraryClass != null) {
library = Type.createInstance(libraryClass,manifest.libraryArgs);
} else {
lime_utils_Log.warn("Could not find library type: " + manifest.libraryType,{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 122, className : "lime.utils.AssetLibrary", methodName : "fromBundle"});
return null;
}
}
library.__fromBundle(bundle,manifest);
return library;
}
} else {
var library = new lime_utils_AssetLibrary();
library.__fromBundle(bundle);
return library;
}
return null;
};
lime_utils_AssetLibrary.fromManifest = function(manifest) {
if(manifest == null) {
return null;
}
var library = null;
if(manifest.libraryType == null) {
library = new lime_utils_AssetLibrary();
} else {
var name = manifest.libraryType;
var libraryClass = $hxClasses[name];
if(libraryClass != null) {
library = Type.createInstance(libraryClass,manifest.libraryArgs);
} else {
lime_utils_Log.warn("Could not find library type: " + manifest.libraryType,{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 160, className : "lime.utils.AssetLibrary", methodName : "fromManifest"});
return null;
}
}
library.__fromManifest(manifest);
return library;
};
lime_utils_AssetLibrary.loadFromBytes = function(bytes,rootPath) {
return lime_utils_AssetManifest.loadFromBytes(bytes,rootPath).then(function(manifest) {
return lime_utils_AssetLibrary.loadFromManifest(manifest);
});
};
lime_utils_AssetLibrary.loadFromFile = function(path,rootPath) {
return lime_utils_AssetManifest.loadFromFile(path,rootPath).then(function(manifest) {
return lime_utils_AssetLibrary.loadFromManifest(manifest);
});
};
lime_utils_AssetLibrary.loadFromManifest = function(manifest) {
var library = lime_utils_AssetLibrary.fromManifest(manifest);
if(library != null) {
return library.load();
} else {
return lime_app_Future.withError("Could not load asset manifest");
}
};
lime_utils_AssetLibrary.prototype = {
onChange: null
,assetsLoaded: null
,assetsTotal: null
,bytesLoaded: null
,bytesLoadedCache: null
,bytesTotal: null
,cachedAudioBuffers: null
,cachedBytes: null
,cachedFonts: null
,cachedImages: null
,cachedText: null
,classTypes: null
,loaded: null
,pathGroups: null
,paths: null
,preload: null
,promise: null
,sizes: null
,types: null
,exists: function(id,type) {
var requestedType = type != null ? js_Boot.__cast(type , String) : null;
var assetType = this.types.h[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 haxe_Exception.thrown("Not sure how to get template: " + id);
case "TEXT":
return this.getText(id);
default:
throw haxe_Exception.thrown("Unknown asset type: " + type);
}
}
,getAudioBuffer: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h,id)) {
return this.cachedAudioBuffers.h[id];
} else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
return lime_media_AudioBuffer.fromBytes(js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , haxe_io_Bytes));
} else {
return lime_media_AudioBuffer.fromFile(this.paths.h[id]);
}
}
,getBytes: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) {
return this.cachedBytes.h[id];
} else if(Object.prototype.hasOwnProperty.call(this.cachedText.h,id)) {
var bytes = lime_utils_Bytes.ofString(this.cachedText.h[id]);
this.cachedBytes.h[id] = bytes;
return bytes;
} else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
return js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , haxe_io_Bytes);
} else {
return lime_utils_Bytes.fromFile(this.paths.h[id]);
}
}
,getFont: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedFonts.h,id)) {
return this.cachedFonts.h[id];
} else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
return js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , lime_text_Font);
} else {
return lime_text_Font.fromFile(this.paths.h[id]);
}
}
,getImage: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedImages.h,id)) {
return this.cachedImages.h[id];
} else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
return js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , lime_graphics_Image);
} else {
return lime_graphics_Image.fromFile(this.paths.h[id]);
}
}
,getPath: function(id) {
if(Object.prototype.hasOwnProperty.call(this.paths.h,id)) {
return this.paths.h[id];
} else if(Object.prototype.hasOwnProperty.call(this.pathGroups.h,id)) {
return this.pathGroups.h[id][0];
} else {
return null;
}
}
,getText: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedText.h,id)) {
return this.cachedText.h[id];
} else {
var bytes = this.getBytes(id);
if(bytes == null) {
return null;
} else {
return bytes.getString(0,bytes.length);
}
}
}
,isLocal: function(id,type) {
if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
return true;
}
var requestedType = type != null ? js_Boot.__cast(type , String) : null;
if(requestedType == null) {
if(!Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) {
return Object.prototype.hasOwnProperty.call(this.cachedText.h,id);
} else {
return true;
}
} else {
switch(requestedType) {
case "FONT":
return Object.prototype.hasOwnProperty.call(this.cachedFonts.h,id);
case "IMAGE":
return Object.prototype.hasOwnProperty.call(this.cachedImages.h,id);
case "MUSIC":case "SOUND":
return Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h,id);
default:
if(!Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) {
return Object.prototype.hasOwnProperty.call(this.cachedText.h,id);
} else {
return true;
}
}
}
}
,list: function(type) {
var requestedType = type != null ? js_Boot.__cast(type , String) : null;
var items = [];
var id = haxe_ds_StringMap.keysIterator(this.types.h);
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 haxe_Exception.thrown("Not sure how to load template: " + id);
case "TEXT":
return this.loadText(id);
default:
throw haxe_Exception.thrown("Unknown asset type: " + type);
}
}
,load: function() {
if(this.loaded) {
return lime_app_Future.withValue(this);
}
if(this.promise == null) {
this.promise = new lime_app_Promise();
this.bytesLoadedCache = new haxe_ds_StringMap();
this.assetsLoaded = 0;
this.assetsTotal = 1;
var id = haxe_ds_StringMap.keysIterator(this.preload.h);
while(id.hasNext()) {
var id1 = id.next();
if(!this.preload.h[id1]) {
continue;
}
lime_utils_Log.verbose("Preloading asset: " + id1 + " [" + this.types.h[id1] + "]",{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 405, className : "lime.utils.AssetLibrary", methodName : "load"});
var _g = this.types.h[id1];
if(_g != null) {
switch(_g) {
case "BINARY":
this.assetsTotal++;
var future = this.loadBytes(id1);
future.onProgress((function(id,_g) {
return function(bytesLoaded,bytesTotal) {
_g[0](id[0],bytesLoaded,bytesTotal);
};
})([id1],[$bind(this,this.load_onProgress)]));
future.onError((function(id,_g) {
return function(message) {
_g[0](id[0],message);
};
})([id1],[$bind(this,this.load_onError)]));
future.onComplete((function(id,_g) {
return function(bytes) {
_g[0](id[0],bytes);
};
})([id1],[$bind(this,this.loadBytes_onComplete)]));
break;
case "FONT":
this.assetsTotal++;
var future1 = this.loadFont(id1);
future1.onProgress((function(id,_g) {
return function(bytesLoaded,bytesTotal) {
_g[0](id[0],bytesLoaded,bytesTotal);
};
})([id1],[$bind(this,this.load_onProgress)]));
future1.onError((function(id,_g) {
return function(message) {
_g[0](id[0],message);
};
})([id1],[$bind(this,this.load_onError)]));
future1.onComplete((function(id,_g) {
return function(font) {
_g[0](id[0],font);
};
})([id1],[$bind(this,this.loadFont_onComplete)]));
break;
case "IMAGE":
this.assetsTotal++;
var future2 = this.loadImage(id1);
future2.onProgress((function(id,_g) {
return function(bytesLoaded,bytesTotal) {
_g[0](id[0],bytesLoaded,bytesTotal);
};
})([id1],[$bind(this,this.load_onProgress)]));
future2.onError((function(id,_g) {
return function(message) {
_g[0](id[0],message);
};
})([id1],[$bind(this,this.load_onError)]));
future2.onComplete((function(id,_g) {
return function(image) {
_g[0](id[0],image);
};
})([id1],[$bind(this,this.loadImage_onComplete)]));
break;
case "MUSIC":case "SOUND":
this.assetsTotal++;
var future3 = this.loadAudioBuffer(id1);
future3.onProgress((function(id,_g) {
return function(bytesLoaded,bytesTotal) {
_g[0](id[0],bytesLoaded,bytesTotal);
};
})([id1],[$bind(this,this.load_onProgress)]));
future3.onError((function(id,_g) {
return function(message) {
_g[0](id[0],message);
};
})([id1],[$bind(this,this.loadAudioBuffer_onError)]));
future3.onComplete((function(id,_g) {
return function(audioBuffer) {
_g[0](id[0],audioBuffer);
};
})([id1],[$bind(this,this.loadAudioBuffer_onComplete)]));
break;
case "TEXT":
this.assetsTotal++;
var future4 = this.loadText(id1);
future4.onProgress((function(id,_g) {
return function(bytesLoaded,bytesTotal) {
_g[0](id[0],bytesLoaded,bytesTotal);
};
})([id1],[$bind(this,this.load_onProgress)]));
future4.onError((function(id,_g) {
return function(message) {
_g[0](id[0],message);
};
})([id1],[$bind(this,this.load_onError)]));
future4.onComplete((function(id,_g) {
return function(text) {
_g[0](id[0],text);
};
})([id1],[$bind(this,this.loadText_onComplete)]));
break;
default:
}
}
}
this.__assetLoaded(null);
}
return this.promise.future;
}
,loadAudioBuffer: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h,id)) {
return lime_app_Future.withValue(this.cachedAudioBuffers.h[id]);
} else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
return lime_app_Future.withValue(Type.createInstance(this.classTypes.h[id],[]));
} else if(Object.prototype.hasOwnProperty.call(this.pathGroups.h,id)) {
return lime_media_AudioBuffer.loadFromFiles(this.pathGroups.h[id]);
} else {
return lime_media_AudioBuffer.loadFromFile(this.paths.h[id]);
}
}
,loadBytes: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) {
return lime_app_Future.withValue(this.cachedBytes.h[id]);
} else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
return lime_app_Future.withValue(Type.createInstance(this.classTypes.h[id],[]));
} else {
return lime_utils_Bytes.loadFromFile(this.paths.h[id]);
}
}
,loadFont: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedFonts.h,id)) {
return lime_app_Future.withValue(this.cachedFonts.h[id]);
} else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
var font = Type.createInstance(this.classTypes.h[id],[]);
return font.__loadFromName(font.name);
} else {
return lime_text_Font.loadFromName(this.paths.h[id]);
}
}
,loadImage: function(id) {
var _gthis = this;
if(Object.prototype.hasOwnProperty.call(this.cachedImages.h,id)) {
return lime_app_Future.withValue(this.cachedImages.h[id]);
} else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
return lime_app_Future.withValue(Type.createInstance(this.classTypes.h[id],[]));
} else if(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) {
return lime_graphics_Image.loadFromBytes(this.cachedBytes.h[id]).then(function(image) {
var _this = _gthis.cachedBytes;
if(Object.prototype.hasOwnProperty.call(_this.h,id)) {
delete(_this.h[id]);
}
_gthis.cachedImages.h[id] = image;
return lime_app_Future.withValue(image);
});
} else {
return lime_graphics_Image.loadFromFile(this.paths.h[id]);
}
}
,loadText: function(id) {
if(Object.prototype.hasOwnProperty.call(this.cachedText.h,id)) {
return lime_app_Future.withValue(this.cachedText.h[id]);
} else if(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id) || Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) {
var bytes = this.getBytes(id);
if(bytes == null) {
return lime_app_Future.withValue(null);
} else {
var text = bytes.getString(0,bytes.length);
this.cachedText.h[id] = text;
return lime_app_Future.withValue(text);
}
} else {
var request = new lime_net__$HTTPRequest_$String();
return request.load(this.paths.h[id]);
}
}
,unload: function() {
}
,__assetLoaded: function(id) {
this.assetsLoaded++;
if(id != null) {
lime_utils_Log.verbose("Loaded asset: " + id + " [" + this.types.h[id] + "] (" + (this.assetsLoaded - 1) + "/" + (this.assetsTotal - 1) + ")",{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 619, className : "lime.utils.AssetLibrary", methodName : "__assetLoaded"});
}
if(id != null) {
var size = Object.prototype.hasOwnProperty.call(this.sizes.h,id) ? this.sizes.h[id] : 0;
if(!Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h,id)) {
this.bytesLoaded += size;
} else {
var cache = this.bytesLoadedCache.h[id];
if(cache < size) {
this.bytesLoaded += size - cache;
}
}
this.bytesLoadedCache.h[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 lime_utils_Assets.__cacheBreak(path);
}
,__fromBundle: function(bundle,manifest) {
if(manifest != null) {
var id;
var data;
var type;
var _g = 0;
var _g1 = manifest.assets;
while(_g < _g1.length) {
var asset = _g1[_g];
++_g;
id = Object.prototype.hasOwnProperty.call(asset,"id") ? asset.id : asset.path;
data = bundle.data.h[asset.path];
if(Object.prototype.hasOwnProperty.call(asset,"type")) {
type = asset.type;
if(type == "TEXT") {
this.cachedText.h[id] = data != null ? Std.string(data) : null;
} else {
this.cachedBytes.h[id] = data;
}
this.types.h[id] = asset.type;
} else {
this.cachedBytes.h[id] = data;
this.types.h[id] = "BINARY";
}
}
} else {
var _g = 0;
var _g1 = bundle.paths;
while(_g < _g1.length) {
var path = _g1[_g];
++_g;
this.cachedBytes.h[path] = bundle.data.h[path];
this.types.h[path] = "BINARY";
}
}
}
,__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;
size = hasSize && Object.prototype.hasOwnProperty.call(asset,"size") ? asset.size : 100;
id = Object.prototype.hasOwnProperty.call(asset,"id") ? asset.id : asset.path;
if(Object.prototype.hasOwnProperty.call(asset,"path")) {
var this1 = this.paths;
var value = this.__cacheBreak(this.__resolvePath(basePath + Std.string(Reflect.field(asset,"path"))));
this1.h[id] = value;
}
if(Object.prototype.hasOwnProperty.call(asset,"pathGroup")) {
pathGroup = Reflect.field(asset,"pathGroup");
var _g2 = 0;
var _g3 = pathGroup.length;
while(_g2 < _g3) {
var i = _g2++;
pathGroup[i] = this.__cacheBreak(this.__resolvePath(basePath + pathGroup[i]));
}
this.pathGroups.h[id] = pathGroup;
}
this.sizes.h[id] = size;
this.types.h[id] = asset.type;
if(Object.prototype.hasOwnProperty.call(asset,"preload")) {
this.preload.h[id] = Reflect.field(asset,"preload");
}
if(Object.prototype.hasOwnProperty.call(asset,"className")) {
var name = Reflect.field(asset,"className");
classRef = $hxClasses[name];
this.classTypes.h[id] = classRef;
}
}
this.bytesTotal = 0;
var _g = 0;
var _g1 = manifest.assets;
while(_g < _g1.length) {
var asset = _g1[_g];
++_g;
id = Object.prototype.hasOwnProperty.call(asset,"id") ? asset.id : asset.path;
if(Object.prototype.hasOwnProperty.call(this.preload.h,id) && this.preload.h[id] && Object.prototype.hasOwnProperty.call(this.sizes.h,id)) {
this.bytesTotal += this.sizes.h[id];
}
}
}
,__resolvePath: function(path) {
path = StringTools.replace(path,"\\","/");
var colonIdx = path.indexOf(":");
if(StringTools.startsWith(path,"http") && colonIdx > 0) {
var lastSlashIdx = colonIdx + 3;
var httpSection = HxOverrides.substr(path,0,lastSlashIdx);
path = httpSection + StringTools.replace(HxOverrides.substr(path,lastSlashIdx,null),"//","/");
} else {
path = StringTools.replace(path,"//","/");
}
if(path.indexOf("./") > -1) {
var split = path.split("/");
var newPath = [];
var _g = 0;
var _g1 = split.length;
while(_g < _g1) {
var i = _g++;
if(split[i] == "..") {
if(i == 0 || newPath[i - 1] == "..") {
newPath.push("..");
} else {
newPath.pop();
}
} else if(split[i] == ".") {
if(i == 0) {
newPath.push(".");
}
} else {
newPath.push(split[i]);
}
}
path = newPath.join("/");
}
return path;
}
,loadAudioBuffer_onComplete: function(id,audioBuffer) {
this.cachedAudioBuffers.h[id] = audioBuffer;
if(Object.prototype.hasOwnProperty.call(this.pathGroups.h,id)) {
var pathGroup = this.pathGroups.h[id];
var otherID = haxe_ds_StringMap.keysIterator(this.pathGroups.h);
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.h[otherID1].indexOf(path) > -1) {
this.cachedAudioBuffers.h[otherID1] = audioBuffer;
break;
}
}
}
}
this.__assetLoaded(id);
}
,loadAudioBuffer_onError: function(id,message) {
if(message != null && message != "") {
lime_utils_Log.warn("Could not load \"" + id + "\": " + Std.string(message),{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 865, className : "lime.utils.AssetLibrary", methodName : "loadAudioBuffer_onError"});
} else {
lime_utils_Log.warn("Could not load \"" + id + "\"",{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 869, className : "lime.utils.AssetLibrary", methodName : "loadAudioBuffer_onError"});
}
this.loadAudioBuffer_onComplete(id,new lime_media_AudioBuffer());
}
,loadBytes_onComplete: function(id,bytes) {
this.cachedBytes.h[id] = bytes;
this.__assetLoaded(id);
}
,loadFont_onComplete: function(id,font) {
this.cachedFonts.h[id] = font;
this.__assetLoaded(id);
}
,loadImage_onComplete: function(id,image) {
this.cachedImages.h[id] = image;
this.__assetLoaded(id);
}
,loadText_onComplete: function(id,text) {
this.cachedText.h[id] = text;
this.__assetLoaded(id);
}
,load_onError: function(id,message) {
if(message != null && message != "") {
this.promise.error("Error loading asset \"" + id + "\": " + Std.string(message));
} else {
this.promise.error("Error loading asset \"" + id + "\"");
}
}
,load_onProgress: function(id,bytesLoaded,bytesTotal) {
if(bytesLoaded > 0) {
var size = this.sizes.h[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(Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h,id)) {
var cache = this.bytesLoadedCache.h[id];
if(bytesLoaded != cache) {
this.bytesLoaded += bytesLoaded - cache;
}
} else {
this.bytesLoaded += bytesLoaded;
}
this.bytesLoadedCache.h[id] = bytesLoaded;
this.promise.progress(this.bytesLoaded,this.bytesTotal);
}
}
,__class__: lime_utils_AssetLibrary
};
var lime_utils_AssetManifest = function() {
this.assets = [];
this.libraryArgs = [];
this.version = 2;
};
$hxClasses["lime.utils.AssetManifest"] = lime_utils_AssetManifest;
lime_utils_AssetManifest.__name__ = "lime.utils.AssetManifest";
lime_utils_AssetManifest.fromBytes = function(bytes,rootPath) {
if(bytes != null) {
return lime_utils_AssetManifest.parse(bytes.getString(0,bytes.length),rootPath);
} else {
return null;
}
};
lime_utils_AssetManifest.fromFile = function(path,rootPath) {
path = lime_utils_AssetManifest.__resolvePath(path);
rootPath = lime_utils_AssetManifest.__resolveRootPath(rootPath,path);
if(path == null) {
return null;
}
return lime_utils_AssetManifest.fromBytes(lime_utils_Bytes.fromFile(path),rootPath);
};
lime_utils_AssetManifest.loadFromBytes = function(bytes,rootPath) {
return lime_app_Future.withValue(lime_utils_AssetManifest.fromBytes(bytes,rootPath));
};
lime_utils_AssetManifest.loadFromFile = function(path,rootPath) {
path = lime_utils_AssetManifest.__resolvePath(path);
rootPath = lime_utils_AssetManifest.__resolveRootPath(rootPath,path);
if(path == null) {
return null;
}
return lime_utils_Bytes.loadFromFile(path).then(function(bytes) {
return lime_app_Future.withValue(lime_utils_AssetManifest.fromBytes(bytes,rootPath));
});
};
lime_utils_AssetManifest.parse = function(data,rootPath) {
if(data == null || data == "") {
return null;
}
var manifestData = JSON.parse(data);
var manifest = new lime_utils_AssetManifest();
if(Object.prototype.hasOwnProperty.call(manifestData,"name")) {
manifest.name = manifestData.name;
}
if(Object.prototype.hasOwnProperty.call(manifestData,"libraryType")) {
manifest.libraryType = manifestData.libraryType;
}
if(Object.prototype.hasOwnProperty.call(manifestData,"libraryArgs")) {
manifest.libraryArgs = manifestData.libraryArgs;
}
if(Object.prototype.hasOwnProperty.call(manifestData,"assets")) {
var assets = manifestData.assets;
if(Object.prototype.hasOwnProperty.call(manifestData,"version") && manifestData.version <= 2) {
manifest.assets = haxe_Unserializer.run(assets);
} else {
manifest.assets = assets;
}
}
if(Object.prototype.hasOwnProperty.call(manifestData,"rootPath")) {
manifest.rootPath = manifestData.rootPath;
}
if(rootPath != null && rootPath != "") {
if(manifest.rootPath == null || manifest.rootPath == "") {
manifest.rootPath = rootPath;
} else {
manifest.rootPath = rootPath + "/" + manifest.rootPath;
}
}
return manifest;
};
lime_utils_AssetManifest.__resolvePath = function(path) {
if(path == null) {
return null;
}
var queryIndex = path.indexOf("?");
var basePath;
if(queryIndex > -1) {
basePath = HxOverrides.substr(path,0,queryIndex);
} else {
basePath = path;
}
basePath = StringTools.replace(basePath,"\\","/");
while(StringTools.endsWith(basePath,"/")) basePath = HxOverrides.substr(basePath,0,basePath.length - 1);
if(StringTools.endsWith(basePath,".bundle")) {
if(queryIndex > -1) {
return basePath + "/library.json" + HxOverrides.substr(path,queryIndex,null);
} else {
return basePath + "/library.json";
}
} else {
return path;
}
};
lime_utils_AssetManifest.__resolveRootPath = function(rootPath,path) {
if(rootPath != null) {
return rootPath;
}
var queryIndex = path.indexOf("?");
if(queryIndex > -1) {
rootPath = HxOverrides.substr(path,0,queryIndex);
} else {
rootPath = path;
}
rootPath = StringTools.replace(rootPath,"\\","/");
while(StringTools.endsWith(rootPath,"/")) {
if(rootPath == "/") {
return rootPath;
}
rootPath = HxOverrides.substr(rootPath,0,rootPath.length - 1);
}
if(StringTools.endsWith(rootPath,".bundle")) {
return rootPath;
} else {
return haxe_io_Path.directory(rootPath);
}
};
lime_utils_AssetManifest.prototype = {
assets: null
,libraryArgs: null
,libraryType: null
,name: null
,rootPath: null
,version: null
,serialize: function() {
var manifestData = { };
manifestData.version = this.version;
manifestData.libraryType = this.libraryType;
manifestData.libraryArgs = this.libraryArgs;
manifestData.name = this.name;
manifestData.assets = haxe_Serializer.run(this.assets);
manifestData.rootPath = this.rootPath;
return JSON.stringify(manifestData);
}
,__class__: lime_utils_AssetManifest
};
var lime_utils_Assets = function() { };
$hxClasses["lime.utils.Assets"] = lime_utils_Assets;
lime_utils_Assets.__name__ = "lime.utils.Assets";
lime_utils_Assets.exists = function(id,type) {
if(type == null) {
type = "BINARY";
}
var id1 = id;
var colonIndex = id1.indexOf(":");
var symbol_libraryName = id1.substring(0,colonIndex);
var symbol_symbolName = id1.substring(colonIndex + 1);
var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName);
if(symbol_library != null) {
return symbol_library.exists(symbol_symbolName,type);
}
return false;
};
lime_utils_Assets.getAsset = function(id,type,useCache) {
if(useCache && lime_utils_Assets.cache.enabled) {
switch(type) {
case "BINARY":case "TEXT":
useCache = false;
break;
case "FONT":
var font = lime_utils_Assets.cache.font.h[id];
if(font != null) {
return font;
}
break;
case "IMAGE":
var image = lime_utils_Assets.cache.image.h[id];
if(lime_utils_Assets.isValidImage(image)) {
return image;
}
break;
case "MUSIC":case "SOUND":
var audio = lime_utils_Assets.cache.audio.h[id];
if(lime_utils_Assets.isValidAudio(audio)) {
return audio;
}
break;
case "TEMPLATE":
throw haxe_Exception.thrown("Not sure how to get template: " + id);
default:
return null;
}
}
var id1 = id;
var colonIndex = id1.indexOf(":");
var symbol_libraryName = id1.substring(0,colonIndex);
var symbol_symbolName = id1.substring(colonIndex + 1);
var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName);
if(symbol_library != null) {
if(symbol_library.exists(symbol_symbolName,type)) {
if(symbol_library.isLocal(symbol_symbolName,type)) {
var asset = symbol_library.getAsset(symbol_symbolName,type);
if(useCache && lime_utils_Assets.cache.enabled) {
lime_utils_Assets.cache.set(id,type,asset);
}
return asset;
} else {
lime_utils_Log.error(type + " asset \"" + id + "\" exists, but only asynchronously",{ fileName : "lime/utils/Assets.hx", lineNumber : 133, className : "lime.utils.Assets", methodName : "getAsset"});
}
} else {
lime_utils_Log.error("There is no " + type + " asset with an ID of \"" + id + "\"",{ fileName : "lime/utils/Assets.hx", lineNumber : 138, className : "lime.utils.Assets", methodName : "getAsset"});
}
} else {
lime_utils_Log.error(lime_utils_Assets.__libraryNotFound(symbol_libraryName),{ fileName : "lime/utils/Assets.hx", lineNumber : 143, className : "lime.utils.Assets", methodName : "getAsset"});
}
return null;
};
lime_utils_Assets.getAudioBuffer = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
return lime_utils_Assets.getAsset(id,"SOUND",useCache);
};
lime_utils_Assets.getBytes = function(id) {
return lime_utils_Assets.getAsset(id,"BINARY",false);
};
lime_utils_Assets.getFont = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
return lime_utils_Assets.getAsset(id,"FONT",useCache);
};
lime_utils_Assets.getImage = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
return lime_utils_Assets.getAsset(id,"IMAGE",useCache);
};
lime_utils_Assets.getLibrary = function(name) {
if(name == null || name == "") {
name = "default";
}
return lime_utils_Assets.libraries.h[name];
};
lime_utils_Assets.getPath = function(id) {
var id1 = id;
var colonIndex = id1.indexOf(":");
var symbol_libraryName = id1.substring(0,colonIndex);
var symbol_symbolName = id1.substring(colonIndex + 1);
var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName);
if(symbol_library != null) {
if(symbol_library.exists(symbol_symbolName,null)) {
return symbol_library.getPath(symbol_symbolName);
} else {
lime_utils_Log.error("There is no asset with an ID of \"" + id + "\"",{ fileName : "lime/utils/Assets.hx", lineNumber : 224, className : "lime.utils.Assets", methodName : "getPath"});
}
} else {
lime_utils_Log.error(lime_utils_Assets.__libraryNotFound(symbol_libraryName),{ fileName : "lime/utils/Assets.hx", lineNumber : 229, className : "lime.utils.Assets", methodName : "getPath"});
}
return null;
};
lime_utils_Assets.getText = function(id) {
return lime_utils_Assets.getAsset(id,"TEXT",false);
};
lime_utils_Assets.hasLibrary = function(name) {
if(name == null || name == "") {
name = "default";
}
return Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraries.h,name);
};
lime_utils_Assets.isLocal = function(id,type,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && lime_utils_Assets.cache.enabled) {
if(lime_utils_Assets.cache.exists(id,type)) {
return true;
}
}
var id1 = id;
var colonIndex = id1.indexOf(":");
var symbol_libraryName = id1.substring(0,colonIndex);
var symbol_symbolName = id1.substring(colonIndex + 1);
var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName);
if(symbol_library != null) {
return symbol_library.isLocal(symbol_symbolName,type);
} else {
return false;
}
};
lime_utils_Assets.isValidAudio = function(buffer) {
return buffer != null;
};
lime_utils_Assets.isValidImage = function(image) {
if(image != null) {
return image.buffer != null;
} else {
return false;
}
};
lime_utils_Assets.list = function(type) {
var items = [];
var library = haxe_ds_StringMap.valueIterator(lime_utils_Assets.libraries.h);
while(library.hasNext()) {
var library1 = library.next();
var libraryItems = library1.list(type);
if(libraryItems != null) {
items = items.concat(libraryItems);
}
}
return items;
};
lime_utils_Assets.loadAsset = function(id,type,useCache) {
if(useCache && lime_utils_Assets.cache.enabled) {
switch(type) {
case "BINARY":case "TEXT":
useCache = false;
break;
case "FONT":
var font = lime_utils_Assets.cache.font.h[id];
if(font != null) {
return lime_app_Future.withValue(font);
}
break;
case "IMAGE":
var image = lime_utils_Assets.cache.image.h[id];
if(lime_utils_Assets.isValidImage(image)) {
return lime_app_Future.withValue(image);
}
break;
case "MUSIC":case "SOUND":
var audio = lime_utils_Assets.cache.audio.h[id];
if(lime_utils_Assets.isValidAudio(audio)) {
return lime_app_Future.withValue(audio);
}
break;
case "TEMPLATE":
throw haxe_Exception.thrown("Not sure how to get template: " + id);
default:
return null;
}
}
var id1 = id;
var colonIndex = id1.indexOf(":");
var symbol_libraryName = id1.substring(0,colonIndex);
var symbol_symbolName = id1.substring(colonIndex + 1);
var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName);
if(symbol_library != null) {
if(symbol_library.exists(symbol_symbolName,type)) {
var future = symbol_library.loadAsset(symbol_symbolName,type);
if(useCache && lime_utils_Assets.cache.enabled) {
future.onComplete(function(asset) {
lime_utils_Assets.cache.set(id,type,asset);
});
}
return future;
} else {
return lime_app_Future.withError("There is no " + type + " asset with an ID of \"" + id + "\"");
}
} else {
return lime_app_Future.withError(lime_utils_Assets.__libraryNotFound(symbol_libraryName));
}
};
lime_utils_Assets.loadAudioBuffer = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
return lime_utils_Assets.loadAsset(id,"SOUND",useCache);
};
lime_utils_Assets.loadBytes = function(id) {
return lime_utils_Assets.loadAsset(id,"BINARY",false);
};
lime_utils_Assets.loadFont = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
return lime_utils_Assets.loadAsset(id,"FONT",useCache);
};
lime_utils_Assets.loadImage = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
return lime_utils_Assets.loadAsset(id,"IMAGE",useCache);
};
lime_utils_Assets.loadLibrary = function(id) {
var promise = new lime_app_Promise();
var library = lime_utils_Assets.getLibrary(id);
if(library != null) {
return library.load();
}
var path = id;
var rootPath = null;
if(Object.prototype.hasOwnProperty.call(lime_utils_Assets.bundlePaths.h,id)) {
lime_utils_AssetBundle.loadFromFile(lime_utils_Assets.bundlePaths.h[id]).onComplete(function(bundle) {
if(bundle == null) {
promise.error("Cannot load bundle for library \"" + id + "\"");
return;
}
var library = lime_utils_AssetLibrary.fromBundle(bundle);
if(library == null) {
promise.error("Cannot open library \"" + id + "\"");
} else {
lime_utils_Assets.libraries.h[id] = library;
library.onChange.add(($_=lime_utils_Assets.onChange,$bind($_,$_.dispatch)));
promise.completeWith(library.load());
}
}).onError(function(_) {
promise.error("There is no asset library with an ID of \"" + id + "\"");
});
} else {
if(Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraryPaths.h,id)) {
path = lime_utils_Assets.libraryPaths.h[id];
rootPath = haxe_io_Path.directory(path);
} else {
if(StringTools.endsWith(path,".bundle")) {
rootPath = path;
path += "/library.json";
} else {
rootPath = haxe_io_Path.directory(path);
}
path = lime_utils_Assets.__cacheBreak(path);
}
lime_utils_AssetManifest.loadFromFile(path,rootPath).onComplete(function(manifest) {
if(manifest == null) {
promise.error("Cannot parse asset manifest for library \"" + id + "\"");
return;
}
var library = lime_utils_AssetLibrary.fromManifest(manifest);
if(library == null) {
promise.error("Cannot open library \"" + id + "\"");
} else {
lime_utils_Assets.libraries.h[id] = library;
library.onChange.add(($_=lime_utils_Assets.onChange,$bind($_,$_.dispatch)));
promise.completeWith(library.load());
}
}).onError(function(_) {
promise.error("There is no asset library with an ID of \"" + id + "\"");
});
}
return promise.future;
};
lime_utils_Assets.loadText = function(id) {
return lime_utils_Assets.loadAsset(id,"TEXT",false);
};
lime_utils_Assets.registerLibrary = function(name,library) {
if(Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraries.h,name)) {
if(lime_utils_Assets.libraries.h[name] == library) {
return;
} else {
lime_utils_Assets.unloadLibrary(name);
}
}
if(library != null) {
library.onChange.add(lime_utils_Assets.library_onChange);
}
lime_utils_Assets.libraries.h[name] = library;
};
lime_utils_Assets.unloadLibrary = function(name) {
if(name == null || name == "") {
name = "default";
}
var library = lime_utils_Assets.libraries.h[name];
if(library != null) {
lime_utils_Assets.cache.clear(name + ":");
library.onChange.remove(lime_utils_Assets.library_onChange);
library.unload();
}
var _this = lime_utils_Assets.libraries;
if(Object.prototype.hasOwnProperty.call(_this.h,name)) {
delete(_this.h[name]);
}
};
lime_utils_Assets.__cacheBreak = function(path) {
if(lime_utils_Assets.cache.version > 0) {
if(path.indexOf("?") > -1) {
path += "&" + lime_utils_Assets.cache.version;
} else {
path += "?" + lime_utils_Assets.cache.version;
}
}
return path;
};
lime_utils_Assets.__libraryNotFound = function(name) {
if(name == null || name == "") {
name = "default";
}
if(lime_app_Application.current != null && lime_app_Application.current.__preloader != null && !lime_app_Application.current.__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 + "\"";
}
};
lime_utils_Assets.library_onChange = function() {
lime_utils_Assets.cache.clear();
lime_utils_Assets.onChange.dispatch();
};
var lime_utils__$Assets_LibrarySymbol = function(id) {
var colonIndex = id.indexOf(":");
this.libraryName = id.substring(0,colonIndex);
this.symbolName = id.substring(colonIndex + 1);
this.library = lime_utils_Assets.getLibrary(this.libraryName);
};
$hxClasses["lime.utils._Assets.LibrarySymbol"] = lime_utils__$Assets_LibrarySymbol;
lime_utils__$Assets_LibrarySymbol.__name__ = "lime.utils._Assets.LibrarySymbol";
lime_utils__$Assets_LibrarySymbol.prototype = {
library: null
,libraryName: null
,symbolName: null
,isLocal: function(type) {
return this.library.isLocal(this.symbolName,type);
}
,exists: function(type) {
return this.library.exists(this.symbolName,type);
}
,__class__: lime_utils__$Assets_LibrarySymbol
};
var lime_utils_BytePointer = {};
lime_utils_BytePointer._new = function(bytes,offset) {
if(offset == null) {
offset = 0;
}
var this1 = new lime_utils_BytePointerData(bytes,offset);
return this1;
};
lime_utils_BytePointer.set = function(this1,bytes,bufferView,buffer,offset) {
if(buffer != null) {
bytes = haxe_io_Bytes.ofData(buffer);
}
if(bytes != null || bufferView == null) {
this1.bytes = bytes;
this1.offset = offset != null ? offset : 0;
} else {
this1.bytes = haxe_io_Bytes.ofData(bufferView.buffer);
this1.offset = offset != null ? bufferView.byteOffset + offset : bufferView.byteOffset;
}
};
lime_utils_BytePointer.__arrayGet = function(this1,index) {
if(this1.bytes != null) {
return this1.bytes.b[index + this1.offset];
} else {
return 0;
}
};
lime_utils_BytePointer.__arraySet = function(this1,index,value) {
if(this1.bytes == null) {
this1.bytes.b[index + this1.offset] = value & 255;
}
return value;
};
lime_utils_BytePointer.fromArrayBufferView = function(arrayBufferView) {
if(arrayBufferView == null) {
return null;
}
return new lime_utils_BytePointerData(haxe_io_Bytes.ofData(arrayBufferView.buffer),arrayBufferView.byteOffset);
};
lime_utils_BytePointer.fromArrayBuffer = function(buffer) {
if(buffer == null) {
return null;
}
return new lime_utils_BytePointerData(haxe_io_Bytes.ofData(buffer),0);
};
lime_utils_BytePointer.fromBytes = function(bytes) {
return new lime_utils_BytePointerData(bytes,0);
};
lime_utils_BytePointer.fromBytesData = function(bytesData) {
if(bytesData == null) {
return new lime_utils_BytePointerData(null,0);
} else {
return new lime_utils_BytePointerData(haxe_io_Bytes.ofData(bytesData),0);
}
};
lime_utils_BytePointer.fromFile = function(path) {
return new lime_utils_BytePointerData(lime_utils_Bytes.fromFile(path),0);
};
lime_utils_BytePointer.fromLimeBytes = function(bytes) {
return new lime_utils_BytePointerData(bytes,0);
};
lime_utils_BytePointer.toUInt8Array = function(bytePointer) {
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 8 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
lime_utils_BytePointer.toUInt8ClampedArray = function(bytePointer) {
if(bytePointer == null || bytePointer.bytes == null) {
return null;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 8 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8ClampedArray(elements);
} else if(array != null) {
this1 = new Uint8ClampedArray(array);
} else if(vector != null) {
this1 = new Uint8ClampedArray(vector.__array);
} else if(view != null) {
this1 = new Uint8ClampedArray(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8ClampedArray(buffer,byteoffset);
} else {
this1 = new Uint8ClampedArray(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
lime_utils_BytePointer.toInt8Array = function(bytePointer) {
if(bytePointer == null || bytePointer.bytes == null) {
return null;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 8 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Int8Array(elements);
} else if(array != null) {
this1 = new Int8Array(array);
} else if(vector != null) {
this1 = new Int8Array(vector.__array);
} else if(view != null) {
this1 = new Int8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Int8Array(buffer,byteoffset);
} else {
this1 = new Int8Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
lime_utils_BytePointer.toUInt16Array = function(bytePointer) {
if(bytePointer == null || bytePointer.bytes == null) {
return null;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 16 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint16Array(elements);
} else if(array != null) {
this1 = new Uint16Array(array);
} else if(vector != null) {
this1 = new Uint16Array(vector.__array);
} else if(view != null) {
this1 = new Uint16Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint16Array(buffer,byteoffset);
} else {
this1 = new Uint16Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
lime_utils_BytePointer.toInt16Array = function(bytePointer) {
if(bytePointer == null || bytePointer.bytes == null) {
return null;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 16 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Int16Array(elements);
} else if(array != null) {
this1 = new Int16Array(array);
} else if(vector != null) {
this1 = new Int16Array(vector.__array);
} else if(view != null) {
this1 = new Int16Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Int16Array(buffer,byteoffset);
} else {
this1 = new Int16Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
lime_utils_BytePointer.toUInt32Array = function(bytePointer) {
if(bytePointer == null || bytePointer.bytes == null) {
return null;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 32 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint32Array(elements);
} else if(array != null) {
this1 = new Uint32Array(array);
} else if(vector != null) {
this1 = new Uint32Array(vector.__array);
} else if(view != null) {
this1 = new Uint32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint32Array(buffer,byteoffset);
} else {
this1 = new Uint32Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
lime_utils_BytePointer.toInt32Array = function(bytePointer) {
if(bytePointer == null || bytePointer.bytes == null) {
return null;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 32 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Int32Array(elements);
} else if(array != null) {
this1 = new Int32Array(array);
} else if(vector != null) {
this1 = new Int32Array(vector.__array);
} else if(view != null) {
this1 = new Int32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Int32Array(buffer,byteoffset);
} else {
this1 = new Int32Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
lime_utils_BytePointer.toFloat32Array = function(bytePointer) {
if(bytePointer == null || bytePointer.bytes == null) {
return null;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 32 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Float32Array(elements);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,byteoffset);
} else {
this1 = new Float32Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
lime_utils_BytePointer.toFloat64Array = function(bytePointer) {
if(bytePointer == null || bytePointer.bytes == null) {
return null;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytePointer.bytes.b.bufferValue;
var byteoffset = bytePointer.offset / 64 | 0;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Float64Array(elements);
} else if(array != null) {
this1 = new Float64Array(array);
} else if(vector != null) {
this1 = new Float64Array(vector.__array);
} else if(view != null) {
this1 = new Float64Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float64Array(buffer,byteoffset);
} else {
this1 = new Float64Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
return this1;
};
var lime_utils_BytePointerData = function(bytes,offset) {
this.bytes = bytes;
this.offset = offset;
};
$hxClasses["lime.utils.BytePointerData"] = lime_utils_BytePointerData;
lime_utils_BytePointerData.__name__ = "lime.utils.BytePointerData";
lime_utils_BytePointerData.prototype = {
bytes: null
,offset: null
,__class__: lime_utils_BytePointerData
};
var lime_utils_Bytes = {};
lime_utils_Bytes._new = function(length,bytesData) {
var this1 = new haxe_io_Bytes(bytesData);
return this1;
};
lime_utils_Bytes.alloc = function(length) {
return new haxe_io_Bytes(new ArrayBuffer(length));
};
lime_utils_Bytes.compress = function(this1,algorithm) {
switch(algorithm._hx_index) {
case 0:
return lime__$internal_format_Deflate.compress(this1);
case 1:
return lime__$internal_format_GZip.compress(this1);
case 2:
return lime__$internal_format_LZMA.compress(this1);
case 3:
return lime__$internal_format_Zlib.compress(this1);
}
};
lime_utils_Bytes.decompress = function(this1,algorithm) {
switch(algorithm._hx_index) {
case 0:
return lime__$internal_format_Deflate.decompress(this1);
case 1:
return lime__$internal_format_GZip.decompress(this1);
case 2:
return lime__$internal_format_LZMA.decompress(this1);
case 3:
return lime__$internal_format_Zlib.decompress(this1);
}
};
lime_utils_Bytes.fastGet = function(b,pos) {
return b.bytes[pos];
};
lime_utils_Bytes.fromBytes = function(bytes) {
if(bytes == null) {
return null;
}
return lime_utils_Bytes._new(bytes.length,bytes.b.bufferValue);
};
lime_utils_Bytes.fromFile = function(path) {
return null;
};
lime_utils_Bytes.loadFromBytes = function(bytes) {
return lime_app_Future.withValue(lime_utils_Bytes.fromBytes(bytes));
};
lime_utils_Bytes.loadFromFile = function(path) {
var request = new lime_net__$HTTPRequest_$lime_$utils_$Bytes();
return request.load(path);
};
lime_utils_Bytes.ofData = function(b) {
var bytes = haxe_io_Bytes.ofData(b);
return lime_utils_Bytes._new(bytes.length,bytes.b.bufferValue);
};
lime_utils_Bytes.ofString = function(s) {
var bytes = haxe_io_Bytes.ofString(s);
return lime_utils_Bytes._new(bytes.length,bytes.b.bufferValue);
};
var lime_utils_CompressionAlgorithm = $hxEnums["lime.utils.CompressionAlgorithm"] = { __ename__ : "lime.utils.CompressionAlgorithm", __constructs__ : ["DEFLATE","GZIP","LZMA","ZLIB"]
,DEFLATE: {_hx_index:0,__enum__:"lime.utils.CompressionAlgorithm",toString:$estr}
,GZIP: {_hx_index:1,__enum__:"lime.utils.CompressionAlgorithm",toString:$estr}
,LZMA: {_hx_index:2,__enum__:"lime.utils.CompressionAlgorithm",toString:$estr}
,ZLIB: {_hx_index:3,__enum__:"lime.utils.CompressionAlgorithm",toString:$estr}
};
var lime_utils_DataPointer = {};
lime_utils_DataPointer._new = function(data) {
var this1 = data;
return this1;
};
lime_utils_DataPointer.fromFloat = function(value) {
return value;
};
lime_utils_DataPointer.fromBytesPointer = function(pointer) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_utils_DataPointer.fromArrayBufferView = function(arrayBufferView) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_utils_DataPointer.fromArrayBuffer = function(buffer) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_utils_DataPointer.fromBytes = function(bytes) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_utils_DataPointer.fromBytesData = function(bytesData) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_utils_DataPointer.fromLimeBytes = function(bytes) {
return lime_utils_DataPointer.fromBytes(bytes);
};
lime_utils_DataPointer.fromCFFIPointer = function(pointer) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_utils_DataPointer.fromFile = function(path) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_utils_DataPointer.__withOffset = function(data,offset) {
return lime_utils_DataPointer.fromFloat(0);
};
lime_utils_DataPointer.equals = function(a,b) {
return a == b;
};
lime_utils_DataPointer.equalsPointer = function(a,b) {
return a == b;
};
lime_utils_DataPointer.greaterThan = function(a,b) {
return a > b;
};
lime_utils_DataPointer.greaterThanPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) > lime_system_CFFIPointer.get(b);
};
lime_utils_DataPointer.greaterThanOrEqual = function(a,b) {
return a >= b;
};
lime_utils_DataPointer.greaterThanOrEqualPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) >= lime_system_CFFIPointer.get(b);
};
lime_utils_DataPointer.lessThan = function(a,b) {
return a < b;
};
lime_utils_DataPointer.lessThanPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) < lime_system_CFFIPointer.get(b);
};
lime_utils_DataPointer.lessThanOrEqual = function(a,b) {
return a <= b;
};
lime_utils_DataPointer.lessThanOrEqualPointer = function(a,b) {
return lime_system_CFFIPointer.get(a) <= lime_system_CFFIPointer.get(b);
};
lime_utils_DataPointer.notEquals = function(a,b) {
return a != b;
};
lime_utils_DataPointer.notEqualsPointer = function(a,b) {
return a != b;
};
lime_utils_DataPointer.plus = function(a,b) {
return lime_utils_DataPointer.__withOffset(a,b);
};
lime_utils_DataPointer.plusPointer = function(a,b) {
return lime_utils_DataPointer.__withOffset(a,b | 0);
};
lime_utils_DataPointer.minus = function(a,b) {
return lime_utils_DataPointer.__withOffset(a,-b);
};
lime_utils_DataPointer.minusPointer = function(a,b) {
return lime_utils_DataPointer.__withOffset(a,-(b | 0));
};
var lime_utils_Float32Array = {};
lime_utils_Float32Array.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_Float32Array.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
byteOffset = 0;
}
if(byteOffset == null) {
return new Float32Array(bytes.b.bufferValue);
}
if(len == null) {
return new Float32Array(bytes.b.bufferValue,byteOffset);
}
return new Float32Array(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_Float32Array.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_Float32Array.toString = function(this1) {
if(this1 != null) {
return "Float32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
var lime_utils_Float64Array = {};
lime_utils_Float64Array.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_Float64Array.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
byteOffset = 0;
}
if(byteOffset == null) {
return new Float64Array(bytes.b.bufferValue);
}
if(len == null) {
return new Float64Array(bytes.b.bufferValue,byteOffset);
}
return new Float64Array(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_Float64Array.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_Float64Array.toString = function(this1) {
if(this1 != null) {
return "Float64Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
var lime_utils_Int16Array = {};
lime_utils_Int16Array.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_Int16Array.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
byteOffset = 0;
}
if(byteOffset == null) {
return new Int16Array(bytes.b.bufferValue);
}
if(len == null) {
return new Int16Array(bytes.b.bufferValue,byteOffset);
}
return new Int16Array(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_Int16Array.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_Int16Array.toString = function(this1) {
if(this1 != null) {
return "Int16Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
var lime_utils_Int32Array = {};
lime_utils_Int32Array.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_Int32Array.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
byteOffset = 0;
}
if(byteOffset == null) {
return new Int32Array(bytes.b.bufferValue);
}
if(len == null) {
return new Int32Array(bytes.b.bufferValue,byteOffset);
}
return new Int32Array(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_Int32Array.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_Int32Array.toString = function(this1) {
if(this1 != null) {
return "Int32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
var lime_utils_Int8Array = {};
lime_utils_Int8Array.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_Int8Array.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
byteOffset = 0;
}
return new Int8Array(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_Int8Array.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_Int8Array.toString = function(this1) {
if(this1 != null) {
return "Int8Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
var lime_utils_Log = function() { };
$hxClasses["lime.utils.Log"] = lime_utils_Log;
lime_utils_Log.__name__ = "lime.utils.Log";
lime_utils_Log.level = null;
lime_utils_Log.debug = function(message,info) {
if(lime_utils_Log.level >= 4) {
console.debug("[" + info.className + "] " + Std.string(message));
}
};
lime_utils_Log.error = function(message,info) {
if(lime_utils_Log.level >= 1) {
var message1 = "[" + info.className + "] ERROR: " + Std.string(message);
if(lime_utils_Log.throwErrors) {
throw haxe_Exception.thrown(message1);
} else {
console.error(message1);
}
}
};
lime_utils_Log.info = function(message,info) {
if(lime_utils_Log.level >= 3) {
console.info("[" + info.className + "] " + Std.string(message));
}
};
lime_utils_Log.print = function(message) {
console.log(message);
};
lime_utils_Log.println = function(message) {
console.log(message);
};
lime_utils_Log.verbose = function(message,info) {
if(lime_utils_Log.level >= 5) {
var message1 = "[" + info.className + "] " + Std.string(message);
console.log(message1);
}
};
lime_utils_Log.warn = function(message,info) {
if(lime_utils_Log.level >= 2) {
console.warn("[" + info.className + "] WARNING: " + Std.string(message));
}
};
var lime_utils_LogLevel = {};
lime_utils_LogLevel.gt = function(a,b) {
return a > b;
};
lime_utils_LogLevel.gte = function(a,b) {
return a >= b;
};
lime_utils_LogLevel.lt = function(a,b) {
return a < b;
};
lime_utils_LogLevel.lte = function(a,b) {
return a <= b;
};
var lime_utils_Preloader = function() {
this.bytesTotalCache = new haxe_ds_StringMap();
this.bytesLoadedCache2 = new haxe_ds_StringMap();
this.bytesLoadedCache = new haxe_ds_ObjectMap();
this.onProgress = new lime_app__$Event_$Int_$Int_$Void();
this.onComplete = new lime_app__$Event_$Void_$Void();
this.bytesLoaded = 0;
this.bytesTotal = 0;
this.libraries = [];
this.libraryNames = [];
this.onProgress.add($bind(this,this.update));
};
$hxClasses["lime.utils.Preloader"] = lime_utils_Preloader;
lime_utils_Preloader.__name__ = "lime.utils.Preloader";
lime_utils_Preloader.prototype = {
complete: null
,onComplete: null
,onProgress: null
,bytesLoaded: null
,bytesLoadedCache: null
,bytesLoadedCache2: null
,bytesTotal: null
,bytesTotalCache: null
,initLibraryNames: null
,libraries: null
,libraryNames: null
,loadedLibraries: null
,loadedStage: null
,preloadComplete: null
,preloadStarted: null
,simulateProgress: null
,addLibrary: function(library) {
this.libraries.push(library);
}
,addLibraryName: function(name) {
if(this.libraryNames.indexOf(name) == -1) {
this.libraryNames.push(name);
}
}
,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 _g = 0;
var _g1 = this.libraries;
while(_g < _g1.length) {
var library = [_g1[_g]];
++_g;
lime_utils_Log.verbose("Preloading asset library",{ fileName : "lime/utils/Preloader.hx", lineNumber : 132, className : "lime.utils.Preloader", methodName : "load"});
library[0].load().onProgress((function(library) {
return function(loaded,total) {
if(_gthis.bytesLoadedCache.h.__keys__[library[0].__id__] == null) {
_gthis.bytesLoaded += loaded;
} else {
_gthis.bytesLoaded += loaded - _gthis.bytesLoadedCache.h[library[0].__id__];
}
_gthis.bytesLoadedCache.set(library[0],loaded);
if(!_gthis.simulateProgress) {
_gthis.onProgress.dispatch(_gthis.bytesLoaded,_gthis.bytesTotal);
}
};
})(library)).onComplete((function(library) {
return function(_) {
if(_gthis.bytesLoadedCache.h.__keys__[library[0].__id__] == null) {
_gthis.bytesLoaded += library[0].bytesTotal;
} else {
_gthis.bytesLoaded += library[0].bytesTotal - _gthis.bytesLoadedCache.h[library[0].__id__];
}
_gthis.loadedAssetLibrary();
};
})(library)).onError((function() {
return function(e) {
lime_utils_Log.error(e,{ fileName : "lime/utils/Preloader.hx", lineNumber : 168, className : "lime.utils.Preloader", methodName : "load"});
};
})());
}
var _g = 0;
var _g1 = this.libraryNames;
while(_g < _g1.length) {
var name = _g1[_g];
++_g;
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.verbose("Loaded asset library: " + name + " [" + current + "/" + totalLibraries + "]",{ fileName : "lime/utils/Preloader.hx", lineNumber : 195, className : "lime.utils.Preloader", methodName : "loadedAssetLibrary"});
} else {
lime_utils_Log.verbose("Loaded asset library [" + current + "/" + totalLibraries + "]",{ fileName : "lime/utils/Preloader.hx", lineNumber : 199, className : "lime.utils.Preloader", methodName : "loadedAssetLibrary"});
}
this.updateProgress();
}
,start: function() {
if(this.complete || this.simulateProgress || !this.preloadComplete) {
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.verbose("Preloading asset library: " + name[0],{ fileName : "lime/utils/Preloader.hx", lineNumber : 236, className : "lime.utils.Preloader", methodName : "updateProgress"});
lime_utils_Assets.loadLibrary(name[0]).onProgress((function(name) {
return function(loaded,total) {
if(total > 0) {
if(!Object.prototype.hasOwnProperty.call(_gthis.bytesTotalCache.h,name[0])) {
_gthis.bytesTotalCache.h[name[0]] = total;
_gthis.bytesTotal += total - 200;
}
if(loaded > total) {
loaded = total;
}
if(!Object.prototype.hasOwnProperty.call(_gthis.bytesLoadedCache2.h,name[0])) {
_gthis.bytesLoaded += loaded;
} else {
_gthis.bytesLoaded += loaded - _gthis.bytesLoadedCache2.h[name[0]];
}
_gthis.bytesLoadedCache2.h[name[0]] = loaded;
if(!_gthis.simulateProgress) {
_gthis.onProgress.dispatch(_gthis.bytesLoaded,_gthis.bytesTotal);
}
}
};
})(name)).onComplete((function(name) {
return function(library) {
var total = 200;
if(Object.prototype.hasOwnProperty.call(_gthis.bytesTotalCache.h,name[0])) {
total = _gthis.bytesTotalCache.h[name[0]];
}
if(!Object.prototype.hasOwnProperty.call(_gthis.bytesLoadedCache2.h,name[0])) {
_gthis.bytesLoaded += total;
} else {
_gthis.bytesLoaded += total - _gthis.bytesLoadedCache2.h[name[0]];
}
_gthis.loadedAssetLibrary(name[0]);
};
})(name)).onError((function() {
return function(e) {
lime_utils_Log.error(e,{ fileName : "lime/utils/Preloader.hx", lineNumber : 290, className : "lime.utils.Preloader", methodName : "updateProgress"});
};
})());
}
}
if(!this.simulateProgress && this.loadedLibraries == this.libraries.length + this.libraryNames.length) {
if(!this.preloadComplete) {
this.preloadComplete = true;
lime_utils_Log.verbose("Preload complete",{ fileName : "lime/utils/Preloader.hx", lineNumber : 301, className : "lime.utils.Preloader", methodName : "updateProgress"});
}
this.start();
}
}
,__class__: lime_utils_Preloader
};
var lime_utils_Resource = {};
lime_utils_Resource._new = function(size) {
if(size == null) {
size = 0;
}
var this1 = new haxe_io_Bytes(new ArrayBuffer(size));
return this1;
};
lime_utils_Resource.__fromString = function(value) {
return haxe_io_Bytes.ofString(value);
};
lime_utils_Resource.__toString = function(value) {
return value.toString();
};
var lime_utils_UInt16Array = {};
lime_utils_UInt16Array.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_UInt16Array.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
byteOffset = 0;
}
if(byteOffset == null) {
return new Uint16Array(bytes.b.bufferValue);
}
if(len == null) {
return new Uint16Array(bytes.b.bufferValue,byteOffset);
}
return new Uint16Array(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_UInt16Array.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_UInt16Array.toString = function(this1) {
if(this1 != null) {
return "UInt16Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
var lime_utils_UInt32Array = {};
lime_utils_UInt32Array.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_UInt32Array.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
byteOffset = 0;
}
if(byteOffset == null) {
return new Uint32Array(bytes.b.bufferValue);
}
if(len == null) {
return new Uint32Array(bytes.b.bufferValue,byteOffset);
}
return new Uint32Array(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_UInt32Array.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_UInt32Array.toString = function(this1) {
if(this1 != null) {
return "UInt32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
var lime_utils_UInt8Array = {};
lime_utils_UInt8Array.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_UInt8Array.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
return new Uint8Array(bytes.b.bufferValue);
}
if(len == null) {
return new Uint8Array(bytes.b.bufferValue,byteOffset);
}
return new Uint8Array(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_UInt8Array.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_UInt8Array.toString = function(this1) {
if(this1 != null) {
return "UInt8Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
var lime_utils_UInt8ClampedArray = {};
lime_utils_UInt8ClampedArray.toArrayBufferView = function(this1) {
return this1;
};
lime_utils_UInt8ClampedArray.fromBytes = function(bytes,byteOffset,len) {
if(byteOffset == null) {
byteOffset = 0;
}
if(byteOffset == null) {
return new Uint8ClampedArray(bytes.b.bufferValue);
}
if(len == null) {
return new Uint8ClampedArray(bytes.b.bufferValue,byteOffset);
}
return new Uint8ClampedArray(bytes.b.bufferValue,byteOffset,len);
};
lime_utils_UInt8ClampedArray.toBytes = function(this1) {
return new haxe_io_Bytes(new Uint8Array(this1.buffer));
};
lime_utils_UInt8ClampedArray.toString = function(this1) {
if(this1 != null) {
return "UInt8ClampedArray [byteLength:" + this1.byteLength + ", length:" + this1.length + "]";
} else {
return null;
}
};
lime_utils_UInt8ClampedArray._clamp = function(_in) {
var _out = _in | 0;
if(_out > 255) {
_out = 255;
}
if(_out < 0) {
return 0;
} else {
return _out;
}
};
var openfl_Lib = function() { };
$hxClasses["openfl.Lib"] = openfl_Lib;
openfl_Lib.__name__ = "openfl.Lib";
openfl_Lib.__properties__ = {get_current:"get_current",get_application:"get_application"};
openfl_Lib.as = function(v,c) {
if(js_Boot.__instanceof(v,c)) {
return v;
} else {
return null;
}
};
openfl_Lib.attach = function(name) {
return new openfl_display_MovieClip();
};
openfl_Lib.clearInterval = function(id) {
if(openfl_Lib.__timers.h.hasOwnProperty(id)) {
var timer = openfl_Lib.__timers.h[id];
timer.stop();
openfl_Lib.__timers.remove(id);
}
};
openfl_Lib.clearTimeout = function(id) {
if(openfl_Lib.__timers.h.hasOwnProperty(id)) {
var timer = openfl_Lib.__timers.h[id];
timer.stop();
openfl_Lib.__timers.remove(id);
}
};
openfl_Lib.getDefinitionByName = function(name) {
if(name == null) {
return null;
}
return $hxClasses[name];
};
openfl_Lib.getQualifiedClassName = function(value) {
if(value == null) {
return null;
}
var ref = js_Boot.__instanceof(value,Class) ? value : js_Boot.getClass(value);
if(ref == null) {
if(typeof(value) == "boolean" || value == Bool) {
return "Bool";
} else if(typeof(value) == "number" && ((value | 0) === value) || value == Int) {
return "Int";
} else if(typeof(value) == "number" || value == Float) {
return "Float";
} else {
return null;
}
}
return ref.__name__;
};
openfl_Lib.getQualifiedSuperclassName = function(value) {
if(value == null) {
return null;
}
var ref = js_Boot.__instanceof(value,Class) ? value : js_Boot.getClass(value);
if(ref == null) {
return null;
}
var parentRef = ref.__super__;
if(parentRef == null) {
return null;
}
return parentRef.__name__;
};
openfl_Lib.getTimer = function() {
return lime_system_System.getTimer();
};
openfl_Lib.getURL = function(request,target) {
openfl_Lib.navigateToURL(request,target);
};
openfl_Lib.navigateToURL = function(request,$window) {
if($window == null) {
$window = "_blank";
}
var uri = request.url;
if(Type.typeof(request.data) == ValueType.TObject) {
var query = "";
var fields = Reflect.fields(request.data);
var _g = 0;
while(_g < fields.length) {
var field = fields[_g];
++_g;
if(query.length > 0) {
query += "&";
}
var query1 = encodeURIComponent(field) + "=";
var s = Std.string(Reflect.field(request.data,field));
query += query1 + encodeURIComponent(s);
}
if(uri.indexOf("?") > -1) {
uri += "&" + query;
} else {
uri += "?" + query;
}
}
lime_system_System.openURL(uri,$window);
};
openfl_Lib.notImplemented = function(posInfo) {
var api = posInfo.className + "." + posInfo.methodName;
if(!Object.prototype.hasOwnProperty.call(openfl_Lib.__sentWarnings.h,api)) {
openfl_Lib.__sentWarnings.h[api] = true;
lime_utils_Log.warn(posInfo.methodName + " is not implemented",posInfo);
}
};
openfl_Lib.preventDefaultTouchMove = function() {
window.document.addEventListener("touchmove",function(evt) {
evt.preventDefault();
},false);
};
openfl_Lib.sendToURL = function(request) {
var urlLoader = new openfl_net_URLLoader();
urlLoader.load(request);
};
openfl_Lib.setInterval = function(closure,delay,args) {
var id = ++openfl_Lib.__lastTimerID;
var timer = new haxe_Timer(delay);
openfl_Lib.__timers.h[id] = timer;
timer.run = function() {
closure.apply(closure,args == null ? [] : args);
};
return id;
};
openfl_Lib.setTimeout = function(closure,delay,args) {
var id = ++openfl_Lib.__lastTimerID;
var this1 = openfl_Lib.__timers;
var v = haxe_Timer.delay(function() {
closure.apply(closure,args == null ? [] : args);
},delay);
this1.h[id] = v;
return id;
};
openfl_Lib.trace = function(arg) {
haxe_Log.trace(arg,{ fileName : "openfl/Lib.hx", lineNumber : 260, className : "openfl.Lib", methodName : "trace"});
};
openfl_Lib.get_application = function() {
return openfl__$internal_Lib.application;
};
openfl_Lib.get_current = function() {
if(openfl__$internal_Lib.current == null) {
openfl__$internal_Lib.current = new openfl_display_MovieClip();
}
return openfl__$internal_Lib.current;
};
var openfl__$Vector_IVector = function() { };
$hxClasses["openfl._Vector.IVector"] = openfl__$Vector_IVector;
openfl__$Vector_IVector.__name__ = "openfl._Vector.IVector";
openfl__$Vector_IVector.__isInterface__ = true;
openfl__$Vector_IVector.prototype = {
get_length: null
,set_length: null
,fixed: null
,concat: null
,copy: null
,filter: null
,get: null
,indexOf: null
,insertAt: null
,iterator: null
,join: null
,lastIndexOf: null
,pop: null
,push: null
,removeAt: null
,reverse: null
,set: null
,shift: null
,slice: null
,sort: null
,splice: null
,toString: null
,unshift: null
,__class__: openfl__$Vector_IVector
,__properties__: {set_length:"set_length",get_length:"get_length"}
};
var openfl__$Vector_BoolVector = function(length,fixed,array) {
if(fixed == null) {
fixed = false;
}
if(length == null) {
length = 0;
}
if(array == null) {
array = [];
}
this.__array = array;
if(length > 0) {
this.set_length(length);
}
this.fixed = fixed;
};
$hxClasses["openfl._Vector.BoolVector"] = openfl__$Vector_BoolVector;
openfl__$Vector_BoolVector.__name__ = "openfl._Vector.BoolVector";
openfl__$Vector_BoolVector.__interfaces__ = [openfl__$Vector_IVector];
openfl__$Vector_BoolVector.prototype = {
fixed: null
,__array: null
,concat: function(a) {
if(a == null) {
return new openfl__$Vector_BoolVector(0,false,this.__array.slice());
} else {
var other = a;
if(other.__array.length > 0) {
return new openfl__$Vector_BoolVector(0,false,this.__array.concat(other.__array));
} else {
return new openfl__$Vector_BoolVector(0,false,this.__array.slice());
}
}
}
,copy: function() {
return new openfl__$Vector_BoolVector(0,this.fixed,this.__array.slice());
}
,filter: function(callback) {
var tmp = this.fixed;
var _g = [];
var _g1 = 0;
var _g2 = this.__array;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
if(callback(v)) {
_g.push(v);
}
}
return new openfl__$Vector_BoolVector(0,tmp,_g);
}
,get: function(index) {
if(index >= this.__array.length) {
return false;
} else {
return this.__array[index];
}
}
,indexOf: function(x,from) {
if(from == null) {
from = 0;
}
var _g = from;
var _g1 = this.__array.length;
while(_g < _g1) {
var i = _g++;
if(this.__array[i] == x) {
return i;
}
}
return -1;
}
,insertAt: function(index,element) {
if(!this.fixed || index < this.__array.length) {
this.__array.splice(index,0,element);
}
}
,iterator: function() {
return new haxe_iterators_ArrayIterator(this.__array);
}
,join: function(sep) {
if(sep == null) {
sep = ",";
}
return this.__array.join(sep);
}
,lastIndexOf: function(x,from) {
var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from;
while(i >= 0) {
if(this.__array[i] == x) {
return i;
}
--i;
}
return -1;
}
,pop: function() {
if(!this.fixed) {
return this.__array.pop();
} else {
return null;
}
}
,push: function(x) {
if(!this.fixed) {
return this.__array.push(x);
} else {
return this.__array.length;
}
}
,removeAt: function(index) {
if(!this.fixed || index < this.__array.length) {
return this.__array.splice(index,1)[0];
}
return false;
}
,reverse: function() {
this.__array.reverse();
return this;
}
,set: function(index,value) {
if(!this.fixed || index < this.__array.length) {
return this.__array[index] = value;
} else {
return value;
}
}
,shift: function() {
if(!this.fixed) {
return this.__array.shift();
} else {
return null;
}
}
,slice: function(startIndex,endIndex) {
if(startIndex == null) {
startIndex = 0;
}
if(endIndex == null) {
endIndex = 16777215;
}
return new openfl__$Vector_BoolVector(0,false,this.__array.slice(startIndex,endIndex));
}
,sort: function(f) {
this.__array.sort(f);
}
,splice: function(pos,len) {
return new openfl__$Vector_BoolVector(0,false,this.__array.splice(pos,len));
}
,toJSON: function() {
return this.__array;
}
,toString: function() {
if(this.__array != null) {
return this.__array.toString();
} else {
return null;
}
}
,unshift: function(x) {
if(!this.fixed) {
this.__array.unshift(x);
}
}
,get_length: function() {
return this.__array.length;
}
,set_length: function(value) {
if(!this.fixed) {
var currentLength = this.__array.length;
if(value < 0) {
value = 0;
}
if(value > currentLength) {
var _g = currentLength;
var _g1 = value;
while(_g < _g1) {
var i = _g++;
this.__array[i] = false;
}
} else {
while(this.__array.length > value) this.__array.pop();
}
}
return this.__array.length;
}
,__class__: openfl__$Vector_BoolVector
,__properties__: {set_length:"set_length",get_length:"get_length"}
};
var openfl__$Vector_FloatVector = function(length,fixed,array,forceCopy) {
if(forceCopy == null) {
forceCopy = false;
}
if(fixed == null) {
fixed = false;
}
if(length == null) {
length = 0;
}
if(forceCopy) {
this.__array = [];
if(array != null) {
var _g = 0;
var _g1 = array.length;
while(_g < _g1) {
var i = _g++;
this.__array[i] = array[i];
}
}
} else {
if(array == null) {
array = [];
}
this.__array = array;
}
if(length > 0) {
this.set_length(length);
}
this.fixed = fixed;
};
$hxClasses["openfl._Vector.FloatVector"] = openfl__$Vector_FloatVector;
openfl__$Vector_FloatVector.__name__ = "openfl._Vector.FloatVector";
openfl__$Vector_FloatVector.__interfaces__ = [openfl__$Vector_IVector];
openfl__$Vector_FloatVector.prototype = {
fixed: null
,__array: null
,concat: function(a) {
if(a == null) {
return new openfl__$Vector_FloatVector(0,false,this.__array.slice());
} else {
var other = a;
if(other.__array.length > 0) {
return new openfl__$Vector_FloatVector(0,false,this.__array.concat(other.__array));
} else {
return new openfl__$Vector_FloatVector(0,false,this.__array.slice());
}
}
}
,copy: function() {
return new openfl__$Vector_FloatVector(0,this.fixed,this.__array.slice());
}
,filter: function(callback) {
var tmp = this.fixed;
var _g = [];
var _g1 = 0;
var _g2 = this.__array;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
if(callback(v)) {
_g.push(v);
}
}
return new openfl__$Vector_FloatVector(0,tmp,_g);
}
,get: function(index) {
return this.__array[index];
}
,indexOf: function(x,from) {
if(from == null) {
from = 0;
}
var _g = from;
var _g1 = this.__array.length;
while(_g < _g1) {
var i = _g++;
if(this.__array[i] == x) {
return i;
}
}
return -1;
}
,insertAt: function(index,element) {
if(!this.fixed || index < this.__array.length) {
this.__array.splice(index,0,element);
}
}
,iterator: function() {
return new haxe_iterators_ArrayIterator(this.__array);
}
,join: function(sep) {
if(sep == null) {
sep = ",";
}
return this.__array.join(sep);
}
,lastIndexOf: function(x,from) {
var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from;
while(i >= 0) {
if(this.__array[i] == x) {
return i;
}
--i;
}
return -1;
}
,pop: function() {
if(!this.fixed) {
return this.__array.pop();
} else {
return null;
}
}
,push: function(x) {
if(!this.fixed) {
return this.__array.push(x);
} else {
return this.__array.length;
}
}
,removeAt: function(index) {
if(!this.fixed || index < this.__array.length) {
return this.__array.splice(index,1)[0];
}
return 0;
}
,reverse: function() {
this.__array.reverse();
return this;
}
,set: function(index,value) {
if(!this.fixed || index < this.__array.length) {
return this.__array[index] = value;
} else {
return value;
}
}
,shift: function() {
if(!this.fixed) {
return this.__array.shift();
} else {
return null;
}
}
,slice: function(startIndex,endIndex) {
if(startIndex == null) {
startIndex = 0;
}
if(endIndex == null) {
endIndex = 16777215;
}
return new openfl__$Vector_FloatVector(0,false,this.__array.slice(startIndex,endIndex));
}
,sort: function(f) {
this.__array.sort(f);
}
,splice: function(pos,len) {
return new openfl__$Vector_FloatVector(0,false,this.__array.splice(pos,len));
}
,toJSON: function() {
return this.__array;
}
,toString: function() {
if(this.__array != null) {
return this.__array.toString();
} else {
return null;
}
}
,unshift: function(x) {
if(!this.fixed) {
this.__array.unshift(x);
}
}
,get_length: function() {
return this.__array.length;
}
,set_length: function(value) {
if(value != this.__array.length && !this.fixed) {
var currentLength = this.__array.length;
if(value < 0) {
value = 0;
}
if(value > currentLength) {
var _g = currentLength;
var _g1 = value;
while(_g < _g1) {
var i = _g++;
this.__array[i] = 0;
}
} else {
while(this.__array.length > value) this.__array.pop();
}
}
return this.__array.length;
}
,__class__: openfl__$Vector_FloatVector
,__properties__: {set_length:"set_length",get_length:"get_length"}
};
var openfl__$Vector_FunctionVector = function(length,fixed,array) {
if(fixed == null) {
fixed = false;
}
if(length == null) {
length = 0;
}
if(array == null) {
array = [];
}
this.__array = array;
if(length > 0) {
this.set_length(length);
}
this.fixed = fixed;
};
$hxClasses["openfl._Vector.FunctionVector"] = openfl__$Vector_FunctionVector;
openfl__$Vector_FunctionVector.__name__ = "openfl._Vector.FunctionVector";
openfl__$Vector_FunctionVector.__interfaces__ = [openfl__$Vector_IVector];
openfl__$Vector_FunctionVector.prototype = {
fixed: null
,__array: null
,concat: function(a) {
if(a == null) {
return new openfl__$Vector_FunctionVector(0,false,this.__array.slice());
} else {
var other = a;
if(other.__array.length > 0) {
return new openfl__$Vector_FunctionVector(0,false,this.__array.concat(other.__array));
} else {
return new openfl__$Vector_FunctionVector(0,false,this.__array.slice());
}
}
}
,copy: function() {
return new openfl__$Vector_FunctionVector(0,this.fixed,this.__array.slice());
}
,filter: function(callback) {
var tmp = this.fixed;
var _g = [];
var _g1 = 0;
var _g2 = this.__array;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
if(callback(v)) {
_g.push(v);
}
}
return new openfl__$Vector_FunctionVector(0,tmp,_g);
}
,get: function(index) {
if(index >= this.__array.length) {
return null;
} else {
return this.__array[index];
}
}
,indexOf: function(x,from) {
if(from == null) {
from = 0;
}
var _g = from;
var _g1 = this.__array.length;
while(_g < _g1) {
var i = _g++;
if(Reflect.compareMethods(this.__array[i],x)) {
return i;
}
}
return -1;
}
,insertAt: function(index,element) {
if(!this.fixed || index < this.__array.length) {
this.__array.splice(index,0,element);
}
}
,iterator: function() {
return new haxe_iterators_ArrayIterator(this.__array);
}
,join: function(sep) {
if(sep == null) {
sep = ",";
}
return this.__array.join(sep);
}
,lastIndexOf: function(x,from) {
var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from;
while(i >= 0) {
if(Reflect.compareMethods(this.__array[i],x)) {
return i;
}
--i;
}
return -1;
}
,pop: function() {
if(!this.fixed) {
return this.__array.pop();
} else {
return null;
}
}
,push: function(x) {
if(!this.fixed) {
return this.__array.push(x);
} else {
return this.__array.length;
}
}
,removeAt: function(index) {
if(!this.fixed || index < this.__array.length) {
return this.__array.splice(index,1)[0];
}
return null;
}
,reverse: function() {
this.__array.reverse();
return this;
}
,set: function(index,value) {
if(!this.fixed || index < this.__array.length) {
return this.__array[index] = value;
} else {
return value;
}
}
,shift: function() {
if(!this.fixed) {
return this.__array.shift();
} else {
return null;
}
}
,slice: function(startIndex,endIndex) {
if(startIndex == null) {
startIndex = 0;
}
if(endIndex == null) {
endIndex = 16777215;
}
return new openfl__$Vector_FunctionVector(0,false,this.__array.slice(startIndex,endIndex));
}
,sort: function(f) {
this.__array.sort(f);
}
,splice: function(pos,len) {
return new openfl__$Vector_FunctionVector(0,false,this.__array.splice(pos,len));
}
,toJSON: function() {
return this.__array;
}
,toString: function() {
if(this.__array != null) {
return this.__array.toString();
} else {
return null;
}
}
,unshift: function(x) {
if(!this.fixed) {
this.__array.unshift(x);
}
}
,get_length: function() {
return this.__array.length;
}
,set_length: function(value) {
if(!this.fixed) {
var currentLength = this.__array.length;
if(value < 0) {
value = 0;
}
if(value > currentLength) {
var _g = currentLength;
var _g1 = value;
while(_g < _g1) {
var i = _g++;
this.__array[i] = null;
}
} else {
while(this.__array.length > value) this.__array.pop();
}
}
return this.__array.length;
}
,__class__: openfl__$Vector_FunctionVector
,__properties__: {set_length:"set_length",get_length:"get_length"}
};
var openfl__$Vector_IntVector = function(length,fixed,array) {
if(fixed == null) {
fixed = false;
}
if(length == null) {
length = 0;
}
if(array == null) {
array = [];
}
this.__array = array;
if(length > 0) {
this.set_length(length);
}
this.fixed = fixed;
};
$hxClasses["openfl._Vector.IntVector"] = openfl__$Vector_IntVector;
openfl__$Vector_IntVector.__name__ = "openfl._Vector.IntVector";
openfl__$Vector_IntVector.__interfaces__ = [openfl__$Vector_IVector];
openfl__$Vector_IntVector.prototype = {
fixed: null
,__array: null
,concat: function(a) {
if(a == null) {
return new openfl__$Vector_IntVector(0,false,this.__array.slice());
} else {
var other = a;
if(other.__array.length > 0) {
return new openfl__$Vector_IntVector(0,false,this.__array.concat(other.__array));
} else {
return new openfl__$Vector_IntVector(0,false,this.__array.slice());
}
}
}
,copy: function() {
return new openfl__$Vector_IntVector(0,this.fixed,this.__array.slice());
}
,filter: function(callback) {
var tmp = this.fixed;
var _g = [];
var _g1 = 0;
var _g2 = this.__array;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
if(callback(v)) {
_g.push(v);
}
}
return new openfl__$Vector_IntVector(0,tmp,_g);
}
,get: function(index) {
return this.__array[index];
}
,indexOf: function(x,from) {
if(from == null) {
from = 0;
}
var _g = from;
var _g1 = this.__array.length;
while(_g < _g1) {
var i = _g++;
if(this.__array[i] == x) {
return i;
}
}
return -1;
}
,insertAt: function(index,element) {
if(!this.fixed || index < this.__array.length) {
this.__array.splice(index,0,element);
}
}
,iterator: function() {
return new haxe_iterators_ArrayIterator(this.__array);
}
,join: function(sep) {
if(sep == null) {
sep = ",";
}
return this.__array.join(sep);
}
,lastIndexOf: function(x,from) {
var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from;
while(i >= 0) {
if(this.__array[i] == x) {
return i;
}
--i;
}
return -1;
}
,pop: function() {
if(!this.fixed) {
return this.__array.pop();
} else {
return null;
}
}
,push: function(x) {
if(!this.fixed) {
return this.__array.push(x);
} else {
return this.__array.length;
}
}
,removeAt: function(index) {
if(!this.fixed || index < this.__array.length) {
return this.__array.splice(index,1)[0];
}
return 0;
}
,reverse: function() {
this.__array.reverse();
return this;
}
,set: function(index,value) {
if(!this.fixed || index < this.__array.length) {
return this.__array[index] = value;
} else {
return value;
}
}
,shift: function() {
if(!this.fixed) {
return this.__array.shift();
} else {
return null;
}
}
,slice: function(startIndex,endIndex) {
if(startIndex == null) {
startIndex = 0;
}
if(endIndex == null) {
endIndex = 16777215;
}
return new openfl__$Vector_IntVector(0,false,this.__array.slice(startIndex,endIndex));
}
,sort: function(f) {
this.__array.sort(f);
}
,splice: function(pos,len) {
return new openfl__$Vector_IntVector(0,false,this.__array.splice(pos,len));
}
,toJSON: function() {
return this.__array;
}
,toString: function() {
if(this.__array != null) {
return this.__array.toString();
} else {
return null;
}
}
,unshift: function(x) {
if(!this.fixed) {
this.__array.unshift(x);
}
}
,get_length: function() {
return this.__array.length;
}
,set_length: function(value) {
if(!this.fixed) {
var currentLength = this.__array.length;
if(value < 0) {
value = 0;
}
if(value > currentLength) {
var _g = currentLength;
var _g1 = value;
while(_g < _g1) {
var i = _g++;
this.__array[i] = 0;
}
} else {
while(this.__array.length > value) this.__array.pop();
}
}
return this.__array.length;
}
,__class__: openfl__$Vector_IntVector
,__properties__: {set_length:"set_length",get_length:"get_length"}
};
var openfl__$Vector_ObjectVector = function(length,fixed,array,forceCopy) {
if(forceCopy == null) {
forceCopy = false;
}
if(fixed == null) {
fixed = false;
}
if(length == null) {
length = 0;
}
if(forceCopy) {
this.__array = [];
if(array != null) {
var _g = 0;
var _g1 = array.length;
while(_g < _g1) {
var i = _g++;
this.__array[i] = array[i];
}
}
} else {
if(array == null) {
array = [];
}
this.__array = array;
}
if(length > 0) {
this.set_length(length);
}
this.fixed = fixed;
};
$hxClasses["openfl._Vector.ObjectVector"] = openfl__$Vector_ObjectVector;
openfl__$Vector_ObjectVector.__name__ = "openfl._Vector.ObjectVector";
openfl__$Vector_ObjectVector.__interfaces__ = [openfl__$Vector_IVector];
openfl__$Vector_ObjectVector.prototype = {
fixed: null
,__array: null
,concat: function(a) {
if(a == null) {
return new openfl__$Vector_ObjectVector(0,false,this.__array.slice());
} else {
var other = a;
if(other.__array.length > 0) {
return new openfl__$Vector_ObjectVector(0,false,this.__array.concat(other.__array));
} else {
return new openfl__$Vector_ObjectVector(0,false,this.__array.slice());
}
}
}
,copy: function() {
return new openfl__$Vector_ObjectVector(0,this.fixed,this.__array.slice());
}
,filter: function(callback) {
var tmp = this.fixed;
var _g = [];
var _g1 = 0;
var _g2 = this.__array;
while(_g1 < _g2.length) {
var v = _g2[_g1];
++_g1;
if(callback(v)) {
_g.push(v);
}
}
return new openfl__$Vector_ObjectVector(0,tmp,_g);
}
,get: function(index) {
return this.__array[index];
}
,indexOf: function(x,from) {
if(from == null) {
from = 0;
}
var _g = from;
var _g1 = this.__array.length;
while(_g < _g1) {
var i = _g++;
if(this.__array[i] == x) {
return i;
}
}
return -1;
}
,insertAt: function(index,element) {
if(!this.fixed || index < this.__array.length) {
this.__array.splice(index,0,element);
}
}
,iterator: function() {
return new haxe_iterators_ArrayIterator(this.__array);
}
,join: function(sep) {
if(sep == null) {
sep = ",";
}
return this.__array.join(sep);
}
,lastIndexOf: function(x,from) {
var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from;
while(i >= 0) {
if(this.__array[i] == x) {
return i;
}
--i;
}
return -1;
}
,pop: function() {
if(!this.fixed) {
return this.__array.pop();
} else {
return null;
}
}
,push: function(x) {
if(!this.fixed) {
return this.__array.push(x);
} else {
return this.__array.length;
}
}
,removeAt: function(index) {
if(!this.fixed || index < this.__array.length) {
return this.__array.splice(index,1)[0];
}
return null;
}
,reverse: function() {
this.__array.reverse();
return this;
}
,set: function(index,value) {
if(!this.fixed || index < this.__array.length) {
return this.__array[index] = value;
} else {
return value;
}
}
,shift: function() {
if(!this.fixed) {
return this.__array.shift();
} else {
return null;
}
}
,slice: function(startIndex,endIndex) {
if(startIndex == null) {
startIndex = 0;
}
if(endIndex == null) {
endIndex = 16777215;
}
return new openfl__$Vector_ObjectVector(0,false,this.__array.slice(startIndex,endIndex));
}
,sort: function(f) {
this.__array.sort(f);
}
,splice: function(pos,len) {
return new openfl__$Vector_ObjectVector(0,false,this.__array.splice(pos,len));
}
,toJSON: function() {
return this.__array;
}
,toString: function() {
if(this.__array != null) {
return this.__array.toString();
} else {
return null;
}
}
,unshift: function(x) {
if(!this.fixed) {
this.__array.unshift(x);
}
}
,get_length: function() {
return this.__array.length;
}
,set_length: function(value) {
if(!this.fixed) {
var currentLength = this.__array.length;
if(value < 0) {
value = 0;
}
if(value > currentLength) {
var _g = currentLength;
var _g1 = value;
while(_g < _g1) {
var i = _g++;
this.__array.push(null);
}
} else {
while(this.__array.length > value) this.__array.pop();
}
}
return this.__array.length;
}
,__class__: openfl__$Vector_ObjectVector
,__properties__: {set_length:"set_length",get_length:"get_length"}
};
var openfl__$internal_Lib = function() { };
$hxClasses["openfl._internal.Lib"] = openfl__$internal_Lib;
openfl__$internal_Lib.__name__ = "openfl._internal.Lib";
openfl__$internal_Lib.application = null;
openfl__$internal_Lib.current = null;
openfl__$internal_Lib.notImplemented = function(posInfo) {
var api = posInfo.className + "." + posInfo.methodName;
if(!Object.prototype.hasOwnProperty.call(openfl__$internal_Lib.__sentWarnings.h,api)) {
openfl__$internal_Lib.__sentWarnings.h[api] = true;
lime_utils_Log.warn(posInfo.methodName + " is not implemented",posInfo);
}
};
var openfl__$internal_formats_html_HTMLParser = function() { };
$hxClasses["openfl._internal.formats.html.HTMLParser"] = openfl__$internal_formats_html_HTMLParser;
openfl__$internal_formats_html_HTMLParser.__name__ = "openfl._internal.formats.html.HTMLParser";
openfl__$internal_formats_html_HTMLParser.parse = function(value,textFormat,textFormatRanges) {
value = value.replace(openfl__$internal_formats_html_HTMLParser.__regexBreakTag.r,"\n");
value = value.replace(openfl__$internal_formats_html_HTMLParser.__regexEntities[0].r,"\"");
value = value.replace(openfl__$internal_formats_html_HTMLParser.__regexEntities[1].r,"'");
value = value.replace(openfl__$internal_formats_html_HTMLParser.__regexEntities[2].r,"&");
value = value.replace(openfl__$internal_formats_html_HTMLParser.__regexEntities[5].r," ");
var segments = value.split("<");
if(segments.length == 1) {
value = value.replace(openfl__$internal_formats_html_HTMLParser.__regexHTMLTag.r,"");
if(textFormatRanges.get_length() > 1) {
textFormatRanges.splice(1,textFormatRanges.get_length() - 1);
}
value = value.replace(openfl__$internal_formats_html_HTMLParser.__regexEntities[3].r,"<");
value = value.replace(openfl__$internal_formats_html_HTMLParser.__regexEntities[4].r,">");
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 _g = 0;
var _g1 = segments.length;
while(_g < _g1) {
var i = _g++;
segment = segments[i];
segment = segment.replace(openfl__$internal_formats_html_HTMLParser.__regexEntities[3].r,"<");
segment = segment.replace(openfl__$internal_formats_html_HTMLParser.__regexEntities[4].r,">");
segments[i] = segment;
}
var formatStack = [textFormat.clone()];
var tagStack = [];
var sub;
var noLineBreak = false;
var _g = 0;
while(_g < segments.length) {
var segment = segments[_g];
++_g;
if(segment == "") {
continue;
}
var isClosingTag = HxOverrides.substr(segment,0,1) == "/";
var tagEndIndex = segment.indexOf(">");
var start = tagEndIndex + 1;
var spaceIndex = segment.indexOf(" ");
var tagName = segment.substring(isClosingTag ? 1 : 0,spaceIndex > -1 && spaceIndex < tagEndIndex ? spaceIndex : tagEndIndex);
var format;
if(isClosingTag) {
if(tagStack.length == 0 || tagName.toLowerCase() != tagStack[tagStack.length - 1].toLowerCase()) {
lime_utils_Log.info("Invalid HTML, unexpected closing tag ignored: " + tagName,{ fileName : "openfl/_internal/formats/html/HTMLParser.hx", lineNumber : 97, className : "openfl._internal.formats.html.HTMLParser", methodName : "parse"});
continue;
}
tagStack.pop();
formatStack.pop();
format = formatStack[formatStack.length - 1].clone();
if(tagName.toLowerCase() == "p" && textFormatRanges.get_length() > 0) {
value += "\n";
noLineBreak = true;
}
if(start < segment.length) {
sub = HxOverrides.substr(segment,start,null);
textFormatRanges.push(new openfl_text__$internal_TextFormatRange(format,value.length,value.length + sub.length));
value += sub;
noLineBreak = false;
}
} else {
format = formatStack[formatStack.length - 1].clone();
if(tagEndIndex > -1) {
switch(tagName.toLowerCase()) {
case "a":
if(openfl__$internal_formats_html_HTMLParser.__regexHref.match(segment)) {
format.url = openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexHref);
}
break;
case "b":
format.bold = true;
break;
case "em":case "i":
format.italic = true;
break;
case "font":
if(openfl__$internal_formats_html_HTMLParser.__regexFace.match(segment)) {
format.font = openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexFace);
}
if(openfl__$internal_formats_html_HTMLParser.__regexColor.match(segment)) {
format.color = Std.parseInt("0x" + openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexColor));
}
if(openfl__$internal_formats_html_HTMLParser.__regexSize.match(segment)) {
var sizeAttr = openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexSize);
var firstChar = HxOverrides.cca(sizeAttr,0);
if(firstChar == 43 || firstChar == 45) {
var parentFormat = formatStack.length >= 2 ? formatStack[formatStack.length - 2] : textFormat;
format.size = parentFormat.size + Std.parseInt(sizeAttr);
} else {
format.size = Std.parseInt(sizeAttr);
}
}
break;
case "p":
if(textFormatRanges.get_length() > 0 && !noLineBreak) {
value += "\n";
}
if(openfl__$internal_formats_html_HTMLParser.__regexAlign.match(segment)) {
var align = openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexAlign).toLowerCase();
format.align = openfl_text_TextFormatAlign.fromString(align);
}
break;
case "textformat":
if(openfl__$internal_formats_html_HTMLParser.__regexBlockIndent.match(segment)) {
format.blockIndent = Std.parseInt(openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexBlockIndent));
}
if(openfl__$internal_formats_html_HTMLParser.__regexIndent.match(segment)) {
format.indent = Std.parseInt(openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexIndent));
}
if(openfl__$internal_formats_html_HTMLParser.__regexLeading.match(segment)) {
format.leading = Std.parseInt(openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexLeading));
}
if(openfl__$internal_formats_html_HTMLParser.__regexLeftMargin.match(segment)) {
format.leftMargin = Std.parseInt(openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexLeftMargin));
}
if(openfl__$internal_formats_html_HTMLParser.__regexRightMargin.match(segment)) {
format.rightMargin = Std.parseInt(openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexRightMargin));
}
if(openfl__$internal_formats_html_HTMLParser.__regexTabStops.match(segment)) {
var values = openfl__$internal_formats_html_HTMLParser.__getAttributeMatch(openfl__$internal_formats_html_HTMLParser.__regexTabStops).split(" ");
var tabStops = [];
var _g1 = 0;
while(_g1 < values.length) {
var stop = values[_g1];
++_g1;
tabStops.push(Std.parseInt(stop));
}
format.tabStops = tabStops;
}
break;
case "u":
format.underline = true;
break;
}
formatStack.push(format);
tagStack.push(tagName);
if(start < segment.length) {
sub = segment.substring(start);
textFormatRanges.push(new openfl_text__$internal_TextFormatRange(format,value.length,value.length + sub.length));
value += sub;
noLineBreak = false;
}
} else {
textFormatRanges.push(new openfl_text__$internal_TextFormatRange(format,value.length,value.length + segment.length));
value += segment;
noLineBreak = false;
}
}
}
if(textFormatRanges.get_length() == 0) {
textFormatRanges.push(new openfl_text__$internal_TextFormatRange(formatStack[0],0,0));
}
}
return value;
};
openfl__$internal_formats_html_HTMLParser.__getAttributeMatch = function(regex) {
if(regex.matched(2) != null) {
return regex.matched(2);
} else {
return regex.matched(3);
}
};
var openfl__$internal_utils_TouchData = function() {
this.rollOutStack = [];
};
$hxClasses["openfl._internal.utils.TouchData"] = openfl__$internal_utils_TouchData;
openfl__$internal_utils_TouchData.__name__ = "openfl._internal.utils.TouchData";
openfl__$internal_utils_TouchData.prototype = {
rollOutStack: null
,touch: null
,touchDownTarget: null
,touchOverTarget: null
,reset: function() {
this.touch = null;
this.touchDownTarget = null;
this.touchOverTarget = null;
this.rollOutStack.splice(0,this.rollOutStack.length);
}
,__class__: openfl__$internal_utils_TouchData
};
var openfl_display_Application = function() {
lime_app_Application.call(this);
if(openfl__$internal_Lib.application == null) {
openfl__$internal_Lib.application = this;
}
if(openfl__$internal_Lib.current == null) {
openfl__$internal_Lib.current = new openfl_display_MovieClip();
}
openfl__$internal_Lib.current.__loaderInfo = openfl_display_LoaderInfo.create(null);
openfl__$internal_Lib.current.__loaderInfo.content = openfl__$internal_Lib.current;
};
$hxClasses["openfl.display.Application"] = openfl_display_Application;
openfl_display_Application.__name__ = "openfl.display.Application";
openfl_display_Application.__super__ = lime_app_Application;
openfl_display_Application.prototype = $extend(lime_app_Application.prototype,{
createWindow: function(attributes) {
var $window = new openfl_display_Window(this,attributes);
this.__windows.push($window);
this.__windowByID.h[$window.id] = $window;
var _g = $bind(this,this.__onWindowClose);
var window1 = $window;
var tmp = function() {
_g(window1);
};
$window.onClose.add(tmp,false,-10000);
if(this.__window == null) {
this.__window = $window;
$window.onActivate.add($bind(this,this.onWindowActivate));
$window.onRenderContextLost.add($bind(this,this.onRenderContextLost));
$window.onRenderContextRestored.add($bind(this,this.onRenderContextRestored));
$window.onDeactivate.add($bind(this,this.onWindowDeactivate));
$window.onDropFile.add($bind(this,this.onWindowDropFile));
$window.onEnter.add($bind(this,this.onWindowEnter));
$window.onExpose.add($bind(this,this.onWindowExpose));
$window.onFocusIn.add($bind(this,this.onWindowFocusIn));
$window.onFocusOut.add($bind(this,this.onWindowFocusOut));
$window.onFullscreen.add($bind(this,this.onWindowFullscreen));
$window.onKeyDown.add($bind(this,this.onKeyDown));
$window.onKeyUp.add($bind(this,this.onKeyUp));
$window.onLeave.add($bind(this,this.onWindowLeave));
$window.onMinimize.add($bind(this,this.onWindowMinimize));
$window.onMouseDown.add($bind(this,this.onMouseDown));
$window.onMouseMove.add($bind(this,this.onMouseMove));
$window.onMouseMoveRelative.add($bind(this,this.onMouseMoveRelative));
$window.onMouseUp.add($bind(this,this.onMouseUp));
$window.onMouseWheel.add($bind(this,this.onMouseWheel));
$window.onMove.add($bind(this,this.onWindowMove));
$window.onRender.add($bind(this,this.render));
$window.onResize.add($bind(this,this.onWindowResize));
$window.onRestore.add($bind(this,this.onWindowRestore));
$window.onTextEdit.add($bind(this,this.onTextEdit));
$window.onTextInput.add($bind(this,this.onTextInput));
this.onWindowCreate();
}
this.onCreateWindow.dispatch($window);
return $window;
}
,__class__: openfl_display_Application
});
var openfl_display_Bitmap = function(bitmapData,pixelSnapping,smoothing) {
if(smoothing == null) {
smoothing = false;
}
openfl_display_DisplayObject.call(this);
this.__bitmapData = bitmapData;
this.pixelSnapping = pixelSnapping;
this.smoothing = smoothing;
if(pixelSnapping == null) {
this.pixelSnapping = 1;
}
};
$hxClasses["openfl.display.Bitmap"] = openfl_display_Bitmap;
openfl_display_Bitmap.__name__ = "openfl.display.Bitmap";
openfl_display_Bitmap.__super__ = openfl_display_DisplayObject;
openfl_display_Bitmap.prototype = $extend(openfl_display_DisplayObject.prototype,{
pixelSnapping: null
,smoothing: null
,__image: null
,__bitmapData: null
,__imageVersion: null
,__enterFrame: function(deltaTime) {
if(this.__bitmapData != null && this.__bitmapData.image != null && this.__bitmapData.image.version != this.__imageVersion) {
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
,__getBounds: function(rect,matrix) {
var bounds = openfl_geom_Rectangle.__pool.get();
if(this.__bitmapData != null) {
bounds.setTo(0,0,this.__bitmapData.width,this.__bitmapData.height);
} else {
bounds.setTo(0,0,0,0);
}
bounds.__transform(bounds,matrix);
rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
openfl_geom_Rectangle.__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 _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx));
var _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x));
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 _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx));
var _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x));
if(px > 0 && py > 0 && px <= this.__bitmapData.width && py <= this.__bitmapData.height) {
return true;
}
return false;
}
,__renderCairo: function(renderer) {
}
,__renderCairoMask: function(renderer) {
renderer.cairo.rectangle(0,0,this.get_width(),this.get_height());
}
,__renderCanvas: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__bitmapData != null && this.__bitmapData.image != null) {
this.__imageVersion = this.__bitmapData.image.version;
}
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
var bitmap = this.__cacheBitmap;
if(bitmap.__renderable) {
var alpha = renderer.__getAlpha(bitmap.__worldAlpha);
if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
var context = renderer.context;
renderer.__setBlendMode(bitmap.__worldBlendMode);
renderer.__pushMaskObject(bitmap,false);
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image);
context.globalAlpha = alpha;
var scrollRect = bitmap.__scrollRect;
renderer.setTransform(bitmap.__renderTransform,context);
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = false;
}
if(scrollRect == null) {
context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height);
} else {
context.drawImage(bitmap.__bitmapData.image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
}
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = true;
}
renderer.__popMaskObject(bitmap,false);
}
}
} else {
if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(this.__renderable) {
var alpha = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context = renderer.context;
renderer.setTransform(this.__renderTransform,context);
var color = this.opaqueBackground;
context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")";
context.fillRect(0,0,this.get_width(),this.get_height());
renderer.__popMaskObject(this);
}
if(this.__graphics != null) {
if(this.__renderable) {
var alpha = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha <= 0)) {
var graphics = this.__graphics;
if(graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer);
var width = graphics.__width;
var height = graphics.__height;
var canvas = graphics.__canvas;
if(canvas != null && graphics.__visible && width >= 1 && height >= 1) {
var transform = graphics.__worldTransform;
var context = renderer.context;
var scrollRect = this.__scrollRect;
var scale9Grid = this.__worldScale9Grid;
if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
context.globalAlpha = alpha;
if(scale9Grid != null && transform.b == 0 && transform.c == 0) {
context.setTransform(1,0,0,1,transform.tx,transform.ty);
var bounds = graphics.__bounds;
var scaleX = graphics.__renderTransform.a;
var scaleY = graphics.__renderTransform.d;
var renderScaleX = transform.a;
var renderScaleY = transform.d;
var left = Math.max(1,Math.round(scale9Grid.x * scaleX));
var top = Math.round(scale9Grid.y * scaleY);
var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX));
var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY);
var centerWidth = Math.round(scale9Grid.width * scaleX);
var centerHeight = Math.round(scale9Grid.height * scaleY);
var renderLeft = Math.round(scale9Grid.x * renderScaleX);
var renderTop = Math.round(scale9Grid.y * renderScaleY);
var renderRight = Math.round((bounds.get_right() - scale9Grid.get_right()) * renderScaleX);
var renderBottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * renderScaleY);
var renderCenterWidth = Math.round(width * renderScaleX) - renderLeft - renderRight;
var renderCenterHeight = Math.round(height * renderScaleY) - renderTop - renderBottom;
renderer.applySmoothing(context,false);
if(centerWidth != 0 && centerHeight != 0) {
context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop);
context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop);
context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop);
context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight);
context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight);
context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom);
context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom);
context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom);
} else if(centerWidth == 0 && centerHeight != 0) {
var renderWidth = renderLeft + renderCenterWidth + renderRight;
context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop);
context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom);
} else if(centerHeight == 0 && centerWidth != 0) {
var renderHeight = renderTop + renderCenterHeight + renderBottom;
context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight);
context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight);
context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight);
}
} else {
renderer.setTransform(transform,context);
if(renderer.__isDOM) {
var reverseScale = 1 / renderer.pixelRatio;
context.scale(reverseScale,reverseScale);
}
context.drawImage(canvas,0,0,width,height);
}
renderer.__popMaskObject(this);
}
}
}
}
}
}
}
}
}
if(this.__renderable) {
var alpha = renderer.__getAlpha(this.__worldAlpha);
if(alpha > 0 && this.__bitmapData != null && this.__bitmapData.__isValid && this.__bitmapData.readable) {
var context = renderer.context;
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this,false);
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this.__bitmapData.image);
context.globalAlpha = alpha;
var scrollRect = this.__scrollRect;
renderer.setTransform(this.__renderTransform,context);
if(!renderer.__allowSmoothing || !this.smoothing) {
context.imageSmoothingEnabled = false;
}
if(scrollRect == null) {
context.drawImage(this.__bitmapData.image.get_src(),0,0,this.__bitmapData.image.width,this.__bitmapData.image.height);
} else {
context.drawImage(this.__bitmapData.image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
}
if(!renderer.__allowSmoothing || !this.smoothing) {
context.imageSmoothingEnabled = true;
}
renderer.__popMaskObject(this,false);
}
}
}
this.__renderEvent(renderer);
}
,__renderCanvasMask: function(renderer) {
renderer.context.rect(0,0,this.get_width(),this.get_height());
}
,__renderDOM: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
this.__renderDOMClear(renderer);
this.__cacheBitmap.stage = this.stage;
var bitmap = this.__cacheBitmap;
if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
renderer.__pushMaskObject(bitmap);
if(bitmap.__bitmapData.image.buffer.__srcImage != null) {
openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer);
} else {
openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer);
}
renderer.__popMaskObject(bitmap);
} else {
openfl_display__$internal_DOMBitmap.clear(bitmap,renderer);
}
} else {
var tmp = this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0;
var graphics = this.__graphics;
if(this.stage != null && this.__worldVisible && this.__renderable && graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__canvasRenderer);
if(graphics.__softwareDirty || this.__worldAlphaChanged || this.__canvas != graphics.__canvas) {
if(graphics.__canvas != null) {
if(this.__canvas != graphics.__canvas) {
if(this.__canvas != null) {
renderer.element.removeChild(this.__canvas);
}
this.__canvas = graphics.__canvas;
this.__context = graphics.__context;
renderer.__initializeElement(this,this.__canvas);
}
} else {
openfl_display__$internal_DOMShape.clear(this,renderer);
}
}
if(this.__canvas != null) {
renderer.__pushMaskObject(this);
var cacheTransform = this.__renderTransform;
this.__renderTransform = graphics.__worldTransform;
if(graphics.__transformDirty) {
graphics.__transformDirty = false;
this.__renderTransformChanged = true;
}
renderer.__updateClip(this);
renderer.__applyStyle(this,true,true,true);
this.__renderTransform = cacheTransform;
renderer.__popMaskObject(this);
}
} else {
openfl_display__$internal_DOMShape.clear(this,renderer);
}
if(this.stage != null && this.__worldVisible && this.__renderable && this.__bitmapData != null && this.__bitmapData.__isValid && this.__bitmapData.readable) {
renderer.__pushMaskObject(this);
if(this.__bitmapData.image.buffer.__srcImage != null) {
openfl_display__$internal_DOMBitmap.renderImage(this,renderer);
} else {
openfl_display__$internal_DOMBitmap.renderCanvas(this,renderer);
}
renderer.__popMaskObject(this);
} else {
openfl_display__$internal_DOMBitmap.clear(this,renderer);
}
}
this.__renderEvent(renderer);
}
,__renderDOMClear: function(renderer) {
openfl_display__$internal_DOMBitmap.clear(this,renderer);
}
,__renderGL: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__bitmapData != null && this.__bitmapData.image != null) {
this.__imageVersion = this.__bitmapData.image.version;
}
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
openfl_display__$internal_Context3DBitmap.render(this.__cacheBitmap,renderer);
} else {
if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(!(!this.__renderable || this.__worldAlpha <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context = renderer.__context3D;
var rect = openfl_geom_Rectangle.__pool.get();
rect.setTo(0,0,this.get_width(),this.get_height());
renderer.__pushMaskRect(rect,this.__renderTransform);
var color = this.opaqueBackground;
context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1);
renderer.__popMaskRect();
renderer.__popMaskObject(this);
openfl_geom_Rectangle.__pool.release(rect);
}
if(this.__graphics != null) {
openfl_display__$internal_Context3DShape.render(this,renderer);
}
}
}
openfl_display__$internal_Context3DBitmap.render(this,renderer);
}
this.__renderEvent(renderer);
}
,__renderGLMask: function(renderer) {
openfl_display__$internal_Context3DBitmap.renderMask(this,renderer);
}
,__updateCacheBitmap: function(renderer,force) {
if(this.__bitmapData == null || this.__filters == null && renderer.__type == "opengl" && this.__cacheBitmap == null) {
return false;
}
return openfl_display_DisplayObject.prototype.__updateCacheBitmap.call(this,renderer,this.__bitmapData.image != null && this.__bitmapData.image.version != this.__imageVersion);
}
,get_bitmapData: function() {
return this.__bitmapData;
}
,set_bitmapData: function(value) {
this.__bitmapData = value;
this.smoothing = false;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
var tmp = this.__filters != null;
this.__imageVersion = -1;
return this.__bitmapData;
}
,set_height: function(value) {
if(this.__bitmapData != null) {
this.set_scaleY(value / this.__bitmapData.height);
} else {
this.set_scaleY(0);
}
return value;
}
,set_width: function(value) {
if(this.__bitmapData != null) {
this.set_scaleX(value / this.__bitmapData.width);
} else {
this.set_scaleX(0);
}
return value;
}
,__class__: openfl_display_Bitmap
,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{set_bitmapData:"set_bitmapData",get_bitmapData:"get_bitmapData"})
});
var openfl_display_BlendMode = {};
openfl_display_BlendMode.fromString = function(value) {
switch(value) {
case "add":
return 0;
case "alpha":
return 1;
case "darken":
return 2;
case "difference":
return 3;
case "erase":
return 4;
case "hardlight":
return 5;
case "invert":
return 6;
case "layer":
return 7;
case "lighten":
return 8;
case "multiply":
return 9;
case "normal":
return 10;
case "overlay":
return 11;
case "screen":
return 12;
case "shader":
return 13;
case "subtract":
return 14;
default:
return null;
}
};
openfl_display_BlendMode.toString = function(this1) {
switch(this1) {
case 0:
return "add";
case 1:
return "alpha";
case 2:
return "darken";
case 3:
return "difference";
case 4:
return "erase";
case 5:
return "hardlight";
case 6:
return "invert";
case 7:
return "layer";
case 8:
return "lighten";
case 9:
return "multiply";
case 10:
return "normal";
case 11:
return "overlay";
case 12:
return "screen";
case 13:
return "shader";
case 14:
return "subtract";
default:
return null;
}
};
var openfl_display_DisplayObjectRenderer = function() {
openfl_events_EventDispatcher.call(this);
this.__allowSmoothing = true;
this.__tempColorTransform = new openfl_geom_ColorTransform();
this.__worldAlpha = 1;
};
$hxClasses["openfl.display.DisplayObjectRenderer"] = openfl_display_DisplayObjectRenderer;
openfl_display_DisplayObjectRenderer.__name__ = "openfl.display.DisplayObjectRenderer";
openfl_display_DisplayObjectRenderer.__super__ = openfl_events_EventDispatcher;
openfl_display_DisplayObjectRenderer.prototype = $extend(openfl_events_EventDispatcher.prototype,{
__allowSmoothing: null
,__blendMode: null
,__cleared: null
,__context: null
,__overrideBlendMode: null
,__roundPixels: null
,__stage: null
,__tempColorTransform: null
,__transparent: null
,__type: null
,__worldAlpha: null
,__worldColorTransform: null
,__worldTransform: null
,__clear: function() {
}
,__getAlpha: function(value) {
return value * this.__worldAlpha;
}
,__getColorTransform: function(value) {
if(this.__worldColorTransform != null) {
this.__tempColorTransform.__copyFrom(this.__worldColorTransform);
this.__tempColorTransform.__combine(value);
return this.__tempColorTransform;
} else {
return value;
}
}
,__popMask: function() {
}
,__popMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
}
,__popMaskRect: function() {
}
,__pushMask: function(mask) {
}
,__pushMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
}
,__pushMaskRect: function(rect,transform) {
}
,__render: function(object) {
}
,__resize: function(width,height) {
}
,__setBlendMode: function(value) {
}
,__class__: openfl_display_DisplayObjectRenderer
});
var openfl_display_CairoRenderer = function(cairo) {
openfl_display_DisplayObjectRenderer.call(this);
};
$hxClasses["openfl.display.CairoRenderer"] = openfl_display_CairoRenderer;
openfl_display_CairoRenderer.__name__ = "openfl.display.CairoRenderer";
openfl_display_CairoRenderer.__super__ = openfl_display_DisplayObjectRenderer;
openfl_display_CairoRenderer.prototype = $extend(openfl_display_DisplayObjectRenderer.prototype,{
cairo: null
,__matrix: null
,__matrix3: null
,applyMatrix: function(transform,cairo) {
if(cairo == null) {
cairo = this.cairo;
}
this.__matrix.copyFrom(transform);
if(this.cairo == cairo && this.__worldTransform != null) {
this.__matrix.concat(this.__worldTransform);
}
this.__matrix3.a = this.__matrix.a;
this.__matrix3.b = this.__matrix.b;
this.__matrix3.c = this.__matrix.c;
this.__matrix3.d = this.__matrix.d;
if(this.__roundPixels) {
this.__matrix3.tx = Math.round(this.__matrix.tx);
this.__matrix3.ty = Math.round(this.__matrix.ty);
} else {
this.__matrix3.tx = this.__matrix.tx;
this.__matrix3.ty = this.__matrix.ty;
}
cairo.set_matrix(this.__matrix3);
}
,__clear: function() {
if(this.cairo == null) {
return;
}
this.cairo.identityMatrix();
if(this.__stage != null && this.__stage.__clearBeforeRender) {
var cacheBlendMode = this.__blendMode;
this.__setBlendMode(10);
this.cairo.setSourceRGB(this.__stage.__colorSplit[0],this.__stage.__colorSplit[1],this.__stage.__colorSplit[2]);
this.cairo.paint();
this.__setBlendMode(cacheBlendMode);
}
}
,__popMask: function() {
this.cairo.restore();
}
,__popMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
if(!object.__isCacheBitmapRender && object.__mask != null) {
this.__popMask();
}
if(handleScrollRect && object.__scrollRect != null) {
this.__popMaskRect();
}
}
,__popMaskRect: function() {
this.cairo.restore();
}
,__pushMask: function(mask) {
this.cairo.save();
this.applyMatrix(mask.__renderTransform,this.cairo);
this.cairo.newPath();
mask.__renderCairoMask(this);
this.cairo.clip();
}
,__pushMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
if(handleScrollRect && object.__scrollRect != null) {
this.__pushMaskRect(object.__scrollRect,object.__renderTransform);
}
if(!object.__isCacheBitmapRender && object.__mask != null) {
this.__pushMask(object.__mask);
}
}
,__pushMaskRect: function(rect,transform) {
this.cairo.save();
this.applyMatrix(transform,this.cairo);
this.cairo.newPath();
this.cairo.rectangle(rect.x,rect.y,rect.width,rect.height);
this.cairo.clip();
}
,__render: function(object) {
if(this.cairo == null) {
return;
}
object.__renderCairo(this);
}
,__setBlendMode: function(value) {
if(this.__overrideBlendMode != null) {
value = this.__overrideBlendMode;
}
if(this.__blendMode == value) {
return;
}
this.__blendMode = value;
this.__setBlendModeCairo(this.cairo,value);
}
,__setBlendModeCairo: function(cairo,value) {
switch(value) {
case 0:
cairo.setOperator(12);
break;
case 2:
cairo.setOperator(17);
break;
case 3:
cairo.setOperator(23);
break;
case 5:
cairo.setOperator(21);
break;
case 7:
cairo.setOperator(2);
break;
case 8:
cairo.setOperator(18);
break;
case 9:
cairo.setOperator(14);
break;
case 11:
cairo.setOperator(16);
break;
case 12:
cairo.setOperator(15);
break;
default:
cairo.setOperator(2);
}
}
,__class__: openfl_display_CairoRenderer
});
var openfl_display_CanvasRenderer = function(context) {
this.pixelRatio = 1;
openfl_display_DisplayObjectRenderer.call(this);
this.context = context;
this.__tempMatrix = new openfl_geom_Matrix();
this.__type = "canvas";
};
$hxClasses["openfl.display.CanvasRenderer"] = openfl_display_CanvasRenderer;
openfl_display_CanvasRenderer.__name__ = "openfl.display.CanvasRenderer";
openfl_display_CanvasRenderer.__super__ = openfl_display_DisplayObjectRenderer;
openfl_display_CanvasRenderer.prototype = $extend(openfl_display_DisplayObjectRenderer.prototype,{
context: null
,pixelRatio: null
,__isDOM: null
,__tempMatrix: null
,applySmoothing: function(context,value) {
context.imageSmoothingEnabled = value;
}
,setTransform: function(transform,context) {
if(context == null) {
context = this.context;
} else if(this.context == context && this.__worldTransform != null) {
this.__tempMatrix.copyFrom(transform);
this.__tempMatrix.concat(this.__worldTransform);
transform = this.__tempMatrix;
}
if(this.__roundPixels) {
context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx | 0,transform.ty | 0);
} else {
context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
}
}
,__clear: function() {
if(this.__stage != null) {
var cacheBlendMode = this.__blendMode;
this.__blendMode = null;
this.__setBlendMode(10);
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.__scale,this.__stage.stageHeight * this.__stage.window.__scale);
} else if(this.__stage.__transparent && this.__stage.__clearBeforeRender) {
this.context.clearRect(0,0,this.__stage.stageWidth * this.__stage.window.__scale,this.__stage.stageHeight * this.__stage.window.__scale);
}
this.__setBlendMode(cacheBlendMode);
}
}
,__popMask: function() {
this.context.restore();
}
,__popMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
if(!object.__isCacheBitmapRender && object.__mask != null) {
this.__popMask();
}
if(handleScrollRect && object.__scrollRect != null) {
this.__popMaskRect();
}
}
,__popMaskRect: function() {
this.context.restore();
}
,__pushMask: function(mask) {
this.context.save();
this.setTransform(mask.__renderTransform,this.context);
this.context.beginPath();
mask.__renderCanvasMask(this);
this.context.closePath();
this.context.clip();
}
,__pushMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
if(handleScrollRect && object.__scrollRect != null) {
this.__pushMaskRect(object.__scrollRect,object.__renderTransform);
}
if(!object.__isCacheBitmapRender && object.__mask != null) {
this.__pushMask(object.__mask);
}
}
,__pushMaskRect: function(rect,transform) {
this.context.save();
this.setTransform(transform,this.context);
this.context.beginPath();
this.context.rect(rect.x,rect.y,rect.width,rect.height);
this.context.clip();
}
,__render: function(object) {
object.__renderCanvas(this);
}
,__setBlendMode: function(value) {
if(this.__overrideBlendMode != null) {
value = this.__overrideBlendMode;
}
if(this.__blendMode == value) {
return;
}
this.__blendMode = value;
this.__setBlendModeContext(this.context,value);
}
,__setBlendModeContext: function(context,value) {
switch(value) {
case 0:
context.globalCompositeOperation = "lighter";
break;
case 2:
context.globalCompositeOperation = "darken";
break;
case 3:
context.globalCompositeOperation = "difference";
break;
case 5:
context.globalCompositeOperation = "hard-light";
break;
case 8:
context.globalCompositeOperation = "lighten";
break;
case 9:
context.globalCompositeOperation = "multiply";
break;
case 11:
context.globalCompositeOperation = "overlay";
break;
case 12:
context.globalCompositeOperation = "screen";
break;
default:
context.globalCompositeOperation = "source-over";
}
}
,__class__: openfl_display_CanvasRenderer
});
var openfl_display_CapsStyle = {};
openfl_display_CapsStyle.fromInt = function(value) {
return value;
};
openfl_display_CapsStyle.fromString = function(value) {
switch(value) {
case "none":
return 0;
case "round":
return 1;
case "square":
return 2;
default:
return null;
}
};
openfl_display_CapsStyle.toInt = function(this1) {
return this1;
};
openfl_display_CapsStyle.toString = function(this1) {
switch(this1) {
case 0:
return "none";
case 1:
return "round";
case 2:
return "square";
default:
return null;
}
};
var openfl_display_DOMRenderer = function(element) {
this.pixelRatio = 1;
openfl_display_DisplayObjectRenderer.call(this);
this.element = element;
openfl_display_DisplayObject.__supportDOM = true;
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.__vendorPrefix = prefix.lowercase;
this.__transformProperty = prefix.lowercase == "webkit" ? "-webkit-transform" : "transform";
this.__transformOriginProperty = prefix.lowercase == "webkit" ? "-webkit-transform-origin" : "transform-origin";
this.__clipRects = [];
this.__numClipRects = 0;
this.__z = 0;
this.__type = "dom";
this.__canvasRenderer = new openfl_display_CanvasRenderer(null);
this.__canvasRenderer.__isDOM = true;
};
$hxClasses["openfl.display.DOMRenderer"] = openfl_display_DOMRenderer;
openfl_display_DOMRenderer.__name__ = "openfl.display.DOMRenderer";
openfl_display_DOMRenderer.__super__ = openfl_display_DisplayObjectRenderer;
openfl_display_DOMRenderer.prototype = $extend(openfl_display_DisplayObjectRenderer.prototype,{
element: null
,pixelRatio: null
,__canvasRenderer: null
,__clipRects: null
,__currentClipRect: null
,__numClipRects: null
,__transformOriginProperty: null
,__transformProperty: null
,__vendorPrefix: null
,__z: null
,applyStyle: function(parent,childElement) {
if(parent != null && childElement != null) {
if(parent.__style == null || childElement.parentElement != this.element) {
this.__initializeElement(parent,childElement);
}
parent.__style = childElement.style;
this.__updateClip(parent);
this.__applyStyle(parent,true,true,true);
}
}
,clearStyle: function(childElement) {
if(childElement != null && childElement.parentElement == this.element) {
this.element.removeChild(childElement);
}
}
,__applyStyle: function(displayObject,setTransform,setAlpha,setClip) {
var style = displayObject.__style;
if(setTransform && displayObject.__renderTransformChanged) {
var _this = displayObject.__renderTransform;
var roundPixels = this.__roundPixels;
if(roundPixels == null) {
roundPixels = false;
}
style.setProperty(this.__transformProperty,roundPixels ? "matrix3d(" + _this.a + ", " + _this.b + ", 0, 0, " + _this.c + ", " + _this.d + ", 0, 0, 0, 0, 1, 0, " + (_this.tx | 0) + ", " + (_this.ty | 0) + ", 0, 1)" : "matrix3d(" + _this.a + ", " + _this.b + ", 0, 0, " + _this.c + ", " + _this.d + ", 0, 0, 0, 0, 1, 0, " + _this.tx + ", " + _this.ty + ", 0, 1)",null);
}
if(displayObject.__worldZ != ++this.__z) {
displayObject.__worldZ = this.__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);
}
}
}
,__initializeElement: function(displayObject,element) {
var style = displayObject.__style = element.style;
style.setProperty("position","absolute",null);
style.setProperty("top","0",null);
style.setProperty("left","0",null);
style.setProperty(this.__transformOriginProperty,"0 0 0",null);
this.element.appendChild(element);
displayObject.__worldAlphaChanged = true;
displayObject.__renderTransformChanged = true;
displayObject.__worldVisibleChanged = true;
displayObject.__worldClipChanged = true;
displayObject.__worldClip = null;
displayObject.__worldZ = -1;
}
,__popMask: function() {
this.__popMaskRect();
}
,__popMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
if(object.__mask != null) {
this.__popMask();
}
if(handleScrollRect && object.__scrollRect != null) {
this.__popMaskRect();
}
}
,__popMaskRect: function() {
if(this.__numClipRects > 0) {
this.__numClipRects--;
if(this.__numClipRects > 0) {
this.__currentClipRect = this.__clipRects[this.__numClipRects - 1];
} else {
this.__currentClipRect = null;
}
}
}
,__pushMask: function(mask) {
this.__pushMaskRect(mask.getBounds(mask),mask.__renderTransform);
}
,__pushMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
if(handleScrollRect && object.__scrollRect != null) {
this.__pushMaskRect(object.__scrollRect,object.__renderTransform);
}
if(object.__mask != null) {
this.__pushMask(object.__mask);
}
}
,__pushMaskRect: function(rect,transform) {
if(this.__numClipRects == this.__clipRects.length) {
this.__clipRects[this.__numClipRects] = new openfl_geom_Rectangle();
}
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++;
}
,__render: function(object) {
if(!this.__stage.__transparent) {
this.element.style.background = this.__stage.__colorString;
} else {
this.element.style.background = "none";
}
this.__z = 1;
object.__renderDOM(this);
}
,__setBlendMode: function(value) {
if(this.__overrideBlendMode != null) {
value = this.__overrideBlendMode;
}
if(this.__blendMode == value) {
return;
}
this.__blendMode = value;
}
,__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();
}
var clip = openfl_geom_Rectangle.__pool.get();
var matrix = openfl_geom_Matrix.__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.__pool.release(clip);
openfl_geom_Matrix.__pool.release(matrix);
}
}
,__class__: openfl_display_DOMRenderer
});
var openfl_display_DisplayObjectShader = function(code) {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}";
}
openfl_display_Shader.call(this,code);
this.__isGenerated = true;
this.__initGL();
};
$hxClasses["openfl.display.DisplayObjectShader"] = openfl_display_DisplayObjectShader;
openfl_display_DisplayObjectShader.__name__ = "openfl.display.DisplayObjectShader";
openfl_display_DisplayObjectShader.__super__ = openfl_display_Shader;
openfl_display_DisplayObjectShader.prototype = $extend(openfl_display_Shader.prototype,{
openfl_Alpha: null
,openfl_ColorMultiplier: null
,openfl_ColorOffset: null
,openfl_Position: null
,openfl_TextureCoord: null
,openfl_Matrix: null
,openfl_HasColorTransform: null
,openfl_TextureSize: null
,openfl_Texture: null
,__class__: openfl_display_DisplayObjectShader
});
var openfl_text_TextField = function() {
this.__forceCachedBitmapUpdate = false;
this.__renderedOnCanvasWhileOnDOM = false;
openfl_display_InteractiveObject.call(this);
this.__caretIndex = -1;
this.__displayAsPassword = false;
this.__graphics = new openfl_display_Graphics(this);
this.__textEngine = new openfl_text__$internal_TextEngine(this);
this.__layoutDirty = true;
this.__offsetX = 0;
this.__offsetY = 0;
this.__mouseWheelEnabled = true;
this.__text = "";
this.doubleClickEnabled = true;
if(openfl_text_TextField.__defaultTextFormat == null) {
openfl_text_TextField.__defaultTextFormat = new openfl_text_TextFormat("Times New Roman",12,0,false,false,false,"","",3,0,0,0,0);
openfl_text_TextField.__defaultTextFormat.blockIndent = 0;
openfl_text_TextField.__defaultTextFormat.bullet = false;
openfl_text_TextField.__defaultTextFormat.letterSpacing = 0;
openfl_text_TextField.__defaultTextFormat.kerning = false;
}
this.__textFormat = openfl_text_TextField.__defaultTextFormat.clone();
this.__textEngine.textFormatRanges.push(new openfl_text__$internal_TextFormatRange(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));
this.addEventListener("mouseWheel",$bind(this,this.this_onMouseWheel));
this.addEventListener("doubleClick",$bind(this,this.this_onDoubleClick));
};
$hxClasses["openfl.text.TextField"] = openfl_text_TextField;
openfl_text_TextField.__name__ = "openfl.text.TextField";
openfl_text_TextField.__defaultTextFormat = null;
openfl_text_TextField.__super__ = openfl_display_InteractiveObject;
openfl_text_TextField.prototype = $extend(openfl_display_InteractiveObject.prototype,{
__bounds: null
,__caretIndex: null
,__cursorTimer: null
,__dirty: null
,__displayAsPassword: null
,__domRender: null
,__inputEnabled: null
,__isHTML: null
,__layoutDirty: null
,__mouseWheelEnabled: null
,__offsetX: null
,__offsetY: null
,__selectionIndex: null
,__showCursor: null
,__text: null
,__htmlText: null
,__textEngine: null
,__textFormat: null
,__div: null
,__renderedOnCanvasWhileOnDOM: null
,__rawHtmlText: null
,__forceCachedBitmapUpdate: null
,appendText: function(text) {
if(text == null || text == "") {
return;
}
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
this.__updateText(this.__text + text);
this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end = this.__text.length;
this.__updateScrollV();
this.__updateScrollH();
}
,getCharBoundaries: function(charIndex) {
if(charIndex < 0 || charIndex > this.__text.length - 1) {
return null;
}
var rect = new openfl_geom_Rectangle();
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 _g = 0;
var _g1 = this.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
y += this.__textEngine.lineHeights.get(i);
}
var group = this.__textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(y >= group1.offsetY && y <= group1.offsetY + group1.height) {
if(x >= group1.offsetX && x <= group1.offsetX + group1.width) {
var advance = 0.0;
var _g = 0;
var _g1 = group1.positions.length;
while(_g < _g1) {
var i = _g++;
advance += group1.positions[i];
if(x <= group1.offsetX + advance) {
return group1.startIndex + i;
}
}
return group1.endIndex;
}
}
}
return -1;
}
,getFirstCharInParagraph: function(charIndex) {
if(charIndex < 0 || charIndex > this.get_text().length) {
return -1;
}
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 _g = 0;
var _g1 = this.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
y += this.__textEngine.lineHeights.get(i);
}
var group = this.__textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(y >= group1.offsetY && y <= group1.offsetY + group1.height) {
return group1.lineIndex;
}
}
return -1;
}
,getLineIndexOfChar: function(charIndex) {
if(charIndex < 0 || charIndex > this.__text.length) {
return -1;
}
this.__updateLayout();
var group = this.__textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.startIndex <= charIndex && group1.endIndex >= charIndex) {
return group1.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 group = this.__textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.lineIndex == lineIndex) {
if(startIndex == -1) {
startIndex = group1.startIndex;
}
} else if(group1.lineIndex == lineIndex + 1) {
endIndex = group1.startIndex;
break;
}
}
if(endIndex == -1) {
endIndex = this.__text.length;
}
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;
switch(this.__textFormat.align) {
case 0:
margin = (this.__textEngine.width - lineWidth) / 2;
break;
case 1:case 4:
margin = this.__textEngine.width - lineWidth - 2;
break;
case 2:case 3:case 5:
margin = 2;
break;
}
return new openfl_text_TextLineMetrics(margin,lineWidth,lineHeight,ascender,descender,leading);
}
,getLineOffset: function(lineIndex) {
this.__updateLayout();
if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
return -1;
}
var group = this.__textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.lineIndex == lineIndex) {
return group1.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 group = this.__textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.lineIndex == lineIndex) {
if(startIndex == -1) {
startIndex = group1.startIndex;
}
} else if(group1.lineIndex == lineIndex + 1) {
endIndex = group1.startIndex;
break;
}
}
if(endIndex == -1) {
endIndex = this.__text.length;
}
return this.__textEngine.text.substring(startIndex,endIndex);
}
,getParagraphLength: function(charIndex) {
if(charIndex < 0 || charIndex > this.get_text().length) {
return -1;
}
var startIndex = this.getFirstCharInParagraph(charIndex);
if(charIndex >= this.get_text().length) {
return this.get_text().length - startIndex + 1;
}
var endIndex = this.__textEngine.getLineBreakIndex(charIndex) + 1;
if(endIndex == 0) {
endIndex = this.__text.length;
}
return endIndex - startIndex;
}
,getTextFormat: function(beginIndex,endIndex) {
if(endIndex == null) {
endIndex = -1;
}
if(beginIndex == null) {
beginIndex = -1;
}
var format = null;
if(beginIndex >= this.get_text().length || beginIndex < -1 || endIndex > this.get_text().length || endIndex < -1) {
throw haxe_Exception.thrown(new openfl_errors_RangeError("The supplied index is out of bounds"));
}
if(beginIndex == -1) {
beginIndex = 0;
}
if(endIndex == -1) {
endIndex = this.get_text().length;
}
if(beginIndex >= endIndex) {
return new openfl_text_TextFormat();
}
var group = this.__textEngine.textFormatRanges.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.start <= beginIndex && group1.end > beginIndex || group1.start < endIndex && group1.end >= endIndex) {
if(format == null) {
format = group1.format.clone();
} else {
if(group1.format.font != format.font) {
format.font = null;
}
if(group1.format.size != format.size) {
format.size = null;
}
if(group1.format.color != format.color) {
format.color = null;
}
if(group1.format.bold != format.bold) {
format.bold = null;
}
if(group1.format.italic != format.italic) {
format.italic = null;
}
if(group1.format.underline != format.underline) {
format.underline = null;
}
if(group1.format.url != format.url) {
format.url = null;
}
if(group1.format.target != format.target) {
format.target = null;
}
if(group1.format.align != format.align) {
format.align = null;
}
if(group1.format.leftMargin != format.leftMargin) {
format.leftMargin = null;
}
if(group1.format.rightMargin != format.rightMargin) {
format.rightMargin = null;
}
if(group1.format.indent != format.indent) {
format.indent = null;
}
if(group1.format.leading != format.leading) {
format.leading = null;
}
if(group1.format.blockIndent != format.blockIndent) {
format.blockIndent = null;
}
if(group1.format.bullet != format.bullet) {
format.bullet = null;
}
if(group1.format.kerning != format.kerning) {
format.kerning = null;
}
if(group1.format.letterSpacing != format.letterSpacing) {
format.letterSpacing = null;
}
if(group1.format.tabStops != format.tabStops) {
format.tabStops = null;
}
}
}
}
if(format == null) {
format = new openfl_text_TextFormat();
}
return format;
}
,replaceSelectedText: function(value) {
this.__replaceSelectedText(value,false);
}
,replaceText: function(beginIndex,endIndex,newText) {
this.__replaceText(beginIndex,endIndex,newText,false);
}
,setSelection: function(beginIndex,endIndex) {
this.__selectionIndex = beginIndex;
this.__caretIndex = endIndex;
this.__updateScrollV();
this.__stopCursorTimer();
this.__startCursorTimer();
}
,setTextFormat: function(format,beginIndex,endIndex) {
if(endIndex == null) {
endIndex = 0;
}
if(beginIndex == null) {
beginIndex = 0;
}
var max = this.get_text().length;
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 _g = 0;
var _g1 = this.__textEngine.textFormatRanges.get_length();
while(_g < _g1) {
var i = _g++;
range = this.__textEngine.textFormatRanges.get(i);
range.format.__merge(format);
}
} else {
var index = 0;
var newRange;
while(index < this.__textEngine.textFormatRanges.get_length()) {
range = this.__textEngine.textFormatRanges.get(index);
if(range.start == beginIndex && range.end == endIndex) {
range.format.__merge(format);
break;
} else if(range.start >= beginIndex && range.end <= endIndex) {
range.format.__merge(format);
} else if(range.start >= beginIndex && range.start < endIndex && range.end > beginIndex) {
newRange = new openfl_text__$internal_TextFormatRange(range.format.clone(),range.start,endIndex);
newRange.format.__merge(format);
this.__textEngine.textFormatRanges.insertAt(index,newRange);
range.start = endIndex;
++index;
} else if(range.start < beginIndex && range.end > beginIndex && range.end >= endIndex) {
newRange = new openfl_text__$internal_TextFormatRange(range.format.clone(),beginIndex,range.end);
newRange.format.__merge(format);
this.__textEngine.textFormatRanges.insertAt(index + 1,newRange);
range.end = beginIndex;
++index;
}
++index;
}
}
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
,__allowMouseFocus: function() {
if(!(this.__textEngine.type == 1 || 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(Math.max(this.__caretIndex,this.__selectionIndex) | 0);
}
if(lineIndex < this.__textEngine.numLines - 1) {
this.__caretIndex = this.getLineOffset(lineIndex + 1) - 1;
} else {
this.__caretIndex = this.__text.length;
}
}
,__caretNextCharacter: function() {
if(this.__caretIndex < this.__text.length) {
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 = this.__text.length;
}
}
,__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.__backend.setTextInputEnabled(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.startsWith(url,"event:")) {
this.dispatchEvent(new openfl_events_TextEvent("link",false,false,HxOverrides.substr(url,6,null)));
} else {
openfl_Lib.getURL(new openfl_net_URLRequest(url));
}
}
}
}
return openfl_display_InteractiveObject.prototype.__dispatch.call(this,event);
}
,__enableInput: function() {
if(this.stage != null) {
this.stage.window.__backend.setTextInputEnabled(true);
if(!this.__inputEnabled) {
this.stage.window.__backend.setTextInputEnabled(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();
}
}
}
,__getAdvance: function(position) {
return position;
}
,__getBounds: function(rect,matrix) {
this.__updateLayout();
var bounds = openfl_geom_Rectangle.__pool.get();
bounds.copyFrom(this.__textEngine.bounds);
matrix.tx += this.__offsetX;
matrix.ty += this.__offsetY;
bounds.__transform(bounds,matrix);
rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
openfl_geom_Rectangle.__pool.release(bounds);
}
,__getCharBoundaries: function(charIndex,rect) {
if(charIndex < 0 || charIndex > this.__text.length - 1) {
return false;
}
this.__updateLayout();
var group = this.__textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(charIndex >= group1.startIndex && charIndex < group1.endIndex) {
try {
var x = group1.offsetX;
var _g = 0;
var _g1 = charIndex - group1.startIndex;
while(_g < _g1) {
var i = _g++;
x += group1.positions[i];
}
var lastPosition = group1.positions[charIndex - group1.startIndex];
rect.setTo(x,group1.offsetY,lastPosition,group1.ascent + group1.descent);
return true;
} catch( _g2 ) {
haxe_NativeStackTrace.lastError = _g2;
}
}
}
return false;
}
,__getCharIndexOnDifferentLine: function(charIndex,lineIndex) {
if(charIndex < 0 || charIndex > this.__text.length) {
return -1;
}
if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
return -1;
}
var x = null;
var y = null;
var group = this.__textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(charIndex >= group1.startIndex && charIndex <= group1.endIndex) {
x = group1.offsetX;
var _g = 0;
var _g1 = charIndex - group1.startIndex;
while(_g < _g1) {
var i = _g++;
x += group1.positions[i];
}
if(y != null) {
return this.__getPosition(x,y);
}
}
if(group1.lineIndex == lineIndex) {
y = group1.offsetY + group1.height / 2;
var _g2 = 0;
var _g3 = this.get_scrollV() - 1;
while(_g2 < _g3) {
var i1 = _g2++;
y -= this.__textEngine.lineHeights.get(i1);
}
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 "button";
} else if(this.__textEngine.selectable) {
return "ibeam";
}
return null;
}
,__getGroup: function(x,y,precise) {
if(precise == null) {
precise = false;
}
this.__updateLayout();
x += this.get_scrollH();
var _g = 0;
var _g1 = this.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
y += this.__textEngine.lineHeights.get(i);
}
if(!precise && y > this.__textEngine.textHeight) {
y = this.__textEngine.textHeight;
}
var firstGroup = true;
var group;
var nextGroup;
var _g = 0;
var _g1 = this.__textEngine.layoutGroups.get_length();
while(_g < _g1) {
var i = _g++;
group = this.__textEngine.layoutGroups.get(i);
if(i < this.__textEngine.layoutGroups.get_length() - 1) {
nextGroup = this.__textEngine.layoutGroups.get(i + 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 this.__text.length;
}
var advance = 0.0;
var _g = 0;
var _g1 = group.positions.length;
while(_g < _g1) {
var i = _g++;
advance += group.positions[i];
if(x <= group.offsetX + advance) {
if(x <= group.offsetX + (advance - group.positions[i]) + group.positions[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 _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx));
var _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x));
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 _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx));
var _this = this.__renderTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x));
if(this.__textEngine.bounds.contains(px,py)) {
return true;
}
return false;
}
,__renderCairo: function(renderer) {
}
,__renderCanvas: function(renderer) {
if(renderer.__isDOM && !this.__renderedOnCanvasWhileOnDOM) {
this.__renderedOnCanvasWhileOnDOM = true;
if(this.get_type() == 1) {
this.replaceText(0,this.__text.length,this.__text);
}
if(this.__isHTML) {
this.__updateText(openfl__$internal_formats_html_HTMLParser.parse(this.__text,this.__textFormat,this.__textEngine.textFormatRanges));
}
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
if(this.get_mask() == null || this.get_mask().get_width() > 0 && this.get_mask().get_height() > 0) {
this.__updateCacheBitmap(renderer,this.__dirty);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
var bitmap = this.__cacheBitmap;
if(bitmap.__renderable) {
var alpha = renderer.__getAlpha(bitmap.__worldAlpha);
if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
var context = renderer.context;
renderer.__setBlendMode(bitmap.__worldBlendMode);
renderer.__pushMaskObject(bitmap,false);
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image);
context.globalAlpha = alpha;
var scrollRect = bitmap.__scrollRect;
renderer.setTransform(bitmap.__renderTransform,context);
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = false;
}
if(scrollRect == null) {
context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height);
} else {
context.drawImage(bitmap.__bitmapData.image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
}
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = true;
}
renderer.__popMaskObject(bitmap,false);
}
}
} else {
var transform = this.__worldTransform;
var textEngine = this.__textEngine;
var bounds = textEngine.background || textEngine.border ? textEngine.bounds : textEngine.textBounds;
var graphics = this.__graphics;
if(this.__dirty) {
this.__updateLayout();
if(graphics.__bounds == null) {
graphics.__bounds = new openfl_geom_Rectangle();
}
graphics.__bounds.copyFrom(bounds);
}
graphics.__update(renderer.__worldTransform);
if(this.__dirty || graphics.__softwareDirty) {
var width = graphics.__width;
var height = graphics.__height;
if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) {
this.__graphics.__canvas = null;
this.__graphics.__context = null;
this.__graphics.__bitmap = null;
this.__graphics.__softwareDirty = false;
this.__graphics.set___dirty(false);
this.__dirty = false;
} else {
if(this.__graphics.__canvas == null) {
this.__graphics.__canvas = window.document.createElement("canvas");
this.__graphics.__context = this.__graphics.__canvas.getContext("2d");
}
openfl_display__$internal_CanvasTextField.context = graphics.__context;
var transform = graphics.__renderTransform;
if(renderer.__isDOM) {
var scale = renderer.pixelRatio;
graphics.__canvas.width = width * scale | 0;
graphics.__canvas.height = height * scale | 0;
graphics.__canvas.style.width = width + "px";
graphics.__canvas.style.height = height + "px";
var matrix = openfl_geom_Matrix.__pool.get();
matrix.copyFrom(transform);
matrix.scale(scale,scale);
renderer.setTransform(matrix,openfl_display__$internal_CanvasTextField.context);
openfl_geom_Matrix.__pool.release(matrix);
} else {
graphics.__canvas.width = width;
graphics.__canvas.height = height;
openfl_display__$internal_CanvasTextField.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
}
if(openfl_display__$internal_CanvasTextField.clearRect == null) {
openfl_display__$internal_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined');
}
if(openfl_display__$internal_CanvasTextField.clearRect) {
openfl_display__$internal_CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height);
}
if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) {
var text = textEngine.text;
if(!renderer.__allowSmoothing || textEngine.antiAliasType == 0 && textEngine.sharpness == 400) {
graphics.__context.imageSmoothingEnabled = false;
} else {
graphics.__context.imageSmoothingEnabled = true;
}
if(textEngine.border || textEngine.background) {
openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
if(textEngine.background) {
var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
var tmp = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.stroke();
}
}
openfl_display__$internal_CanvasTextField.context.textBaseline = "alphabetic";
openfl_display__$internal_CanvasTextField.context.textAlign = "start";
var scrollX = -this.get_scrollH();
var scrollY = 0.0;
var _g = 0;
var _g1 = this.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
scrollY -= textEngine.lineHeights.get(i);
}
var advance;
var group = textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.lineIndex < this.get_scrollV() - 1) {
continue;
}
if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) {
break;
}
var color = "#" + StringTools.hex(group1.format.color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.font = openfl_text__$internal_TextEngine.getFont(group1.format);
openfl_display__$internal_CanvasTextField.context.fillStyle = color;
openfl_display__$internal_CanvasTextField.context.fillText(text.substring(group1.startIndex,group1.endIndex),group1.offsetX + scrollX - bounds.x,group1.offsetY + group1.ascent + scrollY - bounds.y);
if(this.__caretIndex > -1 && textEngine.selectable) {
if(this.__selectionIndex == this.__caretIndex) {
if(this.__showCursor && group1.startIndex <= this.__caretIndex && group1.endIndex >= this.__caretIndex) {
advance = 0.0;
var _g = 0;
var _g1 = this.__caretIndex - group1.startIndex;
while(_g < _g1) {
var i = _g++;
if(group1.positions.length <= i) {
break;
}
advance += group1.positions[i];
}
var scrollY1 = 0.0;
var _g2 = this.get_scrollV();
var _g3 = group1.lineIndex + 1;
while(_g2 < _g3) {
var i1 = _g2++;
scrollY1 += textEngine.lineHeights.get(i1 - 1);
}
openfl_display__$internal_CanvasTextField.context.beginPath();
var tmp = StringTools.hex(group1.format.color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.moveTo(group1.offsetX + advance - this.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y);
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineTo(group1.offsetX + advance - this.get_scrollH() - bounds.x,scrollY1 + openfl_text__$internal_TextEngine.getFormatHeight(this.get_defaultTextFormat()) - 1 - bounds.y);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
} else if(group1.startIndex <= this.__caretIndex && group1.endIndex >= this.__caretIndex || group1.startIndex <= this.__selectionIndex && group1.endIndex >= this.__selectionIndex || group1.startIndex > this.__caretIndex && group1.endIndex < this.__selectionIndex || group1.startIndex > this.__selectionIndex && group1.endIndex < this.__caretIndex) {
var selectionStart = Math.min(this.__selectionIndex,this.__caretIndex) | 0;
var selectionEnd = Math.max(this.__selectionIndex,this.__caretIndex) | 0;
if(group1.startIndex > selectionStart) {
selectionStart = group1.startIndex;
}
if(group1.endIndex < selectionEnd) {
selectionEnd = group1.endIndex;
}
var end;
var start = this.getCharBoundaries(selectionStart);
if(selectionEnd >= group1.endIndex) {
end = this.getCharBoundaries(group1.endIndex - 1);
if(end != null) {
end.x += end.width + 2;
}
} else {
end = this.getCharBoundaries(selectionEnd);
}
if(start != null && end != null) {
openfl_display__$internal_CanvasTextField.context.fillStyle = "#000000";
openfl_display__$internal_CanvasTextField.context.fillRect(start.x + scrollX,start.y + scrollY,end.x - start.x,group1.height);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#FFFFFF";
openfl_display__$internal_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x,group1.offsetY + group1.ascent + scrollY);
}
}
}
if(group1.format.underline) {
openfl_display__$internal_CanvasTextField.context.beginPath();
openfl_display__$internal_CanvasTextField.context.strokeStyle = color;
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
var x = group1.offsetX + scrollX - bounds.x;
var y = Math.floor(group1.offsetY + scrollY + group1.ascent - bounds.y) + 0.5;
openfl_display__$internal_CanvasTextField.context.moveTo(x,y);
openfl_display__$internal_CanvasTextField.context.lineTo(x + group1.width,y);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
}
} else {
if(textEngine.border || textEngine.background) {
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
} else {
openfl_display__$internal_CanvasTextField.context.rect(0,0,bounds.width,bounds.height);
}
if(textEngine.background) {
var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineCap = "square";
var tmp = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.stroke();
}
}
if(this.__caretIndex > -1 && textEngine.selectable && this.__showCursor) {
var scrollX = -this.get_scrollH();
var scrollY = 0.0;
var _g = 0;
var _g1 = this.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
scrollY += textEngine.lineHeights.get(i);
}
openfl_display__$internal_CanvasTextField.context.beginPath();
var tmp = StringTools.hex(this.get_defaultTextFormat().color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.moveTo(scrollX + 2.5,scrollY + 2.5);
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineTo(scrollX + 2.5,scrollY + openfl_text__$internal_TextEngine.getFormatHeight(this.get_defaultTextFormat()) - 1);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
}
graphics.__bitmap = openfl_display_BitmapData.fromCanvas(this.__graphics.__canvas);
graphics.__visible = true;
this.__dirty = false;
graphics.__softwareDirty = false;
graphics.set___dirty(false);
}
}
var smoothingEnabled = false;
if(this.__textEngine.antiAliasType == 0 && this.__textEngine.gridFitType == 1) {
smoothingEnabled = renderer.context.imageSmoothingEnabled;
if(smoothingEnabled) {
renderer.context.imageSmoothingEnabled = false;
}
}
if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(this.__renderable) {
var alpha = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context = renderer.context;
renderer.setTransform(this.__renderTransform,context);
var color = this.opaqueBackground;
context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")";
context.fillRect(0,0,this.get_width(),this.get_height());
renderer.__popMaskObject(this);
}
if(this.__graphics != null) {
if(this.__renderable) {
var alpha = renderer.__getAlpha(this.__worldAlpha);
if(!(alpha <= 0)) {
var graphics = this.__graphics;
if(graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer);
var width = graphics.__width;
var height = graphics.__height;
var canvas = graphics.__canvas;
if(canvas != null && graphics.__visible && width >= 1 && height >= 1) {
var transform = graphics.__worldTransform;
var context = renderer.context;
var scrollRect = this.__scrollRect;
var scale9Grid = this.__worldScale9Grid;
if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
context.globalAlpha = alpha;
if(scale9Grid != null && transform.b == 0 && transform.c == 0) {
context.setTransform(1,0,0,1,transform.tx,transform.ty);
var bounds = graphics.__bounds;
var scaleX = graphics.__renderTransform.a;
var scaleY = graphics.__renderTransform.d;
var renderScaleX = transform.a;
var renderScaleY = transform.d;
var left = Math.max(1,Math.round(scale9Grid.x * scaleX));
var top = Math.round(scale9Grid.y * scaleY);
var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX));
var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY);
var centerWidth = Math.round(scale9Grid.width * scaleX);
var centerHeight = Math.round(scale9Grid.height * scaleY);
var renderLeft = Math.round(scale9Grid.x * renderScaleX);
var renderTop = Math.round(scale9Grid.y * renderScaleY);
var renderRight = Math.round((bounds.get_right() - scale9Grid.get_right()) * renderScaleX);
var renderBottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * renderScaleY);
var renderCenterWidth = Math.round(width * renderScaleX) - renderLeft - renderRight;
var renderCenterHeight = Math.round(height * renderScaleY) - renderTop - renderBottom;
renderer.applySmoothing(context,false);
if(centerWidth != 0 && centerHeight != 0) {
context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop);
context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop);
context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop);
context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight);
context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight);
context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom);
context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom);
context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom);
} else if(centerWidth == 0 && centerHeight != 0) {
var renderWidth = renderLeft + renderCenterWidth + renderRight;
context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop);
context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom);
} else if(centerHeight == 0 && centerWidth != 0) {
var renderHeight = renderTop + renderCenterHeight + renderBottom;
context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight);
context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight);
context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight);
}
} else {
renderer.setTransform(transform,context);
if(renderer.__isDOM) {
var reverseScale = 1 / renderer.pixelRatio;
context.scale(reverseScale,reverseScale);
}
context.drawImage(canvas,0,0,width,height);
}
renderer.__popMaskObject(this);
}
}
}
}
}
}
}
}
}
if(smoothingEnabled) {
renderer.context.imageSmoothingEnabled = true;
}
}
}
}
,__renderDOM: function(renderer) {
this.__domRender = true;
this.__updateCacheBitmap(renderer,this.__forceCachedBitmapUpdate);
this.__forceCachedBitmapUpdate = false;
this.__domRender = false;
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
this.__renderDOMClear(renderer);
this.__cacheBitmap.stage = this.stage;
var bitmap = this.__cacheBitmap;
if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
renderer.__pushMaskObject(bitmap);
if(bitmap.__bitmapData.image.buffer.__srcImage != null) {
openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer);
} else {
openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer);
}
renderer.__popMaskObject(bitmap);
} else {
openfl_display__$internal_DOMBitmap.clear(bitmap,renderer);
}
} else {
if(this.__renderedOnCanvasWhileOnDOM) {
this.__renderedOnCanvasWhileOnDOM = false;
if(this.__isHTML && this.__rawHtmlText != null) {
this.__updateText(this.__rawHtmlText);
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
var textField = this;
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 == 1) {
if(textField.__div == null) {
textField.__div = window.document.createElement("div");
renderer.__initializeElement(textField,textField.__div);
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;
textField.dispatchEvent(new openfl_events_TextEvent("textInput",false,false,textField.get_htmlText()));
}
},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);
}
var div = textField.__div;
div.contentEditable = textEngine.type == 1;
var style = textField.__style;
if(textEngine.background) {
style.setProperty("background-color","#" + StringTools.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.htmlEscape(text);
} else {
var matchText = text;
while(openfl_display__$internal_DOMTextField.__regexFont.match(matchText)) {
var fontText = openfl_display__$internal_DOMTextField.__regexFont.matched(0);
var style1 = "";
if(openfl_display__$internal_DOMTextField.__regexFace.match(fontText)) {
style1 += "font-family:'" + openfl_display__$internal_DOMTextField.__getAttributeMatch(openfl_display__$internal_DOMTextField.__regexFace) + "';";
}
if(openfl_display__$internal_DOMTextField.__regexColor.match(fontText)) {
style1 += "color:#" + openfl_display__$internal_DOMTextField.__getAttributeMatch(openfl_display__$internal_DOMTextField.__regexColor) + ";";
}
if(openfl_display__$internal_DOMTextField.__regexSize.match(fontText)) {
var sizeAttr = openfl_display__$internal_DOMTextField.__getAttributeMatch(openfl_display__$internal_DOMTextField.__regexSize);
var firstChar = HxOverrides.cca(sizeAttr,0);
var size;
adjustment = parseFloat(sizeAttr) * scale;
if(firstChar == 43 || firstChar == 45) {
size = scaledSize + adjustment;
} else {
size = adjustment;
}
style1 += "font-size:" + size + "px;";
}
text = StringTools.replace(text,fontText,"<span style='" + style1 + "'>");
matchText = openfl_display__$internal_DOMTextField.__regexFont.matchedRight();
}
text = text.replace(openfl_display__$internal_DOMTextField.__regexCloseFont.r,"</span>");
}
text = StringTools.replace(text,"<p ","<p style='margin-top:0; margin-bottom:0;' ");
var unscaledLeading = textField.__textFormat.leading;
textField.__textFormat.leading += adjustment | 0;
var _this_r = new RegExp("\r\n","g".split("u").join(""));
var tmp = text.replace(_this_r,"<br>");
textField.__div.innerHTML = tmp;
var _this_r = new RegExp("\n","g".split("u").join(""));
var tmp = textField.__div.innerHTML.replace(_this_r,"<br>");
textField.__div.innerHTML = tmp;
var _this_r = new RegExp("\r","g".split("u").join(""));
var tmp = textField.__div.innerHTML.replace(_this_r,"<br>");
textField.__div.innerHTML = tmp;
style.setProperty("font",openfl_text__$internal_TextEngine.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.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.hex(textField.__textFormat.color & 16777215,6),null);
style.setProperty("width",w + "px",null);
style.setProperty("height",h + "px",null);
switch(textField.__textFormat.align) {
case 0:
style.setProperty("text-align","center",null);
break;
case 4:
style.setProperty("text-align","right",null);
break;
default:
style.setProperty("text-align","left",null);
}
textField.__dirty = false;
} else if(textField.__div != null) {
renderer.element.removeChild(textField.__div);
textField.__div = null;
}
}
if(textField.__div != null) {
var old = renderer.__roundPixels;
renderer.__roundPixels = true;
renderer.__updateClip(textField);
renderer.__applyStyle(textField,true,true,true);
renderer.__roundPixels = old;
}
} else {
openfl_display__$internal_DOMTextField.clear(textField,renderer);
}
}
this.__renderEvent(renderer);
}
,__renderDOMClear: function(renderer) {
openfl_display__$internal_DOMTextField.clear(this,renderer);
}
,__renderGL: function(renderer) {
this.__updateCacheBitmap(renderer,false);
if(this.__cacheBitmap != null && !this.__isCacheBitmapRender) {
openfl_display__$internal_Context3DBitmap.render(this.__cacheBitmap,renderer);
} else {
openfl_display__$internal_Context3DTextField.render(this,renderer);
if(!(this.opaqueBackground == null && this.__graphics == null)) {
if(!(!this.__renderable || this.__worldAlpha <= 0)) {
if(this.opaqueBackground != null && !this.__isCacheBitmapRender && this.get_width() > 0 && this.get_height() > 0) {
renderer.__setBlendMode(this.__worldBlendMode);
renderer.__pushMaskObject(this);
var context = renderer.__context3D;
var rect = openfl_geom_Rectangle.__pool.get();
rect.setTo(0,0,this.get_width(),this.get_height());
renderer.__pushMaskRect(rect,this.__renderTransform);
var color = this.opaqueBackground;
context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1);
renderer.__popMaskRect();
renderer.__popMaskObject(this);
openfl_geom_Rectangle.__pool.release(rect);
}
if(this.__graphics != null) {
openfl_display__$internal_Context3DShape.render(this,renderer);
}
}
}
}
this.__renderEvent(renderer);
}
,__renderGLMask: function(renderer) {
openfl_display__$internal_Context3DTextField.renderMask(this,renderer);
openfl_display_InteractiveObject.prototype.__renderGLMask.call(this,renderer);
}
,__replaceSelectedText: function(value,restrict) {
if(restrict == null) {
restrict = true;
}
if(value == null) {
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 && this.__text.length == this.__textEngine.maxChars) {
return;
}
if(startIndex > this.__text.length) {
startIndex = this.__text.length;
}
if(endIndex > this.__text.length) {
endIndex = this.__text.length;
}
if(endIndex < startIndex) {
var cache = endIndex;
endIndex = startIndex;
startIndex = cache;
}
if(startIndex < 0) {
startIndex = 0;
}
this.__replaceText(startIndex,endIndex,value,restrict);
var i = startIndex + (js_Boot.__cast(value , String)).length;
if(i > this.__text.length) {
i = this.__text.length;
}
this.setSelection(i,i);
this.__updateScrollH();
}
,__replaceText: function(beginIndex,endIndex,newText,restrict) {
if(endIndex < beginIndex || beginIndex < 0 || endIndex > this.__text.length || newText == null) {
return;
}
if(restrict) {
newText = this.__textEngine.restrictText(newText);
if(this.__textEngine.maxChars > 0) {
var removeLength = endIndex - beginIndex;
var maxLength = this.__textEngine.maxChars - this.__text.length + removeLength;
if(maxLength <= 0) {
newText = "";
} else if(maxLength < newText.length) {
newText = HxOverrides.substr(newText,0,maxLength);
}
}
}
this.__updateText(this.__text.substring(0,beginIndex) + newText + this.__text.substring(endIndex));
if(endIndex > this.__text.length) {
endIndex = this.__text.length;
}
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.__updateScrollV();
this.__updateScrollH();
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
,__shouldCacheHardware: function(value) {
if(value == true) {
return true;
} else {
return false;
}
}
,__startCursorTimer: function() {
this.__cursorTimer = haxe_Timer.delay($bind(this,this.__startCursorTimer),600);
this.__showCursor = !this.__showCursor;
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
,__startTextInput: function() {
if(this.__caretIndex < 0) {
this.__caretIndex = this.__text.length;
this.__selectionIndex = this.__caretIndex;
}
var enableInput = openfl_display_DisplayObject.__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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
,__stopTextInput: function() {
var disableInput = openfl_display_DisplayObject.__supportDOM ? this.__renderedOnCanvasWhileOnDOM : true;
if(disableInput) {
this.__disableInput();
}
}
,__updateCacheBitmap: function(renderer,force) {
if(this.__filters == null && renderer.__type == "opengl" && this.__cacheBitmap == null && !this.__domRender) {
return false;
}
if(force) {
this.__renderDirty = true;
}
if(openfl_display_InteractiveObject.prototype.__updateCacheBitmap.call(this,renderer,force || this.__dirty)) {
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;
this.__textEngine.update();
if(this.__textEngine.autoSize != 2) {
if(this.__textEngine.width != cacheWidth) {
switch(this.__textEngine.autoSize) {
case 0:
var _g = this;
_g.set_x(_g.get_x() + (cacheWidth - this.__textEngine.width) / 2);
break;
case 3:
var _g = this;
_g.set_x(_g.get_x() + (cacheWidth - this.__textEngine.width));
break;
default:
}
}
this.__textEngine.getBounds();
}
this.__layoutDirty = false;
}
}
,__updateScrollH: function() {
if(!this.get_multiline() && this.get_type() == 1) {
this.__layoutDirty = true;
this.__updateLayout();
var offsetX = this.__textEngine.textWidth - this.__textEngine.width + 4;
if(offsetX > 0) {
if(this.__caretIndex >= this.get_text().length) {
this.set_scrollH(Math.ceil(offsetX));
} else {
var caret = openfl_geom_Rectangle.__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.__pool.release(caret);
}
} else {
this.set_scrollH(0);
}
}
}
,__updateScrollV: function() {
this.__layoutDirty = true;
this.__updateLayout();
var lineIndex = this.getLineIndexOfChar(this.__caretIndex);
if(lineIndex == -1 && this.__caretIndex > 0) {
lineIndex = this.getLineIndexOfChar(this.__caretIndex - 1) + 1;
}
if(lineIndex + 1 < this.get_scrollV()) {
this.set_scrollV(lineIndex + 1);
} else if(lineIndex + 1 > this.get_bottomScrollV()) {
var i = lineIndex;
var tempHeight = 0.0;
while(i >= 0) if(tempHeight + this.__textEngine.lineHeights.get(i) <= this.get_height() - 4) {
tempHeight += this.__textEngine.lineHeights.get(i);
--i;
} else {
break;
}
this.set_scrollV(i + 2);
} else {
this.set_scrollV(this.get_scrollV());
}
}
,__updateText: function(value) {
if(openfl_display_DisplayObject.__supportDOM && this.__renderedOnCanvasWhileOnDOM) {
this.__forceCachedBitmapUpdate = this.__text != value;
}
this.__textEngine.set_text(value);
this.__text = this.__textEngine.text;
if(this.__text.length < this.__caretIndex) {
this.__selectionIndex = this.__caretIndex = this.__text.length;
}
if(!this.__displayAsPassword || openfl_display_DisplayObject.__supportDOM && !this.__renderedOnCanvasWhileOnDOM) {
this.__textEngine.set_text(this.__text);
} else {
var length = this.get_text().length;
var mask = "";
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
mask += "*";
}
this.__textEngine.set_text(mask);
}
}
,__updateTransforms: function(overrideTransform) {
openfl_display_InteractiveObject.prototype.__updateTransforms.call(this,overrideTransform);
var _this = this.__renderTransform;
var px = this.__offsetX;
var py = this.__offsetY;
_this.tx = px * _this.a + py * _this.c + _this.tx;
_this.ty = px * _this.b + py * _this.d + _this.ty;
}
,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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__textEngine.autoSize = value;
}
,get_background: function() {
return this.__textEngine.background;
}
,set_background: function(value) {
if(value != this.__textEngine.background) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__textEngine.background = value;
}
,get_backgroundColor: function() {
return this.__textEngine.backgroundColor;
}
,set_backgroundColor: function(value) {
if(value != this.__textEngine.backgroundColor) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__textEngine.backgroundColor = value;
}
,get_border: function() {
return this.__textEngine.border;
}
,set_border: function(value) {
if(value != this.__textEngine.border) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__textEngine.border = value;
}
,get_borderColor: function() {
return this.__textEngine.borderColor;
}
,set_borderColor: function(value) {
if(value != this.__textEngine.borderColor) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__textEngine.borderColor = value;
}
,get_bottomScrollV: function() {
this.__updateLayout();
return this.__textEngine.get_bottomScrollV();
}
,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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
return value;
}
,get_displayAsPassword: function() {
return this.__displayAsPassword;
}
,set_displayAsPassword: function(value) {
if(value != this.__displayAsPassword) {
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
this.__textEngine.height = value;
}
return this.__textEngine.height * Math.abs(this.get_scaleY());
}
,get_htmlText: function() {
if(this.__isHTML) {
return this.__rawHtmlText;
} else {
return this.__text;
}
}
,set_htmlText: function(value) {
if(!this.__isHTML || this.__text != value) {
this.__dirty = true;
this.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
this.__isHTML = true;
this.__rawHtmlText = value;
value = openfl__$internal_formats_html_HTMLParser.parse(value,this.__textFormat,this.__textEngine.textFormatRanges);
if(openfl_display_DisplayObject.__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);
}
this.__updateScrollV();
return value;
}
,get_length: function() {
if(this.__text != null) {
return this.__text.length;
}
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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return value;
}
,get_maxScrollH: function() {
this.__updateLayout();
return this.__textEngine.maxScrollH;
}
,get_maxScrollV: function() {
this.__updateLayout();
return this.__textEngine.get_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();
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
this.__textEngine.scrollH = value;
this.dispatchEvent(new openfl_events_Event("scroll"));
}
return this.__textEngine.scrollH;
}
,get_scrollV: function() {
return this.__textEngine.get_scrollV();
}
,set_scrollV: function(value) {
this.__updateLayout();
if(value > 0 && value != this.__textEngine.get_scrollV()) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
this.__textEngine.set_scrollV(value);
this.dispatchEvent(new openfl_events_Event("scroll"));
}
return this.__textEngine.get_scrollV();
}
,get_selectable: function() {
return this.__textEngine.selectable;
}
,set_selectable: function(value) {
if(value != this.__textEngine.selectable && this.get_type() == 1) {
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 Math.min(this.__caretIndex,this.__selectionIndex) | 0;
}
,get_selectionEndIndex: function() {
return Math.max(this.__caretIndex,this.__selectionIndex) | 0;
}
,get_sharpness: function() {
return this.__textEngine.sharpness;
}
,set_sharpness: function(value) {
if(value != this.__textEngine.sharpness) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
return this.__textEngine.sharpness = value;
}
,get_tabEnabled: function() {
if(this.__tabEnabled == null) {
return this.__textEngine.type == 1;
} 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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
} 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 = utfValue.length;
this.__isHTML = false;
this.__updateText(value);
this.__updateScrollV();
return value;
}
,get_textColor: function() {
return this.__textFormat.color;
}
,set_textColor: function(value) {
if(value != this.__textFormat.color) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
var range = this.__textEngine.textFormatRanges.iterator();
while(range.hasNext()) {
var range1 = range.next();
range1.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 == 1) {
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.__layoutDirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
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.get_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;
var setDirty = true;
if(openfl_display_DisplayObject.__supportDOM) {
if(this.__renderedOnCanvasWhileOnDOM) {
this.__forceCachedBitmapUpdate = true;
}
setDirty = false;
}
if(setDirty) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
}
}
,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 upPos = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY());
var leftPos = Math.min(this.__selectionIndex,upPos) | 0;
var rightPos = Math.max(this.__selectionIndex,upPos) | 0;
this.__selectionIndex = leftPos;
this.__caretIndex = rightPos;
if(this.__inputEnabled) {
this.this_onFocusIn(null);
this.__stopCursorTimer();
this.__startCursorTimer();
if(openfl_display_DisplayObject.__supportDOM && this.__renderedOnCanvasWhileOnDOM) {
this.__forceCachedBitmapUpdate = true;
}
}
}
}
,this_onAddedToStage: function(event) {
this.this_onFocusIn(null);
}
,this_onFocusIn: function(event) {
if(this.get_type() == 1 && this.stage != null && this.stage.get_focus() == this) {
this.__startTextInput();
}
}
,this_onFocusOut: function(event) {
this.__stopCursorTimer();
if(event.relatedObject == null || !((event.relatedObject) instanceof openfl_text_TextField)) {
this.__stopTextInput();
} else {
if(this.stage != null) {
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;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
,this_onKeyDown: function(event) {
if(this.get_selectable() && this.get_type() != 1 && event.keyCode == 67 && (event.commandKey || event.ctrlKey)) {
if(this.__caretIndex != this.__selectionIndex) {
lime_system_Clipboard.set_text(this.__text.substring(this.__caretIndex,this.__selectionIndex));
}
}
}
,this_onMouseDown: function(event) {
if(!this.get_selectable() && this.get_type() != 1) {
return;
}
this.__updateLayout();
this.__caretIndex = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY());
this.__selectionIndex = this.__caretIndex;
if(!openfl_display_DisplayObject.__supportDOM) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
this.stage.addEventListener("mouseMove",$bind(this,this.stage_onMouseMove));
this.stage.addEventListener("mouseUp",$bind(this,this.stage_onMouseUp));
}
,this_onMouseWheel: function(event) {
if(this.get_mouseWheelEnabled()) {
var _g = this;
_g.set_scrollV(_g.get_scrollV() - event.delta);
}
}
,this_onDoubleClick: function(event) {
if(this.get_selectable()) {
this.__updateLayout();
var delimiters = ["\n",".","!","?",","," ",";",":","(",")","-","_","/"];
var txtStr = this.__text;
var leftPos = -1;
var rightPos = txtStr.length;
var pos = 0;
var startPos = Math.max(this.__caretIndex,1) | 0;
if(txtStr.length > 0 && this.__caretIndex >= 0 && rightPos >= this.__caretIndex) {
var _g = 0;
while(_g < delimiters.length) {
var c = delimiters[_g];
++_g;
pos = txtStr.lastIndexOf(c,startPos - 1);
if(pos > leftPos) {
leftPos = pos + 1;
}
pos = txtStr.indexOf(c,startPos);
if(pos < rightPos && pos != -1) {
rightPos = pos;
}
}
if(leftPos != rightPos) {
this.setSelection(leftPos,rightPos);
var setDirty = true;
if(openfl_display_DisplayObject.__supportDOM) {
if(this.__renderedOnCanvasWhileOnDOM) {
this.__forceCachedBitmapUpdate = true;
}
setDirty = false;
}
if(setDirty) {
this.__dirty = true;
if(!this.__renderDirty) {
this.__renderDirty = true;
this.__setParentRenderDirty();
}
}
}
}
}
}
,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("change",true));
}
break;
case 97:
if(this.get_selectable()) {
if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) {
this.__caretIndex = this.__text.length;
this.__selectionIndex = 0;
}
}
break;
case 99:
if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) {
if(this.__caretIndex != this.__selectionIndex) {
lime_system_Clipboard.set_text(this.__text.substring(this.__caretIndex,this.__selectionIndex));
}
}
break;
case 120:
if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) {
if(this.__caretIndex != this.__selectionIndex) {
lime_system_Clipboard.set_text(this.__text.substring(this.__caretIndex,this.__selectionIndex));
this.replaceSelectedText("");
this.dispatchEvent(new openfl_events_Event("change",true));
}
}
break;
case 127:
if(this.__selectionIndex == this.__caretIndex && this.__caretIndex < this.__text.length) {
this.__selectionIndex = this.__caretIndex + 1;
}
if(this.__selectionIndex != this.__caretIndex) {
this.replaceSelectedText("");
this.__selectionIndex = this.__caretIndex;
this.dispatchEvent(new openfl_events_Event("change",true));
}
break;
case 1073741898:
if(this.get_selectable()) {
this.__caretBeginningOfLine();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741901:
if(this.get_selectable()) {
this.__caretEndOfLine();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741903:
if(this.get_selectable()) {
if(lime_ui_KeyModifier.get_metaKey(modifier)) {
this.__caretEndOfLine();
if(!lime_ui_KeyModifier.get_shiftKey(modifier)) {
this.__selectionIndex = this.__caretIndex;
}
} else if(lime_ui_KeyModifier.get_shiftKey(modifier)) {
this.__caretNextCharacter();
} else {
if(this.__selectionIndex == this.__caretIndex) {
this.__caretNextCharacter();
} else {
this.__caretIndex = Math.max(this.__caretIndex,this.__selectionIndex) | 0;
}
this.__selectionIndex = this.__caretIndex;
}
this.__updateScrollH();
this.__updateScrollV();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741904:
if(this.get_selectable()) {
if(lime_ui_KeyModifier.get_metaKey(modifier)) {
this.__caretBeginningOfLine();
if(!lime_ui_KeyModifier.get_shiftKey(modifier)) {
this.__selectionIndex = this.__caretIndex;
}
} else if(lime_ui_KeyModifier.get_shiftKey(modifier)) {
this.__caretPreviousCharacter();
} else {
if(this.__selectionIndex == this.__caretIndex) {
this.__caretPreviousCharacter();
} else {
this.__caretIndex = Math.min(this.__caretIndex,this.__selectionIndex) | 0;
}
this.__selectionIndex = this.__caretIndex;
}
this.__updateScrollH();
this.__updateScrollV();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741905:
if(this.get_selectable()) {
if(!this.__textEngine.multiline) {
return;
}
if(lime_ui_KeyModifier.get_shiftKey(modifier)) {
this.__caretNextLine();
} else {
if(this.__selectionIndex == this.__caretIndex) {
this.__caretNextLine();
} else {
var lineIndex = this.getLineIndexOfChar(Math.max(this.__caretIndex,this.__selectionIndex) | 0);
this.__caretNextLine(lineIndex,Math.min(this.__caretIndex,this.__selectionIndex) | 0);
}
this.__selectionIndex = this.__caretIndex;
}
this.__updateScrollV();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 1073741906:
if(this.get_selectable()) {
if(!this.__textEngine.multiline) {
return;
}
if(lime_ui_KeyModifier.get_shiftKey(modifier)) {
this.__caretPreviousLine();
} else {
if(this.__selectionIndex == this.__caretIndex) {
this.__caretPreviousLine();
} else {
var lineIndex = this.getLineIndexOfChar(Math.min(this.__caretIndex,this.__selectionIndex) | 0);
this.__caretPreviousLine(lineIndex,Math.min(this.__caretIndex,this.__selectionIndex) | 0);
}
this.__selectionIndex = this.__caretIndex;
}
this.__updateScrollV();
this.__stopCursorTimer();
this.__startCursorTimer();
}
break;
case 13:case 1073741912:
if(this.__textEngine.multiline) {
var te = new openfl_events_TextEvent("textInput",true,true,"\n");
this.dispatchEvent(te);
if(!te.isDefaultPrevented()) {
this.__replaceSelectedText("\n",true);
this.dispatchEvent(new openfl_events_Event("change",true));
}
}
break;
default:
}
}
,window_onTextInput: function(value) {
this.__replaceSelectedText(value,true);
this.dispatchEvent(new openfl_events_Event("change",true));
}
,__class__: openfl_text_TextField
,__properties__: $extend(openfl_display_InteractiveObject.prototype.__properties__,{set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_type:"set_type",get_type:"get_type",get_textWidth:"get_textWidth",get_textHeight:"get_textHeight",set_textColor:"set_textColor",get_textColor:"get_textColor",set_text:"set_text",get_text:"get_text",set_sharpness:"set_sharpness",get_sharpness:"get_sharpness",get_selectionEndIndex:"get_selectionEndIndex",get_selectionBeginIndex:"get_selectionBeginIndex",set_selectable:"set_selectable",get_selectable:"get_selectable",set_scrollV:"set_scrollV",get_scrollV:"get_scrollV",set_scrollH:"set_scrollH",get_scrollH:"get_scrollH",set_restrict:"set_restrict",get_restrict:"get_restrict",get_numLines:"get_numLines",set_multiline:"set_multiline",get_multiline:"get_multiline",set_mouseWheelEnabled:"set_mouseWheelEnabled",get_mouseWheelEnabled:"get_mouseWheelEnabled",get_maxScrollV:"get_maxScrollV",get_maxScrollH:"get_maxScrollH",set_maxChars:"set_maxChars",get_maxChars:"get_maxChars",get_length:"get_length",set_htmlText:"set_htmlText",get_htmlText:"get_htmlText",set_gridFitType:"set_gridFitType",get_gridFitType:"get_gridFitType",set_embedFonts:"set_embedFonts",get_embedFonts:"get_embedFonts",set_displayAsPassword:"set_displayAsPassword",get_displayAsPassword:"get_displayAsPassword",set_defaultTextFormat:"set_defaultTextFormat",get_defaultTextFormat:"get_defaultTextFormat",get_caretIndex:"get_caretIndex",get_bottomScrollV:"get_bottomScrollV",set_borderColor:"set_borderColor",get_borderColor:"get_borderColor",set_border:"set_border",get_border:"get_border",set_backgroundColor:"set_backgroundColor",get_backgroundColor:"get_backgroundColor",set_background:"set_background",get_background:"get_background",set_autoSize:"set_autoSize",get_autoSize:"get_autoSize",set_antiAliasType:"set_antiAliasType",get_antiAliasType:"get_antiAliasType"})
});
var openfl_display_FPS = function(x,y,color) {
if(color == null) {
color = 0;
}
if(y == null) {
y = 10;
}
if(x == null) {
x = 10;
}
openfl_text_TextField.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("_sans",12,color));
this.set_text("FPS: ");
this.cacheCount = 0;
this.currentTime = 0;
this.times = [];
};
$hxClasses["openfl.display.FPS"] = openfl_display_FPS;
openfl_display_FPS.__name__ = "openfl.display.FPS";
openfl_display_FPS.__super__ = openfl_text_TextField;
openfl_display_FPS.prototype = $extend(openfl_text_TextField.prototype,{
currentFPS: null
,cacheCount: null
,currentTime: null
,times: null
,__enterFrame: function(deltaTime) {
this.currentTime += deltaTime;
this.times.push(this.currentTime);
while(this.times[0] < this.currentTime - 1000) 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;
}
,__class__: openfl_display_FPS
});
var openfl_display_FrameLabel = function(name,frame) {
openfl_events_EventDispatcher.call(this);
this.name = name;
this.frame = frame;
};
$hxClasses["openfl.display.FrameLabel"] = openfl_display_FrameLabel;
openfl_display_FrameLabel.__name__ = "openfl.display.FrameLabel";
openfl_display_FrameLabel.__super__ = openfl_events_EventDispatcher;
openfl_display_FrameLabel.prototype = $extend(openfl_events_EventDispatcher.prototype,{
frame: null
,name: null
,__class__: openfl_display_FrameLabel
});
var openfl_display_FrameScript = function(script,frame) {
this.script = script;
this.frame = frame;
};
$hxClasses["openfl.display.FrameScript"] = openfl_display_FrameScript;
openfl_display_FrameScript.__name__ = "openfl.display.FrameScript";
openfl_display_FrameScript.prototype = {
frame: null
,script: null
,__class__: openfl_display_FrameScript
};
var openfl_display_GradientType = {};
openfl_display_GradientType.fromInt = function(value) {
return value;
};
openfl_display_GradientType.fromString = function(value) {
switch(value) {
case "linear":
return 0;
case "radial":
return 1;
default:
return null;
}
};
openfl_display_GradientType.toInt = function(this1) {
return this1;
};
openfl_display_GradientType.toString = function(this1) {
switch(this1) {
case 0:
return "linear";
case 1:
return "radial";
default:
return null;
}
};
var openfl_display_Graphics = function(owner) {
this.__dirty = true;
this.__owner = owner;
this.__commands = new openfl_display__$internal_DrawCommandBuffer();
this.__strokePadding = 0;
this.__positionX = 0;
this.__positionY = 0;
this.__renderTransform = new openfl_geom_Matrix();
this.__usedShaderBuffers = new haxe_ds_List();
this.__worldTransform = new openfl_geom_Matrix();
this.__width = 0;
this.__height = 0;
this.__shaderBufferPool = new lime_utils_ObjectPool(function() {
return new openfl_display__$internal_ShaderBuffer();
});
this.moveTo(0,0);
};
$hxClasses["openfl.display.Graphics"] = openfl_display_Graphics;
openfl_display_Graphics.__name__ = "openfl.display.Graphics";
openfl_display_Graphics.prototype = {
__bounds: null
,__commands: null
,__dirty: null
,__hardwareDirty: null
,__height: null
,__managed: null
,__positionX: null
,__positionY: null
,__quadBuffer: null
,__renderTransform: null
,__shaderBufferPool: null
,__softwareDirty: null
,__strokePadding: null
,__transformDirty: null
,__triangleIndexBuffer: null
,__triangleIndexBufferCount: null
,__triangleIndexBufferData: null
,__usedShaderBuffers: null
,__vertexBuffer: null
,__vertexBufferCount: null
,__vertexBufferCountUVT: null
,__vertexBufferData: null
,__vertexBufferDataUVT: null
,__vertexBufferUVT: null
,__visible: null
,__owner: null
,__width: null
,__worldTransform: null
,__canvas: null
,__context: null
,__bitmap: null
,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 = 1;
}
if(spreadMethod == null) {
spreadMethod = 0;
}
if(colors == null || colors.length == 0) {
return;
}
if(alphas == null) {
alphas = [];
var _g = 0;
var _g1 = colors.length;
while(_g < _g1) {
var i = _g++;
alphas.push(1);
}
}
if(ratios == null) {
ratios = [];
var _g = 0;
var _g1 = colors.length;
while(_g < _g1) {
var i = _g++;
ratios.push(Math.ceil(i / colors.length * 255));
}
}
if(alphas.length < colors.length || ratios.length < colors.length) {
return;
}
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;
}
}
}
,beginShaderFill: function(shader,matrix) {
if(shader != null) {
var shaderBuffer = this.__shaderBufferPool.get();
this.__usedShaderBuffers.add(shaderBuffer);
shaderBuffer.update(shader);
this.__commands.beginShaderFill(shaderBuffer);
}
}
,clear: function() {
var _g_head = this.__usedShaderBuffers.h;
while(_g_head != null) {
var val = _g_head.item;
_g_head = _g_head.next;
var shaderBuffer = val;
this.__shaderBufferPool.release(shaderBuffer);
}
this.__usedShaderBuffers.clear();
this.__commands.clear();
this.__strokePadding = 0;
if(this.__bounds != null) {
this.set___dirty(true);
this.__transformDirty = true;
this.__bounds = null;
}
this.__visible = false;
this.__positionX = 0;
this.__positionY = 0;
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 = anchorX;
var 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);
}
}
var iy1 = anchorY;
var iy2 = anchorY;
if(!((controlY1 < anchorY && controlY1 > this.__positionX || controlY1 > anchorY && controlY1 < this.__positionX) && (controlY2 < anchorY && controlY2 > this.__positionX || controlY2 > anchorY && controlY2 < this.__positionX))) {
var u = 2 * this.__positionX - 4 * controlY1 + 2 * controlY2;
var v = controlY1 - this.__positionX;
var w = -this.__positionX + 3 * controlY1 + anchorY - 3 * controlY2;
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) {
iy1 = this.__calculateBezierCubicPoint(t1,this.__positionX,controlY1,controlY2,anchorY);
}
if(t2 > 0 && t2 < 1) {
iy2 = this.__calculateBezierCubicPoint(t2,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 shaderFill;
var stroke;
var path;
var trianglePath;
var quadPath;
var graphics = graphicsData.iterator();
while(graphics.hasNext()) {
var graphics1 = graphics.next();
switch(graphics1.__graphicsDataType) {
case 0:
stroke = graphics1;
if(stroke.fill != null) {
var thickness = stroke.thickness;
if(isNaN(thickness)) {
thickness = null;
}
switch(stroke.fill.__graphicsFillType) {
case 0:
fill = stroke.fill;
this.lineStyle(thickness,fill.color,fill.alpha,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit);
break;
case 1:
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 2:
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 1:
fill = graphics1;
this.beginFill(fill.color,fill.alpha);
break;
case 2:
gradientFill = graphics1;
this.beginGradientFill(gradientFill.type,gradientFill.colors,gradientFill.alphas,gradientFill.ratios,gradientFill.matrix,gradientFill.spreadMethod,gradientFill.interpolationMethod,gradientFill.focalPointRatio);
break;
case 3:
path = graphics1;
this.drawPath(path.commands,path.data,path.winding);
break;
case 4:
bitmapFill = graphics1;
this.beginBitmapFill(bitmapFill.bitmapData,bitmapFill.matrix,bitmapFill.repeat,bitmapFill.smooth);
break;
case 5:
this.endFill();
break;
case 6:
quadPath = graphics1;
this.drawQuads(quadPath.rects,quadPath.indices,quadPath.transforms);
break;
case 7:
trianglePath = graphics1;
this.drawTriangles(trianglePath.vertices,trianglePath.indices,trianglePath.uvtData,trianglePath.culling);
break;
case 8:
shaderFill = graphics1;
this.beginShaderFill(shaderFill.shader,shaderFill.matrix);
break;
}
}
}
,drawPath: function(commands,data,winding) {
if(winding == null) {
winding = 0;
}
var dataIndex = 0;
if(winding == 1) {
this.__commands.windingNonZero();
}
var command = commands.iterator();
_hx_loop1: while(command.hasNext()) {
var command1 = command.next();
switch(command1) {
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));
break _hx_loop1;
case 5:
this.lineTo(data.get(dataIndex + 2),data.get(dataIndex + 3));
break _hx_loop1;
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:
}
}
}
,drawQuads: function(rects,indices,transforms) {
if(rects == null) {
return;
}
var hasIndices = indices != null;
var transformABCD = false;
var transformXY = false;
var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4);
if(length == 0) {
return;
}
if(transforms != null) {
if(transforms.get_length() >= length * 6) {
transformABCD = true;
transformXY = true;
} else if(transforms.get_length() >= length * 4) {
transformABCD = true;
} else if(transforms.get_length() >= length * 2) {
transformXY = true;
}
}
var tileRect = openfl_geom_Rectangle.__pool.get();
var tileTransform = openfl_geom_Matrix.__pool.get();
var minX = Infinity;
var minY = Infinity;
var maxX = -Infinity;
var maxY = -Infinity;
var ri;
var ti;
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
ri = hasIndices ? indices.get(i) * 4 : i * 4;
if(ri < 0) {
continue;
}
tileRect.setTo(0,0,rects.get(ri + 2),rects.get(ri + 3));
if(tileRect.width <= 0 || tileRect.height <= 0) {
continue;
}
if(transformABCD && transformXY) {
ti = i * 6;
tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),transforms.get(ti + 4),transforms.get(ti + 5));
} else if(transformABCD) {
ti = i * 4;
tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),tileRect.x,tileRect.y);
} else if(transformXY) {
ti = i * 2;
tileTransform.tx = transforms.get(ti);
tileTransform.ty = transforms.get(ti + 1);
} else {
tileTransform.tx = tileRect.x;
tileTransform.ty = tileRect.y;
}
tileRect.__transform(tileRect,tileTransform);
if(minX > tileRect.x) {
minX = tileRect.x;
}
if(minY > tileRect.y) {
minY = tileRect.y;
}
if(maxX < tileRect.get_right()) {
maxX = tileRect.get_right();
}
if(maxY < tileRect.get_bottom()) {
maxY = tileRect.get_bottom();
}
}
this.__inflateBounds(minX,minY);
this.__inflateBounds(maxX,maxY);
this.__commands.drawQuads(rects,indices,transforms);
this.set___dirty(true);
this.__visible = true;
openfl_geom_Rectangle.__pool.release(tileRect);
openfl_geom_Matrix.__pool.release(tileTransform);
}
,drawRect: function(x,y,width,height) {
if(width == 0 && height == 0) {
return;
}
var xSign = width < 0 ? -1 : 1;
var ySign = height < 0 ? -1 : 1;
this.__inflateBounds(x - this.__strokePadding * xSign,y - this.__strokePadding * ySign);
this.__inflateBounds(x + width + this.__strokePadding * xSign,y + height + this.__strokePadding * ySign);
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;
}
var xSign = width < 0 ? -1 : 1;
var ySign = height < 0 ? -1 : 1;
this.__inflateBounds(x - this.__strokePadding * xSign,y - this.__strokePadding * ySign);
this.__inflateBounds(x + width + this.__strokePadding * xSign,y + height + this.__strokePadding * ySign);
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 = minSize;
}
if(!(topRightRadius < minSize)) {
topRightRadius = minSize;
}
if(!(bottomLeftRadius < minSize)) {
bottomLeftRadius = minSize;
}
if(!(bottomRightRadius < minSize)) {
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 = 1;
}
if(vertices == null || vertices.get_length() == 0) {
return;
}
var vertLength = vertices.get_length() / 2 | 0;
if(indices == null) {
if(vertLength % 3 != 0) {
throw haxe_Exception.thrown(new openfl_errors_ArgumentError("Not enough vertices to close a triangle."));
}
indices = openfl_Vector.toIntVector(null);
var _g = 0;
var _g1 = vertLength;
while(_g < _g1) {
var i = _g++;
indices.push(i);
}
}
if(culling == null) {
culling = 1;
}
var x;
var y;
var minX = Infinity;
var minY = Infinity;
var maxX = -Infinity;
var maxY = -Infinity;
var _g = 0;
var _g1 = vertLength;
while(_g < _g1) {
var i = _g++;
x = vertices.get(i * 2);
y = vertices.get(i * 2 + 1);
if(minX > x) {
minX = x;
}
if(minY > y) {
minY = y;
}
if(maxX < x) {
maxX = x;
}
if(maxY < y) {
maxY = y;
}
}
this.__inflateBounds(minX,minY);
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 = 1;
}
if(spreadMethod == null) {
spreadMethod = 0;
}
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 = 2;
}
if(pixelHinting == null) {
pixelHinting = false;
}
if(alpha == null) {
alpha = 1;
}
if(color == null) {
color = 0;
}
if(thickness != null) {
if(joints == 1) {
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);
}
,overrideBlendMode: function(blendMode) {
if(blendMode == null) {
blendMode = 10;
}
this.__commands.overrideBlendMode(blendMode);
}
,readGraphicsData: function(recurse) {
if(recurse == null) {
recurse = true;
}
var graphicsData = openfl_Vector.toObjectVector(null);
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.__canvas != 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.__pool.get();
this.__bounds.__transform(bounds,matrix);
rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
openfl_geom_Rectangle.__pool.release(bounds);
}
,__hitTest: function(x,y,shapeFlag,matrix) {
if(this.__bounds == null) {
return false;
}
var norm = matrix.a * matrix.d - matrix.b * matrix.c;
var px = norm == 0 ? -matrix.tx : 1.0 / norm * (matrix.c * (matrix.ty - y) + matrix.d * (x - matrix.tx));
var norm = matrix.a * matrix.d - matrix.b * matrix.c;
var py = norm == 0 ? -matrix.ty : 1.0 / norm * (matrix.a * (y - matrix.ty) + matrix.b * (matrix.tx - x));
if(px > this.__bounds.x && py > this.__bounds.y && this.__bounds.contains(px,py)) {
if(shapeFlag) {
return openfl_display__$internal_CanvasGraphics.hitTest(this,px,py);
}
return true;
}
return false;
}
,__inflateBounds: function(x,y) {
if(this.__bounds == null) {
this.__bounds = new openfl_geom_Rectangle(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_display__$internal_DrawCommandReader(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._hx_index) {
case 4:case 5:case 6:case 7:case 9:case 10:case 17:case 18:
if(path == null) {
path = new openfl_display_GraphicsPath();
}
break;
default:
if(path != null) {
graphicsData.push(path);
path = null;
}
}
switch(type._hx_index) {
case 0:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = data;
var c = this1;
graphicsData.push(new openfl_display_GraphicsBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]));
break;
case 1:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL;
var this2 = data;
var c1 = this2;
graphicsData.push(new openfl_display_GraphicsSolidFill(c1.buffer.i[c1.iPos],1));
break;
case 2:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL;
var this3 = data;
var c2 = this3;
graphicsData.push(new openfl_display_GraphicsGradientFill(c2.buffer.o[c2.oPos],c2.buffer.ii[c2.iiPos],c2.buffer.ff[c2.ffPos],c2.buffer.ii[c2.iiPos + 1],c2.buffer.o[c2.oPos + 1],c2.buffer.o[c2.oPos + 2],c2.buffer.o[c2.oPos + 3],c2.buffer.f[c2.fPos]));
break;
case 3:
break;
case 4:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO;
var this4 = data;
var c3 = this4;
path.cubicCurveTo(c3.buffer.f[c3.fPos],c3.buffer.f[c3.fPos + 1],c3.buffer.f[c3.fPos + 2],c3.buffer.f[c3.fPos + 3],c3.buffer.f[c3.fPos + 4],c3.buffer.f[c3.fPos + 5]);
break;
case 5:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO;
var this5 = data;
var c4 = this5;
path.curveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3]);
break;
case 6:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE;
var this6 = data;
var c5 = this6;
path.__drawCircle(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2]);
break;
case 7:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE;
var this7 = data;
var c6 = this7;
path.__drawEllipse(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2],c6.buffer.f[c6.fPos + 3]);
break;
case 9:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT;
var this8 = data;
var c7 = this8;
path.__drawRect(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]);
break;
case 10:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT;
var this9 = data;
var c8 = this9;
path.__drawRoundRect(c8.buffer.f[c8.fPos],c8.buffer.f[c8.fPos + 1],c8.buffer.f[c8.fPos + 2],c8.buffer.f[c8.fPos + 3],c8.buffer.f[c8.fPos + 4],c8.buffer.o[c8.oPos] != null ? c8.buffer.o[c8.oPos] : c8.buffer.f[c8.fPos + 4]);
break;
case 13:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.END_FILL;
var this10 = data;
graphicsData.push(new openfl_display_GraphicsEndFill());
break;
case 14:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE;
var this11 = data;
var c9 = this11;
path = null;
break;
case 15:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE;
var this12 = data;
var c10 = this12;
break;
case 16:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE;
var this13 = data;
var c11 = this13;
stroke = new openfl_display_GraphicsStroke(c11.buffer.o[c11.oPos],c11.buffer.b[c11.bPos],c11.buffer.o[c11.oPos + 1],c11.buffer.o[c11.oPos + 2],c11.buffer.o[c11.oPos + 3],c11.buffer.f[c11.fPos + 1]);
stroke.fill = new openfl_display_GraphicsSolidFill(c11.buffer.i[c11.iPos],c11.buffer.f[c11.fPos]);
graphicsData.push(stroke);
break;
case 17:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_TO;
var this14 = data;
var c12 = this14;
path.lineTo(c12.buffer.f[c12.fPos],c12.buffer.f[c12.fPos + 1]);
break;
case 18:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO;
var this15 = data;
var c13 = this15;
path.moveTo(c13.buffer.f[c13.fPos],c13.buffer.f[c13.fPos + 1]);
break;
default:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
}
}
if(path != null) {
graphicsData.push(path);
}
}
,__update: function(displayMatrix) {
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;
}
if(displayMatrix != null) {
if(displayMatrix.b == 0) {
scaleX *= displayMatrix.a;
} else {
scaleX *= Math.sqrt(displayMatrix.a * displayMatrix.a + displayMatrix.b * displayMatrix.b);
}
if(displayMatrix.c == 0) {
scaleY *= displayMatrix.d;
} else {
scaleY *= Math.sqrt(displayMatrix.c * displayMatrix.c + displayMatrix.d * displayMatrix.d);
}
}
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(openfl_display_Graphics.maxTextureWidth != null && width > openfl_display_Graphics.maxTextureWidth) {
width = openfl_display_Graphics.maxTextureWidth;
scaleX = openfl_display_Graphics.maxTextureWidth / this.__bounds.width;
}
if(openfl_display_Graphics.maxTextureWidth != null && height > openfl_display_Graphics.maxTextureHeight) {
height = openfl_display_Graphics.maxTextureHeight;
scaleY = openfl_display_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.round(tx);
this.__worldTransform.ty = Math.round(ty);
var _this = this.__worldTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
this.__renderTransform.tx = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - ty) + _this.d * (tx - _this.tx));
var _this = this.__worldTransform;
var norm = _this.a * _this.d - _this.b * _this.c;
this.__renderTransform.ty = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (ty - _this.ty) + _this.b * (_this.tx - tx));
var newWidth = Math.ceil(width + 1.0);
var newHeight = Math.ceil(height + 1.0);
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) {
var _this = this.__owner;
if(!_this.__renderDirty) {
_this.__renderDirty = true;
_this.__setParentRenderDirty();
}
}
if(value) {
this.__softwareDirty = true;
this.__hardwareDirty = true;
}
return this.__dirty = value;
}
,__class__: openfl_display_Graphics
,__properties__: {set___dirty:"set___dirty"}
};
var openfl_display_IGraphicsFill = function() { };
$hxClasses["openfl.display.IGraphicsFill"] = openfl_display_IGraphicsFill;
openfl_display_IGraphicsFill.__name__ = "openfl.display.IGraphicsFill";
openfl_display_IGraphicsFill.__isInterface__ = true;
openfl_display_IGraphicsFill.prototype = {
__graphicsFillType: null
,__class__: openfl_display_IGraphicsFill
};
var openfl_display_IGraphicsData = function() { };
$hxClasses["openfl.display.IGraphicsData"] = openfl_display_IGraphicsData;
openfl_display_IGraphicsData.__name__ = "openfl.display.IGraphicsData";
openfl_display_IGraphicsData.__isInterface__ = true;
openfl_display_IGraphicsData.prototype = {
__graphicsDataType: null
,__class__: openfl_display_IGraphicsData
};
var openfl_display_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 = 4;
this.__graphicsFillType = 2;
};
$hxClasses["openfl.display.GraphicsBitmapFill"] = openfl_display_GraphicsBitmapFill;
openfl_display_GraphicsBitmapFill.__name__ = "openfl.display.GraphicsBitmapFill";
openfl_display_GraphicsBitmapFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsBitmapFill.prototype = {
bitmapData: null
,matrix: null
,repeat: null
,smooth: null
,__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsBitmapFill
};
var openfl_display_GraphicsEndFill = function() {
this.__graphicsDataType = 5;
this.__graphicsFillType = 3;
};
$hxClasses["openfl.display.GraphicsEndFill"] = openfl_display_GraphicsEndFill;
openfl_display_GraphicsEndFill.__name__ = "openfl.display.GraphicsEndFill";
openfl_display_GraphicsEndFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsEndFill.prototype = {
__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsEndFill
};
var openfl_display_GraphicsGradientFill = function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
if(focalPointRatio == null) {
focalPointRatio = 0;
}
if(type == null) {
type = 0;
}
if(spreadMethod == null) {
spreadMethod = 0;
}
if(interpolationMethod == null) {
interpolationMethod = 1;
}
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 = 2;
this.__graphicsFillType = 1;
};
$hxClasses["openfl.display.GraphicsGradientFill"] = openfl_display_GraphicsGradientFill;
openfl_display_GraphicsGradientFill.__name__ = "openfl.display.GraphicsGradientFill";
openfl_display_GraphicsGradientFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsGradientFill.prototype = {
alphas: null
,colors: null
,focalPointRatio: null
,interpolationMethod: null
,matrix: null
,ratios: null
,spreadMethod: null
,type: null
,__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsGradientFill
};
var openfl_display_IGraphicsPath = function() { };
$hxClasses["openfl.display.IGraphicsPath"] = openfl_display_IGraphicsPath;
openfl_display_IGraphicsPath.__name__ = "openfl.display.IGraphicsPath";
openfl_display_IGraphicsPath.__isInterface__ = true;
var openfl_display_GraphicsPath = function(commands,data,winding) {
if(winding == null) {
winding = 0;
}
this.commands = commands;
this.data = data;
this.winding = winding;
this.__graphicsDataType = 3;
};
$hxClasses["openfl.display.GraphicsPath"] = openfl_display_GraphicsPath;
openfl_display_GraphicsPath.__name__ = "openfl.display.GraphicsPath";
openfl_display_GraphicsPath.__interfaces__ = [openfl_display_IGraphicsPath,openfl_display_IGraphicsData];
openfl_display_GraphicsPath.prototype = {
commands: null
,data: null
,winding: null
,__graphicsDataType: null
,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) {
if(this.commands == null) {
this.commands = openfl_Vector.toIntVector(null);
}
if(this.data == null) {
this.data = openfl_Vector.toFloatVector(null);
}
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.toIntVector(null);
}
if(this.data == null) {
this.data = openfl_Vector.toFloatVector(null);
}
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.toIntVector(null);
}
if(this.data == null) {
this.data = openfl_Vector.toFloatVector(null);
}
this.commands.push(2);
this.data.push(x);
this.data.push(y);
}
,moveTo: function(x,y) {
if(this.commands == null) {
this.commands = openfl_Vector.toIntVector(null);
}
if(this.data == null) {
this.data = openfl_Vector.toFloatVector(null);
}
this.commands.push(1);
this.data.push(x);
this.data.push(y);
}
,wideLineTo: function(x,y) {
if(this.commands == null) {
this.commands = openfl_Vector.toIntVector(null);
}
if(this.data == null) {
this.data = openfl_Vector.toFloatVector(null);
}
this.commands.push(2);
this.data.push(x);
this.data.push(y);
}
,wideMoveTo: function(x,y) {
if(this.commands == null) {
this.commands = openfl_Vector.toIntVector(null);
}
if(this.data == null) {
this.data = openfl_Vector.toFloatVector(null);
}
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 * 0.70710678118654752440084436210485;
var cx2 = -ellipseWidth + ellipseWidth * 0.4142135623730950488016887242097;
var cy1 = -ellipseHeight + ellipseHeight * 0.70710678118654752440084436210485;
var cy2 = -ellipseHeight + ellipseHeight * 0.4142135623730950488016887242097;
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);
}
,__class__: openfl_display_GraphicsPath
};
var openfl_display_GraphicsPathWinding = {};
openfl_display_GraphicsPathWinding.fromString = function(value) {
switch(value) {
case "evenOdd":
return 0;
case "nonZero":
return 1;
default:
return null;
}
};
openfl_display_GraphicsPathWinding.toString = function(this1) {
switch(this1) {
case 0:
return "evenOdd";
case 1:
return "nonZero";
default:
return null;
}
};
var openfl_display_GraphicsQuadPath = function(rects,indices,transforms) {
this.rects = rects;
this.indices = indices;
this.transforms = transforms;
this.__graphicsDataType = 6;
};
$hxClasses["openfl.display.GraphicsQuadPath"] = openfl_display_GraphicsQuadPath;
openfl_display_GraphicsQuadPath.__name__ = "openfl.display.GraphicsQuadPath";
openfl_display_GraphicsQuadPath.__interfaces__ = [openfl_display_IGraphicsPath,openfl_display_IGraphicsData];
openfl_display_GraphicsQuadPath.prototype = {
indices: null
,rects: null
,transforms: null
,__graphicsDataType: null
,__class__: openfl_display_GraphicsQuadPath
};
var openfl_display_GraphicsShaderFill = function(shader,matrix) {
this.shader = shader;
this.matrix = matrix;
this.__graphicsDataType = 8;
this.__graphicsFillType = 4;
};
$hxClasses["openfl.display.GraphicsShaderFill"] = openfl_display_GraphicsShaderFill;
openfl_display_GraphicsShaderFill.__name__ = "openfl.display.GraphicsShaderFill";
openfl_display_GraphicsShaderFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsShaderFill.prototype = {
matrix: null
,shader: null
,__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsShaderFill
};
var openfl_display_GraphicsSolidFill = function(color,alpha) {
if(alpha == null) {
alpha = 1;
}
if(color == null) {
color = 0;
}
this.alpha = alpha;
this.color = color;
this.__graphicsDataType = 1;
this.__graphicsFillType = 0;
};
$hxClasses["openfl.display.GraphicsSolidFill"] = openfl_display_GraphicsSolidFill;
openfl_display_GraphicsSolidFill.__name__ = "openfl.display.GraphicsSolidFill";
openfl_display_GraphicsSolidFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData];
openfl_display_GraphicsSolidFill.prototype = {
alpha: null
,color: null
,__graphicsDataType: null
,__graphicsFillType: null
,__class__: openfl_display_GraphicsSolidFill
};
var openfl_display_IGraphicsStroke = function() { };
$hxClasses["openfl.display.IGraphicsStroke"] = openfl_display_IGraphicsStroke;
openfl_display_IGraphicsStroke.__name__ = "openfl.display.IGraphicsStroke";
openfl_display_IGraphicsStroke.__isInterface__ = true;
var openfl_display_GraphicsStroke = function(thickness,pixelHinting,scaleMode,caps,joints,miterLimit,fill) {
if(miterLimit == null) {
miterLimit = 3;
}
if(joints == null) {
joints = 2;
}
if(caps == null) {
caps = 0;
}
if(scaleMode == null) {
scaleMode = 2;
}
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 = 0;
};
$hxClasses["openfl.display.GraphicsStroke"] = openfl_display_GraphicsStroke;
openfl_display_GraphicsStroke.__name__ = "openfl.display.GraphicsStroke";
openfl_display_GraphicsStroke.__interfaces__ = [openfl_display_IGraphicsStroke,openfl_display_IGraphicsData];
openfl_display_GraphicsStroke.prototype = {
caps: null
,fill: null
,joints: null
,miterLimit: null
,pixelHinting: null
,scaleMode: null
,thickness: null
,__graphicsDataType: null
,__class__: openfl_display_GraphicsStroke
};
var openfl_display_GraphicsTrianglePath = function(vertices,indices,uvtData,culling) {
if(culling == null) {
culling = 1;
}
this.vertices = vertices;
this.indices = indices;
this.uvtData = uvtData;
this.culling = culling;
this.__graphicsDataType = 7;
};
$hxClasses["openfl.display.GraphicsTrianglePath"] = openfl_display_GraphicsTrianglePath;
openfl_display_GraphicsTrianglePath.__name__ = "openfl.display.GraphicsTrianglePath";
openfl_display_GraphicsTrianglePath.__interfaces__ = [openfl_display_IGraphicsPath,openfl_display_IGraphicsData];
openfl_display_GraphicsTrianglePath.prototype = {
culling: null
,indices: null
,uvtData: null
,vertices: null
,__graphicsDataType: null
,__class__: openfl_display_GraphicsTrianglePath
};
var openfl_display_InterpolationMethod = {};
openfl_display_InterpolationMethod.fromInt = function(value) {
return value;
};
openfl_display_InterpolationMethod.fromString = function(value) {
switch(value) {
case "linearRGB":
return 0;
case "rgb":
return 1;
default:
return null;
}
};
openfl_display_InterpolationMethod.toInt = function(this1) {
return this1;
};
openfl_display_InterpolationMethod.toString = function(this1) {
switch(this1) {
case 0:
return "linearRGB";
case 1:
return "rgb";
default:
return null;
}
};
var openfl_display_JPEGEncoderOptions = function(quality) {
if(quality == null) {
quality = 80;
}
this.quality = quality;
};
$hxClasses["openfl.display.JPEGEncoderOptions"] = openfl_display_JPEGEncoderOptions;
openfl_display_JPEGEncoderOptions.__name__ = "openfl.display.JPEGEncoderOptions";
openfl_display_JPEGEncoderOptions.prototype = {
quality: null
,__class__: openfl_display_JPEGEncoderOptions
};
var openfl_display_JointStyle = {};
openfl_display_JointStyle.fromInt = function(value) {
return value;
};
openfl_display_JointStyle.fromString = function(value) {
switch(value) {
case "bevel":
return 0;
case "miter":
return 1;
case "round":
return 2;
default:
return null;
}
};
openfl_display_JointStyle.toInt = function(this1) {
return this1;
};
openfl_display_JointStyle.toString = function(this1) {
switch(this1) {
case 0:
return "bevel";
case 1:
return "miter";
case 2:
return "round";
default:
return null;
}
};
var openfl_display_LineScaleMode = {};
openfl_display_LineScaleMode.fromInt = function(value) {
return value;
};
openfl_display_LineScaleMode.fromString = function(value) {
switch(value) {
case "horizontal":
return 0;
case "none":
return 1;
case "normal":
return 2;
case "vertical":
return 3;
default:
return null;
}
};
openfl_display_LineScaleMode.toInt = function(this1) {
return this1;
};
openfl_display_LineScaleMode.toString = function(this1) {
switch(this1) {
case 0:
return "horizontal";
case 1:
return "none";
case 2:
return "normal";
case 3:
return "vertical";
default:
return null;
}
};
var openfl_display_Loader = function() {
openfl_display_DisplayObjectContainer.call(this);
this.contentLoaderInfo = openfl_display_LoaderInfo.create(this);
this.uncaughtErrorEvents = this.contentLoaderInfo.uncaughtErrorEvents;
this.__unloaded = true;
};
$hxClasses["openfl.display.Loader"] = openfl_display_Loader;
openfl_display_Loader.__name__ = "openfl.display.Loader";
openfl_display_Loader.__super__ = openfl_display_DisplayObjectContainer;
openfl_display_Loader.prototype = $extend(openfl_display_DisplayObjectContainer.prototype,{
content: null
,contentLoaderInfo: null
,uncaughtErrorEvents: null
,__library: null
,__path: null
,__unloaded: null
,close: function() {
openfl__$internal_Lib.notImplemented({ fileName : "openfl/display/Loader.hx", lineNumber : 66, className : "openfl.display.Loader", methodName : "close"});
}
,load: function(request,context) {
this.unload();
this.contentLoaderInfo.loaderURL = openfl_Lib.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.endsWith(this.__path,"/")) this.__path = this.__path.substring(0,this.__path.length - 1);
if(StringTools.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.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();
loader.dataFormat = 0;
if(this.contentLoaderInfo.contentType.indexOf("/json") > -1 || this.contentLoaderInfo.contentType.indexOf("/javascript") > -1 || this.contentLoaderInfo.contentType.indexOf("/ecmascript") > -1) {
loader.dataFormat = 1;
}
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.loadFromBytes(buffer).onComplete($bind(this,this.BitmapData_onLoad)).onError($bind(this,this.BitmapData_onError));
}
,unload: function() {
if(!this.__unloaded) {
if(this.content != null && this.content.parent == this) {
openfl_display_DisplayObjectContainer.prototype.removeChild.call(this,this.content);
}
if(this.__library != null) {
openfl_utils_Assets.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("unload"));
}
}
,unloadAndStop: function(gc) {
if(gc == null) {
gc = true;
}
if(this.content != null) {
this.content.__stopAllMovieClips();
}
var _g = 0;
var _g1 = this.get_numChildren();
while(_g < _g1) {
var i = _g++;
this.getChildAt(i).__stopAllMovieClips();
}
this.unload();
var gc1 = gc;
}
,__dispatchError: function(text) {
var event = new openfl_events_IOErrorEvent("ioError");
event.text = text;
this.contentLoaderInfo.dispatchEvent(event);
}
,__setContent: function(content,width,height) {
this.content = content;
this.contentLoaderInfo.content = content;
this.contentLoaderInfo.width = width;
this.contentLoaderInfo.height = height;
if(content != null) {
openfl_display_DisplayObjectContainer.prototype.addChildAt.call(this,content,0);
}
}
,BitmapData_onError: function(error) {
this.__dispatchError(Std.string(error));
}
,BitmapData_onLoad: function(bitmapData) {
if(bitmapData == null) {
this.__dispatchError("Unknown error");
return;
}
this.__setContent(new openfl_display_Bitmap(bitmapData),bitmapData.width,bitmapData.height);
this.contentLoaderInfo.dispatchEvent(new openfl_events_Event("complete"));
}
,BitmapData_onProgress: function(bytesLoaded,bytesTotal) {
var event = new openfl_events_ProgressEvent("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.parse(loader.data,haxe_io_Path.directory(this.__path));
if(manifest == null) {
this.__dispatchError("Cannot parse asset manifest");
return;
}
var library = lime_utils_AssetLibrary.fromManifest(manifest);
if(library == null) {
this.__dispatchError("Cannot open library");
return;
}
if(((library) instanceof openfl_utils_AssetLibrary)) {
library.load().onComplete(function(_) {
_gthis.__library = library;
openfl_utils_Assets.registerLibrary(_gthis.contentLoaderInfo.url,_gthis.__library);
if(manifest.name != null && !openfl_utils_Assets.hasLibrary(manifest.name)) {
openfl_utils_Assets.registerLibrary(manifest.name,_gthis.__library);
}
var clip = _gthis.__library.getMovieClip("");
_gthis.__setContent(clip,clip.get_width() | 0,clip.get_height() | 0);
_gthis.contentLoaderInfo.dispatchEvent(new openfl_events_Event("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.__setContent(new openfl_display_Sprite(),0,0);
eval("(function () {" + Std.string(loader.data) + "})()");
this.contentLoaderInfo.dispatchEvent(new openfl_events_Event("complete"));
} else {
this.contentLoaderInfo.bytes = loader.data;
openfl_display_BitmapData.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);
}
,__class__: openfl_display_Loader
});
var openfl_display_LoaderInfo = function() {
openfl_events_EventDispatcher.call(this);
this.applicationDomain = openfl_system_ApplicationDomain.currentDomain;
this.bytesLoaded = 0;
this.bytesTotal = 0;
this.childAllowsParent = true;
this.parameters = { };
};
$hxClasses["openfl.display.LoaderInfo"] = openfl_display_LoaderInfo;
openfl_display_LoaderInfo.__name__ = "openfl.display.LoaderInfo";
openfl_display_LoaderInfo.create = function(loader) {
var loaderInfo = new openfl_display_LoaderInfo();
loaderInfo.uncaughtErrorEvents = new openfl_events_UncaughtErrorEvents();
if(loader != null) {
loaderInfo.loader = loader;
} else {
loaderInfo.url = openfl_display_LoaderInfo.__rootURL;
}
return loaderInfo;
};
openfl_display_LoaderInfo.__super__ = openfl_events_EventDispatcher;
openfl_display_LoaderInfo.prototype = $extend(openfl_events_EventDispatcher.prototype,{
applicationDomain: null
,bytes: null
,bytesLoaded: null
,bytesTotal: null
,childAllowsParent: null
,content: null
,contentType: null
,frameRate: null
,height: null
,loader: null
,loaderURL: null
,parameters: null
,parentAllowsChild: null
,sameDomain: null
,sharedEvents: null
,uncaughtErrorEvents: null
,url: null
,width: null
,__completed: null
,__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("complete"));
}
}
,__update: function(bytesLoaded,bytesTotal) {
this.bytesLoaded = bytesLoaded;
this.bytesTotal = bytesTotal;
this.dispatchEvent(new openfl_events_ProgressEvent("progress",false,false,bytesLoaded,bytesTotal));
}
,__class__: openfl_display_LoaderInfo
});
var openfl_display_MovieClip = function() {
openfl_display_Sprite.call(this);
this.__enabled = true;
if(openfl_display_MovieClip.__constructor != null) {
var method = openfl_display_MovieClip.__constructor;
openfl_display_MovieClip.__constructor = null;
method(this);
}
};
$hxClasses["openfl.display.MovieClip"] = openfl_display_MovieClip;
openfl_display_MovieClip.__name__ = "openfl.display.MovieClip";
openfl_display_MovieClip.__constructor = null;
openfl_display_MovieClip.fromTimeline = function(timeline) {
var movieClip = new openfl_display_MovieClip();
movieClip.attachTimeline(timeline);
return movieClip;
};
openfl_display_MovieClip.__super__ = openfl_display_Sprite;
openfl_display_MovieClip.prototype = $extend(openfl_display_Sprite.prototype,{
__enabled: null
,__hasDown: null
,__hasOver: null
,__hasUp: null
,__mouseIsDown: null
,__scene: null
,__timeline: null
,addFrameScript: function(index,method) {
if(this.__timeline != null) {
this.__timeline.__addFrameScript(index,method);
}
}
,attachTimeline: function(timeline) {
this.__timeline = timeline;
if(timeline != null) {
timeline.__attachMovieClip(this);
this.play();
}
}
,gotoAndPlay: function(frame,scene) {
if(this.__timeline != null) {
this.__timeline.__gotoAndPlay(frame,scene);
}
}
,gotoAndStop: function(frame,scene) {
if(this.__timeline != null) {
this.__timeline.__gotoAndStop(frame,scene);
}
}
,nextFrame: function() {
if(this.__timeline != null) {
this.__timeline.__nextFrame();
}
}
,nextScene: function() {
if(this.__timeline != null) {
this.__timeline.__nextScene();
}
}
,play: function() {
if(this.__timeline != null) {
this.__timeline.__play();
}
}
,prevFrame: function() {
if(this.__timeline != null) {
this.__timeline.__prevFrame();
}
}
,prevScene: function() {
if(this.__timeline != null) {
this.__timeline.__prevScene();
}
}
,stop: function() {
if(this.__timeline != null) {
this.__timeline.__stop();
}
}
,__enterFrame: function(deltaTime) {
if(this.__timeline != null) {
this.__timeline.__enterFrame(deltaTime);
}
var _g = 0;
var _g1 = this.__children;
while(_g < _g1.length) {
var child = _g1[_g];
++_g;
child.__enterFrame(deltaTime);
}
}
,__stopAllMovieClips: function() {
openfl_display_Sprite.prototype.__stopAllMovieClips.call(this);
this.stop();
}
,__tabTest: function(stack) {
if(!this.__enabled) {
return;
}
openfl_display_Sprite.prototype.__tabTest.call(this,stack);
}
,__onMouseDown: function(event) {
if(this.__enabled && this.__hasDown) {
this.gotoAndStop("_down");
}
this.__mouseIsDown = true;
this.stage.addEventListener("mouseUp",$bind(this,this.__onMouseUp),true);
}
,__onMouseUp: function(event) {
this.__mouseIsDown = false;
if(this.stage != null) {
this.stage.removeEventListener("mouseUp",$bind(this,this.__onMouseUp));
}
if(!this.__buttonMode) {
return;
}
if(event.target == this && this.__enabled && this.__hasOver) {
this.gotoAndStop("_over");
} else if(this.__enabled && this.__hasUp) {
this.gotoAndStop("_up");
}
}
,__onRollOut: function(event) {
if(!this.__enabled) {
return;
}
if(this.__mouseIsDown && this.__hasOver) {
this.gotoAndStop("_over");
} else if(this.__hasUp) {
this.gotoAndStop("_up");
}
}
,__onRollOver: function(event) {
if(this.__enabled && this.__hasOver) {
this.gotoAndStop("_over");
}
}
,set_buttonMode: function(value) {
if(this.__buttonMode != value) {
if(value) {
this.__hasDown = false;
this.__hasOver = false;
this.__hasUp = false;
var _g = 0;
var _g1 = this.get_currentLabels();
while(_g < _g1.length) {
var frameLabel = _g1[_g];
++_g;
switch(frameLabel.name) {
case "_down":
this.__hasDown = true;
break;
case "_over":
this.__hasOver = true;
break;
case "_up":
this.__hasUp = true;
break;
default:
}
}
if(this.__hasDown || this.__hasOver || this.__hasUp) {
this.addEventListener("rollOver",$bind(this,this.__onRollOver));
this.addEventListener("rollOut",$bind(this,this.__onRollOut));
this.addEventListener("mouseDown",$bind(this,this.__onMouseDown));
}
} else {
this.removeEventListener("rollOver",$bind(this,this.__onRollOver));
this.removeEventListener("rollOut",$bind(this,this.__onRollOut));
this.removeEventListener("mouseDown",$bind(this,this.__onMouseDown));
}
this.__buttonMode = value;
}
return value;
}
,get_currentFrame: function() {
if(this.__timeline != null) {
return this.__timeline.__currentFrame;
} else {
return 1;
}
}
,get_currentFrameLabel: function() {
if(this.__timeline != null) {
return this.__timeline.__currentFrameLabel;
} else {
return null;
}
}
,get_currentLabel: function() {
if(this.__timeline != null) {
return this.__timeline.__currentLabel;
} else {
return null;
}
}
,get_currentLabels: function() {
if(this.__timeline != null) {
return this.__timeline.__currentLabels.slice();
} else {
return [];
}
}
,get_currentScene: function() {
if(this.__timeline != null) {
return this.__timeline.__currentScene;
} else {
if(this.__scene == null) {
this.__scene = new openfl_display_Scene("",[],1);
}
return this.__scene;
}
}
,get_enabled: function() {
return this.__enabled;
}
,set_enabled: function(value) {
return this.__enabled = value;
}
,get_framesLoaded: function() {
if(this.__timeline != null) {
return this.__timeline.__framesLoaded;
} else {
return 1;
}
}
,get_isPlaying: function() {
if(this.__timeline != null) {
return this.__timeline.__isPlaying;
} else {
return false;
}
}
,get_scenes: function() {
if(this.__timeline != null) {
return this.__timeline.scenes.slice();
} else {
return [this.get_currentScene()];
}
}
,get_totalFrames: function() {
if(this.__timeline != null) {
return this.__timeline.__totalFrames;
} else {
return 1;
}
}
,__class__: openfl_display_MovieClip
,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{get_totalFrames:"get_totalFrames",get_scenes:"get_scenes",get_isPlaying:"get_isPlaying",get_framesLoaded:"get_framesLoaded",set_enabled:"set_enabled",get_enabled:"get_enabled",get_currentScene:"get_currentScene",get_currentLabels:"get_currentLabels",get_currentLabel:"get_currentLabel",get_currentFrameLabel:"get_currentFrameLabel",get_currentFrame:"get_currentFrame"})
});
var openfl_display_OpenGLRenderer = function(context,defaultRenderTarget) {
openfl_display_DisplayObjectRenderer.call(this);
this.__context3D = context;
this.__context = context.__context;
this.gl = context.__context.webgl;
this.__gl = this.gl;
this.__defaultRenderTarget = defaultRenderTarget;
this.__flipped = this.__defaultRenderTarget == null;
if(openfl_display_Graphics.maxTextureWidth == null) {
openfl_display_Graphics.maxTextureWidth = openfl_display_Graphics.maxTextureHeight = this.__gl.getParameter(this.__gl.MAX_TEXTURE_SIZE);
}
this.__matrix = lime_math_Matrix4._new();
this.__values = [];
this.__softwareRenderer = new openfl_display_CanvasRenderer(null);
this.__type = "opengl";
this.__setBlendMode(10);
this.__context3D.__setGLBlend(true);
this.__clipRects = [];
this.__maskObjects = [];
this.__numClipRects = 0;
this.__projection = lime_math_Matrix4._new();
this.__projectionFlipped = lime_math_Matrix4._new();
this.__stencilReference = 0;
this.__tempRect = new openfl_geom_Rectangle();
this.__defaultDisplayShader = new openfl_display_DisplayObjectShader();
this.__defaultGraphicsShader = new openfl_display_GraphicsShader();
this.__defaultShader = this.__defaultDisplayShader;
this.__initShader(this.__defaultShader);
this.__scrollRectMasks = new lime_utils_ObjectPool(function() {
return new openfl_display_Shape();
});
this.__maskShader = new openfl_display__$internal_Context3DMaskShader();
};
$hxClasses["openfl.display.OpenGLRenderer"] = openfl_display_OpenGLRenderer;
openfl_display_OpenGLRenderer.__name__ = "openfl.display.OpenGLRenderer";
openfl_display_OpenGLRenderer.__super__ = openfl_display_DisplayObjectRenderer;
openfl_display_OpenGLRenderer.prototype = $extend(openfl_display_DisplayObjectRenderer.prototype,{
gl: null
,__context3D: null
,__clipRects: null
,__currentDisplayShader: null
,__currentGraphicsShader: null
,__currentRenderTarget: null
,__currentShader: null
,__currentShaderBuffer: null
,__defaultDisplayShader: null
,__defaultGraphicsShader: null
,__defaultRenderTarget: null
,__defaultShader: null
,__displayHeight: null
,__displayWidth: null
,__flipped: null
,__gl: null
,__height: null
,__maskShader: null
,__matrix: null
,__maskObjects: null
,__numClipRects: null
,__offsetX: null
,__offsetY: null
,__projection: null
,__projectionFlipped: null
,__scrollRectMasks: null
,__softwareRenderer: null
,__stencilReference: null
,__tempRect: null
,__updatedStencil: null
,__upscaled: null
,__values: null
,__width: null
,applyAlpha: function(alpha) {
openfl_display_OpenGLRenderer.__alphaValue[0] = alpha;
if(this.__currentShaderBuffer != null) {
this.__currentShaderBuffer.addFloatOverride("openfl_Alpha",openfl_display_OpenGLRenderer.__alphaValue);
} else if(this.__currentShader != null) {
if(this.__currentShader.__alpha != null) {
this.__currentShader.__alpha.value = openfl_display_OpenGLRenderer.__alphaValue;
}
}
}
,applyBitmapData: function(bitmapData,smooth,repeat) {
if(repeat == null) {
repeat = false;
}
if(this.__currentShaderBuffer != null) {
if(bitmapData != null) {
openfl_display_OpenGLRenderer.__textureSizeValue[0] = bitmapData.__textureWidth;
openfl_display_OpenGLRenderer.__textureSizeValue[1] = bitmapData.__textureHeight;
this.__currentShaderBuffer.addFloatOverride("openfl_TextureSize",openfl_display_OpenGLRenderer.__textureSizeValue);
}
} else if(this.__currentShader != null) {
if(this.__currentShader.__bitmap != null) {
this.__currentShader.__bitmap.input = bitmapData;
this.__currentShader.__bitmap.filter = smooth && this.__allowSmoothing ? 4 : 5;
this.__currentShader.__bitmap.mipFilter = 2;
this.__currentShader.__bitmap.wrap = repeat ? 2 : 0;
}
if(this.__currentShader.__texture != null) {
this.__currentShader.__texture.input = bitmapData;
this.__currentShader.__texture.filter = smooth && this.__allowSmoothing ? 4 : 5;
this.__currentShader.__texture.mipFilter = 2;
this.__currentShader.__texture.wrap = repeat ? 2 : 0;
}
if(this.__currentShader.__textureSize != null) {
if(bitmapData != null) {
openfl_display_OpenGLRenderer.__textureSizeValue[0] = bitmapData.__textureWidth;
openfl_display_OpenGLRenderer.__textureSizeValue[1] = bitmapData.__textureHeight;
this.__currentShader.__textureSize.value = openfl_display_OpenGLRenderer.__textureSizeValue;
} else {
this.__currentShader.__textureSize.value = null;
}
}
}
}
,applyColorTransform: function(colorTransform) {
var enabled = colorTransform != null && !colorTransform.__isDefault(true);
this.applyHasColorTransform(enabled);
if(enabled) {
colorTransform.__setArrays(openfl_display_OpenGLRenderer.__colorMultipliersValue,openfl_display_OpenGLRenderer.__colorOffsetsValue);
if(this.__currentShaderBuffer != null) {
this.__currentShaderBuffer.addFloatOverride("openfl_ColorMultiplier",openfl_display_OpenGLRenderer.__colorMultipliersValue);
this.__currentShaderBuffer.addFloatOverride("openfl_ColorOffset",openfl_display_OpenGLRenderer.__colorOffsetsValue);
} else if(this.__currentShader != null) {
if(this.__currentShader.__colorMultiplier != null) {
this.__currentShader.__colorMultiplier.value = openfl_display_OpenGLRenderer.__colorMultipliersValue;
}
if(this.__currentShader.__colorOffset != null) {
this.__currentShader.__colorOffset.value = openfl_display_OpenGLRenderer.__colorOffsetsValue;
}
}
} else if(this.__currentShaderBuffer != null) {
this.__currentShaderBuffer.addFloatOverride("openfl_ColorMultiplier",openfl_display_OpenGLRenderer.__emptyColorValue);
this.__currentShaderBuffer.addFloatOverride("openfl_ColorOffset",openfl_display_OpenGLRenderer.__emptyColorValue);
} else if(this.__currentShader != null) {
if(this.__currentShader.__colorMultiplier != null) {
this.__currentShader.__colorMultiplier.value = openfl_display_OpenGLRenderer.__emptyColorValue;
}
if(this.__currentShader.__colorOffset != null) {
this.__currentShader.__colorOffset.value = openfl_display_OpenGLRenderer.__emptyColorValue;
}
}
}
,applyHasColorTransform: function(enabled) {
openfl_display_OpenGLRenderer.__hasColorTransformValue[0] = enabled;
if(this.__currentShaderBuffer != null) {
this.__currentShaderBuffer.addBoolOverride("openfl_HasColorTransform",openfl_display_OpenGLRenderer.__hasColorTransformValue);
} else if(this.__currentShader != null) {
if(this.__currentShader.__hasColorTransform != null) {
this.__currentShader.__hasColorTransform.value = openfl_display_OpenGLRenderer.__hasColorTransformValue;
}
}
}
,applyMatrix: function(matrix) {
if(this.__currentShaderBuffer != null) {
this.__currentShaderBuffer.addFloatOverride("openfl_Matrix",matrix);
} else if(this.__currentShader != null) {
if(this.__currentShader.__matrix != null) {
this.__currentShader.__matrix.value = matrix;
}
}
}
,getMatrix: function(transform) {
if(this.gl != null) {
var values = this.__getMatrix(transform,1);
lime_math_Matrix4.set(this.__matrix,0,values[0]);
lime_math_Matrix4.set(this.__matrix,1,values[1]);
lime_math_Matrix4.set(this.__matrix,2,values[2]);
lime_math_Matrix4.set(this.__matrix,3,values[3]);
lime_math_Matrix4.set(this.__matrix,4,values[4]);
lime_math_Matrix4.set(this.__matrix,5,values[5]);
lime_math_Matrix4.set(this.__matrix,6,values[6]);
lime_math_Matrix4.set(this.__matrix,7,values[7]);
lime_math_Matrix4.set(this.__matrix,8,values[8]);
lime_math_Matrix4.set(this.__matrix,9,values[9]);
lime_math_Matrix4.set(this.__matrix,10,values[10]);
lime_math_Matrix4.set(this.__matrix,11,values[11]);
lime_math_Matrix4.set(this.__matrix,12,values[12]);
lime_math_Matrix4.set(this.__matrix,13,values[13]);
lime_math_Matrix4.set(this.__matrix,14,values[14]);
lime_math_Matrix4.set(this.__matrix,15,values[15]);
return this.__matrix;
} else {
lime_math_Matrix4.identity(this.__matrix);
lime_math_Matrix4.set(this.__matrix,0,transform.a);
lime_math_Matrix4.set(this.__matrix,1,transform.b);
lime_math_Matrix4.set(this.__matrix,4,transform.c);
lime_math_Matrix4.set(this.__matrix,5,transform.d);
lime_math_Matrix4.set(this.__matrix,12,transform.tx);
lime_math_Matrix4.set(this.__matrix,13,transform.ty);
return this.__matrix;
}
}
,setShader: function(shader) {
this.__currentShaderBuffer = null;
if(this.__currentShader == shader) {
return;
}
var tmp = this.__currentShader != null;
if(shader == null) {
this.__currentShader = null;
this.__context3D.setProgram(null);
return;
} else {
this.__currentShader = shader;
this.__initShader(shader);
this.__context3D.setProgram(shader.program);
this.__context3D.__flushGLProgram();
this.__currentShader.__enable();
this.__context3D.__state.shader = shader;
}
}
,setViewport: function() {
this.__gl.viewport(this.__offsetX,this.__offsetY,this.__displayWidth,this.__displayHeight);
}
,updateShader: function() {
if(this.__currentShader != null) {
if(this.__currentShader.__position != null) {
this.__currentShader.__position.__useArray = true;
}
if(this.__currentShader.__textureCoord != null) {
this.__currentShader.__textureCoord.__useArray = true;
}
this.__context3D.setProgram(this.__currentShader.program);
this.__context3D.__flushGLProgram();
this.__context3D.__flushGLTextures();
this.__currentShader.__update();
}
}
,useAlphaArray: function() {
if(this.__currentShader != null) {
if(this.__currentShader.__alpha != null) {
this.__currentShader.__alpha.__useArray = true;
}
}
}
,useColorTransformArray: function() {
if(this.__currentShader != null) {
if(this.__currentShader.__colorMultiplier != null) {
this.__currentShader.__colorMultiplier.__useArray = true;
}
if(this.__currentShader.__colorOffset != null) {
this.__currentShader.__colorOffset.__useArray = true;
}
}
}
,__cleanup: function() {
if(this.__stencilReference > 0) {
this.__stencilReference = 0;
this.__context3D.setStencilActions();
this.__context3D.setStencilReferenceValue(0,0,0);
}
if(this.__numClipRects > 0) {
this.__numClipRects = 0;
this.__scissorRect();
}
}
,__clear: function() {
if(this.__stage == null || this.__stage.__transparent) {
this.__context3D.clear(0,0,0,0,0,0,1);
} else {
this.__context3D.clear(this.__stage.__colorSplit[0],this.__stage.__colorSplit[1],this.__stage.__colorSplit[2],1,0,0,1);
}
this.__cleared = true;
}
,__clearShader: function() {
if(this.__currentShader != null) {
if(this.__currentShaderBuffer == null) {
if(this.__currentShader.__bitmap != null) {
this.__currentShader.__bitmap.input = null;
}
} else {
this.__currentShaderBuffer.clearOverride();
}
if(this.__currentShader.__texture != null) {
this.__currentShader.__texture.input = null;
}
if(this.__currentShader.__textureSize != null) {
this.__currentShader.__textureSize.value = null;
}
if(this.__currentShader.__hasColorTransform != null) {
this.__currentShader.__hasColorTransform.value = null;
}
if(this.__currentShader.__position != null) {
this.__currentShader.__position.value = null;
}
if(this.__currentShader.__matrix != null) {
this.__currentShader.__matrix.value = null;
}
this.__currentShader.__clearUseArray();
}
}
,__copyShader: function(other) {
this.__currentShader = other.__currentShader;
this.__currentShaderBuffer = other.__currentShaderBuffer;
this.__currentDisplayShader = other.__currentDisplayShader;
this.__currentGraphicsShader = other.__currentGraphicsShader;
}
,__getMatrix: function(transform,pixelSnapping) {
var _matrix = openfl_geom_Matrix.__pool.get();
_matrix.copyFrom(transform);
_matrix.concat(this.__worldTransform);
if(pixelSnapping == 0 || pixelSnapping == 1 && _matrix.b == 0 && _matrix.c == 0 && (_matrix.a < 1.001 && _matrix.a > 0.999) && (_matrix.d < 1.001 && _matrix.d > 0.999)) {
_matrix.tx = Math.round(_matrix.tx);
_matrix.ty = Math.round(_matrix.ty);
}
lime_math_Matrix4.identity(this.__matrix);
lime_math_Matrix4.set(this.__matrix,0,_matrix.a);
lime_math_Matrix4.set(this.__matrix,1,_matrix.b);
lime_math_Matrix4.set(this.__matrix,4,_matrix.c);
lime_math_Matrix4.set(this.__matrix,5,_matrix.d);
lime_math_Matrix4.set(this.__matrix,12,_matrix.tx);
lime_math_Matrix4.set(this.__matrix,13,_matrix.ty);
lime_math_Matrix4.append(this.__matrix,this.__flipped ? this.__projectionFlipped : this.__projection);
this.__values[0] = lime_math_Matrix4.get(this.__matrix,0);
this.__values[1] = lime_math_Matrix4.get(this.__matrix,1);
this.__values[2] = lime_math_Matrix4.get(this.__matrix,2);
this.__values[3] = lime_math_Matrix4.get(this.__matrix,3);
this.__values[4] = lime_math_Matrix4.get(this.__matrix,4);
this.__values[5] = lime_math_Matrix4.get(this.__matrix,5);
this.__values[6] = lime_math_Matrix4.get(this.__matrix,6);
this.__values[7] = lime_math_Matrix4.get(this.__matrix,7);
this.__values[8] = lime_math_Matrix4.get(this.__matrix,8);
this.__values[9] = lime_math_Matrix4.get(this.__matrix,9);
this.__values[10] = lime_math_Matrix4.get(this.__matrix,10);
this.__values[11] = lime_math_Matrix4.get(this.__matrix,11);
this.__values[12] = lime_math_Matrix4.get(this.__matrix,12);
this.__values[13] = lime_math_Matrix4.get(this.__matrix,13);
this.__values[14] = lime_math_Matrix4.get(this.__matrix,14);
this.__values[15] = lime_math_Matrix4.get(this.__matrix,15);
openfl_geom_Matrix.__pool.release(_matrix);
return this.__values;
}
,__initShader: function(shader) {
if(shader != null) {
if(shader.__context == null) {
shader.__context = this.__context3D;
shader.__init();
}
return shader;
}
return this.__defaultShader;
}
,__initDisplayShader: function(shader) {
if(shader != null) {
if(shader.__context == null) {
shader.__context = this.__context3D;
shader.__init();
}
return shader;
}
return this.__defaultDisplayShader;
}
,__initGraphicsShader: function(shader) {
if(shader != null) {
if(shader.__context == null) {
shader.__context = this.__context3D;
shader.__init();
}
return shader;
}
return this.__defaultGraphicsShader;
}
,__initShaderBuffer: function(shaderBuffer) {
if(shaderBuffer != null) {
return this.__initGraphicsShader(shaderBuffer.shader);
}
return this.__defaultGraphicsShader;
}
,__popMask: function() {
if(this.__stencilReference == 0) {
return;
}
var mask = this.__maskObjects.pop();
if(this.__stencilReference > 1) {
this.__context3D.setStencilActions(2,1,0,0,5);
this.__context3D.setStencilReferenceValue(this.__stencilReference,255,255);
this.__context3D.setColorMask(false,false,false,false);
mask.__renderGLMask(this);
this.__stencilReference--;
this.__context3D.setStencilActions(2,1,5,5,5);
this.__context3D.setStencilReferenceValue(this.__stencilReference,255,0);
this.__context3D.setColorMask(true,true,true,true);
} else {
this.__stencilReference = 0;
this.__context3D.setStencilActions();
this.__context3D.setStencilReferenceValue(0,0,0);
}
}
,__popMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
if(object.__mask != null) {
this.__popMask();
}
if(handleScrollRect && object.__scrollRect != null) {
if(object.__renderTransform.b != 0 || object.__renderTransform.c != 0) {
this.__scrollRectMasks.release(this.__maskObjects[this.__maskObjects.length - 1]);
this.__popMask();
} else {
this.__popMaskRect();
}
}
}
,__popMaskRect: function() {
if(this.__numClipRects > 0) {
this.__numClipRects--;
if(this.__numClipRects > 0) {
this.__scissorRect(this.__clipRects[this.__numClipRects - 1]);
} else {
this.__scissorRect();
}
}
}
,__pushMask: function(mask) {
if(this.__stencilReference == 0) {
this.__context3D.clear(0,0,0,0,0,0,4);
this.__updatedStencil = true;
}
this.__context3D.setStencilActions(2,1,2,5,5);
this.__context3D.setStencilReferenceValue(this.__stencilReference,255,255);
this.__context3D.setColorMask(false,false,false,false);
mask.__renderGLMask(this);
this.__maskObjects.push(mask);
this.__stencilReference++;
this.__context3D.setStencilActions(2,1,5,5,5);
this.__context3D.setStencilReferenceValue(this.__stencilReference,255,0);
this.__context3D.setColorMask(true,true,true,true);
}
,__pushMaskObject: function(object,handleScrollRect) {
if(handleScrollRect == null) {
handleScrollRect = true;
}
if(handleScrollRect && object.__scrollRect != null) {
if(object.__renderTransform.b != 0 || object.__renderTransform.c != 0) {
var shape = this.__scrollRectMasks.get();
shape.get_graphics().clear();
shape.get_graphics().beginFill(65280);
shape.get_graphics().drawRect(object.__scrollRect.x,object.__scrollRect.y,object.__scrollRect.width,object.__scrollRect.height);
shape.__renderTransform.copyFrom(object.__renderTransform);
this.__pushMask(shape);
} else {
this.__pushMaskRect(object.__scrollRect,object.__renderTransform);
}
}
if(object.__mask != null) {
this.__pushMask(object.__mask);
}
}
,__pushMaskRect: function(rect,transform) {
if(this.__numClipRects == this.__clipRects.length) {
this.__clipRects[this.__numClipRects] = new openfl_geom_Rectangle();
}
var _matrix = openfl_geom_Matrix.__pool.get();
_matrix.copyFrom(transform);
_matrix.concat(this.__worldTransform);
var clipRect = this.__clipRects[this.__numClipRects];
rect.__transform(clipRect,_matrix);
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;
}
openfl_geom_Matrix.__pool.release(_matrix);
this.__scissorRect(clipRect);
this.__numClipRects++;
}
,__render: function(object) {
this.__context3D.setColorMask(true,true,true,true);
this.__context3D.setCulling(3);
this.__context3D.setDepthTest(false,0);
this.__context3D.setStencilActions();
this.__context3D.setStencilReferenceValue(0,0,0);
this.__context3D.setScissorRectangle(null);
this.__blendMode = null;
this.__setBlendMode(10);
if(this.__defaultRenderTarget == null) {
openfl_display_OpenGLRenderer.__scissorRectangle.setTo(this.__offsetX,this.__offsetY,this.__displayWidth,this.__displayHeight);
this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle);
this.__upscaled = this.__worldTransform.a != 1 || this.__worldTransform.d != 1;
object.__renderGL(this);
if(this.__offsetX > 0 || this.__offsetY > 0) {
if(this.__offsetX > 0) {
openfl_display_OpenGLRenderer.__scissorRectangle.setTo(0,0,this.__offsetX,this.__height);
this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle);
this.__context3D.__flushGL();
this.__gl.clearColor(0,0,0,1);
this.__gl.clear(this.__gl.COLOR_BUFFER_BIT);
openfl_display_OpenGLRenderer.__scissorRectangle.setTo(this.__offsetX + this.__displayWidth,0,this.__width,this.__height);
this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle);
this.__context3D.__flushGL();
this.__gl.clearColor(0,0,0,1);
this.__gl.clear(this.__gl.COLOR_BUFFER_BIT);
}
if(this.__offsetY > 0) {
openfl_display_OpenGLRenderer.__scissorRectangle.setTo(0,0,this.__width,this.__offsetY);
this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle);
this.__context3D.__flushGL();
this.__gl.clearColor(0,0,0,1);
this.__gl.clear(this.__gl.COLOR_BUFFER_BIT);
openfl_display_OpenGLRenderer.__scissorRectangle.setTo(0,this.__offsetY + this.__displayHeight,this.__width,this.__height);
this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle);
this.__context3D.__flushGL();
this.__gl.clearColor(0,0,0,1);
this.__gl.clear(this.__gl.COLOR_BUFFER_BIT);
}
this.__context3D.setScissorRectangle(null);
}
} else {
openfl_display_OpenGLRenderer.__scissorRectangle.setTo(this.__offsetX,this.__offsetY,this.__displayWidth,this.__displayHeight);
this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle);
var cacheMask = object.__mask;
var cacheScrollRect = object.__scrollRect;
object.__mask = null;
object.__scrollRect = null;
object.__renderGL(this);
object.__mask = cacheMask;
object.__scrollRect = cacheScrollRect;
}
this.__context3D.present();
}
,__renderFilterPass: function(source,shader,smooth,clear) {
if(clear == null) {
clear = true;
}
if(source == null || shader == null) {
return;
}
if(this.__defaultRenderTarget == null) {
return;
}
var cacheRTT = this.__context3D.__state.renderToTexture;
var cacheRTTDepthStencil = this.__context3D.__state.renderToTextureDepthStencil;
var cacheRTTAntiAlias = this.__context3D.__state.renderToTextureAntiAlias;
var cacheRTTSurfaceSelector = this.__context3D.__state.renderToTextureSurfaceSelector;
this.__context3D.setRenderToTexture(this.__defaultRenderTarget.getTexture(this.__context3D),false);
if(clear) {
this.__context3D.clear(0,0,0,0,0,0,1);
}
var shader1 = this.__initShader(shader);
this.setShader(shader1);
this.applyAlpha(1);
this.applyBitmapData(source,smooth);
this.applyColorTransform(null);
this.applyMatrix(this.__getMatrix(source.__renderTransform,1));
this.updateShader();
var vertexBuffer = source.getVertexBuffer(this.__context3D);
if(shader1.__position != null) {
this.__context3D.setVertexBufferAt(shader1.__position.index,vertexBuffer,0,3);
}
if(shader1.__textureCoord != null) {
this.__context3D.setVertexBufferAt(shader1.__textureCoord.index,vertexBuffer,3,2);
}
var indexBuffer = source.getIndexBuffer(this.__context3D);
this.__context3D.drawTriangles(indexBuffer);
if(cacheRTT != null) {
this.__context3D.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector);
} else {
this.__context3D.setRenderToBackBuffer();
}
this.__clearShader();
}
,__resize: function(width,height) {
this.__width = width;
this.__height = height;
var w = this.__defaultRenderTarget == null ? this.__stage.stageWidth : this.__defaultRenderTarget.width;
var h = this.__defaultRenderTarget == null ? this.__stage.stageHeight : this.__defaultRenderTarget.height;
var tmp;
if(this.__defaultRenderTarget == null) {
var _this = this.__worldTransform;
tmp = Math.round(0 * _this.a + 0 * _this.c + _this.tx);
} else {
tmp = 0;
}
this.__offsetX = tmp;
var tmp;
if(this.__defaultRenderTarget == null) {
var _this = this.__worldTransform;
tmp = Math.round(0 * _this.b + 0 * _this.d + _this.ty);
} else {
tmp = 0;
}
this.__offsetY = tmp;
var tmp;
if(this.__defaultRenderTarget == null) {
var _this = this.__worldTransform;
tmp = Math.round(w * _this.a + 0 * _this.c + _this.tx - this.__offsetX);
} else {
tmp = w;
}
this.__displayWidth = tmp;
var tmp;
if(this.__defaultRenderTarget == null) {
var _this = this.__worldTransform;
tmp = Math.round(0 * _this.b + h * _this.d + _this.ty - this.__offsetY);
} else {
tmp = h;
}
this.__displayHeight = tmp;
lime_math_Matrix4.createOrtho(this.__projection,0,this.__displayWidth + this.__offsetX * 2,0,this.__displayHeight + this.__offsetY * 2,-1000,1000);
lime_math_Matrix4.createOrtho(this.__projectionFlipped,0,this.__displayWidth + this.__offsetX * 2,this.__displayHeight + this.__offsetY * 2,0,-1000,1000);
}
,__resumeClipAndMask: function(childRenderer) {
if(this.__stencilReference > 0) {
this.__context3D.setStencilActions(2,1,5,5,5);
this.__context3D.setStencilReferenceValue(this.__stencilReference,255,0);
} else {
this.__context3D.setStencilActions();
this.__context3D.setStencilReferenceValue(0,0,0);
}
if(this.__numClipRects > 0) {
this.__scissorRect(this.__clipRects[this.__numClipRects - 1]);
} else {
this.__scissorRect();
}
}
,__scissorRect: function(clipRect) {
if(clipRect != null) {
var x = Math.floor(clipRect.x);
var y = Math.floor(clipRect.y);
var width = clipRect.width > 0 ? Math.ceil(clipRect.get_right()) - x : 0;
var height = clipRect.height > 0 ? Math.ceil(clipRect.get_bottom()) - y : 0;
if(width < 0) {
width = 0;
}
if(height < 0) {
height = 0;
}
openfl_display_OpenGLRenderer.__scissorRectangle.setTo(x,y,width,height);
this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle);
} else {
this.__context3D.setScissorRectangle(null);
}
}
,__setBlendMode: function(value) {
if(this.__overrideBlendMode != null) {
value = this.__overrideBlendMode;
}
if(this.__blendMode == value) {
return;
}
this.__blendMode = value;
switch(value) {
case 0:
this.__context3D.setBlendFactors(2,2);
break;
case 9:
this.__context3D.setBlendFactors(1,5);
break;
case 12:
this.__context3D.setBlendFactors(2,6);
break;
case 14:
this.__context3D.setBlendFactors(2,2);
this.__context3D.__setGLBlendEquation(this.__gl.FUNC_REVERSE_SUBTRACT);
break;
default:
this.__context3D.setBlendFactors(2,5);
}
}
,__setRenderTarget: function(renderTarget) {
this.__defaultRenderTarget = renderTarget;
this.__flipped = renderTarget == null;
if(renderTarget != null) {
this.__resize(renderTarget.width,renderTarget.height);
}
}
,__setShaderBuffer: function(shaderBuffer) {
this.setShader(shaderBuffer.shader);
this.__currentShaderBuffer = shaderBuffer;
}
,__suspendClipAndMask: function() {
if(this.__stencilReference > 0) {
this.__context3D.setStencilActions();
this.__context3D.setStencilReferenceValue(0,0,0);
}
if(this.__numClipRects > 0) {
this.__scissorRect();
}
}
,__updateShaderBuffer: function(bufferOffset) {
if(this.__currentShader != null && this.__currentShaderBuffer != null) {
this.__currentShader.__updateFromBuffer(this.__currentShaderBuffer,bufferOffset);
}
}
,__class__: openfl_display_OpenGLRenderer
});
var openfl_display_PNGEncoderOptions = function(fastCompression) {
if(fastCompression == null) {
fastCompression = false;
}
this.fastCompression = fastCompression;
};
$hxClasses["openfl.display.PNGEncoderOptions"] = openfl_display_PNGEncoderOptions;
openfl_display_PNGEncoderOptions.__name__ = "openfl.display.PNGEncoderOptions";
openfl_display_PNGEncoderOptions.prototype = {
fastCompression: null
,__class__: openfl_display_PNGEncoderOptions
};
var openfl_display_PixelSnapping = {};
openfl_display_PixelSnapping.fromString = function(value) {
switch(value) {
case "always":
return 0;
case "auto":
return 1;
case "never":
return 2;
default:
return null;
}
};
openfl_display_PixelSnapping.toString = function(this1) {
switch(this1) {
case 0:
return "always";
case 1:
return "auto";
case 2:
return "never";
default:
return null;
}
};
var openfl_display_Preloader = function(display) {
this.onComplete = new lime_app__$Event_$Void_$Void();
this.display = display;
if(display != null) {
display.addEventListener("unload",$bind(this,this.display_onUnload));
openfl_Lib.get_current().addChild(display);
}
};
$hxClasses["openfl.display.Preloader"] = openfl_display_Preloader;
openfl_display_Preloader.__name__ = "openfl.display.Preloader";
openfl_display_Preloader.prototype = {
onComplete: null
,complete: null
,display: null
,ready: null
,start: function() {
this.ready = true;
openfl_Lib.get_current().get_loaderInfo().__complete();
if(this.display != null) {
var complete = new openfl_events_Event("complete",true,true);
this.display.dispatchEvent(complete);
if(!complete.isDefaultPrevented()) {
this.display.dispatchEvent(new openfl_events_Event("unload"));
}
} else if(!this.complete) {
this.complete = true;
this.onComplete.dispatch();
}
}
,update: function(loaded,total) {
openfl_Lib.get_current().get_loaderInfo().__update(loaded,total);
if(this.display != null) {
this.display.dispatchEvent(new openfl_events_ProgressEvent("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.get_current()) {
openfl_Lib.get_current().removeChild(this.display);
}
openfl_Lib.get_current().stage.set_focus(null);
this.display = null;
}
if(this.ready) {
if(!this.complete) {
this.complete = true;
this.onComplete.dispatch();
}
}
}
,__class__: openfl_display_Preloader
};
var openfl_display_DefaultPreloader = function() {
openfl_display_Sprite.call(this);
var backgroundColor = this.getBackgroundColor();
var r = backgroundColor >> 16 & 255;
var g = backgroundColor >> 8 & 255;
var b = backgroundColor & 255;
var perceivedLuminosity = 0.299 * r + 0.587 * g + 0.114 * b;
var color = 0;
if(perceivedLuminosity < 70) {
color = 16777215;
}
var x = 30;
var height = 7;
var y = this.getHeight() / 2 - height / 2;
var width = this.getWidth() - x * 2;
var padding = 2;
this.outline = new openfl_display_Shape();
this.outline.get_graphics().beginFill(color,0.07);
this.outline.get_graphics().drawRect(0,0,width,height);
this.outline.set_x(x);
this.outline.set_y(y);
this.outline.set_alpha(0);
this.addChild(this.outline);
this.progress = new openfl_display_Shape();
this.progress.get_graphics().beginFill(color,0.35);
this.progress.get_graphics().drawRect(0,0,width - padding * 2,height - padding * 2);
this.progress.set_x(x + padding);
this.progress.set_y(y + padding);
this.progress.set_scaleX(0);
this.progress.set_alpha(0);
this.addChild(this.progress);
this.startAnimation = openfl_Lib.getTimer() + 100;
this.endAnimation = this.startAnimation + 1000;
this.addEventListener("addedToStage",$bind(this,this.this_onAddedToStage));
};
$hxClasses["openfl.display.DefaultPreloader"] = openfl_display_DefaultPreloader;
openfl_display_DefaultPreloader.__name__ = "openfl.display.DefaultPreloader";
openfl_display_DefaultPreloader.__super__ = openfl_display_Sprite;
openfl_display_DefaultPreloader.prototype = $extend(openfl_display_Sprite.prototype,{
endAnimation: null
,outline: null
,progress: null
,startAnimation: null
,getBackgroundColor: function() {
var attributes = openfl_Lib.get_current().stage.window.context.attributes;
if(Object.prototype.hasOwnProperty.call(attributes,"background") && attributes.background != null) {
return attributes.background;
} else {
return 0;
}
}
,getHeight: function() {
var height = openfl_Lib.get_current().stage.window.__height;
if(height > 0) {
return height;
} else {
return openfl_Lib.get_current().stage.stageHeight;
}
}
,getWidth: function() {
var width = openfl_Lib.get_current().stage.window.__width;
if(width > 0) {
return width;
} else {
return openfl_Lib.get_current().stage.stageWidth;
}
}
,onInit: function() {
this.addEventListener("enterFrame",$bind(this,this.this_onEnterFrame));
}
,onLoaded: function() {
this.removeEventListener("enterFrame",$bind(this,this.this_onEnterFrame));
this.dispatchEvent(new openfl_events_Event("unload"));
}
,onUpdate: function(bytesLoaded,bytesTotal) {
var percentLoaded = 0.0;
if(bytesTotal > 0) {
percentLoaded = bytesLoaded / bytesTotal;
if(percentLoaded > 1) {
percentLoaded = 1;
}
}
this.progress.set_scaleX(percentLoaded);
}
,this_onAddedToStage: function(event) {
this.removeEventListener("addedToStage",$bind(this,this.this_onAddedToStage));
this.onInit();
this.onUpdate(this.get_loaderInfo().bytesLoaded,this.get_loaderInfo().bytesTotal);
this.addEventListener("progress",$bind(this,this.this_onProgress));
this.addEventListener("complete",$bind(this,this.this_onComplete));
}
,this_onComplete: function(event) {
event.preventDefault();
this.removeEventListener("progress",$bind(this,this.this_onProgress));
this.removeEventListener("complete",$bind(this,this.this_onComplete));
this.onLoaded();
}
,this_onEnterFrame: function(event) {
var elapsed = openfl_Lib.getTimer() - this.startAnimation;
var total = this.endAnimation - this.startAnimation;
var percent = elapsed / total;
if(percent < 0) {
percent = 0;
}
if(percent > 1) {
percent = 1;
}
this.outline.set_alpha(this.progress.set_alpha(percent));
}
,this_onProgress: function(event) {
this.onUpdate(event.bytesLoaded | 0,event.bytesTotal | 0);
}
,__class__: openfl_display_DefaultPreloader
});
var openfl_display_Scene = function(name,labels,numFrames) {
this.name = name;
this.labels = labels;
this.numFrames = numFrames;
};
$hxClasses["openfl.display.Scene"] = openfl_display_Scene;
openfl_display_Scene.__name__ = "openfl.display.Scene";
openfl_display_Scene.prototype = {
labels: null
,name: null
,numFrames: null
,__class__: openfl_display_Scene
};
var openfl_display_ShaderData = {};
openfl_display_ShaderData._new = function(byteArray) {
var this1 = { };
return this1;
};
var openfl_display_ShaderInput = function() {
this.channels = 0;
this.filter = 5;
this.height = 0;
this.index = 0;
this.mipFilter = 2;
this.width = 0;
this.wrap = 0;
};
$hxClasses["openfl.display.ShaderInput"] = openfl_display_ShaderInput;
openfl_display_ShaderInput.__name__ = "openfl.display.ShaderInput";
openfl_display_ShaderInput.prototype = {
channels: null
,filter: null
,height: null
,index: null
,input: null
,mipFilter: null
,name: null
,width: null
,wrap: null
,__isUniform: null
,__disableGL: function(context,id) {
var gl = context.gl;
context.setTextureAt(id,null);
}
,__updateGL: function(context,id,overrideInput,overrideFilter,overrideMipFilter,overrideWrap) {
var gl = context.gl;
var input = overrideInput != null ? overrideInput : this.input;
var filter = overrideFilter != null ? overrideFilter : this.filter;
var mipFilter = overrideMipFilter != null ? overrideMipFilter : this.mipFilter;
var wrap = overrideWrap != null ? overrideWrap : this.wrap;
if(input != null) {
var bitmapData = input;
context.setTextureAt(id,bitmapData.getTexture(context));
context.setSamplerStateAt(id,wrap,filter,mipFilter);
} else {
context.setTextureAt(id,null);
}
}
,__class__: openfl_display_ShaderInput
};
var openfl_display_ShaderParameter = function() {
this.index = 0;
};
$hxClasses["openfl.display.ShaderParameter"] = openfl_display_ShaderParameter;
openfl_display_ShaderParameter.__name__ = "openfl.display.ShaderParameter";
openfl_display_ShaderParameter.prototype = {
index: null
,name: null
,type: null
,value: null
,__arrayLength: null
,__internal: null
,__isBool: null
,__isFloat: null
,__isInt: null
,__isUniform: null
,__length: null
,__uniformMatrix: null
,__useArray: null
,__disableGL: function(context) {
var gl = context.gl;
if(!this.__isUniform) {
var _g = 0;
var _g1 = this.__arrayLength;
while(_g < _g1) {
var i = _g++;
gl.disableVertexAttribArray(this.index + i);
}
}
}
,__updateGL: function(context,overrideValue) {
var gl = context.gl;
var value = overrideValue != null ? overrideValue : this.value;
var boolValue = this.__isBool ? value : null;
var floatValue = this.__isFloat ? value : null;
var intValue = this.__isInt ? value : null;
if(this.__isUniform) {
if(value != null && value.length >= this.__length) {
switch(this.type) {
case 0:
gl.uniform1i(this.index,boolValue[0] ? 1 : 0);
break;
case 1:
gl.uniform2i(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0);
break;
case 2:
gl.uniform3i(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0,boolValue[2] ? 1 : 0);
break;
case 3:
gl.uniform4i(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0,boolValue[2] ? 1 : 0,boolValue[3] ? 1 : 0);
break;
case 4:
gl.uniform1f(this.index,floatValue[0]);
break;
case 5:
gl.uniform2f(this.index,floatValue[0],floatValue[1]);
break;
case 6:
gl.uniform3f(this.index,floatValue[0],floatValue[1],floatValue[2]);
break;
case 7:
gl.uniform4f(this.index,floatValue[0],floatValue[1],floatValue[2],floatValue[3]);
break;
case 8:
gl.uniform1i(this.index,intValue[0]);
break;
case 9:
gl.uniform2i(this.index,intValue[0],intValue[1]);
break;
case 10:
gl.uniform3i(this.index,intValue[0],intValue[1],intValue[2]);
break;
case 11:
gl.uniform4i(this.index,intValue[0],intValue[1],intValue[2],intValue[3]);
break;
case 12:
this.__uniformMatrix[0] = floatValue[0];
this.__uniformMatrix[1] = floatValue[1];
this.__uniformMatrix[2] = floatValue[2];
this.__uniformMatrix[3] = floatValue[3];
lime_graphics_WebGLRenderContext.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix);
break;
case 16:
this.__uniformMatrix[0] = floatValue[0];
this.__uniformMatrix[1] = floatValue[1];
this.__uniformMatrix[2] = floatValue[2];
this.__uniformMatrix[3] = floatValue[3];
this.__uniformMatrix[4] = floatValue[4];
this.__uniformMatrix[5] = floatValue[5];
this.__uniformMatrix[6] = floatValue[6];
this.__uniformMatrix[7] = floatValue[7];
this.__uniformMatrix[8] = floatValue[8];
lime_graphics_WebGLRenderContext.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix);
break;
case 20:
this.__uniformMatrix[0] = floatValue[0];
this.__uniformMatrix[1] = floatValue[1];
this.__uniformMatrix[2] = floatValue[2];
this.__uniformMatrix[3] = floatValue[3];
this.__uniformMatrix[4] = floatValue[4];
this.__uniformMatrix[5] = floatValue[5];
this.__uniformMatrix[6] = floatValue[6];
this.__uniformMatrix[7] = floatValue[7];
this.__uniformMatrix[8] = floatValue[8];
this.__uniformMatrix[9] = floatValue[9];
this.__uniformMatrix[10] = floatValue[10];
this.__uniformMatrix[11] = floatValue[11];
this.__uniformMatrix[12] = floatValue[12];
this.__uniformMatrix[13] = floatValue[13];
this.__uniformMatrix[14] = floatValue[14];
this.__uniformMatrix[15] = floatValue[15];
lime_graphics_WebGLRenderContext.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix);
break;
default:
}
} else {
switch(this.type) {
case 1:case 9:
gl.uniform2i(this.index,0,0);
break;
case 3:case 11:
gl.uniform4i(this.index,0,0,0,0);
break;
case 4:
gl.uniform1f(this.index,0);
break;
case 5:
gl.uniform2f(this.index,0,0);
break;
case 6:
gl.uniform3f(this.index,0,0,0);
break;
case 7:
gl.uniform4f(this.index,0,0,0,0);
break;
case 0:case 8:
gl.uniform1i(this.index,0);
break;
case 2:case 10:
gl.uniform3i(this.index,0,0,0);
break;
case 12:
this.__uniformMatrix[0] = 0;
this.__uniformMatrix[1] = 0;
this.__uniformMatrix[2] = 0;
this.__uniformMatrix[3] = 0;
lime_graphics_WebGLRenderContext.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix);
break;
case 16:
this.__uniformMatrix[0] = 0;
this.__uniformMatrix[1] = 0;
this.__uniformMatrix[2] = 0;
this.__uniformMatrix[3] = 0;
this.__uniformMatrix[4] = 0;
this.__uniformMatrix[5] = 0;
this.__uniformMatrix[6] = 0;
this.__uniformMatrix[7] = 0;
this.__uniformMatrix[8] = 0;
lime_graphics_WebGLRenderContext.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix);
break;
case 20:
this.__uniformMatrix[0] = 0;
this.__uniformMatrix[1] = 0;
this.__uniformMatrix[2] = 0;
this.__uniformMatrix[3] = 0;
this.__uniformMatrix[4] = 0;
this.__uniformMatrix[5] = 0;
this.__uniformMatrix[6] = 0;
this.__uniformMatrix[7] = 0;
this.__uniformMatrix[8] = 0;
this.__uniformMatrix[9] = 0;
this.__uniformMatrix[10] = 0;
this.__uniformMatrix[11] = 0;
this.__uniformMatrix[12] = 0;
this.__uniformMatrix[13] = 0;
this.__uniformMatrix[14] = 0;
this.__uniformMatrix[15] = 0;
lime_graphics_WebGLRenderContext.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix);
break;
default:
}
}
} else if(!this.__useArray && (value == null || value.length == this.__length)) {
var _g = 0;
var _g1 = this.__arrayLength;
while(_g < _g1) {
var i = _g++;
gl.disableVertexAttribArray(this.index + i);
}
if(value != null) {
switch(this.type) {
case 0:
gl.vertexAttrib1f(this.index,boolValue[0] ? 1 : 0);
break;
case 1:
gl.vertexAttrib2f(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0);
break;
case 2:
gl.vertexAttrib3f(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0,boolValue[2] ? 1 : 0);
break;
case 3:
gl.vertexAttrib4f(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0,boolValue[2] ? 1 : 0,boolValue[3] ? 1 : 0);
break;
case 4:
gl.vertexAttrib1f(this.index,floatValue[0]);
break;
case 5:
gl.vertexAttrib2f(this.index,floatValue[0],floatValue[1]);
break;
case 6:
gl.vertexAttrib3f(this.index,floatValue[0],floatValue[1],floatValue[2]);
break;
case 7:
gl.vertexAttrib4f(this.index,floatValue[0],floatValue[1],floatValue[2],floatValue[3]);
break;
case 8:
gl.vertexAttrib1f(this.index,intValue[0]);
break;
case 9:
gl.vertexAttrib2f(this.index,intValue[0],intValue[1]);
break;
case 10:
gl.vertexAttrib3f(this.index,intValue[0],intValue[1],intValue[2]);
break;
case 11:
gl.vertexAttrib4f(this.index,intValue[0],intValue[1],intValue[2],intValue[3]);
break;
case 12:
gl.vertexAttrib2f(this.index + 0,floatValue[0],floatValue[1]);
gl.vertexAttrib2f(this.index + 1,floatValue[2],floatValue[3]);
break;
case 16:
gl.vertexAttrib3f(this.index + 0,floatValue[0],floatValue[1],floatValue[2]);
gl.vertexAttrib3f(this.index + 1,floatValue[3],floatValue[4],floatValue[5]);
gl.vertexAttrib3f(this.index + 2,floatValue[6],floatValue[7],floatValue[8]);
break;
case 20:
gl.vertexAttrib4f(this.index + 0,floatValue[0],floatValue[1],floatValue[2],floatValue[3]);
gl.vertexAttrib4f(this.index + 1,floatValue[4],floatValue[5],floatValue[6],floatValue[7]);
gl.vertexAttrib4f(this.index + 2,floatValue[8],floatValue[9],floatValue[10],floatValue[11]);
gl.vertexAttrib4f(this.index + 3,floatValue[12],floatValue[13],floatValue[14],floatValue[15]);
break;
default:
}
} else {
switch(this.type) {
case 1:case 5:case 9:
gl.vertexAttrib2f(this.index,0,0);
break;
case 3:case 7:case 11:
gl.vertexAttrib4f(this.index,0,0,0,0);
break;
case 0:case 4:case 8:
gl.vertexAttrib1f(this.index,0);
break;
case 2:case 6:case 10:
gl.vertexAttrib3f(this.index,0,0,0);
break;
case 12:
gl.vertexAttrib2f(this.index + 0,0,0);
gl.vertexAttrib2f(this.index + 1,0,0);
break;
case 16:
gl.vertexAttrib3f(this.index + 0,0,0,0);
gl.vertexAttrib3f(this.index + 1,0,0,0);
gl.vertexAttrib3f(this.index + 2,0,0,0);
break;
case 20:
gl.vertexAttrib4f(this.index + 0,0,0,0,0);
gl.vertexAttrib4f(this.index + 1,0,0,0,0);
gl.vertexAttrib4f(this.index + 2,0,0,0,0);
gl.vertexAttrib4f(this.index + 3,0,0,0,0);
break;
default:
}
}
} else {
var _g = 0;
var _g1 = this.__arrayLength;
while(_g < _g1) {
var i = _g++;
gl.enableVertexAttribArray(this.index + i);
}
}
}
,__updateGLFromBuffer: function(context,buffer,position,length,bufferOffset) {
var gl = context.gl;
if(this.__isUniform) {
if(length >= this.__length) {
switch(this.type) {
case 1:case 9:
gl.uniform2i(this.index,buffer[position] | 0,buffer[position + 1] | 0);
break;
case 3:case 11:
gl.uniform4i(this.index,buffer[position] | 0,buffer[position + 1] | 0,buffer[position + 2] | 0,buffer[position + 3] | 0);
break;
case 4:
gl.uniform1f(this.index,buffer[position]);
break;
case 5:
gl.uniform2f(this.index,buffer[position],buffer[position + 1]);
break;
case 6:
gl.uniform3f(this.index,buffer[position],buffer[position + 1],buffer[position + 2]);
break;
case 7:
gl.uniform4f(this.index,buffer[position],buffer[position + 1],buffer[position + 2],buffer[position + 3]);
break;
case 0:case 8:
gl.uniform1i(this.index,buffer[position] | 0);
break;
case 2:case 10:
gl.uniform3i(this.index,buffer[position] | 0,buffer[position + 1] | 0,buffer[position + 2] | 0);
break;
case 12:
this.__uniformMatrix[0] = buffer[position];
this.__uniformMatrix[1] = buffer[position + 1];
this.__uniformMatrix[2] = buffer[position + 2];
this.__uniformMatrix[3] = buffer[position + 3];
lime_graphics_WebGLRenderContext.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix);
break;
case 16:
this.__uniformMatrix[0] = buffer[position];
this.__uniformMatrix[1] = buffer[position + 1];
this.__uniformMatrix[2] = buffer[position + 2];
this.__uniformMatrix[3] = buffer[position + 3];
this.__uniformMatrix[4] = buffer[position + 4];
this.__uniformMatrix[5] = buffer[position + 5];
this.__uniformMatrix[6] = buffer[position + 6];
this.__uniformMatrix[7] = buffer[position + 7];
this.__uniformMatrix[8] = buffer[position + 8];
lime_graphics_WebGLRenderContext.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix);
break;
case 20:
this.__uniformMatrix[0] = buffer[position];
this.__uniformMatrix[1] = buffer[position + 1];
this.__uniformMatrix[2] = buffer[position + 2];
this.__uniformMatrix[3] = buffer[position + 3];
this.__uniformMatrix[4] = buffer[position + 4];
this.__uniformMatrix[5] = buffer[position + 5];
this.__uniformMatrix[6] = buffer[position + 6];
this.__uniformMatrix[7] = buffer[position + 7];
this.__uniformMatrix[8] = buffer[position + 8];
this.__uniformMatrix[9] = buffer[position + 9];
this.__uniformMatrix[10] = buffer[position + 10];
this.__uniformMatrix[11] = buffer[position + 11];
this.__uniformMatrix[12] = buffer[position + 12];
this.__uniformMatrix[13] = buffer[position + 13];
this.__uniformMatrix[14] = buffer[position + 14];
this.__uniformMatrix[15] = buffer[position + 15];
lime_graphics_WebGLRenderContext.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix);
break;
default:
}
}
} else if(!this.__internal && (length == 0 || length == this.__length)) {
var _g = 0;
var _g1 = this.__arrayLength;
while(_g < _g1) {
var i = _g++;
gl.disableVertexAttribArray(this.index + i);
}
if(length > 0) {
switch(this.type) {
case 1:case 5:case 9:
gl.vertexAttrib2f(this.index,buffer[position],buffer[position + 1]);
break;
case 3:case 7:case 11:
gl.vertexAttrib4f(this.index,buffer[position],buffer[position + 1],buffer[position + 2],buffer[position + 3]);
break;
case 0:case 4:case 8:
gl.vertexAttrib1f(this.index,buffer[position]);
break;
case 2:case 6:case 10:
gl.vertexAttrib3f(this.index,buffer[position],buffer[position + 1],buffer[position + 2]);
break;
case 12:
gl.vertexAttrib2f(this.index + 0,buffer[position],buffer[position + 1]);
gl.vertexAttrib2f(this.index + 1,buffer[position + 2],buffer[position + 2 + 1]);
break;
case 16:
gl.vertexAttrib3f(this.index + 0,buffer[position],buffer[position + 1],buffer[position + 2]);
gl.vertexAttrib3f(this.index + 1,buffer[position + 3],buffer[position + 3 + 1],buffer[position + 3 + 2]);
gl.vertexAttrib3f(this.index + 2,buffer[position + 6],buffer[position + 6 + 1],buffer[position + 6 + 2]);
break;
case 20:
gl.vertexAttrib4f(this.index + 0,buffer[position],buffer[position + 1],buffer[position + 2],buffer[position + 3]);
gl.vertexAttrib4f(this.index + 1,buffer[position + 4],buffer[position + 4 + 1],buffer[position + 4 + 2],buffer[position + 4 + 3]);
gl.vertexAttrib4f(this.index + 2,buffer[position + 8],buffer[position + 8 + 1],buffer[position + 8 + 2],buffer[position + 8 + 3]);
gl.vertexAttrib4f(this.index + 3,buffer[position + 12],buffer[position + 12 + 1],buffer[position + 12 + 2],buffer[position + 12 + 3]);
break;
default:
}
} else {
switch(this.type) {
case 1:case 5:case 9:
gl.vertexAttrib2f(this.index,0,0);
break;
case 3:case 7:case 11:
gl.vertexAttrib4f(this.index,0,0,0,0);
break;
case 0:case 4:case 8:
gl.vertexAttrib1f(this.index,0);
break;
case 2:case 6:case 10:
gl.vertexAttrib3f(this.index,0,0,0);
break;
case 12:
gl.vertexAttrib2f(this.index + 0,0,0);
gl.vertexAttrib2f(this.index + 1,0,0);
break;
case 16:
gl.vertexAttrib3f(this.index + 0,0,0,0);
gl.vertexAttrib3f(this.index + 1,0,0,0);
gl.vertexAttrib3f(this.index + 2,0,0,0);
break;
case 20:
gl.vertexAttrib4f(this.index + 0,0,0,0,0);
gl.vertexAttrib4f(this.index + 1,0,0,0,0);
gl.vertexAttrib4f(this.index + 2,0,0,0,0);
gl.vertexAttrib4f(this.index + 3,0,0,0,0);
break;
default:
}
}
} else {
var type = gl.FLOAT;
if(this.__isBool) {
type = gl.INT;
} else if(this.__isInt) {
type = gl.INT;
}
var _g = 0;
var _g1 = this.__arrayLength;
while(_g < _g1) {
var i = _g++;
gl.enableVertexAttribArray(this.index + i);
}
if(length > 0) {
var _g = 0;
var _g1 = this.__arrayLength;
while(_g < _g1) {
var i = _g++;
gl.vertexAttribPointer(this.index + i,this.__length,type,false,this.__length * 4,(position + bufferOffset * this.__length + i * this.__arrayLength) * 4);
}
}
}
}
,set_name: function(value) {
this.__internal = StringTools.startsWith(value,"openfl_");
return this.name = value;
}
,__class__: openfl_display_ShaderParameter
,__properties__: {set_name:"set_name"}
};
var openfl_display_ShaderParameterType = {};
openfl_display_ShaderParameterType.fromString = function(value) {
switch(value) {
case "bool":
return 0;
case "bool2":
return 1;
case "bool3":
return 1;
case "bool4":
return 1;
case "float":
return 4;
case "float2":
return 5;
case "float3":
return 6;
case "float4":
return 7;
case "int":
return 8;
case "int2":
return 9;
case "int3":
return 10;
case "int4":
return 11;
case "matrix2x2":
return 12;
case "matrix2x3":
return 13;
case "matrix2x4":
return 14;
case "matrix3x2":
return 15;
case "matrix3x3":
return 16;
case "matrix3x4":
return 17;
case "matrix4x2":
return 18;
case "matrix4x3":
return 19;
case "matrix4x4":
return 20;
default:
return null;
}
};
openfl_display_ShaderParameterType.toString = function(this1) {
switch(this1) {
case 0:
return "bool";
case 1:
return "bool2";
case 2:
return "bool3";
case 3:
return "bool4";
case 4:
return "float";
case 5:
return "float2";
case 6:
return "float3";
case 7:
return "float4";
case 8:
return "int";
case 9:
return "int2";
case 10:
return "int3";
case 11:
return "int4";
case 12:
return "matrix2x2";
case 13:
return "matrix2x3";
case 14:
return "matrix2x4";
case 15:
return "matrix3x2";
case 16:
return "matrix3x3";
case 17:
return "matrix3x4";
case 18:
return "matrix4x2";
case 19:
return "matrix4x3";
case 20:
return "matrix4x4";
default:
return null;
}
};
var openfl_display_ShaderPrecision = {};
openfl_display_ShaderPrecision.fromString = function(value) {
switch(value) {
case "fast":
return 0;
case "full":
return 1;
default:
return null;
}
};
openfl_display_ShaderPrecision.toString = function(this1) {
switch(this1) {
case 0:
return "fast";
case 1:
return "full";
default:
return null;
}
};
var openfl_display_Shape = function() {
openfl_display_DisplayObject.call(this);
};
$hxClasses["openfl.display.Shape"] = openfl_display_Shape;
openfl_display_Shape.__name__ = "openfl.display.Shape";
openfl_display_Shape.__super__ = openfl_display_DisplayObject;
openfl_display_Shape.prototype = $extend(openfl_display_DisplayObject.prototype,{
get_graphics: function() {
if(this.__graphics == null) {
this.__graphics = new openfl_display_Graphics(this);
}
return this.__graphics;
}
,__class__: openfl_display_Shape
,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{get_graphics:"get_graphics"})
});
var openfl_display_SpreadMethod = {};
openfl_display_SpreadMethod.fromInt = function(value) {
return value;
};
openfl_display_SpreadMethod.fromString = function(value) {
switch(value) {
case "pad":
return 0;
case "reflect":
return 1;
case "repeat":
return 2;
default:
return null;
}
};
openfl_display_SpreadMethod.toInt = function(this1) {
return this1;
};
openfl_display_SpreadMethod.toString = function(this1) {
switch(this1) {
case 0:
return "pad";
case 1:
return "reflect";
case 2:
return "repeat";
default:
return null;
}
};
var openfl_display_Stage = function($window,color) {
openfl_display_DisplayObjectContainer.call(this);
this.set_name(null);
this.__color = -1;
this.__colorSplit = [255,255,255];
this.__colorString = "#FFFFFF";
this.__contentsScaleFactor = 1;
this.__currentTabOrderIndex = 0;
this.__deltaTime = 0;
this.__displayState = 2;
this.__mouseX = 0;
this.__mouseY = 0;
this.__lastClickTime = 0;
this.__logicalWidth = 0;
this.__logicalHeight = 0;
this.__displayMatrix = new openfl_geom_Matrix();
this.__displayRect = new openfl_geom_Rectangle();
this.__renderDirty = true;
this.stage3Ds = openfl_Vector.toObjectVector(null);
this.stage3Ds.push(new openfl_display_Stage3D(this));
this.stage3Ds.push(new openfl_display_Stage3D(this));
this.stage3Ds.push(new openfl_display_Stage3D(this));
this.stage3Ds.push(new openfl_display_Stage3D(this));
this.stage = this;
this.align = 6;
this.allowsFullScreen = true;
this.allowsFullScreenInteractive = true;
this.__quality = 1;
this.__scaleMode = 2;
this.showDefaultContextMenu = true;
this.softKeyboardRect = new openfl_geom_Rectangle();
this.stageFocusRect = true;
this.__macKeyboard = /AppleWebKit/.test (navigator.userAgent) && /Mobile\/\w+/.test (navigator.userAgent) || /Mac/.test (navigator.platform);
this.__clearBeforeRender = true;
this.__forceRender = false;
this.__stack = [];
this.__rollOutStack = [];
this.__mouseOutStack = [];
this.__touchData = new haxe_ds_IntMap();
this.application = $window.application;
this.window = $window;
this.set_color(color);
this.__contentsScaleFactor = $window.__scale;
this.__wasFullscreen = $window.__fullscreen;
this.__resize();
if(openfl_Lib.get_current().stage == null) {
this.stage.addChild(openfl_Lib.get_current());
}
};
$hxClasses["openfl.display.Stage"] = openfl_display_Stage;
openfl_display_Stage.__name__ = "openfl.display.Stage";
openfl_display_Stage.__interfaces__ = [lime_app_IModule];
openfl_display_Stage.__super__ = openfl_display_DisplayObjectContainer;
openfl_display_Stage.prototype = $extend(openfl_display_DisplayObjectContainer.prototype,{
align: null
,allowsFullScreen: null
,allowsFullScreenInteractive: null
,application: null
,context3D: null
,showDefaultContextMenu: null
,softKeyboardRect: null
,stage3Ds: null
,stageFocusRect: null
,stageHeight: null
,stageWidth: null
,window: null
,__cacheFocus: null
,__clearBeforeRender: null
,__color: null
,__colorSplit: null
,__colorString: null
,__contentsScaleFactor: null
,__currentTabOrderIndex: null
,__deltaTime: null
,__dirty: null
,__displayMatrix: null
,__displayRect: null
,__displayState: null
,__dragBounds: null
,__dragObject: null
,__dragOffsetX: null
,__dragOffsetY: null
,__focus: null
,__forceRender: null
,__fullscreen: null
,__fullScreenSourceRect: null
,__invalidated: null
,__lastClickTime: null
,__logicalWidth: null
,__logicalHeight: null
,__macKeyboard: null
,__mouseDownLeft: null
,__mouseDownMiddle: null
,__mouseDownRight: null
,__mouseOutStack: null
,__mouseOverTarget: null
,__mouseX: null
,__mouseY: null
,__pendingMouseEvent: null
,__pendingMouseX: null
,__pendingMouseY: null
,__quality: null
,__renderer: null
,__rendering: null
,__rollOutStack: null
,__scaleMode: null
,__stack: null
,__touchData: null
,__transparent: null
,__wasDirty: null
,__wasFullscreen: null
,__primaryTouch: null
,invalidate: function() {
this.__invalidated = true;
this.__renderDirty = true;
}
,localToGlobal: function(pos) {
return pos.clone();
}
,__broadcastEvent: function(event) {
if(Object.prototype.hasOwnProperty.call(openfl_display_DisplayObject.__broadcastEvents.h,event.type)) {
var dispatchers = openfl_display_DisplayObject.__broadcastEvents.h[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( _g1 ) {
haxe_NativeStackTrace.lastError = _g1;
var e = haxe_Exception.caught(_g1).unwrap();
this.__handleError(e);
}
}
}
}
}
,__createRenderer: function() {
var pixelRatio = 1;
if(this.window.__scale > 1) {
pixelRatio = this.window.devicePixelRatio || 1;
}
var windowWidth = this.window.__width * this.window.__scale | 0;
var windowHeight = this.window.__height * this.window.__scale | 0;
switch(this.window.context.type) {
case "cairo":
break;
case "canvas":
this.__renderer = new openfl_display_CanvasRenderer(this.window.context.canvas2D);
(js_Boot.__cast(this.__renderer , openfl_display_CanvasRenderer)).pixelRatio = pixelRatio;
break;
case "dom":
this.__renderer = new openfl_display_DOMRenderer(this.window.context.dom);
(js_Boot.__cast(this.__renderer , openfl_display_DOMRenderer)).pixelRatio = pixelRatio;
break;
case "opengl":case "opengles":case "webgl":
this.context3D = new openfl_display3D_Context3D(this);
this.context3D.configureBackBuffer(windowWidth,windowHeight,0,true,true,true);
this.context3D.present();
this.__renderer = new openfl_display_OpenGLRenderer(this.context3D);
break;
default:
}
if(this.__renderer != null) {
var tmp = this.get_quality();
this.__renderer.__allowSmoothing = tmp != 2;
this.__renderer.__worldTransform = this.__displayMatrix;
this.__renderer.__stage = this;
this.__renderer.__resize(windowWidth,windowHeight);
}
}
,__dispatchEvent: function(event) {
try {
return openfl_display_DisplayObjectContainer.prototype.__dispatchEvent.call(this,event);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.__handleError(e);
return false;
}
}
,__dispatchPendingMouseEvent: function() {
if(this.__pendingMouseEvent) {
this.__onMouse("mouseMove",this.__pendingMouseX,this.__pendingMouseY,0);
this.__pendingMouseEvent = 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 _g = 0;
var _g1 = length - 1;
while(_g < _g1) {
var i = _g++;
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 i = length - 2;
while(i >= 0) {
stack[i].__dispatch(event);
if(event.__isCanceled) {
return;
}
--i;
}
}
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.__handleError(e);
}
}
,__dispatchTarget: function(target,event) {
try {
return target.__dispatchEvent(event);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.__handleError(e);
return false;
}
}
,__drag: function(mouse) {
var parent = this.__dragObject.parent;
if(parent != null) {
var _this = parent.__getWorldTransform();
var norm = _this.a * _this.d - _this.b * _this.c;
if(norm == 0) {
mouse.x = -_this.tx;
mouse.y = -_this.ty;
} else {
var px = 1.0 / norm * (_this.c * (_this.ty - mouse.y) + _this.d * (mouse.x - _this.tx));
mouse.y = 1.0 / norm * (_this.a * (mouse.y - _this.ty) + _this.b * (_this.tx - mouse.x));
mouse.x = px;
}
}
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("uncaughtError",true,true,e);
try {
openfl_Lib.get_current().__loaderInfo.uncaughtErrorEvents.dispatchEvent(event);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
if(!event.__preventDefault) {
var message = haxe_CallStack.toString(haxe_CallStack.exceptionStack());
console.log(message);
var message = Std.string(e);
console.log(message);
try {
var exc = e;
if(exc != null && Object.prototype.hasOwnProperty.call(exc,"stack") && exc.stack != null && exc.stack != "") {
console.log(exc.stack);
e.stack = exc.stack;
} else {
var msg = haxe_CallStack.toString(haxe_CallStack.callStack());
console.log(msg);
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
throw e;
}
}
,__onKey: function(type,keyCode,modifier) {
this.__dispatchPendingMouseEvent();
openfl_events_MouseEvent.__altKey = lime_ui_KeyModifier.get_altKey(modifier);
openfl_events_MouseEvent.__commandKey = lime_ui_KeyModifier.get_metaKey(modifier);
openfl_events_MouseEvent.__ctrlKey = lime_ui_KeyModifier.get_ctrlKey(modifier);
openfl_events_MouseEvent.__shiftKey = lime_ui_KeyModifier.get_shiftKey(modifier);
var stack = [];
if(this.__focus == null) {
this.__getInteractive(stack);
} else {
this.__focus.__getInteractive(stack);
}
if(stack.length > 0) {
var keyLocation;
switch(keyCode) {
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:
keyLocation = 3;
break;
case 1073742048:case 1073742049:case 1073742050:case 1073742051:
keyLocation = 1;
break;
case 1073742052:case 1073742053:case 1073742054:case 1073742055:
keyLocation = 2;
break;
default:
keyLocation = 0;
}
var keyCode1;
switch(keyCode) {
case 8:
keyCode1 = 8;
break;
case 9:
keyCode1 = 9;
break;
case 13:
keyCode1 = 13;
break;
case 27:
keyCode1 = 27;
break;
case 32:
keyCode1 = 32;
break;
case 33:
keyCode1 = 49;
break;
case 34:
keyCode1 = 222;
break;
case 35:
keyCode1 = 51;
break;
case 36:
keyCode1 = 52;
break;
case 37:
keyCode1 = 53;
break;
case 38:
keyCode1 = 55;
break;
case 39:
keyCode1 = 222;
break;
case 40:
keyCode1 = 57;
break;
case 41:
keyCode1 = 48;
break;
case 42:
keyCode1 = 56;
break;
case 44:
keyCode1 = 188;
break;
case 45:
keyCode1 = 189;
break;
case 46:
keyCode1 = 190;
break;
case 47:
keyCode1 = 191;
break;
case 48:
keyCode1 = 48;
break;
case 49:
keyCode1 = 49;
break;
case 50:
keyCode1 = 50;
break;
case 51:
keyCode1 = 51;
break;
case 52:
keyCode1 = 52;
break;
case 53:
keyCode1 = 53;
break;
case 54:
keyCode1 = 54;
break;
case 55:
keyCode1 = 55;
break;
case 56:
keyCode1 = 56;
break;
case 57:
keyCode1 = 57;
break;
case 58:
keyCode1 = 186;
break;
case 59:
keyCode1 = 186;
break;
case 60:
keyCode1 = 60;
break;
case 61:
keyCode1 = 187;
break;
case 62:
keyCode1 = 190;
break;
case 63:
keyCode1 = 191;
break;
case 64:
keyCode1 = 50;
break;
case 91:
keyCode1 = 219;
break;
case 92:
keyCode1 = 220;
break;
case 93:
keyCode1 = 221;
break;
case 94:
keyCode1 = 54;
break;
case 95:
keyCode1 = 189;
break;
case 96:
keyCode1 = 192;
break;
case 97:
keyCode1 = 65;
break;
case 98:
keyCode1 = 66;
break;
case 99:
keyCode1 = 67;
break;
case 100:
keyCode1 = 68;
break;
case 101:
keyCode1 = 69;
break;
case 102:
keyCode1 = 70;
break;
case 103:
keyCode1 = 71;
break;
case 104:
keyCode1 = 72;
break;
case 105:
keyCode1 = 73;
break;
case 106:
keyCode1 = 74;
break;
case 107:
keyCode1 = 75;
break;
case 108:
keyCode1 = 76;
break;
case 109:
keyCode1 = 77;
break;
case 110:
keyCode1 = 78;
break;
case 111:
keyCode1 = 79;
break;
case 112:
keyCode1 = 80;
break;
case 113:
keyCode1 = 81;
break;
case 114:
keyCode1 = 82;
break;
case 115:
keyCode1 = 83;
break;
case 116:
keyCode1 = 84;
break;
case 117:
keyCode1 = 85;
break;
case 118:
keyCode1 = 86;
break;
case 119:
keyCode1 = 87;
break;
case 120:
keyCode1 = 88;
break;
case 121:
keyCode1 = 89;
break;
case 122:
keyCode1 = 90;
break;
case 127:
keyCode1 = 46;
break;
case 1073741881:
keyCode1 = 20;
break;
case 1073741882:
keyCode1 = 112;
break;
case 1073741883:
keyCode1 = 113;
break;
case 1073741884:
keyCode1 = 114;
break;
case 1073741885:
keyCode1 = 115;
break;
case 1073741886:
keyCode1 = 116;
break;
case 1073741887:
keyCode1 = 117;
break;
case 1073741888:
keyCode1 = 118;
break;
case 1073741889:
keyCode1 = 119;
break;
case 1073741890:
keyCode1 = 120;
break;
case 1073741891:
keyCode1 = 121;
break;
case 1073741892:
keyCode1 = 122;
break;
case 1073741893:
keyCode1 = 123;
break;
case 1073741894:
keyCode1 = 301;
break;
case 1073741895:
keyCode1 = 145;
break;
case 1073741896:
keyCode1 = 19;
break;
case 1073741897:
keyCode1 = 45;
break;
case 1073741898:
keyCode1 = 36;
break;
case 1073741899:
keyCode1 = 33;
break;
case 1073741901:
keyCode1 = 35;
break;
case 1073741902:
keyCode1 = 34;
break;
case 1073741903:
keyCode1 = 39;
break;
case 1073741904:
keyCode1 = 37;
break;
case 1073741905:
keyCode1 = 40;
break;
case 1073741906:
keyCode1 = 38;
break;
case 1073741907:
keyCode1 = 144;
break;
case 1073741908:
keyCode1 = 111;
break;
case 1073741909:
keyCode1 = 106;
break;
case 1073741910:
keyCode1 = 109;
break;
case 1073741911:
keyCode1 = 107;
break;
case 1073741912:
keyCode1 = 13;
break;
case 1073741913:
keyCode1 = 97;
break;
case 1073741914:
keyCode1 = 98;
break;
case 1073741915:
keyCode1 = 99;
break;
case 1073741916:
keyCode1 = 100;
break;
case 1073741917:
keyCode1 = 101;
break;
case 1073741918:
keyCode1 = 102;
break;
case 1073741919:
keyCode1 = 103;
break;
case 1073741920:
keyCode1 = 104;
break;
case 1073741921:
keyCode1 = 105;
break;
case 1073741922:
keyCode1 = 96;
break;
case 1073741923:
keyCode1 = 110;
break;
case 1073741925:
keyCode1 = 302;
break;
case 1073741928:
keyCode1 = 124;
break;
case 1073741929:
keyCode1 = 125;
break;
case 1073741930:
keyCode1 = 126;
break;
case 1073741982:
keyCode1 = 13;
break;
case 1073742044:
keyCode1 = 110;
break;
case 1073742048:
keyCode1 = 17;
break;
case 1073742049:
keyCode1 = 16;
break;
case 1073742050:
keyCode1 = 18;
break;
case 1073742051:
keyCode1 = 15;
break;
case 1073742052:
keyCode1 = 17;
break;
case 1073742053:
keyCode1 = 16;
break;
case 1073742054:
keyCode1 = 18;
break;
case 1073742055:
keyCode1 = 15;
break;
default:
keyCode1 = keyCode;
}
var charCode = openfl_ui_Keyboard.__getCharCode(keyCode1,lime_ui_KeyModifier.get_shiftKey(modifier));
if(type == "keyUp" && (keyCode1 == 32 || keyCode1 == 13) && ((this.__focus) instanceof openfl_display_Sprite)) {
var sprite = js_Boot.__cast(this.__focus , openfl_display_Sprite);
if(sprite.get_buttonMode() && sprite.focusRect == true) {
var localPoint = openfl_geom_Point.__pool.get();
var targetPoint = openfl_geom_Point.__pool.get();
targetPoint.x = this.__mouseX;
targetPoint.y = this.__mouseY;
var clickEvent = openfl_events_MouseEvent.__create("click",0,this.__mouseX,this.__mouseY,sprite.__globalToLocal(targetPoint,localPoint),sprite);
this.__dispatchStack(clickEvent,stack);
openfl_geom_Point.__pool.release(targetPoint);
openfl_geom_Point.__pool.release(localPoint);
}
}
var event = new openfl_events_KeyboardEvent(type,true,true,charCode,keyCode1,keyLocation,this.__macKeyboard ? lime_ui_KeyModifier.get_ctrlKey(modifier) || lime_ui_KeyModifier.get_metaKey(modifier) : lime_ui_KeyModifier.get_ctrlKey(modifier),lime_ui_KeyModifier.get_altKey(modifier),lime_ui_KeyModifier.get_shiftKey(modifier),lime_ui_KeyModifier.get_ctrlKey(modifier),lime_ui_KeyModifier.get_metaKey(modifier));
stack.reverse();
this.__dispatchStack(event,stack);
if(event.__preventDefault) {
if(type == "keyDown") {
this.window.onKeyDown.cancel();
} else {
this.window.onKeyUp.cancel();
}
} else if(type == "keyDown" && keyCode1 == 9) {
var tabStack = [];
this.__tabTest(tabStack);
var nextIndex = -1;
var nextObject = null;
var nextOffset = lime_ui_KeyModifier.get_shiftKey(modifier) ? -1 : 1;
if(tabStack.length > 1) {
haxe_ds_ArraySort.sort(tabStack,function(a,b) {
return a.get_tabIndex() - b.get_tabIndex();
});
if(tabStack[tabStack.length - 1].get_tabIndex() != -1) {
var i = 0;
while(i < tabStack.length) {
if(tabStack[i].get_tabIndex() > -1) {
if(i > 0) {
tabStack.splice(0,i);
}
break;
}
++i;
}
}
if(this.get_focus() != null) {
var current = this.get_focus();
var index = tabStack.indexOf(current);
while(index == -1 && current != null) {
var currentParent = current.parent;
if(currentParent != null && currentParent.get_tabChildren()) {
var currentIndex = currentParent.getChildIndex(current);
if(currentIndex == -1) {
current = currentParent;
continue;
}
var i = currentIndex + nextOffset;
while(lime_ui_KeyModifier.get_shiftKey(modifier) ? i >= 0 : i < currentParent.get_numChildren()) {
var sibling = currentParent.getChildAt(i);
if(((sibling) instanceof openfl_display_InteractiveObject)) {
var interactiveSibling = js_Boot.__cast(sibling , openfl_display_InteractiveObject);
index = tabStack.indexOf(interactiveSibling);
if(index != -1) {
nextOffset = 0;
break;
}
}
i += nextOffset;
}
} else if(lime_ui_KeyModifier.get_shiftKey(modifier)) {
index = tabStack.indexOf(currentParent);
if(index != -1) {
nextOffset = 0;
}
}
current = currentParent;
}
if(index < 0) {
nextIndex = 0;
} else {
nextIndex = index + nextOffset;
}
} else {
nextIndex = this.__currentTabOrderIndex;
}
} else if(tabStack.length == 1) {
nextObject = tabStack[0];
if(this.get_focus() == nextObject) {
nextObject = null;
}
}
var cancelTab = nextIndex >= 0 && nextIndex < tabStack.length;
if(tabStack.length == 1 || tabStack.length == 0 && this.get_focus() != null) {
nextIndex = 0;
} else if(tabStack.length > 1) {
if(nextIndex < 0) {
nextIndex += tabStack.length;
}
nextIndex %= tabStack.length;
nextObject = tabStack[nextIndex];
if(nextObject == this.get_focus()) {
nextIndex += nextOffset;
if(nextIndex < 0) {
nextIndex += tabStack.length;
}
nextIndex %= tabStack.length;
nextObject = tabStack[nextIndex];
}
}
var focusEvent = null;
if(this.get_focus() != null) {
focusEvent = new openfl_events_FocusEvent("keyFocusChange",true,true,nextObject,lime_ui_KeyModifier.get_shiftKey(modifier),0);
stack = [];
this.get_focus().__getInteractive(stack);
stack.reverse();
this.__dispatchStack(focusEvent,stack);
if(focusEvent.isDefaultPrevented()) {
this.window.onKeyDown.cancel();
}
}
if(focusEvent == null || !focusEvent.isDefaultPrevented()) {
this.__currentTabOrderIndex = nextIndex;
if(nextObject != null) {
this.set_focus(nextObject);
}
if(cancelTab) {
this.window.onKeyDown.cancel();
}
}
}
}
}
,__onLimeCreateWindow: function($window) {
if(this.window != $window) {
return;
}
var _g = $bind(this,this.__onLimeWindowActivate);
var window1 = $window;
var tmp = function() {
_g(window1);
};
$window.onActivate.add(tmp);
var _g1 = $bind(this,this.__onLimeWindowClose);
var window2 = $window;
var tmp = function() {
_g1(window2);
};
$window.onClose.add(tmp,false,-9000);
var _g2 = $bind(this,this.__onLimeWindowDeactivate);
var window3 = $window;
var tmp = function() {
_g2(window3);
};
$window.onDeactivate.add(tmp);
var _g3 = $bind(this,this.__onLimeWindowDropFile);
var window4 = $window;
var tmp = function(file) {
_g3(window4,file);
};
$window.onDropFile.add(tmp);
var _g4 = $bind(this,this.__onLimeWindowEnter);
var window5 = $window;
var tmp = function() {
_g4(window5);
};
$window.onEnter.add(tmp);
var _g5 = $bind(this,this.__onLimeWindowExpose);
var window6 = $window;
var tmp = function() {
_g5(window6);
};
$window.onExpose.add(tmp);
var _g6 = $bind(this,this.__onLimeWindowFocusIn);
var window7 = $window;
var tmp = function() {
_g6(window7);
};
$window.onFocusIn.add(tmp);
var _g7 = $bind(this,this.__onLimeWindowFocusOut);
var window8 = $window;
var tmp = function() {
_g7(window8);
};
$window.onFocusOut.add(tmp);
var _g8 = $bind(this,this.__onLimeWindowFullscreen);
var window9 = $window;
var tmp = function() {
_g8(window9);
};
$window.onFullscreen.add(tmp);
var _g9 = $bind(this,this.__onLimeKeyDown);
var window10 = $window;
var tmp = function(keyCode,modifier) {
_g9(window10,keyCode,modifier);
};
$window.onKeyDown.add(tmp);
var _g10 = $bind(this,this.__onLimeKeyUp);
var window11 = $window;
var tmp = function(keyCode,modifier) {
_g10(window11,keyCode,modifier);
};
$window.onKeyUp.add(tmp);
var _g11 = $bind(this,this.__onLimeWindowLeave);
var window12 = $window;
var tmp = function() {
_g11(window12);
};
$window.onLeave.add(tmp);
var _g12 = $bind(this,this.__onLimeWindowMinimize);
var window13 = $window;
var tmp = function() {
_g12(window13);
};
$window.onMinimize.add(tmp);
var _g13 = $bind(this,this.__onLimeMouseDown);
var window14 = $window;
var tmp = function(x,y,button) {
_g13(window14,x,y,button);
};
$window.onMouseDown.add(tmp);
var _g14 = $bind(this,this.__onLimeMouseMove);
var window15 = $window;
var tmp = function(x,y) {
_g14(window15,x,y);
};
$window.onMouseMove.add(tmp);
var _g15 = $bind(this,this.__onLimeMouseMoveRelative);
var window16 = $window;
var tmp = function(x,y) {
_g15(window16,x,y);
};
$window.onMouseMoveRelative.add(tmp);
var _g16 = $bind(this,this.__onLimeMouseUp);
var window17 = $window;
var tmp = function(x,y,button) {
_g16(window17,x,y,button);
};
$window.onMouseUp.add(tmp);
var _g17 = $bind(this,this.__onLimeMouseWheel);
var window18 = $window;
var tmp = function(deltaX,deltaY,deltaMode) {
_g17(window18,deltaX,deltaY,deltaMode);
};
$window.onMouseWheel.add(tmp);
var _g18 = $bind(this,this.__onLimeWindowMove);
var window19 = $window;
var tmp = function(x,y) {
_g18(window19,x,y);
};
$window.onMove.add(tmp);
$window.onRender.add($bind(this,this.__onLimeRender));
$window.onRenderContextLost.add($bind(this,this.__onLimeRenderContextLost));
$window.onRenderContextRestored.add($bind(this,this.__onLimeRenderContextRestored));
var _g19 = $bind(this,this.__onLimeWindowResize);
var window20 = $window;
var tmp = function(width,height) {
_g19(window20,width,height);
};
$window.onResize.add(tmp);
var _g20 = $bind(this,this.__onLimeWindowRestore);
var window21 = $window;
var tmp = function() {
_g20(window21);
};
$window.onRestore.add(tmp);
var _g21 = $bind(this,this.__onLimeTextEdit);
var window22 = $window;
var tmp = function(text,start,length) {
_g21(window22,text,start,length);
};
$window.onTextEdit.add(tmp);
var _g22 = $bind(this,this.__onLimeTextInput);
var window23 = $window;
var tmp = function(text) {
_g22(window23,text);
};
$window.onTextInput.add(tmp);
this.__onLimeWindowCreate($window);
}
,__onLimeGamepadAxisMove: function(gamepad,axis,value) {
try {
openfl_ui_GameInput.__onGamepadAxisMove(gamepad,axis,value);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.__handleError(e);
}
}
,__onLimeGamepadButtonDown: function(gamepad,button) {
try {
openfl_ui_GameInput.__onGamepadButtonDown(gamepad,button);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.__handleError(e);
}
}
,__onLimeGamepadButtonUp: function(gamepad,button) {
try {
openfl_ui_GameInput.__onGamepadButtonUp(gamepad,button);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.__handleError(e);
}
}
,__onLimeGamepadConnect: function(gamepad) {
try {
openfl_ui_GameInput.__onGamepadConnect(gamepad);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.__handleError(e);
}
var _g = $bind(this,this.__onLimeGamepadAxisMove);
var gamepad1 = gamepad;
var tmp = function(axis,value) {
_g(gamepad1,axis,value);
};
gamepad.onAxisMove.add(tmp);
var _g1 = $bind(this,this.__onLimeGamepadButtonDown);
var gamepad2 = gamepad;
var tmp = function(button) {
_g1(gamepad2,button);
};
gamepad.onButtonDown.add(tmp);
var _g2 = $bind(this,this.__onLimeGamepadButtonUp);
var gamepad3 = gamepad;
var tmp = function(button) {
_g2(gamepad3,button);
};
gamepad.onButtonUp.add(tmp);
var _g3 = $bind(this,this.__onLimeGamepadDisconnect);
var gamepad4 = gamepad;
var tmp = function() {
_g3(gamepad4);
};
gamepad.onDisconnect.add(tmp);
}
,__onLimeGamepadDisconnect: function(gamepad) {
try {
openfl_ui_GameInput.__onGamepadDisconnect(gamepad);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var e = haxe_Exception.caught(_g).unwrap();
this.__handleError(e);
}
}
,__onLimeKeyDown: function($window,keyCode,modifier) {
if(this.window == null || this.window != $window) {
return;
}
this.__onKey("keyDown",keyCode,modifier);
}
,__onLimeKeyUp: function($window,keyCode,modifier) {
if(this.window == null || this.window != $window) {
return;
}
this.__onKey("keyUp",keyCode,modifier);
}
,__onLimeModuleExit: function(code) {
if(this.window != null) {
var event = null;
event = new openfl_events_Event("deactivate");
this.__broadcastEvent(event);
}
}
,__onLimeMouseDown: function($window,x,y,button) {
if(this.window == null || this.window != $window) {
return;
}
this.__dispatchPendingMouseEvent();
var type;
switch(button) {
case 1:
type = "middleMouseDown";
break;
case 2:
type = "rightMouseDown";
break;
default:
type = "mouseDown";
}
this.__onMouse(type,x * $window.__scale | 0,y * $window.__scale | 0,button);
if(!this.showDefaultContextMenu && button == 2) {
$window.onMouseDown.cancel();
}
}
,__onLimeMouseMove: function($window,x,y) {
if(this.window == null || this.window != $window) {
return;
}
this.__pendingMouseEvent = true;
this.__pendingMouseX = x * $window.__scale | 0;
this.__pendingMouseY = y * $window.__scale | 0;
}
,__onLimeMouseMoveRelative: function($window,x,y) {
}
,__onLimeMouseUp: function($window,x,y,button) {
if(this.window == null || this.window != $window) {
return;
}
this.__dispatchPendingMouseEvent();
var type;
switch(button) {
case 1:
type = "middleMouseUp";
break;
case 2:
type = "rightMouseUp";
break;
default:
type = "mouseUp";
}
this.__onMouse(type,x * $window.__scale | 0,y * $window.__scale | 0,button);
if(!this.showDefaultContextMenu && button == 2) {
$window.onMouseUp.cancel();
}
}
,__onLimeMouseWheel: function($window,deltaX,deltaY,deltaMode) {
if(this.window == null || this.window != $window) {
return;
}
this.__dispatchPendingMouseEvent();
if(deltaMode == lime_ui_MouseWheelMode.PIXELS) {
this.__onMouseWheel(deltaX * $window.__scale | 0,deltaY * $window.__scale | 0,deltaMode);
} else {
this.__onMouseWheel(deltaX | 0,deltaY | 0,deltaMode);
}
}
,__onLimeRender: function(context) {
if(this.__rendering) {
return;
}
this.__rendering = true;
var event = null;
this.__broadcastEvent(new openfl_events_Event("enterFrame"));
this.__broadcastEvent(new openfl_events_Event("frameConstructed"));
this.__broadcastEvent(new openfl_events_Event("exitFrame"));
this.__renderable = true;
this.__enterFrame(this.__deltaTime);
this.__deltaTime = 0;
var shouldRender = this.__renderer != null && (this.__renderDirty || this.__forceRender);
if(this.__invalidated && shouldRender) {
this.__invalidated = false;
event = new openfl_events_Event("render");
this.__broadcastEvent(event);
}
this.__update(false,true);
if(this.__renderer != null) {
if(this.context3D != null) {
var stage3D = this.stage3Ds.iterator();
while(stage3D.hasNext()) {
var stage3D1 = stage3D.next();
this.context3D.__renderStage3D(stage3D1);
}
if(this.context3D.__present) {
shouldRender = true;
}
}
if(shouldRender) {
var tmp = this.__renderer.__type == "cairo";
if(this.context3D == null) {
this.__renderer.__clear();
}
this.__renderer.__render(this);
} else if(this.context3D == null) {
this.window.onRender.cancel();
}
if(this.context3D != null) {
if(!this.context3D.__present) {
this.window.onRender.cancel();
} else {
if(!this.__renderer.__cleared) {
this.__renderer.__clear();
}
this.context3D.__present = false;
this.context3D.__cleared = false;
}
}
this.__renderer.__cleared = false;
}
this.__rendering = false;
}
,__onLimeRenderContextLost: function() {
this.__renderer = null;
this.context3D = null;
var stage3D = this.stage3Ds.iterator();
while(stage3D.hasNext()) {
var stage3D1 = stage3D.next();
stage3D1.__lostContext();
}
}
,__onLimeRenderContextRestored: function(context) {
this.__createRenderer();
var stage3D = this.stage3Ds.iterator();
while(stage3D.hasNext()) {
var stage3D1 = stage3D.next();
stage3D1.__restoreContext();
}
}
,__onLimeTextEdit: function($window,text,start,length) {
}
,__onLimeTextInput: 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("textInput",true,true,text);
if(stack.length > 0) {
stack.reverse();
this.__dispatchStack(event,stack);
} else {
this.__dispatchEvent(event);
}
if(event.isDefaultPrevented()) {
$window.onTextInput.cancel();
}
}
,__onLimeTouchCancel: function(touch) {
var isPrimaryTouchPoint = this.__primaryTouch == touch;
if(isPrimaryTouchPoint) {
this.__primaryTouch = null;
}
this.__onTouch("touchEnd",touch,isPrimaryTouchPoint);
}
,__onLimeTouchMove: function(touch) {
this.__onTouch("touchMove",touch,this.__primaryTouch == touch);
}
,__onLimeTouchEnd: function(touch) {
var isPrimaryTouchPoint = this.__primaryTouch == touch;
if(isPrimaryTouchPoint) {
this.__primaryTouch = null;
}
this.__onTouch("touchEnd",touch,isPrimaryTouchPoint);
}
,__onLimeTouchStart: function(touch) {
if(this.__primaryTouch == null) {
this.__primaryTouch = touch;
}
this.__onTouch("touchBegin",touch,this.__primaryTouch == touch);
}
,__onLimeUpdate: function(deltaTime) {
this.__deltaTime = deltaTime;
this.__dispatchPendingMouseEvent();
}
,__onLimeWindowActivate: function($window) {
if(this.window == null || this.window != $window) {
return;
}
}
,__onLimeWindowClose: function($window) {
if(this.window == $window) {
this.window = null;
}
this.__primaryTouch = null;
var event = null;
event = new openfl_events_Event("deactivate");
this.__broadcastEvent(event);
}
,__onLimeWindowCreate: function($window) {
if(this.window == null || this.window != $window) {
return;
}
if($window.context != null) {
this.__createRenderer();
}
}
,__onLimeWindowDeactivate: function($window) {
if(this.window == null || this.window != $window) {
return;
}
}
,__onLimeWindowDropFile: function($window,file) {
}
,__onLimeWindowEnter: function($window) {
}
,__onLimeWindowExpose: function($window) {
if(this.window == null || this.window != $window) {
return;
}
this.__renderDirty = true;
}
,__onLimeWindowFocusIn: function($window) {
if(this.window == null || this.window != $window) {
return;
}
this.__renderDirty = true;
var event = null;
event = new openfl_events_Event("activate");
this.__broadcastEvent(event);
this.set_focus(this.__cacheFocus);
}
,__onLimeWindowFocusOut: function($window) {
if(this.window == null || this.window != $window) {
return;
}
this.__primaryTouch = null;
var event = null;
event = new openfl_events_Event("deactivate");
this.__broadcastEvent(event);
var currentFocus = this.get_focus();
this.set_focus(null);
this.__cacheFocus = currentFocus;
openfl_events_MouseEvent.__altKey = false;
openfl_events_MouseEvent.__commandKey = false;
openfl_events_MouseEvent.__ctrlKey = false;
openfl_events_MouseEvent.__shiftKey = false;
}
,__onLimeWindowFullscreen: function($window) {
if(this.window == null || this.window != $window) {
return;
}
this.__resize();
if(!this.__wasFullscreen) {
this.__wasFullscreen = true;
if(this.__displayState == 2) {
this.__displayState = 1;
}
this.__dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,true,true));
}
}
,__onLimeWindowLeave: function($window) {
if(this.window == null || this.window != $window || openfl_events_MouseEvent.__buttonDown) {
return;
}
this.__dispatchPendingMouseEvent();
var event = null;
event = new openfl_events_Event("mouseLeave");
this.__dispatchEvent(event);
}
,__onLimeWindowMinimize: function($window) {
if(this.window == null || this.window != $window) {
return;
}
}
,__onLimeWindowMove: function($window,x,y) {
}
,__onLimeWindowResize: function($window,width,height) {
if(this.window == null || this.window != $window) {
return;
}
this.__resize();
if(this.__wasFullscreen && !$window.__fullscreen) {
this.__wasFullscreen = false;
this.__displayState = 2;
this.__dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,false,true));
}
}
,__onLimeWindowRestore: function($window) {
if(this.window == null || this.window != $window) {
return;
}
if(this.__wasFullscreen && !$window.__fullscreen) {
this.__wasFullscreen = false;
this.__displayState = 2;
this.__dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,false,true));
}
}
,__onMouse: function(type,x,y,button) {
if(button > 2) {
return;
}
var targetPoint = openfl_geom_Point.__pool.get();
targetPoint.setTo(x,y);
var _this = this.__displayMatrix;
var norm = _this.a * _this.d - _this.b * _this.c;
if(norm == 0) {
targetPoint.x = -_this.tx;
targetPoint.y = -_this.ty;
} else {
var px = 1.0 / norm * (_this.c * (_this.ty - targetPoint.y) + _this.d * (targetPoint.x - _this.tx));
targetPoint.y = 1.0 / norm * (_this.a * (targetPoint.y - _this.ty) + _this.b * (_this.tx - targetPoint.x));
targetPoint.x = px;
}
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()) {
if(this.get_focus() != null) {
var focusEvent = new openfl_events_FocusEvent("mouseFocusChange",true,true,target,false,0);
this.__dispatchStack(focusEvent,stack);
if(!focusEvent.isDefaultPrevented()) {
this.set_focus(target);
}
} else {
this.set_focus(target);
}
} else {
this.set_focus(null);
}
this.__mouseDownLeft = target;
openfl_events_MouseEvent.__buttonDown = true;
break;
case "mouseUp":
if(this.__mouseDownLeft != null) {
openfl_events_MouseEvent.__buttonDown = false;
if(this.__mouseDownLeft == target) {
clickType = "click";
} else {
var event = null;
event = openfl_events_MouseEvent.__create("releaseOutside",1,this.__mouseX,this.__mouseY,new openfl_geom_Point(this.__mouseX,this.__mouseY),this);
this.__mouseDownLeft.dispatchEvent(event);
}
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.__pool.get();
var event = null;
event = openfl_events_MouseEvent.__create(type,button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target);
this.__dispatchStack(event,stack);
if(clickType != null) {
event = openfl_events_MouseEvent.__create(clickType,button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target);
this.__dispatchStack(event,stack);
if(type == "mouseUp" && (js_Boot.__cast(target , openfl_display_InteractiveObject)).doubleClickEnabled) {
var currentTime = openfl_Lib.getTimer();
if(currentTime - this.__lastClickTime < 500) {
event = openfl_events_MouseEvent.__create("doubleClick",button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target);
this.__dispatchStack(event,stack);
this.__lastClickTime = 0;
} else {
this.__lastClickTime = currentTime;
}
}
}
if(openfl_ui_Mouse.__cursor == "auto" && !openfl_ui_Mouse.__hidden) {
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) {
this.window.set_cursor(openfl_ui_MouseCursor.toLimeCursor(cursor));
break;
}
}
}
if(cursor == null) {
this.window.set_cursor(lime_ui_MouseCursor.ARROW);
}
}
var event;
if(target != this.__mouseOverTarget) {
if(this.__mouseOverTarget != null) {
event = openfl_events_MouseEvent.__create("mouseOut",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),this.__mouseOverTarget);
this.__dispatchStack(event,this.__mouseOutStack);
}
}
var item;
var i = 0;
while(i < this.__rollOutStack.length) {
item = this.__rollOutStack[i];
if(stack.indexOf(item) == -1) {
HxOverrides.remove(this.__rollOutStack,item);
event = openfl_events_MouseEvent.__create("rollOut",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),this.__mouseOverTarget);
event.bubbles = false;
this.__dispatchTarget(item,event);
} else {
++i;
}
}
var _g = 0;
while(_g < stack.length) {
var item = stack[_g];
++_g;
if(this.__rollOutStack.indexOf(item) == -1 && this.__mouseOverTarget != null) {
if(item.hasEventListener("rollOver")) {
event = openfl_events_MouseEvent.__create("rollOver",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),item);
event.bubbles = false;
this.__dispatchTarget(item,event);
}
if(item.hasEventListener("rollOut") || item.hasEventListener("rollOver")) {
this.__rollOutStack.push(item);
}
}
}
if(target != this.__mouseOverTarget) {
if(target != null) {
event = openfl_events_MouseEvent.__create("mouseOver",button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target);
this.__dispatchStack(event,stack);
}
this.__mouseOverTarget = target;
this.__mouseOutStack = stack;
}
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 stack = [];
if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack,true,this)) {
dropTarget = stack[stack.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.__pool.release(targetPoint);
openfl_geom_Point.__pool.release(localPoint);
}
,__onMouseWheel: function(deltaX,deltaY,deltaMode) {
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.__pool.get();
targetPoint.setTo(x,y);
var _this = this.__displayMatrix;
var norm = _this.a * _this.d - _this.b * _this.c;
if(norm == 0) {
targetPoint.x = -_this.tx;
targetPoint.y = -_this.ty;
} else {
var px = 1.0 / norm * (_this.c * (_this.ty - targetPoint.y) + _this.d * (targetPoint.x - _this.tx));
targetPoint.y = 1.0 / norm * (_this.a * (targetPoint.y - _this.ty) + _this.b * (_this.tx - targetPoint.x));
targetPoint.x = px;
}
var delta = deltaY | 0;
var event = openfl_events_MouseEvent.__create("mouseWheel",0,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,targetPoint),target,delta);
event.cancelable = true;
this.__dispatchStack(event,stack);
if(event.isDefaultPrevented()) {
this.window.onMouseWheel.cancel();
}
openfl_geom_Point.__pool.release(targetPoint);
}
,__onTouch: function(type,touch,isPrimaryTouchPoint) {
var targetPoint = openfl_geom_Point.__pool.get();
targetPoint.setTo(Math.round(touch.x * this.window.__width * this.window.__scale),Math.round(touch.y * this.window.__height * this.window.__scale));
var _this = this.__displayMatrix;
var norm = _this.a * _this.d - _this.b * _this.c;
if(norm == 0) {
targetPoint.x = -_this.tx;
targetPoint.y = -_this.ty;
} else {
var px = 1.0 / norm * (_this.c * (_this.ty - targetPoint.y) + _this.d * (targetPoint.x - _this.tx));
targetPoint.y = 1.0 / norm * (_this.a * (targetPoint.y - _this.ty) + _this.b * (_this.tx - targetPoint.x));
targetPoint.x = px;
}
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.h.hasOwnProperty(touchId)) {
touchData = this.__touchData.h[touchId];
} else {
touchData = openfl__$internal_utils_TouchData.__pool.get();
touchData.reset();
touchData.touch = touch;
this.__touchData.h[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.__pool.get();
var touchEvent = openfl_events_TouchEvent.__create(type,null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target);
touchEvent.touchPointID = touchId;
touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
touchEvent.pressure = touch.pressure;
this.__dispatchStack(touchEvent,stack);
if(touchType != null) {
touchEvent = openfl_events_TouchEvent.__create(touchType,null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target);
touchEvent.touchPointID = touchId;
touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
touchEvent.pressure = touch.pressure;
this.__dispatchStack(touchEvent,stack);
}
var touchOverTarget = touchData.touchOverTarget;
if(target != touchOverTarget && touchOverTarget != null) {
touchEvent = openfl_events_TouchEvent.__create("touchOut",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),touchOverTarget);
touchEvent.touchPointID = touchId;
touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
touchEvent.pressure = touch.pressure;
this.__dispatchTarget(touchOverTarget,touchEvent);
}
var touchOutStack = touchData.rollOutStack;
var item;
var i = 0;
while(i < touchOutStack.length) {
item = touchOutStack[i];
if(stack.indexOf(item) == -1) {
HxOverrides.remove(touchOutStack,item);
touchEvent = openfl_events_TouchEvent.__create("touchRollOut",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),touchOverTarget);
touchEvent.touchPointID = touchId;
touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
touchEvent.bubbles = false;
touchEvent.pressure = touch.pressure;
this.__dispatchTarget(item,touchEvent);
} else {
++i;
}
}
var _g = 0;
while(_g < stack.length) {
var item = stack[_g];
++_g;
if(touchOutStack.indexOf(item) == -1) {
if(item.hasEventListener("touchRollOver")) {
touchEvent = openfl_events_TouchEvent.__create("touchRollOver",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),item);
touchEvent.touchPointID = touchId;
touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
touchEvent.bubbles = false;
touchEvent.pressure = touch.pressure;
this.__dispatchTarget(item,touchEvent);
}
if(item.hasEventListener("touchRollOut")) {
touchOutStack.push(item);
}
}
}
if(target != touchOverTarget) {
if(target != null) {
touchEvent = openfl_events_TouchEvent.__create("touchOver",null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target);
touchEvent.touchPointID = touchId;
touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
touchEvent.bubbles = true;
touchEvent.pressure = touch.pressure;
this.__dispatchTarget(target,touchEvent);
}
touchData.touchOverTarget = target;
}
openfl_geom_Point.__pool.release(targetPoint);
openfl_geom_Point.__pool.release(localPoint);
if(releaseTouchData) {
this.__touchData.remove(touchId);
touchData.reset();
openfl__$internal_utils_TouchData.__pool.release(touchData);
}
}
,__registerLimeModule: function(application) {
application.onCreateWindow.add($bind(this,this.__onLimeCreateWindow));
application.onUpdate.add($bind(this,this.__onLimeUpdate));
application.onExit.add($bind(this,this.__onLimeModuleExit),false,0);
var gamepad = lime_ui_Gamepad.devices.iterator();
while(gamepad.hasNext()) {
var gamepad1 = gamepad.next();
this.__onLimeGamepadConnect(gamepad1);
}
lime_ui_Gamepad.onConnect.add($bind(this,this.__onLimeGamepadConnect));
lime_ui_Touch.onStart.add($bind(this,this.__onLimeTouchStart));
lime_ui_Touch.onMove.add($bind(this,this.__onLimeTouchMove));
lime_ui_Touch.onEnd.add($bind(this,this.__onLimeTouchEnd));
lime_ui_Touch.onCancel.add($bind(this,this.__onLimeTouchCancel));
}
,__resize: function() {
var cacheWidth = this.stageWidth;
var cacheHeight = this.stageHeight;
var windowWidth = this.window.__width * this.window.__scale | 0;
var windowHeight = this.window.__height * this.window.__scale | 0;
this.__logicalWidth = windowWidth;
this.__logicalHeight = windowHeight;
this.__displayMatrix.identity();
if(this.get_fullScreenSourceRect() != null && this.window.__fullscreen) {
this.stageWidth = this.get_fullScreenSourceRect().width | 0;
this.stageHeight = this.get_fullScreenSourceRect().height | 0;
var displayScaleX = windowWidth / this.stageWidth;
var displayScaleY = windowHeight / this.stageHeight;
this.__displayMatrix.translate(-this.get_fullScreenSourceRect().x,-this.get_fullScreenSourceRect().y);
this.__displayMatrix.scale(displayScaleX,displayScaleY);
this.__displayRect.setTo(this.get_fullScreenSourceRect().get_left(),this.get_fullScreenSourceRect().get_right(),this.get_fullScreenSourceRect().get_top(),this.get_fullScreenSourceRect().get_bottom());
} else {
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);
}
this.__displayRect.setTo(0,0,this.stageWidth,this.stageHeight);
}
if(this.context3D != null) {
this.context3D.configureBackBuffer(windowWidth,windowHeight,0,true,true,true);
}
var stage3D = this.stage3Ds.iterator();
while(stage3D.hasNext()) {
var stage3D1 = stage3D.next();
stage3D1.__resize(windowWidth,windowHeight);
}
if(this.__renderer != null) {
this.__renderer.__resize(windowWidth,windowHeight);
}
if(this.stageWidth != cacheWidth || this.stageHeight != cacheHeight) {
this.__renderDirty = true;
this.__setTransformDirty();
var event = null;
event = new openfl_events_Event("resize");
this.__dispatchEvent(event);
}
}
,__setLogicalSize: function(width,height) {
this.__logicalWidth = width;
this.__logicalHeight = height;
this.__resize();
}
,__startDrag: function(sprite,lockCenter,bounds) {
if(bounds == null) {
this.__dragBounds = null;
} else {
this.__dragBounds = new openfl_geom_Rectangle();
var right = bounds.get_right();
var bottom = bounds.get_bottom();
this.__dragBounds.x = right < bounds.x ? right : bounds.x;
this.__dragBounds.y = bottom < bounds.y ? bottom : bounds.y;
this.__dragBounds.width = Math.abs(bounds.width);
this.__dragBounds.height = Math.abs(bounds.height);
}
this.__dragObject = sprite;
if(this.__dragObject != null) {
if(lockCenter) {
this.__dragOffsetX = 0;
this.__dragOffsetY = 0;
} else {
var mouse = openfl_geom_Point.__pool.get();
mouse.setTo(this.get_mouseX(),this.get_mouseY());
var parent = this.__dragObject.parent;
if(parent != null) {
var _this = parent.__getWorldTransform();
var norm = _this.a * _this.d - _this.b * _this.c;
if(norm == 0) {
mouse.x = -_this.tx;
mouse.y = -_this.ty;
} else {
var px = 1.0 / norm * (_this.c * (_this.ty - mouse.y) + _this.d * (mouse.x - _this.tx));
mouse.y = 1.0 / norm * (_this.a * (mouse.y - _this.ty) + _this.b * (_this.tx - mouse.x));
mouse.x = px;
}
}
this.__dragOffsetX = this.__dragObject.get_x() - mouse.x;
this.__dragOffsetY = this.__dragObject.get_y() - mouse.y;
openfl_geom_Point.__pool.release(mouse);
}
}
}
,__stopDrag: function(sprite) {
this.__dragBounds = null;
this.__dragObject = null;
}
,__unregisterLimeModule: function(application) {
application.onCreateWindow.remove($bind(this,this.__onLimeCreateWindow));
application.onUpdate.remove($bind(this,this.__onLimeUpdate));
application.onExit.remove($bind(this,this.__onLimeModuleExit));
lime_ui_Gamepad.onConnect.remove($bind(this,this.__onLimeGamepadConnect));
lime_ui_Touch.onStart.remove($bind(this,this.__onLimeTouchStart));
lime_ui_Touch.onMove.remove($bind(this,this.__onLimeTouchMove));
lime_ui_Touch.onEnd.remove($bind(this,this.__onLimeTouchEnd));
lime_ui_Touch.onCancel.remove($bind(this,this.__onLimeTouchCancel));
}
,__update: function(transformOnly,updateChildren) {
if(transformOnly) {
if(this.__transformDirty) {
openfl_display_DisplayObjectContainer.prototype.__update.call(this,true,updateChildren);
if(updateChildren) {
this.__transformDirty = false;
}
}
} else if(this.__transformDirty || this.__renderDirty) {
openfl_display_DisplayObjectContainer.prototype.__update.call(this,false,updateChildren);
if(updateChildren) {
if(openfl_display_DisplayObject.__supportDOM) {
this.__wasDirty = true;
}
}
} else if(!this.__renderDirty && this.__wasDirty) {
openfl_display_DisplayObjectContainer.prototype.__update.call(this,false,updateChildren);
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;
}
if(this.__color != value) {
var r = (value & 16711680) >>> 16;
var g = (value & 65280) >>> 8;
var b = value & 255;
this.__colorSplit[0] = r / 255;
this.__colorSplit[1] = g / 255;
this.__colorSplit[2] = b / 255;
this.__colorString = "#" + StringTools.hex(value & 16777215,6);
this.__renderDirty = true;
this.__color = -16777216 | value & 16777215;
}
return value;
}
,get_contentsScaleFactor: function() {
return this.__contentsScaleFactor;
}
,get_displayState: function() {
return this.__displayState;
}
,set_displayState: function(value) {
if(this.window != null) {
if(value == 2) {
if(this.window.__fullscreen) {
this.window.set_fullscreen(false);
}
} else if(!this.window.__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("focusOut",true,false,value,false,0);
var stack = [];
oldFocus.__getInteractive(stack);
stack.reverse();
this.__dispatchStack(event,stack);
}
if(value != null) {
var event = new openfl_events_FocusEvent("focusIn",true,false,oldFocus,false,0);
var stack = [];
value.__getInteractive(stack);
stack.reverse();
this.__dispatchStack(event,stack);
}
}
return value;
}
,get_frameRate: function() {
if(this.window != null) {
return this.window.__backend.getFrameRate();
}
return 0;
}
,set_frameRate: function(value) {
if(this.window != null) {
return this.window.__backend.setFrameRate(value);
}
return value;
}
,get_fullScreenHeight: function() {
return Math.ceil(this.window.get_display().currentMode.height * this.window.__scale);
}
,get_fullScreenSourceRect: function() {
if(this.__fullScreenSourceRect == null) {
return null;
} else {
return this.__fullScreenSourceRect.clone();
}
}
,set_fullScreenSourceRect: function(value) {
if(value == null) {
if(this.__fullScreenSourceRect != null) {
this.__fullScreenSourceRect = null;
this.__resize();
}
} else if(!value.equals(this.__fullScreenSourceRect)) {
this.__fullScreenSourceRect = value.clone();
this.__resize();
}
return value;
}
,get_fullScreenWidth: function() {
return Math.ceil(this.window.get_display().currentMode.width * this.window.__scale);
}
,set_height: function(value) {
return this.get_height();
}
,get_mouseX: function() {
return this.__mouseX;
}
,get_mouseY: function() {
return this.__mouseY;
}
,get_quality: function() {
return this.__quality;
}
,set_quality: function(value) {
this.__quality = value;
if(this.__renderer != null) {
var tmp = this.get_quality();
this.__renderer.__allowSmoothing = tmp != 2;
}
return value;
}
,set_rotation: function(value) {
return 0;
}
,get_scaleMode: function() {
return this.__scaleMode;
}
,set_scaleMode: function(value) {
return this.__scaleMode = value;
}
,set_scaleX: function(value) {
return 0;
}
,set_scaleY: function(value) {
return 0;
}
,get_tabEnabled: function() {
return false;
}
,set_tabEnabled: function(value) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Error: The Stage class does not implement this property or method."));
}
,get_tabIndex: function() {
return -1;
}
,set_tabIndex: function(value) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Error: The Stage class does not implement this property or method."));
}
,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;
}
,__class__: openfl_display_Stage
,__properties__: $extend(openfl_display_DisplayObjectContainer.prototype.__properties__,{set_scaleMode:"set_scaleMode",get_scaleMode:"get_scaleMode",set_quality:"set_quality",get_quality:"get_quality",get_fullScreenWidth:"get_fullScreenWidth",set_fullScreenSourceRect:"set_fullScreenSourceRect",get_fullScreenSourceRect:"get_fullScreenSourceRect",get_fullScreenHeight:"get_fullScreenHeight",set_frameRate:"set_frameRate",get_frameRate:"get_frameRate",set_focus:"set_focus",get_focus:"get_focus",set_displayState:"set_displayState",get_displayState:"get_displayState",get_contentsScaleFactor:"get_contentsScaleFactor",set_color:"set_color",get_color:"get_color"})
});
var openfl_display_Stage3D = function(stage) {
openfl_events_EventDispatcher.call(this);
this.__stage = stage;
this.__height = 0;
this.__projectionTransform = new openfl_geom_Matrix3D();
this.__renderTransform = new openfl_geom_Matrix3D();
this.__width = 0;
this.__x = 0;
this.__y = 0;
this.visible = true;
if(stage.stageWidth > 0 && stage.stageHeight > 0) {
this.__resize(stage.stageWidth,stage.stageHeight);
}
};
$hxClasses["openfl.display.Stage3D"] = openfl_display_Stage3D;
openfl_display_Stage3D.__name__ = "openfl.display.Stage3D";
openfl_display_Stage3D.__active = null;
openfl_display_Stage3D.__super__ = openfl_events_EventDispatcher;
openfl_display_Stage3D.prototype = $extend(openfl_events_EventDispatcher.prototype,{
context3D: null
,visible: null
,__contextLost: null
,__contextRequested: null
,__height: null
,__indexBuffer: null
,__projectionTransform: null
,__renderTransform: null
,__stage: null
,__vertexBuffer: null
,__width: null
,__x: null
,__y: null
,__canvas: null
,__renderContext: null
,__style: null
,__webgl: null
,requestContext3D: function(context3DRenderMode,profile) {
if(profile == null) {
profile = 0;
}
if(context3DRenderMode == null) {
context3DRenderMode = 0;
}
if(this.__contextLost) {
this.__contextRequested = true;
return;
}
if(this.context3D != null) {
this.__contextRequested = true;
haxe_Timer.delay($bind(this,this.__dispatchCreate),1);
} else if(!this.__contextRequested) {
this.__contextRequested = true;
haxe_Timer.delay($bind(this,this.__createContext),1);
}
}
,requestContext3DMatchingProfiles: function(profiles) {
this.requestContext3D();
}
,__createContext: function() {
var stage = this.__stage;
var renderer = stage.__renderer;
if(renderer.__type == "cairo" || renderer.__type == "canvas") {
this.__dispatchError();
return;
}
if(renderer.__type == "opengl") {
this.context3D = new openfl_display3D_Context3D(stage,stage.context3D.__contextState,this);
this.__dispatchCreate();
} else if(renderer.__type == "dom") {
this.__canvas = window.document.createElement("canvas");
this.__canvas.width = stage.stageWidth;
this.__canvas.height = stage.stageHeight;
var $window = stage.window;
var attributes = renderer.__context.attributes;
var transparentBackground = Object.prototype.hasOwnProperty.call(attributes,"background") && attributes.background == null;
var colorDepth = Object.prototype.hasOwnProperty.call(attributes,"colorDepth") ? attributes.colorDepth : 32;
var options = Object.prototype.hasOwnProperty.call(attributes,"antialiasing") && attributes.antialiasing > 0;
var options1 = { alpha : transparentBackground || colorDepth > 16, antialias : options, depth : true, premultipliedAlpha : true, stencil : true, preserveDrawingBuffer : false};
this.__webgl = js_html__$CanvasElement_CanvasUtil.getContextWebGL(this.__canvas,options1);
if(this.__webgl != null) {
this.__dispatchError();
} else {
this.__dispatchError();
}
}
}
,__dispatchError: function() {
this.__contextRequested = false;
this.dispatchEvent(new openfl_events_ErrorEvent("error",false,false,"Context3D not available"));
}
,__dispatchCreate: function() {
if(this.__contextRequested) {
this.__contextRequested = false;
this.dispatchEvent(new openfl_events_Event("context3DCreate"));
}
}
,__lostContext: function() {
this.__contextLost = true;
if(this.context3D != null) {
this.context3D.__dispose();
this.__contextRequested = true;
}
}
,__resize: function(width,height) {
if(width != this.__width || height != this.__height) {
if(this.__canvas != null) {
this.__canvas.width = width;
this.__canvas.height = height;
}
this.__projectionTransform.copyRawDataFrom(openfl_Vector.toFloatVector(null,null,null,[2.0 / (width > 0 ? width : 1),0.0,0.0,0.0,0.0,-2.0 / (height > 0 ? height : 1),0.0,0.0,0.0,0.0,-0.001,0.0,-1.0,1.0,0.0,1.0]));
this.__renderTransform.identity();
this.__renderTransform.appendTranslation(this.__x,this.__y,0);
this.__renderTransform.append(this.__projectionTransform);
this.__width = width;
this.__height = height;
}
}
,__restoreContext: function() {
this.__contextLost = false;
this.__createContext();
}
,get_x: function() {
return this.__x;
}
,set_x: function(value) {
if(this.__x == value) {
return value;
}
this.__x = value;
this.__renderTransform.identity();
this.__renderTransform.appendTranslation(this.__x,this.__y,0);
this.__renderTransform.append(this.__projectionTransform);
return value;
}
,get_y: function() {
return this.__y;
}
,set_y: function(value) {
if(this.__y == value) {
return value;
}
this.__y = value;
this.__renderTransform.identity();
this.__renderTransform.appendTranslation(this.__x,this.__y,0);
this.__renderTransform.append(this.__projectionTransform);
return value;
}
,__class__: openfl_display_Stage3D
,__properties__: {set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x"}
});
var openfl_display_StageAlign = {};
openfl_display_StageAlign.fromString = function(value) {
switch(value) {
case "bottom":
return 0;
case "bottomLeft":
return 1;
case "bottomRight":
return 2;
case "left":
return 3;
case "right":
return 4;
case "top":
return 5;
case "topLeft":
return 6;
case "topRight":
return 7;
default:
return null;
}
};
openfl_display_StageAlign.toString = function(this1) {
switch(this1) {
case 0:
return "bottom";
case 1:
return "bottomLeft";
case 2:
return "bottomRight";
case 3:
return "left";
case 4:
return "right";
case 5:
return "top";
case 6:
return "topLeft";
case 7:
return "topRight";
default:
return null;
}
};
var openfl_display_StageDisplayState = {};
openfl_display_StageDisplayState.fromString = function(value) {
switch(value) {
case "fullScreen":
return 0;
case "fullScreenInteractive":
return 1;
case "normal":
return 2;
default:
return null;
}
};
openfl_display_StageDisplayState.toString = function(this1) {
switch(this1) {
case 0:
return "fullScreen";
case 1:
return "fullScreenInteractive";
case 2:
return "normal";
default:
return null;
}
};
var openfl_display_StageQuality = {};
openfl_display_StageQuality.fromString = function(value) {
switch(value) {
case "best":
return 0;
case "high":
return 1;
case "low":
return 2;
case "medium":
return 3;
default:
return null;
}
};
openfl_display_StageQuality.toString = function(this1) {
switch(this1) {
case 0:
return "best";
case 1:
return "high";
case 2:
return "low";
case 3:
return "medium";
default:
return null;
}
};
var openfl_display_StageScaleMode = {};
openfl_display_StageScaleMode.fromString = function(value) {
switch(value) {
case "exactFit":
return 0;
case "noBorder":
return 1;
case "noScale":
return 2;
case "showAll":
return 3;
default:
return null;
}
};
openfl_display_StageScaleMode.toString = function(this1) {
switch(this1) {
case 0:
return "exactFit";
case 1:
return "noBorder";
case 2:
return "noScale";
case 3:
return "showAll";
default:
return null;
}
};
var openfl_display_Timeline = function() {
this.__framesLoaded = 1;
this.__totalFrames = 1;
this.__currentLabels = [];
this.__currentFrame = 1;
this.__lastFrameScriptEval = -1;
this.__lastFrameUpdate = -1;
};
$hxClasses["openfl.display.Timeline"] = openfl_display_Timeline;
openfl_display_Timeline.__name__ = "openfl.display.Timeline";
openfl_display_Timeline.prototype = {
frameRate: null
,scenes: null
,scripts: null
,__currentFrame: null
,__currentFrameLabel: null
,__currentLabel: null
,__currentLabels: null
,__currentScene: null
,__frameScripts: null
,__framesLoaded: null
,__frameTime: null
,__isPlaying: null
,__lastFrameScriptEval: null
,__lastFrameUpdate: null
,__scope: null
,__timeElapsed: null
,__totalFrames: null
,attachMovieClip: function(movieClip) {
}
,enterFrame: function(frame) {
}
,__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();
}
this.__frameScripts.h[frame] = function(scope) {
method();
};
} else if(this.__frameScripts != null) {
this.__frameScripts.remove(frame);
}
}
,__attachMovieClip: function(movieClip) {
this.__scope = movieClip;
this.__totalFrames = 0;
this.__framesLoaded = 0;
if(this.scenes != null && this.scenes.length > 0) {
var _g = 0;
var _g1 = this.scenes;
while(_g < _g1.length) {
var scene = _g1[_g];
++_g;
this.__totalFrames += scene.numFrames;
this.__framesLoaded += scene.numFrames;
if(scene.labels != null) {
this.__currentLabels = this.__currentLabels.concat(scene.labels);
}
}
this.__currentScene = this.scenes[0];
}
if(this.scripts != null && this.scripts.length > 0) {
this.__frameScripts = new haxe_ds_IntMap();
var _g = 0;
var _g1 = this.scripts;
while(_g < _g1.length) {
var script = _g1[_g];
++_g;
this.__frameScripts.h[script.frame] = script.script;
}
}
this.attachMovieClip(movieClip);
}
,__enterFrame: function(deltaTime) {
if(this.__isPlaying) {
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;
}
}
this.__updateSymbol(this.__currentFrame);
}
,__evaluateFrameScripts: function(advanceToFrame) {
if(this.__frameScripts == null) {
return true;
}
var _g = this.__currentFrame;
var _g1 = advanceToFrame + 1;
while(_g < _g1) {
var frame = _g++;
if(frame == this.__lastFrameScriptEval) {
continue;
}
this.__lastFrameScriptEval = frame;
this.__currentFrame = frame;
if(this.__frameScripts.h.hasOwnProperty(frame)) {
this.__updateSymbol(frame);
var script = this.__frameScripts.h[frame];
script(this.__scope);
if(this.__currentFrame != frame) {
return false;
}
}
if(!this.__isPlaying) {
return false;
}
}
return true;
}
,__getNextFrame: function(deltaTime) {
var nextFrame = 0;
if(this.frameRate != null) {
this.__timeElapsed += deltaTime;
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;
} else {
nextFrame = this.__currentFrame + 1;
if(nextFrame > this.__totalFrames) {
nextFrame = 1;
}
}
return nextFrame;
}
,__goto: function(frame) {
if(frame < 1) {
frame = 1;
} else if(frame > this.__totalFrames) {
frame = this.__totalFrames;
}
this.__lastFrameScriptEval = -1;
this.__currentFrame = frame;
this.__updateSymbol(this.__currentFrame);
this.__evaluateFrameScripts(this.__currentFrame);
}
,__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);
}
,__nextScene: function() {
}
,__play: function() {
if(this.__isPlaying || this.__totalFrames < 2) {
return;
}
this.__isPlaying = true;
if(this.frameRate != null) {
this.__frameTime = 1000 / this.frameRate | 0;
this.__timeElapsed = 0;
}
}
,__prevFrame: function() {
this.__stop();
this.__goto(this.__currentFrame - 1);
}
,__prevScene: function() {
}
,__stop: function() {
this.__isPlaying = false;
}
,__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.name == label) {
return frameLabel.frame;
}
}
throw haxe_Exception.thrown(new openfl_errors_ArgumentError("Error #2109: Frame label " + label + " not found in scene."));
} else {
throw haxe_Exception.thrown("Invalid type for frame " + frame.__name__);
}
}
,__updateFrameLabel: function() {
this.__currentLabel = null;
this.__currentFrameLabel = null;
var _g = 0;
var _g1 = this.__currentLabels;
while(_g < _g1.length) {
var label = _g1[_g];
++_g;
if(label.frame < this.__currentFrame) {
this.__currentLabel = label.name;
} else if(label.frame == this.__currentFrame) {
this.__currentLabel = label.name;
this.__currentFrameLabel = label.name;
} else {
break;
}
}
}
,__updateSymbol: function(targetFrame) {
if(this.__currentFrame != this.__lastFrameUpdate) {
this.__updateFrameLabel();
this.enterFrame(targetFrame);
this.__lastFrameUpdate = this.__currentFrame;
}
}
,__class__: openfl_display_Timeline
};
var openfl_display_TriangleCulling = {};
openfl_display_TriangleCulling.fromString = function(value) {
switch(value) {
case "negative":
return 0;
case "none":
return 1;
case "positive":
return 2;
default:
return null;
}
};
openfl_display_TriangleCulling.toString = function(this1) {
switch(this1) {
case 0:
return "negative";
case 1:
return "none";
case 2:
return "positive";
default:
return null;
}
};
var openfl_display_Window = function(application,attributes) {
lime_ui_Window.call(this,application,attributes);
this.stage = new openfl_display_Stage(this,Object.prototype.hasOwnProperty.call(attributes.context,"background") ? attributes.context.background : 16777215);
if(Object.prototype.hasOwnProperty.call(attributes,"parameters")) {
try {
this.stage.get_loaderInfo().parameters = attributes.parameters;
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
}
if(Object.prototype.hasOwnProperty.call(attributes,"resizable") && !attributes.resizable) {
this.stage.__setLogicalSize(attributes.width,attributes.height);
}
application.addModule(this.stage);
};
$hxClasses["openfl.display.Window"] = openfl_display_Window;
openfl_display_Window.__name__ = "openfl.display.Window";
openfl_display_Window.__super__ = lime_ui_Window;
openfl_display_Window.prototype = $extend(lime_ui_Window.prototype,{
__class__: openfl_display_Window
});
var openfl_display__$internal_AbstractNoise = function(seed,octaves,channels,grayScale,falloff,stitch,stitch_threshold) {
if(stitch_threshold == null) {
stitch_threshold = 0.05;
}
if(stitch == null) {
stitch = false;
}
this.stitch = stitch;
this.stitch_threshold = stitch_threshold;
this.octaves = octaves;
this.channels = channels;
this.grayscale = grayScale;
this.calculateOctaves(falloff);
};
$hxClasses["openfl.display._internal.AbstractNoise"] = openfl_display__$internal_AbstractNoise;
openfl_display__$internal_AbstractNoise.__name__ = "openfl.display._internal.AbstractNoise";
openfl_display__$internal_AbstractNoise.prototype = {
octaves: null
,stitch: null
,stitch_threshold: null
,channels: null
,grayscale: null
,octaves_frequencies: null
,octaves_persistences: null
,persistence_max: null
,fill: function(bitmap,_scale_x,_scale_y,_scale_z) {
}
,stitching: function(bitmap,color,px,py,stitch_w,stitch_h,width,height) {
var r = color >> 16 & 255;
var g = color >> 8 & 255;
var b = color & 255;
if(width - stitch_w < px) {
var dest = bitmap.getPixel32(width - px,py);
var dest_r = dest >> 16 & 255;
var dest_g = dest >> 8 & 255;
var dest_b = dest & 255;
var u = (width - px) / stitch_w;
var uu = u * u;
r = this.mixI(dest_r,r,u);
g = this.mixI(dest_g,g,u);
b = this.mixI(dest_b,b,u);
}
if(height - stitch_h < py) {
var dest = bitmap.getPixel32(px,height - py);
var dest_r = dest >> 16 & 255;
var dest_g = dest >> 8 & 255;
var dest_b = dest & 255;
var u = (height - py) / stitch_h;
var uu = u * u;
r = this.mixI(dest_r,r,u);
g = this.mixI(dest_g,g,u);
b = this.mixI(dest_b,b,u);
}
return -16777216 | r << 16 | g << 8 | b;
}
,color: function(r_noise,g_noise,b_noise) {
var color_r = 0;
var color_g = 0;
var color_b = 0;
if(null != r_noise) {
color_r = this.noiseToColor(r_noise);
}
if(null != g_noise) {
color_g = this.noiseToColor(g_noise);
}
if(null != b_noise) {
color_b = this.noiseToColor(b_noise);
}
return -16777216 | color_r << 16 | color_g << 8 | color_b;
}
,noiseToColor: function(noise) {
return (noise * this.persistence_max + 1.0) * 128 | 0;
}
,fade: function(t) {
return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);
}
,mixI: function(x,y,t) {
return (1.0 - t) * x + t * y | 0;
}
,mix: function(x,y,t) {
return (1.0 - t) * x + t * y;
}
,fastfloor: function(x) {
if(x > 0) {
return x | 0;
} else {
return x - 1 | 0;
}
}
,dot2d: function(grad,x,y) {
return grad[0] * x + grad[1] * y;
}
,dot: function(grad,x,y,z) {
return grad[0] * x + grad[1] * y + grad[2] * z;
}
,calculateOctaves: function(fPersistence) {
var fFreq;
var fPers;
this.octaves_frequencies = [];
this.octaves_persistences = [];
this.persistence_max = 0;
var _g = 0;
var _g1 = this.octaves;
while(_g < _g1) {
var i = _g++;
fFreq = Math.pow(2.0,i);
fPers = Math.pow(fPersistence,i);
this.persistence_max += fPers;
this.octaves_frequencies.push(fFreq);
this.octaves_persistences.push(fPers);
}
this.persistence_max = 1.0 / this.persistence_max;
}
,__class__: openfl_display__$internal_AbstractNoise
};
var openfl_display__$internal_CairoBitmap = function() { };
$hxClasses["openfl.display._internal.CairoBitmap"] = openfl_display__$internal_CairoBitmap;
openfl_display__$internal_CairoBitmap.__name__ = "openfl.display._internal.CairoBitmap";
openfl_display__$internal_CairoBitmap.render = function(bitmap,renderer) {
if(!bitmap.__renderable) {
return;
}
var alpha = renderer.__getAlpha(bitmap.__worldAlpha);
if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid) {
var cairo = renderer.cairo;
renderer.__setBlendMode(bitmap.__worldBlendMode);
renderer.__pushMaskObject(bitmap);
renderer.applyMatrix(bitmap.__renderTransform,cairo);
var surface = bitmap.__bitmapData.getSurface();
if(surface != null) {
var pattern = lime_graphics_cairo_CairoPattern.createForSurface(surface);
lime_graphics_cairo_CairoPattern.set_filter(pattern,renderer.__allowSmoothing && bitmap.smoothing ? 1 : 3);
cairo.set_source(pattern);
if(alpha == 1) {
cairo.paint();
} else {
cairo.paintWithAlpha(alpha);
}
}
renderer.__popMaskObject(bitmap);
renderer.__setBlendMode(10);
}
};
var openfl_display__$internal_CairoDisplayObject = function() { };
$hxClasses["openfl.display._internal.CairoDisplayObject"] = openfl_display__$internal_CairoDisplayObject;
openfl_display__$internal_CairoDisplayObject.__name__ = "openfl.display._internal.CairoDisplayObject";
openfl_display__$internal_CairoDisplayObject.render = function(displayObject,renderer) {
};
var openfl_display__$internal_CairoGraphics = function() { };
$hxClasses["openfl.display._internal.CairoGraphics"] = openfl_display__$internal_CairoGraphics;
openfl_display__$internal_CairoGraphics.__name__ = "openfl.display._internal.CairoGraphics";
openfl_display__$internal_CairoGraphics.hitTest = function(graphics,x,y) {
return false;
};
openfl_display__$internal_CairoGraphics.render = function(graphics,renderer) {
};
openfl_display__$internal_CairoGraphics.renderMask = function(graphics,renderer) {
};
var openfl_display__$internal_CairoTextField = function() { };
$hxClasses["openfl.display._internal.CairoTextField"] = openfl_display__$internal_CairoTextField;
openfl_display__$internal_CairoTextField.__name__ = "openfl.display._internal.CairoTextField";
openfl_display__$internal_CairoTextField.render = function(textField,renderer,transform) {
};
var openfl_display__$internal_CanvasBitmap = function() { };
$hxClasses["openfl.display._internal.CanvasBitmap"] = openfl_display__$internal_CanvasBitmap;
openfl_display__$internal_CanvasBitmap.__name__ = "openfl.display._internal.CanvasBitmap";
openfl_display__$internal_CanvasBitmap.render = function(bitmap,renderer) {
if(!bitmap.__renderable) {
return;
}
var alpha = renderer.__getAlpha(bitmap.__worldAlpha);
if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
var context = renderer.context;
renderer.__setBlendMode(bitmap.__worldBlendMode);
renderer.__pushMaskObject(bitmap,false);
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image);
context.globalAlpha = alpha;
var scrollRect = bitmap.__scrollRect;
renderer.setTransform(bitmap.__renderTransform,context);
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = false;
}
if(scrollRect == null) {
context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height);
} else {
context.drawImage(bitmap.__bitmapData.image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
}
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
context.imageSmoothingEnabled = true;
}
renderer.__popMaskObject(bitmap,false);
}
};
var openfl_display__$internal_CanvasDisplayObject = function() { };
$hxClasses["openfl.display._internal.CanvasDisplayObject"] = openfl_display__$internal_CanvasDisplayObject;
openfl_display__$internal_CanvasDisplayObject.__name__ = "openfl.display._internal.CanvasDisplayObject";
openfl_display__$internal_CanvasDisplayObject.render = function(displayObject,renderer) {
if(displayObject.opaqueBackground == null && displayObject.__graphics == null) {
return;
}
if(!displayObject.__renderable) {
return;
}
var alpha = renderer.__getAlpha(displayObject.__worldAlpha);
if(alpha <= 0) {
return;
}
if(displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) {
renderer.__setBlendMode(displayObject.__worldBlendMode);
renderer.__pushMaskObject(displayObject);
var context = renderer.context;
renderer.setTransform(displayObject.__renderTransform,context);
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());
renderer.__popMaskObject(displayObject);
}
if(displayObject.__graphics != null) {
if(displayObject.__renderable) {
var alpha = renderer.__getAlpha(displayObject.__worldAlpha);
if(!(alpha <= 0)) {
var graphics = displayObject.__graphics;
if(graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer);
var width = graphics.__width;
var height = graphics.__height;
var canvas = graphics.__canvas;
if(canvas != null && graphics.__visible && width >= 1 && height >= 1) {
var transform = graphics.__worldTransform;
var context = renderer.context;
var scrollRect = displayObject.__scrollRect;
var scale9Grid = displayObject.__worldScale9Grid;
if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) {
renderer.__setBlendMode(displayObject.__worldBlendMode);
renderer.__pushMaskObject(displayObject);
context.globalAlpha = alpha;
if(scale9Grid != null && transform.b == 0 && transform.c == 0) {
context.setTransform(1,0,0,1,transform.tx,transform.ty);
var bounds = graphics.__bounds;
var scaleX = graphics.__renderTransform.a;
var scaleY = graphics.__renderTransform.d;
var renderScaleX = transform.a;
var renderScaleY = transform.d;
var left = Math.max(1,Math.round(scale9Grid.x * scaleX));
var top = Math.round(scale9Grid.y * scaleY);
var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX));
var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY);
var centerWidth = Math.round(scale9Grid.width * scaleX);
var centerHeight = Math.round(scale9Grid.height * scaleY);
var renderLeft = Math.round(scale9Grid.x * renderScaleX);
var renderTop = Math.round(scale9Grid.y * renderScaleY);
var renderRight = Math.round((bounds.get_right() - scale9Grid.get_right()) * renderScaleX);
var renderBottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * renderScaleY);
var renderCenterWidth = Math.round(width * renderScaleX) - renderLeft - renderRight;
var renderCenterHeight = Math.round(height * renderScaleY) - renderTop - renderBottom;
renderer.applySmoothing(context,false);
if(centerWidth != 0 && centerHeight != 0) {
context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop);
context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop);
context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop);
context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight);
context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight);
context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom);
context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom);
context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom);
} else if(centerWidth == 0 && centerHeight != 0) {
var renderWidth = renderLeft + renderCenterWidth + renderRight;
context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop);
context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom);
} else if(centerHeight == 0 && centerWidth != 0) {
var renderHeight = renderTop + renderCenterHeight + renderBottom;
context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight);
context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight);
context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight);
}
} else {
renderer.setTransform(transform,context);
if(renderer.__isDOM) {
var reverseScale = 1 / renderer.pixelRatio;
context.scale(reverseScale,reverseScale);
}
context.drawImage(canvas,0,0,width,height);
}
renderer.__popMaskObject(displayObject);
}
}
}
}
}
}
};
var openfl_display__$internal_DrawCommandBuffer = function() {
if(openfl_display__$internal_DrawCommandBuffer.empty == null) {
this.types = [];
this.b = [];
this.i = [];
this.f = [];
this.o = [];
this.ff = [];
this.ii = [];
this.copyOnWrite = true;
} else {
this.clear();
}
};
$hxClasses["openfl.display._internal.DrawCommandBuffer"] = openfl_display__$internal_DrawCommandBuffer;
openfl_display__$internal_DrawCommandBuffer.__name__ = "openfl.display._internal.DrawCommandBuffer";
openfl_display__$internal_DrawCommandBuffer.prototype = {
types: null
,b: null
,copyOnWrite: null
,f: null
,ff: null
,i: null
,ii: null
,o: null
,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_display__$internal_DrawCommandReader(other);
var _g = 0;
var _g1 = other.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = data;
var c = this1;
this.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]);
break;
case 1:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL;
var this2 = data;
var c1 = this2;
this.beginFill(c1.buffer.i[c1.iPos],c1.buffer.f[c1.fPos]);
break;
case 2:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL;
var this3 = data;
var c2 = this3;
this.beginGradientFill(c2.buffer.o[c2.oPos],c2.buffer.ii[c2.iiPos],c2.buffer.ff[c2.ffPos],c2.buffer.ii[c2.iiPos + 1],c2.buffer.o[c2.oPos + 1],c2.buffer.o[c2.oPos + 2],c2.buffer.o[c2.oPos + 3],c2.buffer.f[c2.fPos]);
break;
case 3:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL;
var this4 = data;
var c3 = this4;
this.beginShaderFill(c3.buffer.o[c3.oPos]);
break;
case 4:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO;
var this5 = data;
var c4 = this5;
this.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]);
break;
case 5:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO;
var this6 = data;
var c5 = this6;
this.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]);
break;
case 6:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE;
var this7 = data;
var c6 = this7;
this.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]);
break;
case 7:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE;
var this8 = data;
var c7 = this8;
this.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]);
break;
case 8:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS;
var this9 = data;
var c8 = this9;
this.drawQuads(c8.buffer.o[c8.oPos],c8.buffer.o[c8.oPos + 1],c8.buffer.o[c8.oPos + 2]);
break;
case 9:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT;
var this10 = data;
var c9 = this10;
this.drawRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]);
break;
case 10:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT;
var this11 = data;
var c10 = this11;
this.drawRoundRect(c10.buffer.f[c10.fPos],c10.buffer.f[c10.fPos + 1],c10.buffer.f[c10.fPos + 2],c10.buffer.f[c10.fPos + 3],c10.buffer.f[c10.fPos + 4],c10.buffer.o[c10.oPos]);
break;
case 12:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES;
var this12 = data;
var c11 = this12;
this.drawTriangles(c11.buffer.o[c11.oPos],c11.buffer.o[c11.oPos + 1],c11.buffer.o[c11.oPos + 2],c11.buffer.o[c11.oPos + 3]);
break;
case 13:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.END_FILL;
var this13 = data;
var c12 = this13;
this.endFill();
break;
case 14:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE;
var this14 = data;
var c13 = this14;
this.lineBitmapStyle(c13.buffer.o[c13.oPos],c13.buffer.o[c13.oPos + 1],c13.buffer.b[c13.bPos],c13.buffer.b[c13.bPos + 1]);
break;
case 15:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE;
var this15 = data;
var c14 = this15;
this.lineGradientStyle(c14.buffer.o[c14.oPos],c14.buffer.ii[c14.iiPos],c14.buffer.ff[c14.ffPos],c14.buffer.ii[c14.iiPos + 1],c14.buffer.o[c14.oPos + 1],c14.buffer.o[c14.oPos + 2],c14.buffer.o[c14.oPos + 3],c14.buffer.f[c14.fPos]);
break;
case 16:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE;
var this16 = data;
var c15 = this16;
this.lineStyle(c15.buffer.o[c15.oPos],c15.buffer.i[c15.iPos],c15.buffer.f[c15.fPos],c15.buffer.b[c15.bPos],c15.buffer.o[c15.oPos + 1],c15.buffer.o[c15.oPos + 2],c15.buffer.o[c15.oPos + 3],c15.buffer.f[c15.fPos + 1]);
break;
case 17:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_TO;
var this17 = data;
var c16 = this17;
this.lineTo(c16.buffer.f[c16.fPos],c16.buffer.f[c16.fPos + 1]);
break;
case 18:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO;
var this18 = data;
var c17 = this18;
this.moveTo(c17.buffer.f[c17.fPos],c17.buffer.f[c17.fPos + 1]);
break;
case 20:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_MATRIX;
var this19 = data;
var c18 = this19;
this.overrideMatrix(c18.buffer.o[c18.oPos]);
break;
case 21:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD;
var this20 = data;
var c19 = this20;
this.windingEvenOdd();
break;
case 22:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO;
var this21 = data;
var c20 = this21;
this.windingNonZero();
break;
default:
}
}
data.destroy();
return other;
}
,beginBitmapFill: function(bitmap,matrix,repeat,smooth) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.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);
}
,beginShaderFill: function(shaderBuffer) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL);
this.o.push(shaderBuffer);
}
,clear: function() {
this.types = openfl_display__$internal_DrawCommandBuffer.empty.types;
this.b = openfl_display__$internal_DrawCommandBuffer.empty.b;
this.i = openfl_display__$internal_DrawCommandBuffer.empty.i;
this.f = openfl_display__$internal_DrawCommandBuffer.empty.f;
this.o = openfl_display__$internal_DrawCommandBuffer.empty.o;
this.ff = openfl_display__$internal_DrawCommandBuffer.empty.ff;
this.ii = openfl_display__$internal_DrawCommandBuffer.empty.ii;
this.copyOnWrite = true;
}
,copy: function() {
var copy = new openfl_display__$internal_DrawCommandBuffer();
copy.append(this);
return copy;
}
,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.DRAW_ELLIPSE);
this.f.push(x);
this.f.push(y);
this.f.push(width);
this.f.push(height);
}
,drawQuads: function(rects,indices,transforms) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.DRAW_QUADS);
this.o.push(rects);
this.o.push(indices);
this.o.push(transforms);
}
,drawRect: function(x,y,width,height) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.END_FILL);
}
,lineBitmapStyle: function(bitmap,matrix,repeat,smooth) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.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_display__$internal_DrawCommandType.LINE_TO);
this.f.push(x);
this.f.push(y);
}
,moveTo: function(x,y) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.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;
}
}
,overrideBlendMode: function(blendMode) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE);
this.o.push(blendMode);
}
,overrideMatrix: function(matrix) {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.OVERRIDE_MATRIX);
this.o.push(matrix);
}
,windingEvenOdd: function() {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD);
}
,windingNonZero: function() {
this.prepareWrite();
this.types.push(openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO);
}
,get_length: function() {
return this.types.length;
}
,__class__: openfl_display__$internal_DrawCommandBuffer
,__properties__: {get_length:"get_length"}
};
var openfl_display__$internal_CanvasGraphics = function() { };
$hxClasses["openfl.display._internal.CanvasGraphics"] = openfl_display__$internal_CanvasGraphics;
openfl_display__$internal_CanvasGraphics.__name__ = "openfl.display._internal.CanvasGraphics";
openfl_display__$internal_CanvasGraphics.allowSmoothing = null;
openfl_display__$internal_CanvasGraphics.bitmapFill = null;
openfl_display__$internal_CanvasGraphics.bitmapStroke = null;
openfl_display__$internal_CanvasGraphics.bitmapRepeat = null;
openfl_display__$internal_CanvasGraphics.bounds = null;
openfl_display__$internal_CanvasGraphics.graphics = null;
openfl_display__$internal_CanvasGraphics.hasFill = null;
openfl_display__$internal_CanvasGraphics.hasStroke = null;
openfl_display__$internal_CanvasGraphics.hitTesting = null;
openfl_display__$internal_CanvasGraphics.inversePendingMatrix = null;
openfl_display__$internal_CanvasGraphics.pendingMatrix = null;
openfl_display__$internal_CanvasGraphics.windingRule = null;
openfl_display__$internal_CanvasGraphics.worldAlpha = null;
openfl_display__$internal_CanvasGraphics.context = null;
openfl_display__$internal_CanvasGraphics.hitTestCanvas = null;
openfl_display__$internal_CanvasGraphics.hitTestContext = null;
openfl_display__$internal_CanvasGraphics.closePath = function(strokeBefore) {
if(strokeBefore == null) {
strokeBefore = false;
}
if(openfl_display__$internal_CanvasGraphics.context.strokeStyle == null) {
return;
}
if(!strokeBefore) {
openfl_display__$internal_CanvasGraphics.context.closePath();
}
openfl_display__$internal_CanvasGraphics.context.stroke();
if(strokeBefore) {
openfl_display__$internal_CanvasGraphics.context.closePath();
}
openfl_display__$internal_CanvasGraphics.context.beginPath();
};
openfl_display__$internal_CanvasGraphics.createBitmapFill = function(bitmap,bitmapRepeat,smooth) {
lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.image);
openfl_display__$internal_CanvasGraphics.setSmoothing(smooth);
return openfl_display__$internal_CanvasGraphics.context.createPattern(bitmap.image.get_src(),bitmapRepeat ? "repeat" : "no-repeat");
};
openfl_display__$internal_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.__pool.get();
releaseMatrix = true;
}
switch(type) {
case 0:
point = openfl_geom_Point.__pool.get();
point.setTo(-819.2,0);
var px = point.x;
var py = point.y;
point.x = px * matrix.a + py * matrix.c + matrix.tx;
point.y = px * matrix.b + py * matrix.d + matrix.ty;
point2 = openfl_geom_Point.__pool.get();
point2.setTo(819.2,0);
var px = point2.x;
var py = point2.y;
point2.x = px * matrix.a + py * matrix.c + matrix.tx;
point2.y = px * matrix.b + py * matrix.d + matrix.ty;
gradientFill = openfl_display__$internal_CanvasGraphics.context.createLinearGradient(point.x,point.y,point2.x,point2.y);
break;
case 1:
point = openfl_geom_Point.__pool.get();
point.setTo(1638.4,0);
var px = point.x;
var py = point.y;
point.x = px * matrix.a + py * matrix.c + matrix.tx;
point.y = px * matrix.b + py * matrix.d + matrix.ty;
gradientFill = openfl_display__$internal_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 _g = 0;
var _g1 = colors.length;
while(_g < _g1) {
var i = _g++;
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.__pool.release(point);
}
if(point2 != null) {
openfl_geom_Point.__pool.release(point2);
}
if(releaseMatrix) {
openfl_geom_Matrix.__pool.release(matrix);
}
return gradientFill;
};
openfl_display__$internal_CanvasGraphics.createTempPatternCanvas = function(bitmap,repeat,width,height) {
var canvas = window.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(!openfl_display__$internal_CanvasGraphics.hitTesting) {
context.fill(openfl_display__$internal_CanvasGraphics.windingRule);
}
return canvas;
};
openfl_display__$internal_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 * 0.70710678118654752440084436210485;
var cx2 = -ellipseWidth + ellipseWidth * 0.4142135623730950488016887242097;
var cy1 = -ellipseHeight + ellipseHeight * 0.70710678118654752440084436210485;
var cy2 = -ellipseHeight + ellipseHeight * 0.4142135623730950488016887242097;
openfl_display__$internal_CanvasGraphics.context.moveTo(xe,ye - ellipseHeight);
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(xe,ye + cy2,xe + cx1,ye + cy1);
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(xe + cx2,ye,xe - ellipseWidth,ye);
openfl_display__$internal_CanvasGraphics.context.lineTo(x + ellipseWidth,ye);
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(x - cx2,ye,x - cx1,ye + cy1);
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(x,ye + cy2,x,ye - ellipseHeight);
openfl_display__$internal_CanvasGraphics.context.lineTo(x,y + ellipseHeight);
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(x,y - cy2,x - cx1,y - cy1);
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(x - cx2,y,x + ellipseWidth,y);
openfl_display__$internal_CanvasGraphics.context.lineTo(xe - ellipseWidth,y);
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(xe + cx2,y,xe + cx1,y - cy1);
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(xe,y - cy2,xe,y + ellipseHeight);
openfl_display__$internal_CanvasGraphics.context.lineTo(xe,ye - ellipseHeight);
};
openfl_display__$internal_CanvasGraphics.endFill = function() {
openfl_display__$internal_CanvasGraphics.context.beginPath();
openfl_display__$internal_CanvasGraphics.playCommands(openfl_display__$internal_CanvasGraphics.fillCommands,false);
openfl_display__$internal_CanvasGraphics.fillCommands.clear();
};
openfl_display__$internal_CanvasGraphics.endStroke = function() {
openfl_display__$internal_CanvasGraphics.context.beginPath();
openfl_display__$internal_CanvasGraphics.playCommands(openfl_display__$internal_CanvasGraphics.strokeCommands,true);
openfl_display__$internal_CanvasGraphics.context.closePath();
openfl_display__$internal_CanvasGraphics.strokeCommands.clear();
};
openfl_display__$internal_CanvasGraphics.hitTest = function(graphics,x,y) {
openfl_display__$internal_CanvasGraphics.bounds = graphics.__bounds;
openfl_display__$internal_CanvasGraphics.graphics = graphics;
if(graphics.__commands.get_length() == 0 || openfl_display__$internal_CanvasGraphics.bounds == null || openfl_display__$internal_CanvasGraphics.bounds.width <= 0 || openfl_display__$internal_CanvasGraphics.bounds.height <= 0) {
return false;
} else {
openfl_display__$internal_CanvasGraphics.hitTesting = true;
var transform = graphics.__renderTransform;
var px = x * transform.a + y * transform.c + transform.tx;
var py = x * transform.b + y * transform.d + transform.ty;
x = px;
y = py;
x -= openfl_display__$internal_CanvasGraphics.bounds.x * transform.a + openfl_display__$internal_CanvasGraphics.bounds.y * transform.c + transform.tx;
y -= openfl_display__$internal_CanvasGraphics.bounds.x * transform.b + openfl_display__$internal_CanvasGraphics.bounds.y * transform.d + transform.ty;
var cacheCanvas = graphics.__canvas;
var cacheContext = graphics.__context;
graphics.__canvas = openfl_display__$internal_CanvasGraphics.hitTestCanvas;
graphics.__context = openfl_display__$internal_CanvasGraphics.hitTestContext;
openfl_display__$internal_CanvasGraphics.context = graphics.__context;
openfl_display__$internal_CanvasGraphics.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
openfl_display__$internal_CanvasGraphics.fillCommands.clear();
openfl_display__$internal_CanvasGraphics.strokeCommands.clear();
openfl_display__$internal_CanvasGraphics.hasFill = false;
openfl_display__$internal_CanvasGraphics.hasStroke = false;
openfl_display__$internal_CanvasGraphics.bitmapFill = null;
openfl_display__$internal_CanvasGraphics.bitmapRepeat = false;
openfl_display__$internal_CanvasGraphics.windingRule = "evenodd";
var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands);
var _g = 0;
var _g1 = graphics.__commands.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:case 1:case 2:case 3:
openfl_display__$internal_CanvasGraphics.endFill();
if(openfl_display__$internal_CanvasGraphics.hasFill && openfl_display__$internal_CanvasGraphics.context.isPointInPath(x,y,openfl_display__$internal_CanvasGraphics.windingRule)) {
data.destroy();
graphics.__canvas = cacheCanvas;
graphics.__context = cacheContext;
return true;
}
openfl_display__$internal_CanvasGraphics.endStroke();
if(openfl_display__$internal_CanvasGraphics.hasStroke && openfl_display__$internal_CanvasGraphics.context.isPointInStroke(x,y)) {
data.destroy();
graphics.__canvas = cacheCanvas;
graphics.__context = cacheContext;
return true;
}
if(type == openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = data;
var c = this1;
openfl_display__$internal_CanvasGraphics.fillCommands.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]);
openfl_display__$internal_CanvasGraphics.strokeCommands.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]);
} else if(type == openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL;
var this2 = data;
var c1 = this2;
openfl_display__$internal_CanvasGraphics.fillCommands.beginGradientFill(c1.buffer.o[c1.oPos],c1.buffer.ii[c1.iiPos],c1.buffer.ff[c1.ffPos],c1.buffer.ii[c1.iiPos + 1],c1.buffer.o[c1.oPos + 1],c1.buffer.o[c1.oPos + 2],c1.buffer.o[c1.oPos + 3],c1.buffer.f[c1.fPos]);
openfl_display__$internal_CanvasGraphics.strokeCommands.beginGradientFill(c1.buffer.o[c1.oPos],c1.buffer.ii[c1.iiPos],c1.buffer.ff[c1.ffPos],c1.buffer.ii[c1.iiPos + 1],c1.buffer.o[c1.oPos + 1],c1.buffer.o[c1.oPos + 2],c1.buffer.o[c1.oPos + 3],c1.buffer.f[c1.fPos]);
} else if(type == openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL;
var this3 = data;
var c2 = this3;
openfl_display__$internal_CanvasGraphics.fillCommands.beginShaderFill(c2.buffer.o[c2.oPos]);
openfl_display__$internal_CanvasGraphics.strokeCommands.beginShaderFill(c2.buffer.o[c2.oPos]);
} else {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL;
var this4 = data;
var c3 = this4;
openfl_display__$internal_CanvasGraphics.fillCommands.beginFill(c3.buffer.i[c3.iPos],1);
openfl_display__$internal_CanvasGraphics.strokeCommands.beginFill(c3.buffer.i[c3.iPos],1);
}
break;
case 4:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO;
var this5 = data;
var c4 = this5;
openfl_display__$internal_CanvasGraphics.fillCommands.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]);
openfl_display__$internal_CanvasGraphics.strokeCommands.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]);
break;
case 5:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO;
var this6 = data;
var c5 = this6;
openfl_display__$internal_CanvasGraphics.fillCommands.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]);
openfl_display__$internal_CanvasGraphics.strokeCommands.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]);
break;
case 6:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE;
var this7 = data;
var c6 = this7;
openfl_display__$internal_CanvasGraphics.fillCommands.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]);
openfl_display__$internal_CanvasGraphics.strokeCommands.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]);
break;
case 7:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE;
var this8 = data;
var c7 = this8;
openfl_display__$internal_CanvasGraphics.fillCommands.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]);
openfl_display__$internal_CanvasGraphics.strokeCommands.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]);
break;
case 9:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT;
var this9 = data;
var c8 = this9;
openfl_display__$internal_CanvasGraphics.fillCommands.drawRect(c8.buffer.f[c8.fPos],c8.buffer.f[c8.fPos + 1],c8.buffer.f[c8.fPos + 2],c8.buffer.f[c8.fPos + 3]);
openfl_display__$internal_CanvasGraphics.strokeCommands.drawRect(c8.buffer.f[c8.fPos],c8.buffer.f[c8.fPos + 1],c8.buffer.f[c8.fPos + 2],c8.buffer.f[c8.fPos + 3]);
break;
case 10:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT;
var this10 = data;
var c9 = this10;
openfl_display__$internal_CanvasGraphics.fillCommands.drawRoundRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3],c9.buffer.f[c9.fPos + 4],c9.buffer.o[c9.oPos]);
openfl_display__$internal_CanvasGraphics.strokeCommands.drawRoundRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3],c9.buffer.f[c9.fPos + 4],c9.buffer.o[c9.oPos]);
break;
case 13:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.END_FILL;
var this11 = data;
openfl_display__$internal_CanvasGraphics.endFill();
if(openfl_display__$internal_CanvasGraphics.hasFill && openfl_display__$internal_CanvasGraphics.context.isPointInPath(x,y,openfl_display__$internal_CanvasGraphics.windingRule)) {
data.destroy();
graphics.__canvas = cacheCanvas;
graphics.__context = cacheContext;
return true;
}
openfl_display__$internal_CanvasGraphics.endStroke();
if(openfl_display__$internal_CanvasGraphics.hasStroke && openfl_display__$internal_CanvasGraphics.context.isPointInStroke(x,y)) {
data.destroy();
graphics.__canvas = cacheCanvas;
graphics.__context = cacheContext;
return true;
}
openfl_display__$internal_CanvasGraphics.hasFill = false;
openfl_display__$internal_CanvasGraphics.bitmapFill = null;
break;
case 14:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE;
var this12 = data;
var c10 = this12;
openfl_display__$internal_CanvasGraphics.strokeCommands.lineBitmapStyle(c10.buffer.o[c10.oPos],c10.buffer.o[c10.oPos + 1],c10.buffer.b[c10.bPos],c10.buffer.b[c10.bPos + 1]);
break;
case 15:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE;
var this13 = data;
var c11 = this13;
openfl_display__$internal_CanvasGraphics.strokeCommands.lineGradientStyle(c11.buffer.o[c11.oPos],c11.buffer.ii[c11.iiPos],c11.buffer.ff[c11.ffPos],c11.buffer.ii[c11.iiPos + 1],c11.buffer.o[c11.oPos + 1],c11.buffer.o[c11.oPos + 2],c11.buffer.o[c11.oPos + 3],c11.buffer.f[c11.fPos]);
break;
case 16:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE;
var this14 = data;
var c12 = this14;
openfl_display__$internal_CanvasGraphics.strokeCommands.lineStyle(c12.buffer.o[c12.oPos],c12.buffer.i[c12.iPos],1,c12.buffer.b[c12.bPos],c12.buffer.o[c12.oPos + 1],c12.buffer.o[c12.oPos + 2],c12.buffer.o[c12.oPos + 3],c12.buffer.f[c12.fPos + 1]);
break;
case 17:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_TO;
var this15 = data;
var c13 = this15;
openfl_display__$internal_CanvasGraphics.fillCommands.lineTo(c13.buffer.f[c13.fPos],c13.buffer.f[c13.fPos + 1]);
openfl_display__$internal_CanvasGraphics.strokeCommands.lineTo(c13.buffer.f[c13.fPos],c13.buffer.f[c13.fPos + 1]);
break;
case 18:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO;
var this16 = data;
var c14 = this16;
openfl_display__$internal_CanvasGraphics.fillCommands.moveTo(c14.buffer.f[c14.fPos],c14.buffer.f[c14.fPos + 1]);
openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(c14.buffer.f[c14.fPos],c14.buffer.f[c14.fPos + 1]);
break;
case 21:
openfl_display__$internal_CanvasGraphics.windingRule = "evenodd";
break;
case 22:
openfl_display__$internal_CanvasGraphics.windingRule = "nonzero";
break;
default:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
}
}
var hitTest = false;
if(openfl_display__$internal_CanvasGraphics.fillCommands.get_length() > 0) {
openfl_display__$internal_CanvasGraphics.endFill();
}
if(openfl_display__$internal_CanvasGraphics.hasFill && openfl_display__$internal_CanvasGraphics.context.isPointInPath(x,y,openfl_display__$internal_CanvasGraphics.windingRule)) {
hitTest = true;
}
if(openfl_display__$internal_CanvasGraphics.strokeCommands.get_length() > 0) {
openfl_display__$internal_CanvasGraphics.endStroke();
}
if(openfl_display__$internal_CanvasGraphics.hasStroke && openfl_display__$internal_CanvasGraphics.context.isPointInStroke(x,y)) {
hitTest = true;
}
data.destroy();
graphics.__canvas = cacheCanvas;
graphics.__context = cacheContext;
return hitTest;
}
};
openfl_display__$internal_CanvasGraphics.isCCW = function(x1,y1,x2,y2,x3,y3) {
return (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0;
};
openfl_display__$internal_CanvasGraphics.normalizeUVT = function(uvt,skipT) {
if(skipT == null) {
skipT = false;
}
var max = -Infinity;
var tmp = -Infinity;
var len = uvt.get_length();
var _g = 1;
var _g1 = len + 1;
while(_g < _g1) {
var t = _g++;
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.toFloatVector(null);
var _g = 1;
var _g1 = len + 1;
while(_g < _g1) {
var t = _g++;
if(skipT && t % 3 == 0) {
continue;
}
result.push(uvt.get(t - 1));
}
return { max : max, uvt : result};
};
openfl_display__$internal_CanvasGraphics.playCommands = function(commands,stroke) {
if(stroke == null) {
stroke = false;
}
openfl_display__$internal_CanvasGraphics.bounds = openfl_display__$internal_CanvasGraphics.graphics.__bounds;
var offsetX = openfl_display__$internal_CanvasGraphics.bounds.x;
var offsetY = openfl_display__$internal_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;
openfl_display__$internal_CanvasGraphics.windingRule = "evenodd";
openfl_display__$internal_CanvasGraphics.setSmoothing(true);
var hasPath = false;
var data = new openfl_display__$internal_DrawCommandReader(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;
_hx_loop1: while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = data;
var c = this1;
openfl_display__$internal_CanvasGraphics.bitmapFill = c.buffer.o[c.oPos];
openfl_display__$internal_CanvasGraphics.context.fillStyle = openfl_display__$internal_CanvasGraphics.createBitmapFill(c.buffer.o[c.oPos],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]);
openfl_display__$internal_CanvasGraphics.hasFill = true;
if(c.buffer.o[c.oPos + 1] != null) {
openfl_display__$internal_CanvasGraphics.pendingMatrix = c.buffer.o[c.oPos + 1];
openfl_display__$internal_CanvasGraphics.inversePendingMatrix = c.buffer.o[c.oPos + 1].clone();
openfl_display__$internal_CanvasGraphics.inversePendingMatrix.invert();
} else {
openfl_display__$internal_CanvasGraphics.pendingMatrix = null;
openfl_display__$internal_CanvasGraphics.inversePendingMatrix = null;
}
break;
case 1:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL;
var this2 = data;
var c1 = this2;
if(c1.buffer.f[c1.fPos] < 0.005) {
openfl_display__$internal_CanvasGraphics.hasFill = false;
} else {
if(c1.buffer.f[c1.fPos] == 1) {
var tmp = StringTools.hex(c1.buffer.i[c1.iPos] & 16777215,6);
openfl_display__$internal_CanvasGraphics.context.fillStyle = "#" + tmp;
} else {
r = (c1.buffer.i[c1.iPos] & 16711680) >>> 16;
g = (c1.buffer.i[c1.iPos] & 65280) >>> 8;
b = c1.buffer.i[c1.iPos] & 255;
openfl_display__$internal_CanvasGraphics.context.fillStyle = "rgba(" + r + ", " + g + ", " + b + ", " + c1.buffer.f[c1.fPos] + ")";
}
openfl_display__$internal_CanvasGraphics.bitmapFill = null;
openfl_display__$internal_CanvasGraphics.setSmoothing(true);
openfl_display__$internal_CanvasGraphics.hasFill = true;
}
break;
case 2:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL;
var this3 = data;
var c2 = this3;
openfl_display__$internal_CanvasGraphics.context.fillStyle = openfl_display__$internal_CanvasGraphics.createGradientPattern(c2.buffer.o[c2.oPos],c2.buffer.ii[c2.iiPos],c2.buffer.ff[c2.ffPos],c2.buffer.ii[c2.iiPos + 1],c2.buffer.o[c2.oPos + 1],c2.buffer.o[c2.oPos + 2],c2.buffer.o[c2.oPos + 3],c2.buffer.f[c2.fPos]);
openfl_display__$internal_CanvasGraphics.bitmapFill = null;
openfl_display__$internal_CanvasGraphics.setSmoothing(true);
openfl_display__$internal_CanvasGraphics.hasFill = true;
break;
case 3:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL;
var this4 = data;
var c3 = this4;
var shaderBuffer = c3.buffer.o[c3.oPos];
if(shaderBuffer.inputCount > 0) {
openfl_display__$internal_CanvasGraphics.bitmapFill = shaderBuffer.inputs[0];
openfl_display__$internal_CanvasGraphics.context.fillStyle = openfl_display__$internal_CanvasGraphics.createBitmapFill(openfl_display__$internal_CanvasGraphics.bitmapFill,shaderBuffer.inputWrap[0] != 0,shaderBuffer.inputFilter[0] != 5);
openfl_display__$internal_CanvasGraphics.hasFill = true;
openfl_display__$internal_CanvasGraphics.pendingMatrix = null;
openfl_display__$internal_CanvasGraphics.inversePendingMatrix = null;
}
break;
case 4:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO;
var this5 = data;
var c4 = this5;
hasPath = true;
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(c4.buffer.f[c4.fPos] - offsetX,c4.buffer.f[c4.fPos + 1] - offsetY,c4.buffer.f[c4.fPos + 2] - offsetX,c4.buffer.f[c4.fPos + 3] - offsetY,c4.buffer.f[c4.fPos + 4] - offsetX,c4.buffer.f[c4.fPos + 5] - offsetY);
break;
case 5:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO;
var this6 = data;
var c5 = this6;
hasPath = true;
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(c5.buffer.f[c5.fPos] - offsetX,c5.buffer.f[c5.fPos + 1] - offsetY,c5.buffer.f[c5.fPos + 2] - offsetX,c5.buffer.f[c5.fPos + 3] - offsetY);
break;
case 6:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE;
var this7 = data;
var c6 = this7;
hasPath = true;
openfl_display__$internal_CanvasGraphics.context.moveTo(c6.buffer.f[c6.fPos] - offsetX + c6.buffer.f[c6.fPos + 2],c6.buffer.f[c6.fPos + 1] - offsetY);
openfl_display__$internal_CanvasGraphics.context.arc(c6.buffer.f[c6.fPos] - offsetX,c6.buffer.f[c6.fPos + 1] - offsetY,c6.buffer.f[c6.fPos + 2],0,Math.PI * 2,true);
break;
case 7:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE;
var this8 = data;
var c7 = this8;
hasPath = true;
x = c7.buffer.f[c7.fPos];
y = c7.buffer.f[c7.fPos + 1];
width = c7.buffer.f[c7.fPos + 2];
height = c7.buffer.f[c7.fPos + 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;
openfl_display__$internal_CanvasGraphics.context.moveTo(x,ym);
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(x,ym - oy,xm - ox,y,xm,y);
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xm + ox,y,xe,ym - oy,xe,ym);
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye);
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x,ym + oy,x,ym);
break;
case 8:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS;
var this9 = data;
var c8 = this9;
var rects = c8.buffer.o[c8.oPos];
var indices = c8.buffer.o[c8.oPos + 1];
var transforms = c8.buffer.o[c8.oPos + 2];
var hasIndices = indices != null;
var transformABCD = false;
var transformXY = false;
var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4);
if(length == 0) {
return;
}
if(transforms != null) {
if(transforms.get_length() >= length * 6) {
transformABCD = true;
transformXY = true;
} else if(transforms.get_length() >= length * 4) {
transformABCD = true;
} else if(transforms.get_length() >= length * 2) {
transformXY = true;
}
}
var tileRect = openfl_geom_Rectangle.__pool.get();
var tileTransform = openfl_geom_Matrix.__pool.get();
var transform = openfl_display__$internal_CanvasGraphics.graphics.__renderTransform;
var alpha = openfl_display__$internal_CanvasGraphics.worldAlpha;
var ri;
var ti;
openfl_display__$internal_CanvasGraphics.context.save();
var _g2 = 0;
var _g3 = length;
while(_g2 < _g3) {
var i = _g2++;
ri = hasIndices ? indices.get(i) * 4 : i * 4;
if(ri < 0) {
continue;
}
tileRect.setTo(rects.get(ri),rects.get(ri + 1),rects.get(ri + 2),rects.get(ri + 3));
if(tileRect.width <= 0 || tileRect.height <= 0) {
continue;
}
if(transformABCD && transformXY) {
ti = i * 6;
tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),transforms.get(ti + 4),transforms.get(ti + 5));
} else if(transformABCD) {
ti = i * 4;
tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),tileRect.x,tileRect.y);
} else if(transformXY) {
ti = i * 2;
tileTransform.tx = transforms.get(ti);
tileTransform.ty = transforms.get(ti + 1);
} else {
tileTransform.tx = tileRect.x;
tileTransform.ty = tileRect.y;
}
tileTransform.tx += positionX - offsetX;
tileTransform.ty += positionY - offsetY;
tileTransform.concat(transform);
openfl_display__$internal_CanvasGraphics.context.setTransform(tileTransform.a,tileTransform.b,tileTransform.c,tileTransform.d,tileTransform.tx,tileTransform.ty);
if(openfl_display__$internal_CanvasGraphics.bitmapFill != null) {
openfl_display__$internal_CanvasGraphics.context.drawImage(openfl_display__$internal_CanvasGraphics.bitmapFill.image.get_src(),tileRect.x,tileRect.y,tileRect.width,tileRect.height,0,0,tileRect.width,tileRect.height);
} else {
openfl_display__$internal_CanvasGraphics.context.fillRect(0,0,tileRect.width,tileRect.height);
}
}
openfl_geom_Rectangle.__pool.release(tileRect);
openfl_geom_Matrix.__pool.release(tileTransform);
openfl_display__$internal_CanvasGraphics.context.restore();
break;
case 9:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT;
var this10 = data;
var c9 = this10;
optimizationUsed = false;
if(openfl_display__$internal_CanvasGraphics.bitmapFill != null && !openfl_display__$internal_CanvasGraphics.hitTesting) {
st = 0;
sr = 0;
sb = 0;
sl = 0;
canOptimizeMatrix = true;
if(openfl_display__$internal_CanvasGraphics.pendingMatrix != null) {
if(openfl_display__$internal_CanvasGraphics.pendingMatrix.b != 0 || openfl_display__$internal_CanvasGraphics.pendingMatrix.c != 0) {
canOptimizeMatrix = false;
} else {
if(stl == null) {
stl = openfl_geom_Point.__pool.get();
}
if(sbr == null) {
sbr = openfl_geom_Point.__pool.get();
}
stl.setTo(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1]);
var _this = openfl_display__$internal_CanvasGraphics.inversePendingMatrix;
var px = stl.x;
var py = stl.y;
stl.x = px * _this.a + py * _this.c + _this.tx;
stl.y = px * _this.b + py * _this.d + _this.ty;
sbr.setTo(c9.buffer.f[c9.fPos] + c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 1] + c9.buffer.f[c9.fPos + 3]);
var _this1 = openfl_display__$internal_CanvasGraphics.inversePendingMatrix;
var px1 = sbr.x;
var py1 = sbr.y;
sbr.x = px1 * _this1.a + py1 * _this1.c + _this1.tx;
sbr.y = px1 * _this1.b + py1 * _this1.d + _this1.ty;
st = stl.y;
sl = stl.x;
sb = sbr.y;
sr = sbr.x;
}
} else {
st = c9.buffer.f[c9.fPos + 1];
sl = c9.buffer.f[c9.fPos];
sb = c9.buffer.f[c9.fPos + 1] + c9.buffer.f[c9.fPos + 3];
sr = c9.buffer.f[c9.fPos] + c9.buffer.f[c9.fPos + 2];
}
if(canOptimizeMatrix && st >= 0 && sl >= 0 && sr <= openfl_display__$internal_CanvasGraphics.bitmapFill.width && sb <= openfl_display__$internal_CanvasGraphics.bitmapFill.height) {
optimizationUsed = true;
if(!openfl_display__$internal_CanvasGraphics.hitTesting) {
openfl_display__$internal_CanvasGraphics.context.drawImage(openfl_display__$internal_CanvasGraphics.bitmapFill.image.get_src(),sl,st,sr - sl,sb - st,c9.buffer.f[c9.fPos] - offsetX,c9.buffer.f[c9.fPos + 1] - offsetY,c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]);
}
}
}
if(!optimizationUsed) {
hasPath = true;
openfl_display__$internal_CanvasGraphics.context.rect(c9.buffer.f[c9.fPos] - offsetX,c9.buffer.f[c9.fPos + 1] - offsetY,c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]);
}
break;
case 10:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT;
var this11 = data;
var c10 = this11;
hasPath = true;
openfl_display__$internal_CanvasGraphics.drawRoundRect(c10.buffer.f[c10.fPos] - offsetX,c10.buffer.f[c10.fPos + 1] - offsetY,c10.buffer.f[c10.fPos + 2],c10.buffer.f[c10.fPos + 3],c10.buffer.f[c10.fPos + 4],c10.buffer.o[c10.oPos]);
break;
case 12:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES;
var this12 = data;
var c11 = this12;
var v = c11.buffer.o[c11.oPos];
var ind = c11.buffer.o[c11.oPos + 1];
var uvt = c11.buffer.o[c11.oPos + 2];
var pattern = null;
var colorFill = openfl_display__$internal_CanvasGraphics.bitmapFill == null;
if(colorFill && uvt != null) {
break _hx_loop1;
}
if(!colorFill) {
if(uvt == null) {
uvt = openfl_Vector.toFloatVector(null);
var _g4 = 0;
var _g5 = v.get_length() / 2 | 0;
while(_g4 < _g5) {
var i1 = _g4++;
uvt.push(v.get(i1 * 2) - offsetX / openfl_display__$internal_CanvasGraphics.bitmapFill.width);
uvt.push(v.get(i1 * 2 + 1) - offsetY / openfl_display__$internal_CanvasGraphics.bitmapFill.height);
}
}
var skipT = uvt.get_length() != v.get_length();
var normalizedUVT = openfl_display__$internal_CanvasGraphics.normalizeUVT(uvt,skipT);
var maxUVT = normalizedUVT.max;
uvt = normalizedUVT.uvt;
if(maxUVT > 1) {
pattern = openfl_display__$internal_CanvasGraphics.createTempPatternCanvas(openfl_display__$internal_CanvasGraphics.bitmapFill,openfl_display__$internal_CanvasGraphics.bitmapRepeat,openfl_display__$internal_CanvasGraphics.bounds.width | 0,openfl_display__$internal_CanvasGraphics.bounds.height | 0);
} else {
pattern = openfl_display__$internal_CanvasGraphics.createTempPatternCanvas(openfl_display__$internal_CanvasGraphics.bitmapFill,openfl_display__$internal_CanvasGraphics.bitmapRepeat,openfl_display__$internal_CanvasGraphics.bitmapFill.width,openfl_display__$internal_CanvasGraphics.bitmapFill.height);
}
}
var i2 = 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(i2 < l) {
a_ = i2;
b_ = i2 + 1;
c_ = i2 + 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;
switch(c11.buffer.o[c11.oPos + 3]) {
case 0:
if((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0) {
i2 += 3;
continue;
}
break;
case 2:
if(!((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0)) {
i2 += 3;
continue;
}
break;
default:
}
if(colorFill) {
openfl_display__$internal_CanvasGraphics.context.beginPath();
openfl_display__$internal_CanvasGraphics.context.moveTo(x1,y1);
openfl_display__$internal_CanvasGraphics.context.lineTo(x2,y2);
openfl_display__$internal_CanvasGraphics.context.lineTo(x3,y3);
openfl_display__$internal_CanvasGraphics.context.closePath();
if(!openfl_display__$internal_CanvasGraphics.hitTesting) {
openfl_display__$internal_CanvasGraphics.context.fill(openfl_display__$internal_CanvasGraphics.windingRule);
}
i2 += 3;
continue;
}
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) {
i2 += 3;
openfl_display__$internal_CanvasGraphics.context.restore();
continue;
}
openfl_display__$internal_CanvasGraphics.context.save();
openfl_display__$internal_CanvasGraphics.context.beginPath();
openfl_display__$internal_CanvasGraphics.context.moveTo(x1,y1);
openfl_display__$internal_CanvasGraphics.context.lineTo(x2,y2);
openfl_display__$internal_CanvasGraphics.context.lineTo(x3,y3);
openfl_display__$internal_CanvasGraphics.context.closePath();
openfl_display__$internal_CanvasGraphics.context.clip();
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;
openfl_display__$internal_CanvasGraphics.context.transform(t1,t2,t3,t4,dx,dy);
openfl_display__$internal_CanvasGraphics.context.drawImage(pattern,0,0,pattern.width,pattern.height);
openfl_display__$internal_CanvasGraphics.context.restore();
i2 += 3;
}
break;
case 14:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE;
var this13 = data;
var c12 = this13;
if(stroke && openfl_display__$internal_CanvasGraphics.hasStroke) {
openfl_display__$internal_CanvasGraphics.closePath();
}
openfl_display__$internal_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY);
openfl_display__$internal_CanvasGraphics.context.strokeStyle = openfl_display__$internal_CanvasGraphics.createBitmapFill(c12.buffer.o[c12.oPos],c12.buffer.b[c12.bPos],c12.buffer.b[c12.bPos + 1]);
openfl_display__$internal_CanvasGraphics.hasStroke = true;
break;
case 15:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE;
var this14 = data;
var c13 = this14;
if(stroke && openfl_display__$internal_CanvasGraphics.hasStroke) {
openfl_display__$internal_CanvasGraphics.closePath();
}
openfl_display__$internal_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY);
openfl_display__$internal_CanvasGraphics.context.strokeStyle = openfl_display__$internal_CanvasGraphics.createGradientPattern(c13.buffer.o[c13.oPos],c13.buffer.ii[c13.iiPos],c13.buffer.ff[c13.ffPos],c13.buffer.ii[c13.iiPos + 1],c13.buffer.o[c13.oPos + 1],c13.buffer.o[c13.oPos + 2],c13.buffer.o[c13.oPos + 3],c13.buffer.f[c13.fPos]);
openfl_display__$internal_CanvasGraphics.setSmoothing(true);
openfl_display__$internal_CanvasGraphics.hasStroke = true;
break;
case 16:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE;
var this15 = data;
var c14 = this15;
if(stroke && openfl_display__$internal_CanvasGraphics.hasStroke) {
openfl_display__$internal_CanvasGraphics.closePath(true);
}
openfl_display__$internal_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY);
if(c14.buffer.o[c14.oPos] == null) {
openfl_display__$internal_CanvasGraphics.hasStroke = false;
} else {
openfl_display__$internal_CanvasGraphics.context.lineWidth = c14.buffer.o[c14.oPos] > 0 ? c14.buffer.o[c14.oPos] : 1;
var tmp1 = c14.buffer.o[c14.oPos + 3] == null ? "round" : openfl_display_JointStyle.toString(c14.buffer.o[c14.oPos + 3]).toLowerCase();
openfl_display__$internal_CanvasGraphics.context.lineJoin = tmp1;
var tmp2 = c14.buffer.o[c14.oPos + 2] == null ? "round" : c14.buffer.o[c14.oPos + 2] == 0 ? "butt" : openfl_display_CapsStyle.toString(c14.buffer.o[c14.oPos + 2]).toLowerCase();
openfl_display__$internal_CanvasGraphics.context.lineCap = tmp2;
openfl_display__$internal_CanvasGraphics.context.miterLimit = c14.buffer.f[c14.fPos + 1];
if(c14.buffer.f[c14.fPos] == 1) {
var tmp3 = StringTools.hex(c14.buffer.i[c14.iPos] & 16777215,6);
openfl_display__$internal_CanvasGraphics.context.strokeStyle = "#" + tmp3;
} else {
r = (c14.buffer.i[c14.iPos] & 16711680) >>> 16;
g = (c14.buffer.i[c14.iPos] & 65280) >>> 8;
b = c14.buffer.i[c14.iPos] & 255;
openfl_display__$internal_CanvasGraphics.context.strokeStyle = "rgba(" + r + ", " + g + ", " + b + ", " + c14.buffer.f[c14.fPos] + ")";
}
openfl_display__$internal_CanvasGraphics.setSmoothing(true);
openfl_display__$internal_CanvasGraphics.hasStroke = true;
}
break;
case 17:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_TO;
var this16 = data;
var c15 = this16;
hasPath = true;
openfl_display__$internal_CanvasGraphics.context.lineTo(c15.buffer.f[c15.fPos] - offsetX,c15.buffer.f[c15.fPos + 1] - offsetY);
positionX = c15.buffer.f[c15.fPos];
positionY = c15.buffer.f[c15.fPos + 1];
if(positionX == startX && positionY == startY) {
closeGap = true;
}
break;
case 18:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO;
var this17 = data;
var c16 = this17;
openfl_display__$internal_CanvasGraphics.context.moveTo(c16.buffer.f[c16.fPos] - offsetX,c16.buffer.f[c16.fPos + 1] - offsetY);
positionX = c16.buffer.f[c16.fPos];
positionY = c16.buffer.f[c16.fPos + 1];
if(setStart && c16.buffer.f[c16.fPos] != startX && c16.buffer.f[c16.fPos + 1] != startY) {
closeGap = true;
}
startX = c16.buffer.f[c16.fPos];
startY = c16.buffer.f[c16.fPos + 1];
setStart = true;
break;
case 21:
openfl_display__$internal_CanvasGraphics.windingRule = "evenodd";
break;
case 22:
openfl_display__$internal_CanvasGraphics.windingRule = "nonzero";
break;
default:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
}
}
if(stl != null) {
openfl_geom_Point.__pool.release(stl);
}
if(sbr != null) {
openfl_geom_Point.__pool.release(sbr);
}
data.destroy();
if(hasPath) {
if(stroke && openfl_display__$internal_CanvasGraphics.hasStroke) {
if(openfl_display__$internal_CanvasGraphics.hasFill && closeGap) {
openfl_display__$internal_CanvasGraphics.context.lineTo(startX - offsetX,startY - offsetY);
openfl_display__$internal_CanvasGraphics.closePath(false);
} else if(closeGap && positionX == startX && positionY == startY) {
openfl_display__$internal_CanvasGraphics.closePath(false);
}
if(!openfl_display__$internal_CanvasGraphics.hitTesting) {
openfl_display__$internal_CanvasGraphics.context.stroke();
}
}
if(!stroke) {
if(openfl_display__$internal_CanvasGraphics.hasFill || openfl_display__$internal_CanvasGraphics.bitmapFill != null) {
openfl_display__$internal_CanvasGraphics.context.translate(-openfl_display__$internal_CanvasGraphics.bounds.x,-openfl_display__$internal_CanvasGraphics.bounds.y);
if(openfl_display__$internal_CanvasGraphics.pendingMatrix != null) {
openfl_display__$internal_CanvasGraphics.context.transform(openfl_display__$internal_CanvasGraphics.pendingMatrix.a,openfl_display__$internal_CanvasGraphics.pendingMatrix.b,openfl_display__$internal_CanvasGraphics.pendingMatrix.c,openfl_display__$internal_CanvasGraphics.pendingMatrix.d,openfl_display__$internal_CanvasGraphics.pendingMatrix.tx,openfl_display__$internal_CanvasGraphics.pendingMatrix.ty);
if(!openfl_display__$internal_CanvasGraphics.hitTesting) {
openfl_display__$internal_CanvasGraphics.context.fill(openfl_display__$internal_CanvasGraphics.windingRule);
}
openfl_display__$internal_CanvasGraphics.context.transform(openfl_display__$internal_CanvasGraphics.inversePendingMatrix.a,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.b,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.c,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.d,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.tx,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.ty);
} else if(!openfl_display__$internal_CanvasGraphics.hitTesting) {
openfl_display__$internal_CanvasGraphics.context.fill(openfl_display__$internal_CanvasGraphics.windingRule);
}
openfl_display__$internal_CanvasGraphics.context.translate(openfl_display__$internal_CanvasGraphics.bounds.x,openfl_display__$internal_CanvasGraphics.bounds.y);
openfl_display__$internal_CanvasGraphics.context.closePath();
}
}
}
};
openfl_display__$internal_CanvasGraphics.render = function(graphics,renderer) {
graphics.__update(renderer.__worldTransform);
if(graphics.__softwareDirty) {
openfl_display__$internal_CanvasGraphics.hitTesting = false;
openfl_display__$internal_CanvasGraphics.graphics = graphics;
openfl_display__$internal_CanvasGraphics.allowSmoothing = renderer.__allowSmoothing;
openfl_display__$internal_CanvasGraphics.worldAlpha = renderer.__getAlpha(graphics.__owner.__worldAlpha);
openfl_display__$internal_CanvasGraphics.bounds = graphics.__bounds;
var width = graphics.__width;
var height = graphics.__height;
if(!graphics.__visible || graphics.__commands.get_length() == 0 || openfl_display__$internal_CanvasGraphics.bounds == null || width < 1 || height < 1) {
graphics.__canvas = null;
graphics.__context = null;
graphics.__bitmap = null;
} else {
if(graphics.__canvas == null) {
graphics.__canvas = window.document.createElement("canvas");
graphics.__context = graphics.__canvas.getContext("2d");
}
openfl_display__$internal_CanvasGraphics.context = graphics.__context;
var transform = graphics.__renderTransform;
var canvas = graphics.__canvas;
var scale = renderer.pixelRatio;
var scaledWidth = width * scale | 0;
var scaledHeight = height * scale | 0;
renderer.__setBlendModeContext(openfl_display__$internal_CanvasGraphics.context,10);
if(renderer.__isDOM) {
if(canvas.width == scaledWidth && canvas.height == scaledHeight) {
openfl_display__$internal_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;
openfl_display__$internal_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) {
openfl_display__$internal_CanvasGraphics.context.closePath();
openfl_display__$internal_CanvasGraphics.context.setTransform(1,0,0,1,0,0);
openfl_display__$internal_CanvasGraphics.context.clearRect(0,0,scaledWidth,scaledHeight);
} else {
canvas.width = width;
canvas.height = height;
}
openfl_display__$internal_CanvasGraphics.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
}
openfl_display__$internal_CanvasGraphics.fillCommands.clear();
openfl_display__$internal_CanvasGraphics.strokeCommands.clear();
openfl_display__$internal_CanvasGraphics.hasFill = false;
openfl_display__$internal_CanvasGraphics.hasStroke = false;
openfl_display__$internal_CanvasGraphics.bitmapFill = null;
openfl_display__$internal_CanvasGraphics.bitmapRepeat = false;
var hasLineStyle = false;
var initStrokeX = 0.0;
var initStrokeY = 0.0;
openfl_display__$internal_CanvasGraphics.windingRule = "evenodd";
var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands);
var _g = 0;
var _g1 = graphics.__commands.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:case 1:case 2:case 3:
openfl_display__$internal_CanvasGraphics.endFill();
openfl_display__$internal_CanvasGraphics.endStroke();
if(type == openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = data;
var c = this1;
openfl_display__$internal_CanvasGraphics.fillCommands.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]);
openfl_display__$internal_CanvasGraphics.strokeCommands.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]);
} else if(type == openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL;
var this2 = data;
var c1 = this2;
openfl_display__$internal_CanvasGraphics.fillCommands.beginGradientFill(c1.buffer.o[c1.oPos],c1.buffer.ii[c1.iiPos],c1.buffer.ff[c1.ffPos],c1.buffer.ii[c1.iiPos + 1],c1.buffer.o[c1.oPos + 1],c1.buffer.o[c1.oPos + 2],c1.buffer.o[c1.oPos + 3],c1.buffer.f[c1.fPos]);
openfl_display__$internal_CanvasGraphics.strokeCommands.beginGradientFill(c1.buffer.o[c1.oPos],c1.buffer.ii[c1.iiPos],c1.buffer.ff[c1.ffPos],c1.buffer.ii[c1.iiPos + 1],c1.buffer.o[c1.oPos + 1],c1.buffer.o[c1.oPos + 2],c1.buffer.o[c1.oPos + 3],c1.buffer.f[c1.fPos]);
} else if(type == openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL;
var this3 = data;
var c2 = this3;
openfl_display__$internal_CanvasGraphics.fillCommands.beginShaderFill(c2.buffer.o[c2.oPos]);
openfl_display__$internal_CanvasGraphics.strokeCommands.beginShaderFill(c2.buffer.o[c2.oPos]);
} else {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL;
var this4 = data;
var c3 = this4;
openfl_display__$internal_CanvasGraphics.fillCommands.beginFill(c3.buffer.i[c3.iPos],c3.buffer.f[c3.fPos]);
openfl_display__$internal_CanvasGraphics.strokeCommands.beginFill(c3.buffer.i[c3.iPos],c3.buffer.f[c3.fPos]);
}
break;
case 4:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO;
var this5 = data;
var c4 = this5;
openfl_display__$internal_CanvasGraphics.fillCommands.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]);
if(hasLineStyle) {
openfl_display__$internal_CanvasGraphics.strokeCommands.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]);
} else {
initStrokeX = c4.buffer.f[c4.fPos + 4];
initStrokeY = c4.buffer.f[c4.fPos + 5];
}
break;
case 5:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO;
var this6 = data;
var c5 = this6;
openfl_display__$internal_CanvasGraphics.fillCommands.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]);
if(hasLineStyle) {
openfl_display__$internal_CanvasGraphics.strokeCommands.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]);
} else {
initStrokeX = c5.buffer.f[c5.fPos + 2];
initStrokeY = c5.buffer.f[c5.fPos + 3];
}
break;
case 6:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE;
var this7 = data;
var c6 = this7;
openfl_display__$internal_CanvasGraphics.fillCommands.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]);
if(hasLineStyle) {
openfl_display__$internal_CanvasGraphics.strokeCommands.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]);
}
break;
case 7:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE;
var this8 = data;
var c7 = this8;
openfl_display__$internal_CanvasGraphics.fillCommands.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]);
if(hasLineStyle) {
openfl_display__$internal_CanvasGraphics.strokeCommands.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]);
}
break;
case 8:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS;
var this9 = data;
var c8 = this9;
openfl_display__$internal_CanvasGraphics.fillCommands.drawQuads(c8.buffer.o[c8.oPos],c8.buffer.o[c8.oPos + 1],c8.buffer.o[c8.oPos + 2]);
break;
case 9:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT;
var this10 = data;
var c9 = this10;
openfl_display__$internal_CanvasGraphics.fillCommands.drawRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]);
if(hasLineStyle) {
openfl_display__$internal_CanvasGraphics.strokeCommands.drawRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]);
}
break;
case 10:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT;
var this11 = data;
var c10 = this11;
openfl_display__$internal_CanvasGraphics.fillCommands.drawRoundRect(c10.buffer.f[c10.fPos],c10.buffer.f[c10.fPos + 1],c10.buffer.f[c10.fPos + 2],c10.buffer.f[c10.fPos + 3],c10.buffer.f[c10.fPos + 4],c10.buffer.o[c10.oPos]);
if(hasLineStyle) {
openfl_display__$internal_CanvasGraphics.strokeCommands.drawRoundRect(c10.buffer.f[c10.fPos],c10.buffer.f[c10.fPos + 1],c10.buffer.f[c10.fPos + 2],c10.buffer.f[c10.fPos + 3],c10.buffer.f[c10.fPos + 4],c10.buffer.o[c10.oPos]);
}
break;
case 12:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES;
var this12 = data;
var c11 = this12;
openfl_display__$internal_CanvasGraphics.fillCommands.drawTriangles(c11.buffer.o[c11.oPos],c11.buffer.o[c11.oPos + 1],c11.buffer.o[c11.oPos + 2],c11.buffer.o[c11.oPos + 3]);
break;
case 13:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.END_FILL;
var this13 = data;
openfl_display__$internal_CanvasGraphics.endFill();
openfl_display__$internal_CanvasGraphics.endStroke();
openfl_display__$internal_CanvasGraphics.hasFill = false;
hasLineStyle = false;
openfl_display__$internal_CanvasGraphics.bitmapFill = null;
initStrokeX = 0;
initStrokeY = 0;
break;
case 14:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE;
var this14 = data;
var c12 = this14;
if(!hasLineStyle && (initStrokeX != 0 || initStrokeY != 0)) {
openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY);
initStrokeX = 0;
initStrokeY = 0;
}
hasLineStyle = true;
openfl_display__$internal_CanvasGraphics.strokeCommands.lineBitmapStyle(c12.buffer.o[c12.oPos],c12.buffer.o[c12.oPos + 1],c12.buffer.b[c12.bPos],c12.buffer.b[c12.bPos + 1]);
break;
case 15:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE;
var this15 = data;
var c13 = this15;
if(!hasLineStyle && (initStrokeX != 0 || initStrokeY != 0)) {
openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY);
initStrokeX = 0;
initStrokeY = 0;
}
hasLineStyle = true;
openfl_display__$internal_CanvasGraphics.strokeCommands.lineGradientStyle(c13.buffer.o[c13.oPos],c13.buffer.ii[c13.iiPos],c13.buffer.ff[c13.ffPos],c13.buffer.ii[c13.iiPos + 1],c13.buffer.o[c13.oPos + 1],c13.buffer.o[c13.oPos + 2],c13.buffer.o[c13.oPos + 3],c13.buffer.f[c13.fPos]);
break;
case 16:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE;
var this16 = data;
var c14 = this16;
if(!hasLineStyle && c14.buffer.o[c14.oPos] != null) {
if(initStrokeX != 0 || initStrokeY != 0) {
openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY);
initStrokeX = 0;
initStrokeY = 0;
}
}
hasLineStyle = c14.buffer.o[c14.oPos] != null;
openfl_display__$internal_CanvasGraphics.strokeCommands.lineStyle(c14.buffer.o[c14.oPos],c14.buffer.i[c14.iPos],c14.buffer.f[c14.fPos],c14.buffer.b[c14.bPos],c14.buffer.o[c14.oPos + 1],c14.buffer.o[c14.oPos + 2],c14.buffer.o[c14.oPos + 3],c14.buffer.f[c14.fPos + 1]);
break;
case 17:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_TO;
var this17 = data;
var c15 = this17;
openfl_display__$internal_CanvasGraphics.fillCommands.lineTo(c15.buffer.f[c15.fPos],c15.buffer.f[c15.fPos + 1]);
if(hasLineStyle) {
openfl_display__$internal_CanvasGraphics.strokeCommands.lineTo(c15.buffer.f[c15.fPos],c15.buffer.f[c15.fPos + 1]);
} else {
initStrokeX = c15.buffer.f[c15.fPos];
initStrokeY = c15.buffer.f[c15.fPos + 1];
}
break;
case 18:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO;
var this18 = data;
var c16 = this18;
openfl_display__$internal_CanvasGraphics.fillCommands.moveTo(c16.buffer.f[c16.fPos],c16.buffer.f[c16.fPos + 1]);
if(hasLineStyle) {
openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(c16.buffer.f[c16.fPos],c16.buffer.f[c16.fPos + 1]);
} else {
initStrokeX = c16.buffer.f[c16.fPos];
initStrokeY = c16.buffer.f[c16.fPos + 1];
}
break;
case 19:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE;
var this19 = data;
var c17 = this19;
renderer.__setBlendModeContext(openfl_display__$internal_CanvasGraphics.context,c17.buffer.o[c17.oPos]);
break;
case 21:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD;
var this20 = data;
openfl_display__$internal_CanvasGraphics.fillCommands.windingEvenOdd();
openfl_display__$internal_CanvasGraphics.windingRule = "evenodd";
break;
case 22:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO;
var this21 = data;
openfl_display__$internal_CanvasGraphics.fillCommands.windingNonZero();
openfl_display__$internal_CanvasGraphics.windingRule = "nonzero";
break;
default:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
}
}
if(openfl_display__$internal_CanvasGraphics.fillCommands.get_length() > 0) {
openfl_display__$internal_CanvasGraphics.endFill();
}
if(openfl_display__$internal_CanvasGraphics.strokeCommands.get_length() > 0) {
openfl_display__$internal_CanvasGraphics.endStroke();
}
data.destroy();
graphics.__bitmap = openfl_display_BitmapData.fromCanvas(graphics.__canvas);
}
graphics.__softwareDirty = false;
graphics.set___dirty(false);
}
};
openfl_display__$internal_CanvasGraphics.renderMask = function(graphics,renderer) {
if(graphics.__commands.get_length() != 0) {
openfl_display__$internal_CanvasGraphics.context = renderer.context;
var positionX = 0.0;
var positionY = 0.0;
var offsetX = 0;
var offsetY = 0;
var data = new openfl_display__$internal_DrawCommandReader(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._hx_index) {
case 4:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO;
var this1 = data;
var c = this1;
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(c.buffer.f[c.fPos] - offsetX,c.buffer.f[c.fPos + 1] - offsetY,c.buffer.f[c.fPos + 2] - offsetX,c.buffer.f[c.fPos + 3] - offsetY,c.buffer.f[c.fPos + 4] - offsetX,c.buffer.f[c.fPos + 5] - offsetY);
positionX = c.buffer.f[c.fPos + 4];
positionY = c.buffer.f[c.fPos + 5];
break;
case 5:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO;
var this2 = data;
var c1 = this2;
openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(c1.buffer.f[c1.fPos] - offsetX,c1.buffer.f[c1.fPos + 1] - offsetY,c1.buffer.f[c1.fPos + 2] - offsetX,c1.buffer.f[c1.fPos + 3] - offsetY);
positionX = c1.buffer.f[c1.fPos + 2];
positionY = c1.buffer.f[c1.fPos + 3];
break;
case 6:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE;
var this3 = data;
var c2 = this3;
openfl_display__$internal_CanvasGraphics.context.arc(c2.buffer.f[c2.fPos] - offsetX,c2.buffer.f[c2.fPos + 1] - offsetY,c2.buffer.f[c2.fPos + 2],0,Math.PI * 2,true);
break;
case 7:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE;
var this4 = data;
var c3 = this4;
x = c3.buffer.f[c3.fPos];
y = c3.buffer.f[c3.fPos + 1];
width = c3.buffer.f[c3.fPos + 2];
height = c3.buffer.f[c3.fPos + 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;
openfl_display__$internal_CanvasGraphics.context.moveTo(x,ym);
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(x,ym - oy,xm - ox,y,xm,y);
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xm + ox,y,xe,ym - oy,xe,ym);
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye);
openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x,ym + oy,x,ym);
break;
case 9:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT;
var this5 = data;
var c4 = this5;
openfl_display__$internal_CanvasGraphics.context.beginPath();
openfl_display__$internal_CanvasGraphics.context.rect(c4.buffer.f[c4.fPos] - offsetX,c4.buffer.f[c4.fPos + 1] - offsetY,c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3]);
openfl_display__$internal_CanvasGraphics.context.closePath();
break;
case 10:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT;
var this6 = data;
var c5 = this6;
openfl_display__$internal_CanvasGraphics.drawRoundRect(c5.buffer.f[c5.fPos] - offsetX,c5.buffer.f[c5.fPos + 1] - offsetY,c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3],c5.buffer.f[c5.fPos + 4],c5.buffer.o[c5.oPos]);
break;
case 17:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.LINE_TO;
var this7 = data;
var c6 = this7;
openfl_display__$internal_CanvasGraphics.context.lineTo(c6.buffer.f[c6.fPos] - offsetX,c6.buffer.f[c6.fPos + 1] - offsetY);
positionX = c6.buffer.f[c6.fPos];
positionY = c6.buffer.f[c6.fPos + 1];
break;
case 18:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO;
var this8 = data;
var c7 = this8;
openfl_display__$internal_CanvasGraphics.context.moveTo(c7.buffer.f[c7.fPos] - offsetX,c7.buffer.f[c7.fPos + 1] - offsetY);
positionX = c7.buffer.f[c7.fPos];
positionY = c7.buffer.f[c7.fPos + 1];
break;
default:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
}
}
data.destroy();
}
};
openfl_display__$internal_CanvasGraphics.setSmoothing = function(smooth) {
if(!openfl_display__$internal_CanvasGraphics.allowSmoothing) {
smooth = false;
}
if(openfl_display__$internal_CanvasGraphics.context.imageSmoothingEnabled != smooth) {
openfl_display__$internal_CanvasGraphics.context.imageSmoothingEnabled = smooth;
}
};
var openfl_display__$internal_CanvasShape = function() { };
$hxClasses["openfl.display._internal.CanvasShape"] = openfl_display__$internal_CanvasShape;
openfl_display__$internal_CanvasShape.__name__ = "openfl.display._internal.CanvasShape";
openfl_display__$internal_CanvasShape.render = function(shape,renderer) {
if(!shape.__renderable) {
return;
}
var alpha = renderer.__getAlpha(shape.__worldAlpha);
if(alpha <= 0) {
return;
}
var graphics = shape.__graphics;
if(graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer);
var width = graphics.__width;
var height = graphics.__height;
var canvas = graphics.__canvas;
if(canvas != null && graphics.__visible && width >= 1 && height >= 1) {
var transform = graphics.__worldTransform;
var context = renderer.context;
var scrollRect = shape.__scrollRect;
var scale9Grid = shape.__worldScale9Grid;
if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) {
renderer.__setBlendMode(shape.__worldBlendMode);
renderer.__pushMaskObject(shape);
context.globalAlpha = alpha;
if(scale9Grid != null && transform.b == 0 && transform.c == 0) {
context.setTransform(1,0,0,1,transform.tx,transform.ty);
var bounds = graphics.__bounds;
var scaleX = graphics.__renderTransform.a;
var scaleY = graphics.__renderTransform.d;
var renderScaleX = transform.a;
var renderScaleY = transform.d;
var left = Math.max(1,Math.round(scale9Grid.x * scaleX));
var top = Math.round(scale9Grid.y * scaleY);
var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX));
var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY);
var centerWidth = Math.round(scale9Grid.width * scaleX);
var centerHeight = Math.round(scale9Grid.height * scaleY);
var renderLeft = Math.round(scale9Grid.x * renderScaleX);
var renderTop = Math.round(scale9Grid.y * renderScaleY);
var renderRight = Math.round((bounds.get_right() - scale9Grid.get_right()) * renderScaleX);
var renderBottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * renderScaleY);
var renderCenterWidth = Math.round(width * renderScaleX) - renderLeft - renderRight;
var renderCenterHeight = Math.round(height * renderScaleY) - renderTop - renderBottom;
renderer.applySmoothing(context,false);
if(centerWidth != 0 && centerHeight != 0) {
context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop);
context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop);
context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop);
context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight);
context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight);
context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom);
context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom);
context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom);
} else if(centerWidth == 0 && centerHeight != 0) {
var renderWidth = renderLeft + renderCenterWidth + renderRight;
context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop);
context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight);
context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom);
} else if(centerHeight == 0 && centerWidth != 0) {
var renderHeight = renderTop + renderCenterHeight + renderBottom;
context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight);
context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight);
context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight);
}
} else {
renderer.setTransform(transform,context);
if(renderer.__isDOM) {
var reverseScale = 1 / renderer.pixelRatio;
context.scale(reverseScale,reverseScale);
}
context.drawImage(canvas,0,0,width,height);
}
renderer.__popMaskObject(shape);
}
}
}
};
var openfl_display__$internal_CanvasTextField = function() { };
$hxClasses["openfl.display._internal.CanvasTextField"] = openfl_display__$internal_CanvasTextField;
openfl_display__$internal_CanvasTextField.__name__ = "openfl.display._internal.CanvasTextField";
openfl_display__$internal_CanvasTextField.context = null;
openfl_display__$internal_CanvasTextField.clearRect = null;
openfl_display__$internal_CanvasTextField.render = function(textField,renderer,transform) {
var textEngine = textField.__textEngine;
var bounds = textEngine.background || textEngine.border ? textEngine.bounds : textEngine.textBounds;
var graphics = textField.__graphics;
if(textField.__dirty) {
textField.__updateLayout();
if(graphics.__bounds == null) {
graphics.__bounds = new openfl_geom_Rectangle();
}
graphics.__bounds.copyFrom(bounds);
}
graphics.__update(renderer.__worldTransform);
if(textField.__dirty || graphics.__softwareDirty) {
var width = graphics.__width;
var height = graphics.__height;
if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) {
textField.__graphics.__canvas = null;
textField.__graphics.__context = null;
textField.__graphics.__bitmap = null;
textField.__graphics.__softwareDirty = false;
textField.__graphics.set___dirty(false);
textField.__dirty = false;
} else {
if(textField.__graphics.__canvas == null) {
textField.__graphics.__canvas = window.document.createElement("canvas");
textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d");
}
openfl_display__$internal_CanvasTextField.context = graphics.__context;
var transform = graphics.__renderTransform;
if(renderer.__isDOM) {
var scale = renderer.pixelRatio;
graphics.__canvas.width = width * scale | 0;
graphics.__canvas.height = height * scale | 0;
graphics.__canvas.style.width = width + "px";
graphics.__canvas.style.height = height + "px";
var matrix = openfl_geom_Matrix.__pool.get();
matrix.copyFrom(transform);
matrix.scale(scale,scale);
renderer.setTransform(matrix,openfl_display__$internal_CanvasTextField.context);
openfl_geom_Matrix.__pool.release(matrix);
} else {
graphics.__canvas.width = width;
graphics.__canvas.height = height;
openfl_display__$internal_CanvasTextField.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
}
if(openfl_display__$internal_CanvasTextField.clearRect == null) {
openfl_display__$internal_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined');
}
if(openfl_display__$internal_CanvasTextField.clearRect) {
openfl_display__$internal_CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height);
}
if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) {
var text = textEngine.text;
if(!renderer.__allowSmoothing || textEngine.antiAliasType == 0 && textEngine.sharpness == 400) {
graphics.__context.imageSmoothingEnabled = false;
} else {
graphics.__context.imageSmoothingEnabled = true;
}
if(textEngine.border || textEngine.background) {
openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
if(textEngine.background) {
var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
var tmp = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.stroke();
}
}
openfl_display__$internal_CanvasTextField.context.textBaseline = "alphabetic";
openfl_display__$internal_CanvasTextField.context.textAlign = "start";
var scrollX = -textField.get_scrollH();
var scrollY = 0.0;
var _g = 0;
var _g1 = textField.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
scrollY -= textEngine.lineHeights.get(i);
}
var advance;
var group = textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.lineIndex < textField.get_scrollV() - 1) {
continue;
}
if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) {
break;
}
var color = "#" + StringTools.hex(group1.format.color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.font = openfl_text__$internal_TextEngine.getFont(group1.format);
openfl_display__$internal_CanvasTextField.context.fillStyle = color;
openfl_display__$internal_CanvasTextField.context.fillText(text.substring(group1.startIndex,group1.endIndex),group1.offsetX + scrollX - bounds.x,group1.offsetY + group1.ascent + scrollY - bounds.y);
if(textField.__caretIndex > -1 && textEngine.selectable) {
if(textField.__selectionIndex == textField.__caretIndex) {
if(textField.__showCursor && group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex) {
advance = 0.0;
var _g = 0;
var _g1 = textField.__caretIndex - group1.startIndex;
while(_g < _g1) {
var i = _g++;
if(group1.positions.length <= i) {
break;
}
advance += group1.positions[i];
}
var scrollY1 = 0.0;
var _g2 = textField.get_scrollV();
var _g3 = group1.lineIndex + 1;
while(_g2 < _g3) {
var i1 = _g2++;
scrollY1 += textEngine.lineHeights.get(i1 - 1);
}
openfl_display__$internal_CanvasTextField.context.beginPath();
var tmp = StringTools.hex(group1.format.color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.moveTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y);
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1 - bounds.y);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
} else if(group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex || group1.startIndex <= textField.__selectionIndex && group1.endIndex >= textField.__selectionIndex || group1.startIndex > textField.__caretIndex && group1.endIndex < textField.__selectionIndex || group1.startIndex > textField.__selectionIndex && group1.endIndex < textField.__caretIndex) {
var selectionStart = Math.min(textField.__selectionIndex,textField.__caretIndex) | 0;
var selectionEnd = Math.max(textField.__selectionIndex,textField.__caretIndex) | 0;
if(group1.startIndex > selectionStart) {
selectionStart = group1.startIndex;
}
if(group1.endIndex < selectionEnd) {
selectionEnd = group1.endIndex;
}
var end;
var start = textField.getCharBoundaries(selectionStart);
if(selectionEnd >= group1.endIndex) {
end = textField.getCharBoundaries(group1.endIndex - 1);
if(end != null) {
end.x += end.width + 2;
}
} else {
end = textField.getCharBoundaries(selectionEnd);
}
if(start != null && end != null) {
openfl_display__$internal_CanvasTextField.context.fillStyle = "#000000";
openfl_display__$internal_CanvasTextField.context.fillRect(start.x + scrollX,start.y + scrollY,end.x - start.x,group1.height);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#FFFFFF";
openfl_display__$internal_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x,group1.offsetY + group1.ascent + scrollY);
}
}
}
if(group1.format.underline) {
openfl_display__$internal_CanvasTextField.context.beginPath();
openfl_display__$internal_CanvasTextField.context.strokeStyle = color;
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
var x = group1.offsetX + scrollX - bounds.x;
var y = Math.floor(group1.offsetY + scrollY + group1.ascent - bounds.y) + 0.5;
openfl_display__$internal_CanvasTextField.context.moveTo(x,y);
openfl_display__$internal_CanvasTextField.context.lineTo(x + group1.width,y);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
}
} else {
if(textEngine.border || textEngine.background) {
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
} else {
openfl_display__$internal_CanvasTextField.context.rect(0,0,bounds.width,bounds.height);
}
if(textEngine.background) {
var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineCap = "square";
var tmp = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.stroke();
}
}
if(textField.__caretIndex > -1 && textEngine.selectable && textField.__showCursor) {
var scrollX = -textField.get_scrollH();
var scrollY = 0.0;
var _g = 0;
var _g1 = textField.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
scrollY += textEngine.lineHeights.get(i);
}
openfl_display__$internal_CanvasTextField.context.beginPath();
var tmp = StringTools.hex(textField.get_defaultTextFormat().color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.moveTo(scrollX + 2.5,scrollY + 2.5);
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineTo(scrollX + 2.5,scrollY + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
}
graphics.__bitmap = openfl_display_BitmapData.fromCanvas(textField.__graphics.__canvas);
graphics.__visible = true;
textField.__dirty = false;
graphics.__softwareDirty = false;
graphics.set___dirty(false);
}
}
};
var openfl_display__$internal_Context3DBitmap = function() { };
$hxClasses["openfl.display._internal.Context3DBitmap"] = openfl_display__$internal_Context3DBitmap;
openfl_display__$internal_Context3DBitmap.__name__ = "openfl.display._internal.Context3DBitmap";
openfl_display__$internal_Context3DBitmap.render = function(bitmap,renderer) {
if(!bitmap.__renderable || bitmap.__worldAlpha <= 0) {
return;
}
if(bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid) {
var context = renderer.__context3D;
renderer.__setBlendMode(bitmap.__worldBlendMode);
renderer.__pushMaskObject(bitmap);
var shader = renderer.__initDisplayShader(bitmap.__worldShader);
renderer.setShader(shader);
renderer.applyBitmapData(bitmap.__bitmapData,renderer.__allowSmoothing && (bitmap.smoothing || renderer.__upscaled));
renderer.applyMatrix(renderer.__getMatrix(bitmap.__renderTransform,bitmap.pixelSnapping));
renderer.applyAlpha(bitmap.__worldAlpha);
renderer.applyColorTransform(bitmap.__worldColorTransform);
renderer.updateShader();
var vertexBuffer = bitmap.__bitmapData.getVertexBuffer(context);
if(shader.__position != null) {
context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3);
}
if(shader.__textureCoord != null) {
context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2);
}
var indexBuffer = bitmap.__bitmapData.getIndexBuffer(context);
context.drawTriangles(indexBuffer);
renderer.__clearShader();
renderer.__popMaskObject(bitmap);
}
};
openfl_display__$internal_Context3DBitmap.renderMask = function(bitmap,renderer) {
if(bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid) {
var context = renderer.__context3D;
var shader = renderer.__maskShader;
renderer.setShader(shader);
renderer.applyBitmapData(openfl_display__$internal_Context3DMaskShader.opaqueBitmapData,true);
renderer.applyMatrix(renderer.__getMatrix(bitmap.__renderTransform,bitmap.pixelSnapping));
renderer.updateShader();
var vertexBuffer = bitmap.__bitmapData.getVertexBuffer(context);
if(shader.__position != null) {
context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3);
}
if(shader.__textureCoord != null) {
context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2);
}
var indexBuffer = bitmap.__bitmapData.getIndexBuffer(context);
context.drawTriangles(indexBuffer);
renderer.__clearShader();
}
};
var openfl_display__$internal_Context3DBuffer = function(context3D,elementType,elementCount,dataPerVertex) {
this.context3D = context3D;
this.elementType = elementType;
this.dataPerVertex = dataPerVertex;
this.indexCount = 0;
this.vertexCount = 0;
this.resize(elementCount);
};
$hxClasses["openfl.display._internal.Context3DBuffer"] = openfl_display__$internal_Context3DBuffer;
openfl_display__$internal_Context3DBuffer.__name__ = "openfl.display._internal.Context3DBuffer";
openfl_display__$internal_Context3DBuffer.prototype = {
dataPerVertex: null
,elementCount: null
,elementType: null
,indexBufferData: null
,indexBuffers: null
,indexCount: null
,vertexBuffer: null
,vertexBufferData: null
,vertexCount: null
,context3D: null
,drawElements: function(start,length) {
if(length == null) {
length = -1;
}
if(this.indexCount == 0 || this.vertexCount == 0) {
return;
}
if(this.elementType._hx_index == 0) {
if(length == -1) {
length = this.elementCount * 2;
}
if(start < 10922 && length - start < 10922) {
this.context3D.drawTriangles(this.indexBuffers[0],start,length * 2);
} else {
var end = start + length;
while(start < end) {
var arrayBufferIndex = Math.floor(start / 10922);
length = Math.min(end - start,10922) | 0;
if(length <= 0) {
break;
}
this.context3D.drawTriangles(this.indexBuffers[arrayBufferIndex],(start - arrayBufferIndex * 10922) * 3,length * 2);
start += length;
}
}
}
}
,flushVertexBufferData: function() {
if(this.vertexBufferData.length > this.vertexCount) {
this.vertexCount = this.vertexBufferData.length;
this.vertexBuffer = this.context3D.createVertexBuffer(this.vertexCount,this.dataPerVertex,0);
}
this.vertexBuffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.vertexBufferData));
}
,resize: function(elementCount,dataPerVertex) {
if(dataPerVertex == null) {
dataPerVertex = -1;
}
this.elementCount = elementCount;
if(dataPerVertex == -1) {
dataPerVertex = this.dataPerVertex;
}
if(dataPerVertex != this.dataPerVertex) {
this.vertexBuffer = null;
this.vertexCount = 0;
this.dataPerVertex = dataPerVertex;
}
var numVertices = 0;
switch(this.elementType._hx_index) {
case 0:
numVertices = elementCount * 4;
break;
case 1:
numVertices = elementCount * 3;
break;
case 2:
numVertices = elementCount * 3;
break;
}
var vertexLength = numVertices * dataPerVertex;
if(this.vertexBufferData == null) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(vertexLength != null) {
this1 = new Float32Array(vertexLength);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
this.vertexBufferData = this1;
} else if(vertexLength > this.vertexBufferData.length) {
var cacheBufferData = this.vertexBufferData;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(vertexLength != null) {
this1 = new Float32Array(vertexLength);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
this.vertexBufferData = this1;
this.vertexBufferData.set(cacheBufferData);
}
}
,__class__: openfl_display__$internal_Context3DBuffer
};
var openfl_display__$internal_Context3DElementType = $hxEnums["openfl.display._internal.Context3DElementType"] = { __ename__ : "openfl.display._internal.Context3DElementType", __constructs__ : ["QUADS","TRIANGLES","TRIANGLE_INDICES"]
,QUADS: {_hx_index:0,__enum__:"openfl.display._internal.Context3DElementType",toString:$estr}
,TRIANGLES: {_hx_index:1,__enum__:"openfl.display._internal.Context3DElementType",toString:$estr}
,TRIANGLE_INDICES: {_hx_index:2,__enum__:"openfl.display._internal.Context3DElementType",toString:$estr}
};
var openfl_display__$internal_Context3DDisplayObject = function() { };
$hxClasses["openfl.display._internal.Context3DDisplayObject"] = openfl_display__$internal_Context3DDisplayObject;
openfl_display__$internal_Context3DDisplayObject.__name__ = "openfl.display._internal.Context3DDisplayObject";
openfl_display__$internal_Context3DDisplayObject.render = function(displayObject,renderer) {
if(displayObject.opaqueBackground == null && displayObject.__graphics == null) {
return;
}
if(!displayObject.__renderable || displayObject.__worldAlpha <= 0) {
return;
}
if(displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) {
renderer.__setBlendMode(displayObject.__worldBlendMode);
renderer.__pushMaskObject(displayObject);
var context = renderer.__context3D;
var rect = openfl_geom_Rectangle.__pool.get();
rect.setTo(0,0,displayObject.get_width(),displayObject.get_height());
renderer.__pushMaskRect(rect,displayObject.__renderTransform);
var color = displayObject.opaqueBackground;
context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1);
renderer.__popMaskRect();
renderer.__popMaskObject(displayObject);
openfl_geom_Rectangle.__pool.release(rect);
}
if(displayObject.__graphics != null) {
openfl_display__$internal_Context3DShape.render(displayObject,renderer);
}
};
openfl_display__$internal_Context3DDisplayObject.renderMask = function(displayObject,renderer) {
if(displayObject.opaqueBackground == null && displayObject.__graphics == null) {
return;
}
var tmp = displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0;
if(displayObject.__graphics != null) {
openfl_display__$internal_Context3DShape.renderMask(displayObject,renderer);
}
};
var openfl_display__$internal_Context3DGraphics = function() { };
$hxClasses["openfl.display._internal.Context3DGraphics"] = openfl_display__$internal_Context3DGraphics;
openfl_display__$internal_Context3DGraphics.__name__ = "openfl.display._internal.Context3DGraphics";
openfl_display__$internal_Context3DGraphics.maskRender = null;
openfl_display__$internal_Context3DGraphics.buildBuffer = function(graphics,renderer) {
var quadBufferPosition = 0;
var triangleIndexBufferPosition = 0;
var vertexBufferPosition = 0;
var vertexBufferPositionUVT = 0;
var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands);
var context = renderer.__context3D;
var tileRect = openfl_geom_Rectangle.__pool.get();
var tileTransform = openfl_geom_Matrix.__pool.get();
var bitmap = null;
var _g = 0;
var _g1 = graphics.__commands.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = data;
var c = this1;
bitmap = c.buffer.o[c.oPos];
break;
case 1:
bitmap = null;
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
break;
case 3:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL;
var this2 = data;
var c1 = this2;
var shaderBuffer = c1.buffer.o[c1.oPos];
bitmap = null;
if(shaderBuffer != null) {
var _g2 = 0;
var _g3 = shaderBuffer.inputCount;
while(_g2 < _g3) {
var i = _g2++;
if(shaderBuffer.inputRefs[i].name == "bitmap") {
bitmap = shaderBuffer.inputs[i];
break;
}
}
}
break;
case 8:
if(bitmap != null) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS;
var this3 = data;
var c2 = this3;
var rects = c2.buffer.o[c2.oPos];
var indices = c2.buffer.o[c2.oPos + 1];
var transforms = c2.buffer.o[c2.oPos + 2];
var hasIndices = indices != null;
var transformABCD = false;
var transformXY = false;
var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4);
if(length == 0) {
return;
}
if(transforms != null) {
if(transforms.get_length() >= length * 6) {
transformABCD = true;
transformXY = true;
} else if(transforms.get_length() >= length * 4) {
transformABCD = true;
} else if(transforms.get_length() >= length * 2) {
transformXY = true;
}
}
var dataPerVertex = 4;
var stride = dataPerVertex * 4;
if(graphics.__quadBuffer == null) {
graphics.__quadBuffer = new openfl_display__$internal_Context3DBuffer(context,openfl_display__$internal_Context3DElementType.QUADS,length,dataPerVertex);
} else {
graphics.__quadBuffer.resize(quadBufferPosition + length,dataPerVertex);
}
var vertexOffset;
var alpha = 1.0;
var tileData;
var id;
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 ri;
var ti;
var vertexBufferData = graphics.__quadBuffer.vertexBufferData;
var bitmapWidth = bitmap.width;
var bitmapHeight = bitmap.height;
var sourceRect = bitmap.rect;
var _g4 = 0;
var _g5 = length;
while(_g4 < _g5) {
var i1 = _g4++;
vertexOffset = (quadBufferPosition + i1) * stride;
ri = hasIndices ? indices.get(i1) * 4 : i1 * 4;
if(ri < 0) {
continue;
}
tileRect.setTo(rects.get(ri),rects.get(ri + 1),rects.get(ri + 2),rects.get(ri + 3));
tileWidth = tileRect.width;
tileHeight = tileRect.height;
if(tileWidth <= 0 || tileHeight <= 0) {
continue;
}
if(transformABCD && transformXY) {
ti = i1 * 6;
tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),transforms.get(ti + 4),transforms.get(ti + 5));
} else if(transformABCD) {
ti = i1 * 4;
tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),tileRect.x,tileRect.y);
} else if(transformXY) {
ti = i1 * 2;
tileTransform.tx = transforms.get(ti);
tileTransform.ty = transforms.get(ti + 1);
} else {
tileTransform.tx = tileRect.x;
tileTransform.ty = tileRect.y;
}
uvX = tileRect.x / bitmapWidth;
uvY = tileRect.y / bitmapHeight;
uvWidth = tileRect.get_right() / bitmapWidth;
uvHeight = tileRect.get_bottom() / bitmapHeight;
x = 0 * tileTransform.a + 0 * tileTransform.c + tileTransform.tx;
y = 0 * tileTransform.b + 0 * tileTransform.d + tileTransform.ty;
x2 = tileWidth * tileTransform.a + 0 * tileTransform.c + tileTransform.tx;
y2 = tileWidth * tileTransform.b + 0 * tileTransform.d + tileTransform.ty;
x3 = 0 * tileTransform.a + tileHeight * tileTransform.c + tileTransform.tx;
y3 = 0 * tileTransform.b + tileHeight * tileTransform.d + tileTransform.ty;
x4 = tileWidth * tileTransform.a + tileHeight * tileTransform.c + tileTransform.tx;
y4 = tileWidth * tileTransform.b + tileHeight * tileTransform.d + tileTransform.ty;
vertexBufferData[vertexOffset] = x;
vertexBufferData[vertexOffset + 1] = y;
vertexBufferData[vertexOffset + 2] = uvX;
vertexBufferData[vertexOffset + 3] = uvY;
vertexBufferData[vertexOffset + dataPerVertex] = x2;
vertexBufferData[vertexOffset + dataPerVertex + 1] = y2;
vertexBufferData[vertexOffset + dataPerVertex + 2] = uvWidth;
vertexBufferData[vertexOffset + dataPerVertex + 3] = uvY;
vertexBufferData[vertexOffset + dataPerVertex * 2] = x3;
vertexBufferData[vertexOffset + dataPerVertex * 2 + 1] = y3;
vertexBufferData[vertexOffset + dataPerVertex * 2 + 2] = uvX;
vertexBufferData[vertexOffset + dataPerVertex * 2 + 3] = uvHeight;
vertexBufferData[vertexOffset + dataPerVertex * 3] = x4;
vertexBufferData[vertexOffset + dataPerVertex * 3 + 1] = y4;
vertexBufferData[vertexOffset + dataPerVertex * 3 + 2] = uvWidth;
vertexBufferData[vertexOffset + dataPerVertex * 3 + 3] = uvHeight;
}
quadBufferPosition += length;
}
break;
case 12:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES;
var this4 = data;
var c3 = this4;
var vertices = c3.buffer.o[c3.oPos];
var indices1 = c3.buffer.o[c3.oPos + 1];
var uvtData = c3.buffer.o[c3.oPos + 2];
var culling = c3.buffer.o[c3.oPos + 3];
var hasIndices1 = indices1 != null;
var numVertices = Math.floor(vertices.get_length() / 2);
var length1 = hasIndices1 ? indices1.get_length() : numVertices;
var hasUVData = uvtData != null;
var hasUVTData = hasUVData && uvtData.get_length() >= numVertices * 3;
var vertLength = hasUVTData ? 4 : 2;
var uvStride = hasUVTData ? 3 : 2;
var dataPerVertex1 = vertLength + 2;
var vertexOffset1 = hasUVTData ? vertexBufferPositionUVT : vertexBufferPosition;
openfl_display__$internal_Context3DGraphics.resizeVertexBuffer(graphics,hasUVTData,vertexOffset1 + length1 * dataPerVertex1);
var vertexBufferData1 = hasUVTData ? graphics.__vertexBufferDataUVT : graphics.__vertexBufferData;
var offset;
var vertOffset;
var uvOffset;
var t;
var _g6 = 0;
var _g7 = length1;
while(_g6 < _g7) {
var i2 = _g6++;
offset = vertexOffset1 + i2 * dataPerVertex1;
vertOffset = hasIndices1 ? indices1.get(i2) * 2 : i2 * 2;
uvOffset = hasIndices1 ? indices1.get(i2) * uvStride : i2 * uvStride;
if(hasUVTData) {
t = uvtData.get(uvOffset + 2);
vertexBufferData1[offset] = vertices.get(vertOffset) / t;
vertexBufferData1[offset + 1] = vertices.get(vertOffset + 1) / t;
vertexBufferData1[offset + 2] = 0;
vertexBufferData1[offset + 3] = 1 / t;
} else {
vertexBufferData1[offset] = vertices.get(vertOffset);
vertexBufferData1[offset + 1] = vertices.get(vertOffset + 1);
}
vertexBufferData1[offset + vertLength] = hasUVData ? uvtData.get(uvOffset) : 0;
vertexBufferData1[offset + vertLength + 1] = hasUVData ? uvtData.get(uvOffset + 1) : 0;
}
if(hasUVTData) {
vertexBufferPositionUVT += length1 * dataPerVertex1;
} else {
vertexBufferPosition += length1 * dataPerVertex1;
}
break;
case 13:
bitmap = null;
break;
default:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
}
}
if(quadBufferPosition > 0) {
graphics.__quadBuffer.flushVertexBufferData();
}
if(triangleIndexBufferPosition > 0) {
var buffer = graphics.__triangleIndexBuffer;
if(buffer == null || triangleIndexBufferPosition > graphics.__triangleIndexBufferCount) {
buffer = context.createIndexBuffer(triangleIndexBufferPosition,0);
graphics.__triangleIndexBuffer = buffer;
graphics.__triangleIndexBufferCount = triangleIndexBufferPosition;
}
buffer.uploadFromTypedArray(graphics.__triangleIndexBufferData);
}
if(vertexBufferPosition > 0) {
var buffer = graphics.__vertexBuffer;
if(buffer == null || vertexBufferPosition > graphics.__vertexBufferCount) {
buffer = context.createVertexBuffer(vertexBufferPosition,4,0);
graphics.__vertexBuffer = buffer;
graphics.__vertexBufferCount = vertexBufferPosition;
}
buffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(graphics.__vertexBufferData));
}
if(vertexBufferPositionUVT > 0) {
var buffer = graphics.__vertexBufferUVT;
if(buffer == null || vertexBufferPositionUVT > graphics.__vertexBufferCountUVT) {
buffer = context.createVertexBuffer(vertexBufferPositionUVT,6,0);
graphics.__vertexBufferUVT = buffer;
graphics.__vertexBufferCountUVT = vertexBufferPositionUVT;
}
buffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(graphics.__vertexBufferDataUVT));
}
openfl_geom_Rectangle.__pool.release(tileRect);
openfl_geom_Matrix.__pool.release(tileTransform);
};
openfl_display__$internal_Context3DGraphics.isCompatible = function(graphics) {
if(graphics.__owner.__worldScale9Grid != null) {
return false;
}
var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands);
var hasColorFill = false;
var hasBitmapFill = false;
var hasShaderFill = false;
var _g = 0;
var _g1 = graphics.__commands.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:
hasBitmapFill = true;
hasColorFill = false;
hasShaderFill = false;
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
break;
case 1:
hasBitmapFill = false;
hasColorFill = true;
hasShaderFill = false;
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
break;
case 3:
hasBitmapFill = false;
hasColorFill = false;
hasShaderFill = true;
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
break;
case 8:
if(hasBitmapFill || hasShaderFill) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
} else {
data.destroy();
return false;
}
break;
case 9:
if(hasColorFill) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
} else {
data.destroy();
return false;
}
break;
case 12:
if(hasBitmapFill || hasShaderFill) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
} else {
data.destroy();
return false;
}
break;
case 13:
hasBitmapFill = false;
hasColorFill = false;
hasShaderFill = false;
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
break;
case 18:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
break;
case 19:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
break;
default:
data.destroy();
return false;
}
}
data.destroy();
return true;
};
openfl_display__$internal_Context3DGraphics.render = function(graphics,renderer) {
if(!graphics.__visible || graphics.__commands.get_length() == 0) {
return;
}
if(graphics.__bitmap != null && !graphics.__dirty || !openfl_display__$internal_Context3DGraphics.isCompatible(graphics)) {
var cacheTransform = renderer.__softwareRenderer.__worldTransform;
renderer.__softwareRenderer.__worldTransform = renderer.__worldTransform;
openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__softwareRenderer);
renderer.__softwareRenderer.__worldTransform = cacheTransform;
} else {
graphics.__bitmap = null;
graphics.__update(renderer.__worldTransform);
var bounds = graphics.__bounds;
var width = graphics.__width;
var height = graphics.__height;
if(bounds != null && width >= 1 && height >= 1) {
if(graphics.__hardwareDirty || graphics.__quadBuffer == null && graphics.__vertexBuffer == null && graphics.__vertexBufferUVT == null) {
openfl_display__$internal_Context3DGraphics.buildBuffer(graphics,renderer);
}
var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands);
var context = renderer.__context3D;
var gl = context.gl;
var matrix = openfl_geom_Matrix.__pool.get();
var shaderBuffer = null;
var bitmap = null;
var repeat = false;
var smooth = false;
var fill = null;
var positionX = 0.0;
var positionY = 0.0;
var quadBufferPosition = 0;
var shaderBufferOffset = 0;
var triangleIndexBufferPosition = 0;
var vertexBufferPosition = 0;
var vertexBufferPositionUVT = 0;
var _g = 0;
var _g1 = graphics.__commands.types;
while(_g < _g1.length) {
var type = _g1[_g];
++_g;
switch(type._hx_index) {
case 0:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = data;
var c = this1;
bitmap = c.buffer.o[c.oPos];
repeat = c.buffer.b[c.bPos];
smooth = c.buffer.b[c.bPos + 1];
shaderBuffer = null;
fill = null;
break;
case 1:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL;
var this2 = data;
var c1 = this2;
var color = c1.buffer.i[c1.iPos] | 0;
var alpha = c1.buffer.f[c1.fPos] * 255 | 0;
fill = color & 16777215 | alpha << 24;
shaderBuffer = null;
bitmap = null;
break;
case 3:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL;
var this3 = data;
var c2 = this3;
shaderBuffer = c2.buffer.o[c2.oPos];
shaderBufferOffset = 0;
if(shaderBuffer == null || shaderBuffer.shader == null || shaderBuffer.shader.__bitmap == null) {
bitmap = null;
} else {
bitmap = shaderBuffer.shader.__bitmap.input;
}
fill = null;
break;
case 8:
if(bitmap != null) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS;
var this4 = data;
var c3 = this4;
var rects = c3.buffer.o[c3.oPos];
var indices = c3.buffer.o[c3.oPos + 1];
var transforms = c3.buffer.o[c3.oPos + 2];
var hasIndices = indices != null;
var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4);
var uMatrix = renderer.__getMatrix(graphics.__owner.__renderTransform,1);
var shader;
if(shaderBuffer != null && !openfl_display__$internal_Context3DGraphics.maskRender) {
shader = renderer.__initShaderBuffer(shaderBuffer);
renderer.__setShaderBuffer(shaderBuffer);
renderer.applyMatrix(uMatrix);
renderer.applyBitmapData(bitmap,false,repeat);
renderer.applyAlpha(graphics.__owner.__worldAlpha);
renderer.applyColorTransform(graphics.__owner.__worldColorTransform);
} else {
shader = openfl_display__$internal_Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null);
renderer.setShader(shader);
renderer.applyMatrix(uMatrix);
renderer.applyBitmapData(bitmap,smooth,repeat);
renderer.applyAlpha(graphics.__owner.__worldAlpha);
renderer.applyColorTransform(graphics.__owner.__worldColorTransform);
renderer.updateShader();
}
var end = quadBufferPosition + length;
while(quadBufferPosition < end) {
length = Math.min(end - quadBufferPosition,context.__quadIndexBufferElements) | 0;
if(length <= 0) {
break;
}
if(shaderBuffer != null && !openfl_display__$internal_Context3DGraphics.maskRender) {
renderer.__updateShaderBuffer(shaderBufferOffset);
}
if(shader.__position != null) {
context.setVertexBufferAt(shader.__position.index,graphics.__quadBuffer.vertexBuffer,quadBufferPosition * 16,2);
}
if(shader.__textureCoord != null) {
context.setVertexBufferAt(shader.__textureCoord.index,graphics.__quadBuffer.vertexBuffer,quadBufferPosition * 16 + 2,2);
}
context.drawTriangles(context.__quadIndexBuffer,0,length * 2);
shaderBufferOffset += length * 4;
quadBufferPosition += length;
}
renderer.__clearShader();
}
break;
case 9:
if(fill != null) {
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT;
var this5 = data;
var c4 = this5;
var x = c4.buffer.f[c4.fPos];
var y = c4.buffer.f[c4.fPos + 1];
var width = c4.buffer.f[c4.fPos + 2];
var height = c4.buffer.f[c4.fPos + 3];
var color1 = fill;
openfl_display__$internal_Context3DGraphics.tempColorTransform.redOffset = color1 >>> 16 & 255;
openfl_display__$internal_Context3DGraphics.tempColorTransform.greenOffset = color1 >>> 8 & 255;
openfl_display__$internal_Context3DGraphics.tempColorTransform.blueOffset = color1 & 255;
openfl_display__$internal_Context3DGraphics.tempColorTransform.__combine(graphics.__owner.__worldColorTransform);
matrix.identity();
matrix.scale(width,height);
matrix.tx = x;
matrix.ty = y;
matrix.concat(graphics.__owner.__renderTransform);
var shader1 = openfl_display__$internal_Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null);
renderer.setShader(shader1);
renderer.applyMatrix(renderer.__getMatrix(matrix,1));
renderer.applyBitmapData(openfl_display__$internal_Context3DGraphics.blankBitmapData,true,repeat);
renderer.applyAlpha((color1 >>> 24 & 255) / 255 * graphics.__owner.__worldAlpha);
renderer.applyColorTransform(openfl_display__$internal_Context3DGraphics.tempColorTransform);
renderer.updateShader();
var vertexBuffer = openfl_display__$internal_Context3DGraphics.blankBitmapData.getVertexBuffer(context);
if(shader1.__position != null) {
context.setVertexBufferAt(shader1.__position.index,vertexBuffer,0,3);
}
if(shader1.__textureCoord != null) {
context.setVertexBufferAt(shader1.__textureCoord.index,vertexBuffer,3,2);
}
var indexBuffer = openfl_display__$internal_Context3DGraphics.blankBitmapData.getIndexBuffer(context);
context.drawTriangles(indexBuffer);
shaderBufferOffset += 4;
renderer.__clearShader();
}
break;
case 12:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES;
var this6 = data;
var c5 = this6;
var vertices = c5.buffer.o[c5.oPos];
var indices1 = c5.buffer.o[c5.oPos + 1];
var uvtData = c5.buffer.o[c5.oPos + 2];
var culling = c5.buffer.o[c5.oPos + 3];
var hasIndices1 = indices1 != null;
var numVertices = Math.floor(vertices.get_length() / 2);
var length1 = hasIndices1 ? indices1.get_length() : numVertices;
var hasUVData = uvtData != null;
var hasUVTData = hasUVData && uvtData.get_length() >= numVertices * 3;
var vertLength = hasUVTData ? 4 : 2;
var uvStride = hasUVTData ? 3 : 2;
var dataPerVertex = vertLength + 2;
var vertexBuffer1 = hasUVTData ? graphics.__vertexBufferUVT : graphics.__vertexBuffer;
var bufferPosition = hasUVTData ? vertexBufferPositionUVT : vertexBufferPosition;
var uMatrix1 = renderer.__getMatrix(graphics.__owner.__renderTransform,1);
var shader2;
if(shaderBuffer != null && !openfl_display__$internal_Context3DGraphics.maskRender) {
shader2 = renderer.__initShaderBuffer(shaderBuffer);
renderer.__setShaderBuffer(shaderBuffer);
renderer.applyMatrix(uMatrix1);
renderer.applyBitmapData(bitmap,false,repeat);
renderer.applyAlpha(1);
renderer.applyColorTransform(null);
renderer.__updateShaderBuffer(shaderBufferOffset);
} else {
shader2 = openfl_display__$internal_Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null);
renderer.setShader(shader2);
renderer.applyMatrix(uMatrix1);
renderer.applyBitmapData(bitmap,smooth,repeat);
renderer.applyAlpha(graphics.__owner.__worldAlpha);
renderer.applyColorTransform(graphics.__owner.__worldColorTransform);
renderer.updateShader();
}
if(shader2.__position != null) {
context.setVertexBufferAt(shader2.__position.index,vertexBuffer1,bufferPosition,hasUVTData ? 4 : 2);
}
if(shader2.__textureCoord != null) {
context.setVertexBufferAt(shader2.__textureCoord.index,vertexBuffer1,bufferPosition + vertLength,2);
}
switch(culling) {
case 0:
context.setCulling(0);
break;
case 1:
context.setCulling(3);
break;
case 2:
context.setCulling(1);
break;
default:
}
context.__drawTriangles(0,length1);
shaderBufferOffset += length1;
if(hasUVTData) {
vertexBufferPositionUVT += dataPerVertex * length1;
} else {
vertexBufferPosition += dataPerVertex * length1;
}
switch(culling) {
case 1:case 2:
context.setCulling(0);
break;
default:
}
renderer.__clearShader();
break;
case 13:
bitmap = null;
fill = null;
shaderBuffer = null;
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
break;
case 18:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO;
var this7 = data;
var c6 = this7;
positionX = c6.buffer.f[c6.fPos];
positionY = c6.buffer.f[c6.fPos + 1];
break;
case 19:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE;
var this8 = data;
var c7 = this8;
renderer.__setBlendMode(c7.buffer.o[c7.oPos]);
break;
default:
switch(data.prev._hx_index) {
case 0:
data.oPos += 2;
data.bPos += 2;
break;
case 1:
data.iPos += 1;
data.fPos += 1;
break;
case 2:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 3:
data.oPos += 1;
break;
case 4:
data.fPos += 6;
break;
case 5:
data.fPos += 4;
break;
case 6:
data.fPos += 3;
break;
case 7:
data.fPos += 4;
break;
case 8:
data.oPos += 3;
break;
case 9:
data.fPos += 4;
break;
case 10:
data.fPos += 5;
data.oPos += 1;
break;
case 12:
data.oPos += 4;
break;
case 13:
break;
case 14:
data.oPos += 2;
data.bPos += 2;
break;
case 15:
data.oPos += 4;
data.iiPos += 2;
data.ffPos += 1;
data.fPos += 1;
break;
case 16:
data.oPos += 4;
data.iPos += 1;
data.fPos += 2;
data.bPos += 1;
break;
case 17:
data.fPos += 2;
break;
case 18:
data.fPos += 2;
break;
case 19:
data.oPos += 1;
break;
case 20:
data.oPos += 1;
break;
case 21:case 22:
break;
default:
}
data.prev = type;
}
}
openfl_geom_Matrix.__pool.release(matrix);
}
graphics.__hardwareDirty = false;
graphics.set___dirty(false);
}
};
openfl_display__$internal_Context3DGraphics.renderMask = function(graphics,renderer) {
openfl_display__$internal_Context3DGraphics.maskRender = true;
openfl_display__$internal_Context3DGraphics.render(graphics,renderer);
openfl_display__$internal_Context3DGraphics.maskRender = false;
};
openfl_display__$internal_Context3DGraphics.resizeIndexBuffer = function(graphics,isQuad,length) {
if(isQuad) {
return;
}
var buffer = isQuad ? null : graphics.__triangleIndexBufferData;
var position = 0;
var newBuffer = null;
if(buffer == null) {
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(length != null) {
this1 = new Uint16Array(length);
} else if(array != null) {
this1 = new Uint16Array(array);
} else if(vector != null) {
this1 = new Uint16Array(vector.__array);
} else if(view != null) {
this1 = new Uint16Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint16Array(buffer1,0);
} else {
this1 = new Uint16Array(buffer1,0,len);
}
} else {
this1 = null;
}
newBuffer = this1;
} else if(length > buffer.length) {
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(length != null) {
this1 = new Uint16Array(length);
} else if(array != null) {
this1 = new Uint16Array(array);
} else if(vector != null) {
this1 = new Uint16Array(vector.__array);
} else if(view != null) {
this1 = new Uint16Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Uint16Array(buffer1,0);
} else {
this1 = new Uint16Array(buffer1,0,len);
}
} else {
this1 = null;
}
newBuffer = this1;
newBuffer.set(buffer);
position = buffer.length;
}
if(newBuffer != null) {
if(!isQuad) {
graphics.__triangleIndexBufferData = newBuffer;
}
}
};
openfl_display__$internal_Context3DGraphics.resizeVertexBuffer = function(graphics,hasUVTData,length) {
var buffer = hasUVTData ? graphics.__vertexBufferDataUVT : graphics.__vertexBufferData;
var newBuffer = null;
if(buffer == null) {
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(length != null) {
this1 = new Float32Array(length);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Float32Array(buffer1,0);
} else {
this1 = new Float32Array(buffer1,0,len);
}
} else {
this1 = null;
}
newBuffer = this1;
} else if(length > buffer.length) {
var array = null;
var vector = null;
var view = null;
var buffer1 = null;
var len = null;
var this1;
if(length != null) {
this1 = new Float32Array(length);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer1 != null) {
if(len == null) {
this1 = new Float32Array(buffer1,0);
} else {
this1 = new Float32Array(buffer1,0,len);
}
} else {
this1 = null;
}
newBuffer = this1;
newBuffer.set(buffer);
}
if(newBuffer != null) {
if(hasUVTData) {
graphics.__vertexBufferDataUVT = newBuffer;
} else {
graphics.__vertexBufferData = newBuffer;
}
}
};
var openfl_display__$internal_Context3DMaskShader = function() {
if(this.__glFragmentSource == null) {
this.__glFragmentSource = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t\tif (color.a == 0.0) {\n\n\t\t\t\tdiscard;\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = color;\n\n\t\t\t}\n\n\t\t}";
}
if(this.__glVertexSource == null) {
this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}";
}
openfl_display_Shader.call(this);
this.__isGenerated = true;
this.__initGL();
};
$hxClasses["openfl.display._internal.Context3DMaskShader"] = openfl_display__$internal_Context3DMaskShader;
openfl_display__$internal_Context3DMaskShader.__name__ = "openfl.display._internal.Context3DMaskShader";
openfl_display__$internal_Context3DMaskShader.__super__ = openfl_display_Shader;
openfl_display__$internal_Context3DMaskShader.prototype = $extend(openfl_display_Shader.prototype,{
openfl_Position: null
,openfl_TextureCoord: null
,openfl_Matrix: null
,openfl_Texture: null
,__class__: openfl_display__$internal_Context3DMaskShader
});
var openfl_display__$internal_Context3DShape = function() { };
$hxClasses["openfl.display._internal.Context3DShape"] = openfl_display__$internal_Context3DShape;
openfl_display__$internal_Context3DShape.__name__ = "openfl.display._internal.Context3DShape";
openfl_display__$internal_Context3DShape.render = function(shape,renderer) {
if(!shape.__renderable || shape.__worldAlpha <= 0) {
return;
}
var graphics = shape.__graphics;
if(graphics != null) {
renderer.__setBlendMode(shape.__worldBlendMode);
renderer.__pushMaskObject(shape);
openfl_display__$internal_Context3DGraphics.render(graphics,renderer);
if(graphics.__bitmap != null && graphics.__visible) {
var context = renderer.__context3D;
var scale9Grid = shape.__worldScale9Grid;
var shader = renderer.__initDisplayShader(shape.__worldShader);
renderer.setShader(shader);
renderer.applyBitmapData(graphics.__bitmap,true);
renderer.applyMatrix(renderer.__getMatrix(graphics.__worldTransform,1));
renderer.applyAlpha(shape.__worldAlpha);
renderer.applyColorTransform(shape.__worldColorTransform);
renderer.updateShader();
var vertexBuffer = graphics.__bitmap.getVertexBuffer(context);
if(shader.__position != null) {
context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3);
}
if(shader.__textureCoord != null) {
context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2);
}
var indexBuffer = graphics.__bitmap.getIndexBuffer(context);
context.drawTriangles(indexBuffer);
renderer.__clearShader();
}
renderer.__popMaskObject(shape);
}
};
openfl_display__$internal_Context3DShape.renderMask = function(shape,renderer) {
var graphics = shape.__graphics;
if(graphics != null) {
openfl_display__$internal_Context3DGraphics.renderMask(graphics,renderer);
if(graphics.__bitmap != null) {
var context = renderer.__context3D;
var shader = renderer.__maskShader;
renderer.setShader(shader);
renderer.applyBitmapData(graphics.__bitmap,true);
renderer.applyMatrix(renderer.__getMatrix(graphics.__worldTransform,1));
renderer.updateShader();
var vertexBuffer = graphics.__bitmap.getVertexBuffer(context);
if(shader.__position != null) {
context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3);
}
if(shader.__textureCoord != null) {
context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2);
}
var indexBuffer = graphics.__bitmap.getIndexBuffer(context);
context.drawTriangles(indexBuffer);
renderer.__clearShader();
}
}
};
var openfl_display__$internal_Context3DTextField = function() { };
$hxClasses["openfl.display._internal.Context3DTextField"] = openfl_display__$internal_Context3DTextField;
openfl_display__$internal_Context3DTextField.__name__ = "openfl.display._internal.Context3DTextField";
openfl_display__$internal_Context3DTextField.render = function(textField,renderer) {
var renderer1 = renderer.__softwareRenderer;
var transform = textField.__worldTransform;
var textEngine = textField.__textEngine;
var bounds = textEngine.background || textEngine.border ? textEngine.bounds : textEngine.textBounds;
var graphics = textField.__graphics;
if(textField.__dirty) {
textField.__updateLayout();
if(graphics.__bounds == null) {
graphics.__bounds = new openfl_geom_Rectangle();
}
graphics.__bounds.copyFrom(bounds);
}
graphics.__update(renderer1.__worldTransform);
if(textField.__dirty || graphics.__softwareDirty) {
var width = graphics.__width;
var height = graphics.__height;
if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) {
textField.__graphics.__canvas = null;
textField.__graphics.__context = null;
textField.__graphics.__bitmap = null;
textField.__graphics.__softwareDirty = false;
textField.__graphics.set___dirty(false);
textField.__dirty = false;
} else {
if(textField.__graphics.__canvas == null) {
textField.__graphics.__canvas = window.document.createElement("canvas");
textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d");
}
openfl_display__$internal_CanvasTextField.context = graphics.__context;
var transform = graphics.__renderTransform;
if(renderer1.__isDOM) {
var scale = renderer1.pixelRatio;
graphics.__canvas.width = width * scale | 0;
graphics.__canvas.height = height * scale | 0;
graphics.__canvas.style.width = width + "px";
graphics.__canvas.style.height = height + "px";
var matrix = openfl_geom_Matrix.__pool.get();
matrix.copyFrom(transform);
matrix.scale(scale,scale);
renderer1.setTransform(matrix,openfl_display__$internal_CanvasTextField.context);
openfl_geom_Matrix.__pool.release(matrix);
} else {
graphics.__canvas.width = width;
graphics.__canvas.height = height;
openfl_display__$internal_CanvasTextField.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
}
if(openfl_display__$internal_CanvasTextField.clearRect == null) {
openfl_display__$internal_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined');
}
if(openfl_display__$internal_CanvasTextField.clearRect) {
openfl_display__$internal_CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height);
}
if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) {
var text = textEngine.text;
if(!renderer1.__allowSmoothing || textEngine.antiAliasType == 0 && textEngine.sharpness == 400) {
graphics.__context.imageSmoothingEnabled = false;
} else {
graphics.__context.imageSmoothingEnabled = true;
}
if(textEngine.border || textEngine.background) {
openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
if(textEngine.background) {
var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
var tmp = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.stroke();
}
}
openfl_display__$internal_CanvasTextField.context.textBaseline = "alphabetic";
openfl_display__$internal_CanvasTextField.context.textAlign = "start";
var scrollX = -textField.get_scrollH();
var scrollY = 0.0;
var _g = 0;
var _g1 = textField.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
scrollY -= textEngine.lineHeights.get(i);
}
var advance;
var group = textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.lineIndex < textField.get_scrollV() - 1) {
continue;
}
if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) {
break;
}
var color = "#" + StringTools.hex(group1.format.color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.font = openfl_text__$internal_TextEngine.getFont(group1.format);
openfl_display__$internal_CanvasTextField.context.fillStyle = color;
openfl_display__$internal_CanvasTextField.context.fillText(text.substring(group1.startIndex,group1.endIndex),group1.offsetX + scrollX - bounds.x,group1.offsetY + group1.ascent + scrollY - bounds.y);
if(textField.__caretIndex > -1 && textEngine.selectable) {
if(textField.__selectionIndex == textField.__caretIndex) {
if(textField.__showCursor && group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex) {
advance = 0.0;
var _g = 0;
var _g1 = textField.__caretIndex - group1.startIndex;
while(_g < _g1) {
var i = _g++;
if(group1.positions.length <= i) {
break;
}
advance += group1.positions[i];
}
var scrollY1 = 0.0;
var _g2 = textField.get_scrollV();
var _g3 = group1.lineIndex + 1;
while(_g2 < _g3) {
var i1 = _g2++;
scrollY1 += textEngine.lineHeights.get(i1 - 1);
}
openfl_display__$internal_CanvasTextField.context.beginPath();
var tmp = StringTools.hex(group1.format.color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.moveTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y);
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1 - bounds.y);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
} else if(group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex || group1.startIndex <= textField.__selectionIndex && group1.endIndex >= textField.__selectionIndex || group1.startIndex > textField.__caretIndex && group1.endIndex < textField.__selectionIndex || group1.startIndex > textField.__selectionIndex && group1.endIndex < textField.__caretIndex) {
var selectionStart = Math.min(textField.__selectionIndex,textField.__caretIndex) | 0;
var selectionEnd = Math.max(textField.__selectionIndex,textField.__caretIndex) | 0;
if(group1.startIndex > selectionStart) {
selectionStart = group1.startIndex;
}
if(group1.endIndex < selectionEnd) {
selectionEnd = group1.endIndex;
}
var end;
var start = textField.getCharBoundaries(selectionStart);
if(selectionEnd >= group1.endIndex) {
end = textField.getCharBoundaries(group1.endIndex - 1);
if(end != null) {
end.x += end.width + 2;
}
} else {
end = textField.getCharBoundaries(selectionEnd);
}
if(start != null && end != null) {
openfl_display__$internal_CanvasTextField.context.fillStyle = "#000000";
openfl_display__$internal_CanvasTextField.context.fillRect(start.x + scrollX,start.y + scrollY,end.x - start.x,group1.height);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#FFFFFF";
openfl_display__$internal_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x,group1.offsetY + group1.ascent + scrollY);
}
}
}
if(group1.format.underline) {
openfl_display__$internal_CanvasTextField.context.beginPath();
openfl_display__$internal_CanvasTextField.context.strokeStyle = color;
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
var x = group1.offsetX + scrollX - bounds.x;
var y = Math.floor(group1.offsetY + scrollY + group1.ascent - bounds.y) + 0.5;
openfl_display__$internal_CanvasTextField.context.moveTo(x,y);
openfl_display__$internal_CanvasTextField.context.lineTo(x + group1.width,y);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
}
} else {
if(textEngine.border || textEngine.background) {
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
} else {
openfl_display__$internal_CanvasTextField.context.rect(0,0,bounds.width,bounds.height);
}
if(textEngine.background) {
var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineCap = "square";
var tmp = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.stroke();
}
}
if(textField.__caretIndex > -1 && textEngine.selectable && textField.__showCursor) {
var scrollX = -textField.get_scrollH();
var scrollY = 0.0;
var _g = 0;
var _g1 = textField.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
scrollY += textEngine.lineHeights.get(i);
}
openfl_display__$internal_CanvasTextField.context.beginPath();
var tmp = StringTools.hex(textField.get_defaultTextFormat().color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.moveTo(scrollX + 2.5,scrollY + 2.5);
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineTo(scrollX + 2.5,scrollY + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
}
graphics.__bitmap = openfl_display_BitmapData.fromCanvas(textField.__graphics.__canvas);
graphics.__visible = true;
textField.__dirty = false;
graphics.__softwareDirty = false;
graphics.set___dirty(false);
}
}
textField.__graphics.__hardwareDirty = false;
};
openfl_display__$internal_Context3DTextField.renderMask = function(textField,renderer) {
var renderer1 = renderer.__softwareRenderer;
var transform = textField.__worldTransform;
var textEngine = textField.__textEngine;
var bounds = textEngine.background || textEngine.border ? textEngine.bounds : textEngine.textBounds;
var graphics = textField.__graphics;
if(textField.__dirty) {
textField.__updateLayout();
if(graphics.__bounds == null) {
graphics.__bounds = new openfl_geom_Rectangle();
}
graphics.__bounds.copyFrom(bounds);
}
graphics.__update(renderer1.__worldTransform);
if(textField.__dirty || graphics.__softwareDirty) {
var width = graphics.__width;
var height = graphics.__height;
if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) {
textField.__graphics.__canvas = null;
textField.__graphics.__context = null;
textField.__graphics.__bitmap = null;
textField.__graphics.__softwareDirty = false;
textField.__graphics.set___dirty(false);
textField.__dirty = false;
} else {
if(textField.__graphics.__canvas == null) {
textField.__graphics.__canvas = window.document.createElement("canvas");
textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d");
}
openfl_display__$internal_CanvasTextField.context = graphics.__context;
var transform = graphics.__renderTransform;
if(renderer1.__isDOM) {
var scale = renderer1.pixelRatio;
graphics.__canvas.width = width * scale | 0;
graphics.__canvas.height = height * scale | 0;
graphics.__canvas.style.width = width + "px";
graphics.__canvas.style.height = height + "px";
var matrix = openfl_geom_Matrix.__pool.get();
matrix.copyFrom(transform);
matrix.scale(scale,scale);
renderer1.setTransform(matrix,openfl_display__$internal_CanvasTextField.context);
openfl_geom_Matrix.__pool.release(matrix);
} else {
graphics.__canvas.width = width;
graphics.__canvas.height = height;
openfl_display__$internal_CanvasTextField.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
}
if(openfl_display__$internal_CanvasTextField.clearRect == null) {
openfl_display__$internal_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined');
}
if(openfl_display__$internal_CanvasTextField.clearRect) {
openfl_display__$internal_CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height);
}
if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) {
var text = textEngine.text;
if(!renderer1.__allowSmoothing || textEngine.antiAliasType == 0 && textEngine.sharpness == 400) {
graphics.__context.imageSmoothingEnabled = false;
} else {
graphics.__context.imageSmoothingEnabled = true;
}
if(textEngine.border || textEngine.background) {
openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
if(textEngine.background) {
var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
var tmp = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.stroke();
}
}
openfl_display__$internal_CanvasTextField.context.textBaseline = "alphabetic";
openfl_display__$internal_CanvasTextField.context.textAlign = "start";
var scrollX = -textField.get_scrollH();
var scrollY = 0.0;
var _g = 0;
var _g1 = textField.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
scrollY -= textEngine.lineHeights.get(i);
}
var advance;
var group = textEngine.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.lineIndex < textField.get_scrollV() - 1) {
continue;
}
if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) {
break;
}
var color = "#" + StringTools.hex(group1.format.color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.font = openfl_text__$internal_TextEngine.getFont(group1.format);
openfl_display__$internal_CanvasTextField.context.fillStyle = color;
openfl_display__$internal_CanvasTextField.context.fillText(text.substring(group1.startIndex,group1.endIndex),group1.offsetX + scrollX - bounds.x,group1.offsetY + group1.ascent + scrollY - bounds.y);
if(textField.__caretIndex > -1 && textEngine.selectable) {
if(textField.__selectionIndex == textField.__caretIndex) {
if(textField.__showCursor && group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex) {
advance = 0.0;
var _g = 0;
var _g1 = textField.__caretIndex - group1.startIndex;
while(_g < _g1) {
var i = _g++;
if(group1.positions.length <= i) {
break;
}
advance += group1.positions[i];
}
var scrollY1 = 0.0;
var _g2 = textField.get_scrollV();
var _g3 = group1.lineIndex + 1;
while(_g2 < _g3) {
var i1 = _g2++;
scrollY1 += textEngine.lineHeights.get(i1 - 1);
}
openfl_display__$internal_CanvasTextField.context.beginPath();
var tmp = StringTools.hex(group1.format.color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.moveTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y);
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1 - bounds.y);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
} else if(group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex || group1.startIndex <= textField.__selectionIndex && group1.endIndex >= textField.__selectionIndex || group1.startIndex > textField.__caretIndex && group1.endIndex < textField.__selectionIndex || group1.startIndex > textField.__selectionIndex && group1.endIndex < textField.__caretIndex) {
var selectionStart = Math.min(textField.__selectionIndex,textField.__caretIndex) | 0;
var selectionEnd = Math.max(textField.__selectionIndex,textField.__caretIndex) | 0;
if(group1.startIndex > selectionStart) {
selectionStart = group1.startIndex;
}
if(group1.endIndex < selectionEnd) {
selectionEnd = group1.endIndex;
}
var end;
var start = textField.getCharBoundaries(selectionStart);
if(selectionEnd >= group1.endIndex) {
end = textField.getCharBoundaries(group1.endIndex - 1);
if(end != null) {
end.x += end.width + 2;
}
} else {
end = textField.getCharBoundaries(selectionEnd);
}
if(start != null && end != null) {
openfl_display__$internal_CanvasTextField.context.fillStyle = "#000000";
openfl_display__$internal_CanvasTextField.context.fillRect(start.x + scrollX,start.y + scrollY,end.x - start.x,group1.height);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#FFFFFF";
openfl_display__$internal_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x,group1.offsetY + group1.ascent + scrollY);
}
}
}
if(group1.format.underline) {
openfl_display__$internal_CanvasTextField.context.beginPath();
openfl_display__$internal_CanvasTextField.context.strokeStyle = color;
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
var x = group1.offsetX + scrollX - bounds.x;
var y = Math.floor(group1.offsetY + scrollY + group1.ascent - bounds.y) + 0.5;
openfl_display__$internal_CanvasTextField.context.moveTo(x,y);
openfl_display__$internal_CanvasTextField.context.lineTo(x + group1.width,y);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
}
} else {
if(textEngine.border || textEngine.background) {
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
} else {
openfl_display__$internal_CanvasTextField.context.rect(0,0,bounds.width,bounds.height);
}
if(textEngine.background) {
var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.fill();
}
if(textEngine.border) {
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineCap = "square";
var tmp = StringTools.hex(textEngine.borderColor & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.stroke();
}
}
if(textField.__caretIndex > -1 && textEngine.selectable && textField.__showCursor) {
var scrollX = -textField.get_scrollH();
var scrollY = 0.0;
var _g = 0;
var _g1 = textField.get_scrollV() - 1;
while(_g < _g1) {
var i = _g++;
scrollY += textEngine.lineHeights.get(i);
}
openfl_display__$internal_CanvasTextField.context.beginPath();
var tmp = StringTools.hex(textField.get_defaultTextFormat().color & 16777215,6);
openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp;
openfl_display__$internal_CanvasTextField.context.moveTo(scrollX + 2.5,scrollY + 2.5);
openfl_display__$internal_CanvasTextField.context.lineWidth = 1;
openfl_display__$internal_CanvasTextField.context.lineTo(scrollX + 2.5,scrollY + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1);
openfl_display__$internal_CanvasTextField.context.stroke();
openfl_display__$internal_CanvasTextField.context.closePath();
}
}
graphics.__bitmap = openfl_display_BitmapData.fromCanvas(textField.__graphics.__canvas);
graphics.__visible = true;
textField.__dirty = false;
graphics.__softwareDirty = false;
graphics.set___dirty(false);
}
}
textField.__graphics.__hardwareDirty = false;
};
var openfl_display__$internal_DOMBitmap = function() { };
$hxClasses["openfl.display._internal.DOMBitmap"] = openfl_display__$internal_DOMBitmap;
openfl_display__$internal_DOMBitmap.__name__ = "openfl.display._internal.DOMBitmap";
openfl_display__$internal_DOMBitmap.clear = function(bitmap,renderer) {
if(bitmap.__image != null) {
renderer.element.removeChild(bitmap.__image);
bitmap.__image = null;
bitmap.__style = null;
}
if(bitmap.__canvas != null) {
renderer.element.removeChild(bitmap.__canvas);
bitmap.__canvas = null;
bitmap.__style = null;
}
};
openfl_display__$internal_DOMBitmap.render = function(bitmap,renderer) {
if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
renderer.__pushMaskObject(bitmap);
if(bitmap.__bitmapData.image.buffer.__srcImage != null) {
openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer);
} else {
openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer);
}
renderer.__popMaskObject(bitmap);
} else {
openfl_display__$internal_DOMBitmap.clear(bitmap,renderer);
}
};
openfl_display__$internal_DOMBitmap.renderCanvas = function(bitmap,renderer) {
if(bitmap.__image != null) {
renderer.element.removeChild(bitmap.__image);
bitmap.__image = null;
}
if(bitmap.__canvas == null) {
bitmap.__canvas = window.document.createElement("canvas");
bitmap.__context = bitmap.__canvas.getContext("2d");
bitmap.__imageVersion = -1;
if(!renderer.__allowSmoothing || !bitmap.smoothing) {
bitmap.__context.imageSmoothingEnabled = false;
}
renderer.__initializeElement(bitmap,bitmap.__canvas);
}
if(bitmap.__imageVersion != bitmap.__bitmapData.image.version) {
lime__$internal_graphics_ImageCanvasUtil.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;
}
renderer.__updateClip(bitmap);
renderer.__applyStyle(bitmap,true,true,true);
};
openfl_display__$internal_DOMBitmap.renderImage = function(bitmap,renderer) {
if(bitmap.__canvas != null) {
renderer.element.removeChild(bitmap.__canvas);
bitmap.__canvas = null;
}
if(bitmap.__image == null) {
bitmap.__image = window.document.createElement("img");
bitmap.__image.crossOrigin = "Anonymous";
bitmap.__image.src = bitmap.__bitmapData.image.buffer.__srcImage.src;
renderer.__initializeElement(bitmap,bitmap.__image);
}
renderer.__updateClip(bitmap);
renderer.__applyStyle(bitmap,true,true,true);
};
var openfl_display__$internal_DOMDisplayObject = function() { };
$hxClasses["openfl.display._internal.DOMDisplayObject"] = openfl_display__$internal_DOMDisplayObject;
openfl_display__$internal_DOMDisplayObject.__name__ = "openfl.display._internal.DOMDisplayObject";
openfl_display__$internal_DOMDisplayObject.clear = function(displayObject,renderer) {
if(displayObject.__cacheBitmap != null) {
openfl_display__$internal_DOMBitmap.clear(displayObject.__cacheBitmap,renderer);
}
openfl_display__$internal_DOMShape.clear(displayObject,renderer);
};
openfl_display__$internal_DOMDisplayObject.render = function(displayObject,renderer) {
var tmp = displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0;
var graphics = displayObject.__graphics;
if(displayObject.stage != null && displayObject.__worldVisible && displayObject.__renderable && graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__canvasRenderer);
if(graphics.__softwareDirty || displayObject.__worldAlphaChanged || displayObject.__canvas != graphics.__canvas) {
if(graphics.__canvas != null) {
if(displayObject.__canvas != graphics.__canvas) {
if(displayObject.__canvas != null) {
renderer.element.removeChild(displayObject.__canvas);
}
displayObject.__canvas = graphics.__canvas;
displayObject.__context = graphics.__context;
renderer.__initializeElement(displayObject,displayObject.__canvas);
}
} else {
openfl_display__$internal_DOMShape.clear(displayObject,renderer);
}
}
if(displayObject.__canvas != null) {
renderer.__pushMaskObject(displayObject);
var cacheTransform = displayObject.__renderTransform;
displayObject.__renderTransform = graphics.__worldTransform;
if(graphics.__transformDirty) {
graphics.__transformDirty = false;
displayObject.__renderTransformChanged = true;
}
renderer.__updateClip(displayObject);
renderer.__applyStyle(displayObject,true,true,true);
displayObject.__renderTransform = cacheTransform;
renderer.__popMaskObject(displayObject);
}
} else {
openfl_display__$internal_DOMShape.clear(displayObject,renderer);
}
};
var openfl_display__$internal_DOMShape = function() { };
$hxClasses["openfl.display._internal.DOMShape"] = openfl_display__$internal_DOMShape;
openfl_display__$internal_DOMShape.__name__ = "openfl.display._internal.DOMShape";
openfl_display__$internal_DOMShape.clear = function(shape,renderer) {
if(shape.__canvas != null) {
renderer.element.removeChild(shape.__canvas);
shape.__canvas = null;
shape.__style = null;
}
};
openfl_display__$internal_DOMShape.render = function(shape,renderer) {
var graphics = shape.__graphics;
if(shape.stage != null && shape.__worldVisible && shape.__renderable && graphics != null) {
openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__canvasRenderer);
if(graphics.__softwareDirty || shape.__worldAlphaChanged || shape.__canvas != graphics.__canvas) {
if(graphics.__canvas != null) {
if(shape.__canvas != graphics.__canvas) {
if(shape.__canvas != null) {
renderer.element.removeChild(shape.__canvas);
}
shape.__canvas = graphics.__canvas;
shape.__context = graphics.__context;
renderer.__initializeElement(shape,shape.__canvas);
}
} else {
openfl_display__$internal_DOMShape.clear(shape,renderer);
}
}
if(shape.__canvas != null) {
renderer.__pushMaskObject(shape);
var cacheTransform = shape.__renderTransform;
shape.__renderTransform = graphics.__worldTransform;
if(graphics.__transformDirty) {
graphics.__transformDirty = false;
shape.__renderTransformChanged = true;
}
renderer.__updateClip(shape);
renderer.__applyStyle(shape,true,true,true);
shape.__renderTransform = cacheTransform;
renderer.__popMaskObject(shape);
}
} else {
openfl_display__$internal_DOMShape.clear(shape,renderer);
}
};
var openfl_display__$internal_DOMTextField = function() { };
$hxClasses["openfl.display._internal.DOMTextField"] = openfl_display__$internal_DOMTextField;
openfl_display__$internal_DOMTextField.__name__ = "openfl.display._internal.DOMTextField";
openfl_display__$internal_DOMTextField.clear = function(textField,renderer) {
if(textField.__div != null) {
renderer.element.removeChild(textField.__div);
textField.__div = null;
textField.__style = null;
}
};
openfl_display__$internal_DOMTextField.measureText = function(textField) {
var textEngine = textField.__textEngine;
var div = textField.__div;
if(div == null) {
div = window.document.createElement("div");
var _this_r = new RegExp("\n","g".split("u").join(""));
div.innerHTML = textEngine.text.replace(_this_r,"<br>");
div.style.setProperty("font",openfl_text__$internal_TextEngine.getFont(textField.__textFormat),null);
div.style.setProperty("pointer-events","none",null);
div.style.position = "absolute";
div.style.top = "110%";
window.document.body.appendChild(div);
}
textEngine.__measuredWidth = div.clientWidth;
if(textField.__div == null) {
div.style.width = Std.string(textEngine.width - 4) + "px";
}
textEngine.__measuredHeight = div.clientHeight;
if(textField.__div == null) {
window.document.body.removeChild(div);
}
};
openfl_display__$internal_DOMTextField.render = function(textField,renderer) {
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 == 1) {
if(textField.__div == null) {
textField.__div = window.document.createElement("div");
renderer.__initializeElement(textField,textField.__div);
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;
textField.dispatchEvent(new openfl_events_TextEvent("textInput",false,false,textField.get_htmlText()));
}
},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);
}
var div = textField.__div;
div.contentEditable = textEngine.type == 1;
var style = textField.__style;
if(textEngine.background) {
style.setProperty("background-color","#" + StringTools.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.htmlEscape(text);
} else {
var matchText = text;
while(openfl_display__$internal_DOMTextField.__regexFont.match(matchText)) {
var fontText = openfl_display__$internal_DOMTextField.__regexFont.matched(0);
var style1 = "";
if(openfl_display__$internal_DOMTextField.__regexFace.match(fontText)) {
style1 += "font-family:'" + openfl_display__$internal_DOMTextField.__getAttributeMatch(openfl_display__$internal_DOMTextField.__regexFace) + "';";
}
if(openfl_display__$internal_DOMTextField.__regexColor.match(fontText)) {
style1 += "color:#" + openfl_display__$internal_DOMTextField.__getAttributeMatch(openfl_display__$internal_DOMTextField.__regexColor) + ";";
}
if(openfl_display__$internal_DOMTextField.__regexSize.match(fontText)) {
var sizeAttr = openfl_display__$internal_DOMTextField.__getAttributeMatch(openfl_display__$internal_DOMTextField.__regexSize);
var firstChar = HxOverrides.cca(sizeAttr,0);
var size;
adjustment = parseFloat(sizeAttr) * scale;
if(firstChar == 43 || firstChar == 45) {
size = scaledSize + adjustment;
} else {
size = adjustment;
}
style1 += "font-size:" + size + "px;";
}
text = StringTools.replace(text,fontText,"<span style='" + style1 + "'>");
matchText = openfl_display__$internal_DOMTextField.__regexFont.matchedRight();
}
text = text.replace(openfl_display__$internal_DOMTextField.__regexCloseFont.r,"</span>");
}
text = StringTools.replace(text,"<p ","<p style='margin-top:0; margin-bottom:0;' ");
var unscaledLeading = textField.__textFormat.leading;
textField.__textFormat.leading += adjustment | 0;
var _this_r = new RegExp("\r\n","g".split("u").join(""));
var tmp = text.replace(_this_r,"<br>");
textField.__div.innerHTML = tmp;
var _this_r = new RegExp("\n","g".split("u").join(""));
var tmp = textField.__div.innerHTML.replace(_this_r,"<br>");
textField.__div.innerHTML = tmp;
var _this_r = new RegExp("\r","g".split("u").join(""));
var tmp = textField.__div.innerHTML.replace(_this_r,"<br>");
textField.__div.innerHTML = tmp;
style.setProperty("font",openfl_text__$internal_TextEngine.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.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.hex(textField.__textFormat.color & 16777215,6),null);
style.setProperty("width",w + "px",null);
style.setProperty("height",h + "px",null);
switch(textField.__textFormat.align) {
case 0:
style.setProperty("text-align","center",null);
break;
case 4:
style.setProperty("text-align","right",null);
break;
default:
style.setProperty("text-align","left",null);
}
textField.__dirty = false;
} else if(textField.__div != null) {
renderer.element.removeChild(textField.__div);
textField.__div = null;
}
}
if(textField.__div != null) {
var old = renderer.__roundPixels;
renderer.__roundPixels = true;
renderer.__updateClip(textField);
renderer.__applyStyle(textField,true,true,true);
renderer.__roundPixels = old;
}
} else {
openfl_display__$internal_DOMTextField.clear(textField,renderer);
}
};
openfl_display__$internal_DOMTextField.__getAttributeMatch = function(regex) {
if(regex.matched(2) != null) {
return regex.matched(2);
} else {
return regex.matched(3);
}
};
var openfl_display__$internal_DrawCommandReader = function(buffer) {
this.buffer = buffer;
this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0;
this.prev = openfl_display__$internal_DrawCommandType.UNKNOWN;
};
$hxClasses["openfl.display._internal.DrawCommandReader"] = openfl_display__$internal_DrawCommandReader;
openfl_display__$internal_DrawCommandReader.__name__ = "openfl.display._internal.DrawCommandReader";
openfl_display__$internal_DrawCommandReader.prototype = {
buffer: null
,bPos: null
,iiPos: null
,iPos: null
,ffPos: null
,fPos: null
,oPos: null
,prev: null
,tsPos: null
,advance: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
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() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL;
var this1 = this;
return this1;
}
,readBeginFill: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL;
var this1 = this;
return this1;
}
,readBeginGradientFill: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL;
var this1 = this;
return this1;
}
,readBeginShaderFill: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL;
var this1 = this;
return this1;
}
,readCubicCurveTo: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO;
var this1 = this;
return this1;
}
,readCurveTo: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.CURVE_TO;
var this1 = this;
return this1;
}
,readDrawCircle: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE;
var this1 = this;
return this1;
}
,readDrawEllipse: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE;
var this1 = this;
return this1;
}
,readDrawQuads: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS;
var this1 = this;
return this1;
}
,readDrawRect: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT;
var this1 = this;
return this1;
}
,readDrawRoundRect: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT;
var this1 = this;
return this1;
}
,readDrawTriangles: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES;
var this1 = this;
return this1;
}
,readEndFill: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.END_FILL;
var this1 = this;
return this1;
}
,readLineBitmapStyle: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE;
var this1 = this;
return this1;
}
,readLineGradientStyle: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE;
var this1 = this;
return this1;
}
,readLineStyle: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE;
var this1 = this;
return this1;
}
,readLineTo: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.LINE_TO;
var this1 = this;
return this1;
}
,readMoveTo: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.MOVE_TO;
var this1 = this;
return this1;
}
,readOverrideBlendMode: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE;
var this1 = this;
return this1;
}
,readOverrideMatrix: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_MATRIX;
var this1 = this;
return this1;
}
,readWindingEvenOdd: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD;
var this1 = this;
return this1;
}
,readWindingNonZero: function() {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = openfl_display__$internal_DrawCommandType.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) {
switch(this.prev._hx_index) {
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.oPos += 1;
break;
case 4:
this.fPos += 6;
break;
case 5:
this.fPos += 4;
break;
case 6:
this.fPos += 3;
break;
case 7:
this.fPos += 4;
break;
case 8:
this.oPos += 3;
break;
case 9:
this.fPos += 4;
break;
case 10:
this.fPos += 5;
this.oPos += 1;
break;
case 12:
this.oPos += 4;
break;
case 13:
break;
case 14:
this.oPos += 2;
this.bPos += 2;
break;
case 15:
this.oPos += 4;
this.iiPos += 2;
this.ffPos += 1;
this.fPos += 1;
break;
case 16:
this.oPos += 4;
this.iPos += 1;
this.fPos += 2;
this.bPos += 1;
break;
case 17:
this.fPos += 2;
break;
case 18:
this.fPos += 2;
break;
case 19:
this.oPos += 1;
break;
case 20:
this.oPos += 1;
break;
case 21:case 22:
break;
default:
}
this.prev = type;
}
,__class__: openfl_display__$internal_DrawCommandReader
};
var openfl_display__$internal_BeginBitmapFillView = {};
openfl_display__$internal_BeginBitmapFillView.__properties__ = {get_smooth:"get_smooth",get_repeat:"get_repeat",get_matrix:"get_matrix",get_bitmap:"get_bitmap"};
openfl_display__$internal_BeginBitmapFillView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_BeginBitmapFillView.get_bitmap = function(this1) {
return this1.buffer.o[this1.oPos];
};
openfl_display__$internal_BeginBitmapFillView.get_matrix = function(this1) {
return this1.buffer.o[this1.oPos + 1];
};
openfl_display__$internal_BeginBitmapFillView.get_repeat = function(this1) {
return this1.buffer.b[this1.bPos];
};
openfl_display__$internal_BeginBitmapFillView.get_smooth = function(this1) {
return this1.buffer.b[this1.bPos + 1];
};
var openfl_display__$internal_BeginFillView = {};
openfl_display__$internal_BeginFillView.__properties__ = {get_alpha:"get_alpha",get_color:"get_color"};
openfl_display__$internal_BeginFillView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_BeginFillView.get_color = function(this1) {
return this1.buffer.i[this1.iPos];
};
openfl_display__$internal_BeginFillView.get_alpha = function(this1) {
return this1.buffer.f[this1.fPos];
};
var openfl_display__$internal_BeginGradientFillView = {};
openfl_display__$internal_BeginGradientFillView.__properties__ = {get_focalPointRatio:"get_focalPointRatio",get_interpolationMethod:"get_interpolationMethod",get_spreadMethod:"get_spreadMethod",get_matrix:"get_matrix",get_ratios:"get_ratios",get_alphas:"get_alphas",get_colors:"get_colors",get_type:"get_type"};
openfl_display__$internal_BeginGradientFillView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_BeginGradientFillView.get_type = function(this1) {
return this1.buffer.o[this1.oPos];
};
openfl_display__$internal_BeginGradientFillView.get_colors = function(this1) {
return this1.buffer.ii[this1.iiPos];
};
openfl_display__$internal_BeginGradientFillView.get_alphas = function(this1) {
return this1.buffer.ff[this1.ffPos];
};
openfl_display__$internal_BeginGradientFillView.get_ratios = function(this1) {
return this1.buffer.ii[this1.iiPos + 1];
};
openfl_display__$internal_BeginGradientFillView.get_matrix = function(this1) {
return this1.buffer.o[this1.oPos + 1];
};
openfl_display__$internal_BeginGradientFillView.get_spreadMethod = function(this1) {
return this1.buffer.o[this1.oPos + 2];
};
openfl_display__$internal_BeginGradientFillView.get_interpolationMethod = function(this1) {
return this1.buffer.o[this1.oPos + 3];
};
openfl_display__$internal_BeginGradientFillView.get_focalPointRatio = function(this1) {
return this1.buffer.f[this1.fPos];
};
var openfl_display__$internal_BeginShaderFillView = {};
openfl_display__$internal_BeginShaderFillView.__properties__ = {get_shaderBuffer:"get_shaderBuffer"};
openfl_display__$internal_BeginShaderFillView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_BeginShaderFillView.get_shaderBuffer = function(this1) {
return this1.buffer.o[this1.oPos];
};
var openfl_display__$internal_CubicCurveToView = {};
openfl_display__$internal_CubicCurveToView.__properties__ = {get_anchorY:"get_anchorY",get_anchorX:"get_anchorX",get_controlY2:"get_controlY2",get_controlX2:"get_controlX2",get_controlY1:"get_controlY1",get_controlX1:"get_controlX1"};
openfl_display__$internal_CubicCurveToView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_CubicCurveToView.get_controlX1 = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_CubicCurveToView.get_controlY1 = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
openfl_display__$internal_CubicCurveToView.get_controlX2 = function(this1) {
return this1.buffer.f[this1.fPos + 2];
};
openfl_display__$internal_CubicCurveToView.get_controlY2 = function(this1) {
return this1.buffer.f[this1.fPos + 3];
};
openfl_display__$internal_CubicCurveToView.get_anchorX = function(this1) {
return this1.buffer.f[this1.fPos + 4];
};
openfl_display__$internal_CubicCurveToView.get_anchorY = function(this1) {
return this1.buffer.f[this1.fPos + 5];
};
var openfl_display__$internal_CurveToView = {};
openfl_display__$internal_CurveToView.__properties__ = {get_anchorY:"get_anchorY",get_anchorX:"get_anchorX",get_controlY:"get_controlY",get_controlX:"get_controlX"};
openfl_display__$internal_CurveToView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_CurveToView.get_controlX = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_CurveToView.get_controlY = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
openfl_display__$internal_CurveToView.get_anchorX = function(this1) {
return this1.buffer.f[this1.fPos + 2];
};
openfl_display__$internal_CurveToView.get_anchorY = function(this1) {
return this1.buffer.f[this1.fPos + 3];
};
var openfl_display__$internal_DrawCircleView = {};
openfl_display__$internal_DrawCircleView.__properties__ = {get_radius:"get_radius",get_y:"get_y",get_x:"get_x"};
openfl_display__$internal_DrawCircleView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_DrawCircleView.get_x = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_DrawCircleView.get_y = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
openfl_display__$internal_DrawCircleView.get_radius = function(this1) {
return this1.buffer.f[this1.fPos + 2];
};
var openfl_display__$internal_DrawEllipseView = {};
openfl_display__$internal_DrawEllipseView.__properties__ = {get_height:"get_height",get_width:"get_width",get_y:"get_y",get_x:"get_x"};
openfl_display__$internal_DrawEllipseView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_DrawEllipseView.get_x = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_DrawEllipseView.get_y = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
openfl_display__$internal_DrawEllipseView.get_width = function(this1) {
return this1.buffer.f[this1.fPos + 2];
};
openfl_display__$internal_DrawEllipseView.get_height = function(this1) {
return this1.buffer.f[this1.fPos + 3];
};
var openfl_display__$internal_DrawQuadsView = {};
openfl_display__$internal_DrawQuadsView.__properties__ = {get_transforms:"get_transforms",get_indices:"get_indices",get_rects:"get_rects"};
openfl_display__$internal_DrawQuadsView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_DrawQuadsView.get_rects = function(this1) {
return this1.buffer.o[this1.oPos];
};
openfl_display__$internal_DrawQuadsView.get_indices = function(this1) {
return this1.buffer.o[this1.oPos + 1];
};
openfl_display__$internal_DrawQuadsView.get_transforms = function(this1) {
return this1.buffer.o[this1.oPos + 2];
};
var openfl_display__$internal_DrawRectView = {};
openfl_display__$internal_DrawRectView.__properties__ = {get_height:"get_height",get_width:"get_width",get_y:"get_y",get_x:"get_x"};
openfl_display__$internal_DrawRectView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_DrawRectView.get_x = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_DrawRectView.get_y = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
openfl_display__$internal_DrawRectView.get_width = function(this1) {
return this1.buffer.f[this1.fPos + 2];
};
openfl_display__$internal_DrawRectView.get_height = function(this1) {
return this1.buffer.f[this1.fPos + 3];
};
var openfl_display__$internal_DrawRoundRectView = {};
openfl_display__$internal_DrawRoundRectView.__properties__ = {get_ellipseHeight:"get_ellipseHeight",get_ellipseWidth:"get_ellipseWidth",get_height:"get_height",get_width:"get_width",get_y:"get_y",get_x:"get_x"};
openfl_display__$internal_DrawRoundRectView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_DrawRoundRectView.get_x = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_DrawRoundRectView.get_y = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
openfl_display__$internal_DrawRoundRectView.get_width = function(this1) {
return this1.buffer.f[this1.fPos + 2];
};
openfl_display__$internal_DrawRoundRectView.get_height = function(this1) {
return this1.buffer.f[this1.fPos + 3];
};
openfl_display__$internal_DrawRoundRectView.get_ellipseWidth = function(this1) {
return this1.buffer.f[this1.fPos + 4];
};
openfl_display__$internal_DrawRoundRectView.get_ellipseHeight = function(this1) {
return this1.buffer.o[this1.oPos];
};
var openfl_display__$internal_DrawTrianglesView = {};
openfl_display__$internal_DrawTrianglesView.__properties__ = {get_culling:"get_culling",get_uvtData:"get_uvtData",get_indices:"get_indices",get_vertices:"get_vertices"};
openfl_display__$internal_DrawTrianglesView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_DrawTrianglesView.get_vertices = function(this1) {
return this1.buffer.o[this1.oPos];
};
openfl_display__$internal_DrawTrianglesView.get_indices = function(this1) {
return this1.buffer.o[this1.oPos + 1];
};
openfl_display__$internal_DrawTrianglesView.get_uvtData = function(this1) {
return this1.buffer.o[this1.oPos + 2];
};
openfl_display__$internal_DrawTrianglesView.get_culling = function(this1) {
return this1.buffer.o[this1.oPos + 3];
};
var openfl_display__$internal_EndFillView = {};
openfl_display__$internal_EndFillView._new = function(d) {
var this1 = d;
return this1;
};
var openfl_display__$internal_LineBitmapStyleView = {};
openfl_display__$internal_LineBitmapStyleView.__properties__ = {get_smooth:"get_smooth",get_repeat:"get_repeat",get_matrix:"get_matrix",get_bitmap:"get_bitmap"};
openfl_display__$internal_LineBitmapStyleView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_LineBitmapStyleView.get_bitmap = function(this1) {
return this1.buffer.o[this1.oPos];
};
openfl_display__$internal_LineBitmapStyleView.get_matrix = function(this1) {
return this1.buffer.o[this1.oPos + 1];
};
openfl_display__$internal_LineBitmapStyleView.get_repeat = function(this1) {
return this1.buffer.b[this1.bPos];
};
openfl_display__$internal_LineBitmapStyleView.get_smooth = function(this1) {
return this1.buffer.b[this1.bPos + 1];
};
var openfl_display__$internal_LineGradientStyleView = {};
openfl_display__$internal_LineGradientStyleView.__properties__ = {get_focalPointRatio:"get_focalPointRatio",get_interpolationMethod:"get_interpolationMethod",get_spreadMethod:"get_spreadMethod",get_matrix:"get_matrix",get_ratios:"get_ratios",get_alphas:"get_alphas",get_colors:"get_colors",get_type:"get_type"};
openfl_display__$internal_LineGradientStyleView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_LineGradientStyleView.get_type = function(this1) {
return this1.buffer.o[this1.oPos];
};
openfl_display__$internal_LineGradientStyleView.get_colors = function(this1) {
return this1.buffer.ii[this1.iiPos];
};
openfl_display__$internal_LineGradientStyleView.get_alphas = function(this1) {
return this1.buffer.ff[this1.ffPos];
};
openfl_display__$internal_LineGradientStyleView.get_ratios = function(this1) {
return this1.buffer.ii[this1.iiPos + 1];
};
openfl_display__$internal_LineGradientStyleView.get_matrix = function(this1) {
return this1.buffer.o[this1.oPos + 1];
};
openfl_display__$internal_LineGradientStyleView.get_spreadMethod = function(this1) {
return this1.buffer.o[this1.oPos + 2];
};
openfl_display__$internal_LineGradientStyleView.get_interpolationMethod = function(this1) {
return this1.buffer.o[this1.oPos + 3];
};
openfl_display__$internal_LineGradientStyleView.get_focalPointRatio = function(this1) {
return this1.buffer.f[this1.fPos];
};
var openfl_display__$internal_LineStyleView = {};
openfl_display__$internal_LineStyleView.__properties__ = {get_miterLimit:"get_miterLimit",get_joints:"get_joints",get_caps:"get_caps",get_scaleMode:"get_scaleMode",get_pixelHinting:"get_pixelHinting",get_alpha:"get_alpha",get_color:"get_color",get_thickness:"get_thickness"};
openfl_display__$internal_LineStyleView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_LineStyleView.get_thickness = function(this1) {
return this1.buffer.o[this1.oPos];
};
openfl_display__$internal_LineStyleView.get_color = function(this1) {
return this1.buffer.i[this1.iPos];
};
openfl_display__$internal_LineStyleView.get_alpha = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_LineStyleView.get_pixelHinting = function(this1) {
return this1.buffer.b[this1.bPos];
};
openfl_display__$internal_LineStyleView.get_scaleMode = function(this1) {
return this1.buffer.o[this1.oPos + 1];
};
openfl_display__$internal_LineStyleView.get_caps = function(this1) {
return this1.buffer.o[this1.oPos + 2];
};
openfl_display__$internal_LineStyleView.get_joints = function(this1) {
return this1.buffer.o[this1.oPos + 3];
};
openfl_display__$internal_LineStyleView.get_miterLimit = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
var openfl_display__$internal_LineToView = {};
openfl_display__$internal_LineToView.__properties__ = {get_y:"get_y",get_x:"get_x"};
openfl_display__$internal_LineToView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_LineToView.get_x = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_LineToView.get_y = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
var openfl_display__$internal_MoveToView = {};
openfl_display__$internal_MoveToView.__properties__ = {get_y:"get_y",get_x:"get_x"};
openfl_display__$internal_MoveToView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_MoveToView.get_x = function(this1) {
return this1.buffer.f[this1.fPos];
};
openfl_display__$internal_MoveToView.get_y = function(this1) {
return this1.buffer.f[this1.fPos + 1];
};
var openfl_display__$internal_OverrideBlendModeView = {};
openfl_display__$internal_OverrideBlendModeView.__properties__ = {get_blendMode:"get_blendMode"};
openfl_display__$internal_OverrideBlendModeView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_OverrideBlendModeView.get_blendMode = function(this1) {
return this1.buffer.o[this1.oPos];
};
var openfl_display__$internal_OverrideMatrixView = {};
openfl_display__$internal_OverrideMatrixView.__properties__ = {get_matrix:"get_matrix"};
openfl_display__$internal_OverrideMatrixView._new = function(d) {
var this1 = d;
return this1;
};
openfl_display__$internal_OverrideMatrixView.get_matrix = function(this1) {
return this1.buffer.o[this1.oPos];
};
var openfl_display__$internal_WindingEvenOddView = {};
openfl_display__$internal_WindingEvenOddView._new = function(d) {
var this1 = d;
return this1;
};
var openfl_display__$internal_WindingNonZeroView = {};
openfl_display__$internal_WindingNonZeroView._new = function(d) {
var this1 = d;
return this1;
};
var openfl_display__$internal_DrawCommandType = $hxEnums["openfl.display._internal.DrawCommandType"] = { __ename__ : "openfl.display._internal.DrawCommandType", __constructs__ : ["BEGIN_BITMAP_FILL","BEGIN_FILL","BEGIN_GRADIENT_FILL","BEGIN_SHADER_FILL","CUBIC_CURVE_TO","CURVE_TO","DRAW_CIRCLE","DRAW_ELLIPSE","DRAW_QUADS","DRAW_RECT","DRAW_ROUND_RECT","DRAW_TILES","DRAW_TRIANGLES","END_FILL","LINE_BITMAP_STYLE","LINE_GRADIENT_STYLE","LINE_STYLE","LINE_TO","MOVE_TO","OVERRIDE_BLEND_MODE","OVERRIDE_MATRIX","WINDING_EVEN_ODD","WINDING_NON_ZERO","UNKNOWN"]
,BEGIN_BITMAP_FILL: {_hx_index:0,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,BEGIN_FILL: {_hx_index:1,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,BEGIN_GRADIENT_FILL: {_hx_index:2,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,BEGIN_SHADER_FILL: {_hx_index:3,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,CUBIC_CURVE_TO: {_hx_index:4,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,CURVE_TO: {_hx_index:5,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,DRAW_CIRCLE: {_hx_index:6,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,DRAW_ELLIPSE: {_hx_index:7,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,DRAW_QUADS: {_hx_index:8,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,DRAW_RECT: {_hx_index:9,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,DRAW_ROUND_RECT: {_hx_index:10,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,DRAW_TILES: {_hx_index:11,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,DRAW_TRIANGLES: {_hx_index:12,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,END_FILL: {_hx_index:13,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,LINE_BITMAP_STYLE: {_hx_index:14,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,LINE_GRADIENT_STYLE: {_hx_index:15,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,LINE_STYLE: {_hx_index:16,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,LINE_TO: {_hx_index:17,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,MOVE_TO: {_hx_index:18,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,OVERRIDE_BLEND_MODE: {_hx_index:19,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,OVERRIDE_MATRIX: {_hx_index:20,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,WINDING_EVEN_ODD: {_hx_index:21,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,WINDING_NON_ZERO: {_hx_index:22,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
,UNKNOWN: {_hx_index:23,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr}
};
var openfl_display__$internal_PerlinNoise = function(seed,octaves,channels,grayScale,falloff,stitch,stitch_threshold) {
if(stitch_threshold == null) {
stitch_threshold = 0.05;
}
if(stitch == null) {
stitch = false;
}
openfl_display__$internal_AbstractNoise.call(this,seed,octaves,channels,grayScale,falloff,stitch,stitch_threshold);
this.p_perm = [];
var _g = 0;
while(_g < 512) {
var i = _g++;
this.p_perm[i] = openfl_display__$internal_PerlinNoise.P[i & 255];
}
this.base_factor = 0.03125;
this.setSeed(seed);
};
$hxClasses["openfl.display._internal.PerlinNoise"] = openfl_display__$internal_PerlinNoise;
openfl_display__$internal_PerlinNoise.__name__ = "openfl.display._internal.PerlinNoise";
openfl_display__$internal_PerlinNoise.__super__ = openfl_display__$internal_AbstractNoise;
openfl_display__$internal_PerlinNoise.prototype = $extend(openfl_display__$internal_AbstractNoise.prototype,{
p_perm: null
,x_offset: null
,y_offset: null
,z_offset: null
,base_factor: null
,fill: function(bitmap,_scale_x,_scale_y,_scale_z) {
var width = bitmap.width;
var height = bitmap.height;
var octaves = this.octaves;
var octaves_frequencies = this.octaves_frequencies;
var octaves_persistences = this.octaves_persistences;
var isRed = (1 & this.channels) == 1;
var isGreen = (2 & this.channels) == 2;
var isBlue = (4 & this.channels) == 4;
var channels = 0;
if(isRed) {
++channels;
}
if(isGreen) {
++channels;
}
if(isBlue) {
++channels;
}
var grayscale = this.grayscale;
var stitch_w = this.stitch_threshold * width | 0;
var stitch_h = this.stitch_threshold * height | 0;
var base_x = _scale_x * this.base_factor + this.x_offset;
_scale_y = _scale_y * this.base_factor + this.y_offset;
_scale_z = _scale_z * this.base_factor + this.z_offset;
var g_offset = 1.0;
var b_offset = 2.0;
var _g = 0;
var _g1 = height;
while(_g < _g1) {
var py = _g++;
_scale_x = base_x;
var _g2 = 0;
var _g3 = width;
while(_g2 < _g3) {
var px = _g2++;
var color1 = 0.0;
var color2 = 0.0;
var color3 = 0.0;
var _g4 = 0;
var _g5 = octaves;
while(_g4 < _g5) {
var i = _g4++;
var frequency = octaves_frequencies[i];
var persistence = octaves_persistences[i];
color1 += this.noise(_scale_x * frequency,_scale_y * frequency,_scale_z * frequency) * persistence;
if(!grayscale) {
if(1 < channels) {
color2 += this.noise((_scale_x + g_offset) * frequency,(_scale_y + g_offset) * frequency,_scale_z * frequency) * persistence;
}
if(2 < channels) {
color3 += this.noise((_scale_x + b_offset) * frequency,(_scale_y + b_offset) * frequency,_scale_z * frequency) * persistence;
}
}
}
var color = 0;
if(grayscale) {
color = this.color(color1,color1,color1);
} else if(isRed && isGreen && isBlue) {
color = this.color(color1,color2,color3);
} else if(isRed && isGreen) {
color = this.color(color1,color2,null);
} else if(isRed && isBlue) {
color = this.color(color1,null,color2);
} else if(isGreen && isBlue) {
color = this.color(null,color1,color2);
} else if(isRed) {
color = this.color(color1,null,null);
} else if(isGreen) {
color = this.color(null,color1,null);
} else if(isBlue) {
color = this.color(null,null,color1);
}
if(this.stitch) {
color = this.stitching(bitmap,color,px,py,stitch_w,stitch_h,width,height);
}
bitmap.setPixel32(px,py,color);
_scale_x += this.base_factor;
}
_scale_y += this.base_factor;
}
}
,noise: function(x,y,z) {
var xf = x - x % 1;
var yf = y - y % 1;
var zf = z - z % 1;
x -= xf;
y -= yf;
z -= zf;
var X = (xf | 0) & 255;
var Y = (yf | 0) & 255;
var Z = (zf | 0) & 255;
var u = this.fade(x);
var v = this.fade(y);
var w = this.fade(z);
var A = this.p_perm[X] + Y;
var AA = this.p_perm[A] + Z;
var AB = this.p_perm[A + 1] + Z;
var B = this.p_perm[X + 1] + Y;
var BA = this.p_perm[B] + Z;
var BB = this.p_perm[B + 1] + Z;
var x1 = x - 1;
var y1 = y - 1;
var z1 = z - 1;
var hash = this.p_perm[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 = this.p_perm[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 = this.p_perm[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 = this.p_perm[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 = this.p_perm[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 = this.p_perm[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 = this.p_perm[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 = this.p_perm[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);
return g8 + w * (g4 - g8);
}
,setSeed: function(seed) {
seed = seed * 16807.0 % 2147483647 | 0;
this.x_offset = seed;
seed = seed * 16807.0 % 2147483647 | 0;
this.y_offset = seed;
seed = seed * 16807.0 % 2147483647 | 0;
this.z_offset = seed;
}
,__class__: openfl_display__$internal_PerlinNoise
});
var openfl_display__$internal_SamplerState = function(wrap,filter,mipfilter,lodBias,ignoreSampler,centroid,textureAlpha) {
if(textureAlpha == null) {
textureAlpha = false;
}
if(centroid == null) {
centroid = false;
}
if(ignoreSampler == null) {
ignoreSampler = false;
}
if(lodBias == null) {
lodBias = 0.0;
}
if(mipfilter == null) {
mipfilter = 2;
}
if(filter == null) {
filter = 5;
}
if(wrap == null) {
wrap = 0;
}
this.wrap = wrap;
this.filter = filter;
this.mipfilter = mipfilter;
this.lodBias = lodBias;
this.ignoreSampler = ignoreSampler;
this.centroid = centroid;
this.textureAlpha = textureAlpha;
};
$hxClasses["openfl.display._internal.SamplerState"] = openfl_display__$internal_SamplerState;
openfl_display__$internal_SamplerState.__name__ = "openfl.display._internal.SamplerState";
openfl_display__$internal_SamplerState.prototype = {
centroid: null
,filter: null
,ignoreSampler: null
,lodBias: null
,mipfilter: null
,mipmapGenerated: null
,textureAlpha: null
,wrap: null
,clone: function() {
var copy = new openfl_display__$internal_SamplerState(this.wrap,this.filter,this.mipfilter,this.lodBias,this.ignoreSampler,this.centroid,this.textureAlpha);
copy.mipmapGenerated = this.mipmapGenerated;
return copy;
}
,copyFrom: function(other) {
if(other == null || other.ignoreSampler) {
return;
}
this.wrap = other.wrap;
this.filter = other.filter;
this.mipfilter = other.mipfilter;
this.lodBias = other.lodBias;
this.centroid = other.centroid;
this.textureAlpha = other.textureAlpha;
}
,equals: function(other) {
if(other == null) {
return false;
}
if(this.wrap == other.wrap && this.filter == other.filter && this.mipfilter == other.mipfilter && this.lodBias == other.lodBias) {
return this.textureAlpha == other.textureAlpha;
} else {
return false;
}
}
,__class__: openfl_display__$internal_SamplerState
};
var openfl_display__$internal_ShaderBuffer = function() {
this.inputRefs = [];
this.inputFilter = [];
this.inputMipFilter = [];
this.inputs = [];
this.inputWrap = [];
this.overrideIntNames = [];
this.overrideIntValues = [];
this.overrideFloatNames = [];
this.overrideFloatValues = [];
this.overrideBoolNames = [];
this.overrideBoolValues = [];
this.paramLengths = [];
this.paramPositions = [];
this.paramRefs_Bool = [];
this.paramRefs_Float = [];
this.paramRefs_Int = [];
this.paramTypes = [];
};
$hxClasses["openfl.display._internal.ShaderBuffer"] = openfl_display__$internal_ShaderBuffer;
openfl_display__$internal_ShaderBuffer.__name__ = "openfl.display._internal.ShaderBuffer";
openfl_display__$internal_ShaderBuffer.prototype = {
inputCount: null
,inputRefs: null
,inputFilter: null
,inputMipFilter: null
,inputs: null
,inputWrap: null
,overrideBoolCount: null
,overrideBoolNames: null
,overrideBoolValues: null
,overrideFloatCount: null
,overrideFloatNames: null
,overrideFloatValues: null
,overrideIntCount: null
,overrideIntNames: null
,overrideIntValues: null
,paramBoolCount: null
,paramCount: null
,paramData: null
,paramDataBuffer: null
,paramDataLength: null
,paramFloatCount: null
,paramIntCount: null
,paramLengths: null
,paramPositions: null
,paramRefs_Bool: null
,paramRefs_Float: null
,paramRefs_Int: null
,paramTypes: null
,shader: null
,addBoolOverride: function(name,values) {
this.overrideBoolNames[this.overrideBoolCount] = name;
this.overrideBoolValues[this.overrideBoolCount] = values;
this.overrideBoolCount++;
}
,addFloatOverride: function(name,values) {
this.overrideFloatNames[this.overrideFloatCount] = name;
this.overrideFloatValues[this.overrideFloatCount] = values;
this.overrideFloatCount++;
}
,addIntOverride: function(name,values) {
this.overrideIntNames[this.overrideIntCount] = name;
this.overrideIntValues[this.overrideIntCount] = values;
this.overrideIntCount++;
}
,clearOverride: function() {
this.overrideIntCount = 0;
this.overrideFloatCount = 0;
this.overrideBoolCount = 0;
}
,update: function(shader) {
this.inputCount = 0;
this.overrideIntCount = 0;
this.overrideFloatCount = 0;
this.overrideBoolCount = 0;
this.paramBoolCount = 0;
this.paramCount = 0;
this.paramDataLength = 0;
this.paramFloatCount = 0;
this.paramIntCount = 0;
this.shader = null;
if(shader == null) {
return;
}
shader.__init();
this.inputCount = shader.__inputBitmapData.length;
var input;
var _g = 0;
var _g1 = this.inputCount;
while(_g < _g1) {
var i = _g++;
input = shader.__inputBitmapData[i];
this.inputs[i] = input.input;
this.inputFilter[i] = input.filter;
this.inputMipFilter[i] = input.mipFilter;
this.inputRefs[i] = input;
this.inputWrap[i] = input.wrap;
}
var boolCount = shader.__paramBool.length;
var floatCount = shader.__paramFloat.length;
var intCount = shader.__paramInt.length;
this.paramCount = boolCount + floatCount + intCount;
this.paramBoolCount = boolCount;
this.paramFloatCount = floatCount;
this.paramIntCount = intCount;
var length = 0;
var p = 0;
var param;
var _g = 0;
var _g1 = boolCount;
while(_g < _g1) {
var i = _g++;
param = shader.__paramBool[i];
this.paramPositions[p] = this.paramDataLength;
length = param.value != null ? param.value.length : 0;
this.paramLengths[p] = length;
this.paramDataLength += length;
this.paramTypes[p] = 0;
this.paramRefs_Bool[i] = param;
++p;
}
var param;
var _g = 0;
var _g1 = floatCount;
while(_g < _g1) {
var i = _g++;
param = shader.__paramFloat[i];
this.paramPositions[p] = this.paramDataLength;
length = param.value != null ? param.value.length : 0;
this.paramLengths[p] = length;
this.paramDataLength += length;
this.paramTypes[p] = 1;
this.paramRefs_Float[i] = param;
++p;
}
var param;
var _g = 0;
var _g1 = intCount;
while(_g < _g1) {
var i = _g++;
param = shader.__paramInt[i];
this.paramPositions[p] = this.paramDataLength;
length = param.value != null ? param.value.length : 0;
this.paramLengths[p] = length;
this.paramDataLength += length;
this.paramTypes[p] = 2;
this.paramRefs_Int[i] = param;
++p;
}
if(this.paramDataLength > 0) {
if(this.paramData == null) {
var elements = this.paramDataLength;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Float32Array(elements);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
this.paramData = this1;
} else if(this.paramDataLength > this.paramData.length) {
var elements = this.paramDataLength;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Float32Array(elements);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
data.set(this.paramData);
this.paramData = data;
}
}
var boolIndex = 0;
var floatIndex = 0;
var intIndex = 0;
var paramPosition = 0;
var boolParam;
var floatParam;
var intParam;
var length;
var _g = 0;
var _g1 = this.paramCount;
while(_g < _g1) {
var i = _g++;
length = this.paramLengths[i];
if(i < boolCount) {
boolParam = this.paramRefs_Bool[boolIndex];
++boolIndex;
var _g2 = 0;
var _g3 = length;
while(_g2 < _g3) {
var j = _g2++;
this.paramData[paramPosition] = boolParam.value[j] ? 1 : 0;
++paramPosition;
}
} else if(i < boolCount + floatCount) {
floatParam = this.paramRefs_Float[floatIndex];
++floatIndex;
var _g4 = 0;
var _g5 = length;
while(_g4 < _g5) {
var j1 = _g4++;
this.paramData[paramPosition] = floatParam.value[j1];
++paramPosition;
}
} else {
intParam = this.paramRefs_Int[intIndex];
++intIndex;
var _g6 = 0;
var _g7 = length;
while(_g6 < _g7) {
var j2 = _g6++;
this.paramData[paramPosition] = intParam.value[j2];
++paramPosition;
}
}
}
this.shader = shader;
}
,__class__: openfl_display__$internal_ShaderBuffer
};
var openfl_display3D_Context3D = function(stage,contextState,stage3D) {
this.profile = 3;
this.driverInfo = "OpenGL (Direct blitting)";
this.backBufferWidth = 0;
this.backBufferHeight = 0;
openfl_events_EventDispatcher.call(this);
this.__stage = stage;
this.__contextState = contextState;
this.__stage3D = stage3D;
this.__context = stage.window.context;
this.gl = this.__context.webgl;
if(this.__contextState == null) {
this.__contextState = new openfl_display3D__$internal_Context3DState();
}
this.__state = new openfl_display3D__$internal_Context3DState();
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Float32Array(512);
this.__vertexConstants = this1;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Float32Array(512);
this.__fragmentConstants = this1;
var elements = null;
var array = [1.0,1.0,1.0,1.0];
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Float32Array(elements);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
this.__positionScale = this1;
this.__programs = new haxe_ds_StringMap();
if(openfl_display3D_Context3D.__glMaxViewportDims == -1) {
openfl_display3D_Context3D.__glMaxViewportDims = this.gl.getParameter(this.gl.MAX_VIEWPORT_DIMS);
}
this.maxBackBufferWidth = openfl_display3D_Context3D.__glMaxViewportDims;
this.maxBackBufferHeight = openfl_display3D_Context3D.__glMaxViewportDims;
if(openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy == -1) {
var extension = this.gl.getExtension("EXT_texture_filter_anisotropic");
if(extension == null || !Object.prototype.hasOwnProperty.call(extension,"MAX_TEXTURE_MAX_ANISOTROPY_EXT")) {
extension = this.gl.getExtension("MOZ_EXT_texture_filter_anisotropic");
}
if(extension == null || !Object.prototype.hasOwnProperty.call(extension,"MAX_TEXTURE_MAX_ANISOTROPY_EXT")) {
extension = this.gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic");
}
if(extension != null) {
openfl_display3D_Context3D.__glTextureMaxAnisotropy = extension.TEXTURE_MAX_ANISOTROPY_EXT;
openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy = this.gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);
} else {
openfl_display3D_Context3D.__glTextureMaxAnisotropy = 0;
openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy = 0;
}
}
if(openfl_display3D_Context3D.__glDepthStencil == -1) {
openfl_display3D_Context3D.__glDepthStencil = this.gl.DEPTH_STENCIL;
}
if(openfl_display3D_Context3D.__glMemoryTotalAvailable == -1) {
var extension = this.gl.getExtension("NVX_gpu_memory_info");
if(extension != null) {
openfl_display3D_Context3D.__glMemoryTotalAvailable = extension.GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX;
openfl_display3D_Context3D.__glMemoryCurrentAvailable = extension.GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX;
}
}
if(openfl_display3D_Context3D.__driverInfo == null) {
var vendor = this.gl.getParameter(this.gl.VENDOR);
var version = this.gl.getParameter(this.gl.VERSION);
var renderer = this.gl.getParameter(this.gl.RENDERER);
var glslVersion = this.gl.getParameter(this.gl.SHADING_LANGUAGE_VERSION);
openfl_display3D_Context3D.__driverInfo = "OpenGL Vendor=" + vendor + " Version=" + version + " Renderer=" + renderer + " GLSL=" + glslVersion;
}
this.driverInfo = openfl_display3D_Context3D.__driverInfo;
this.__quadIndexBufferElements = 16383;
this.__quadIndexBufferCount = this.__quadIndexBufferElements * 6;
var elements = this.__quadIndexBufferCount;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint16Array(elements);
} else if(array != null) {
this1 = new Uint16Array(array);
} else if(vector != null) {
this1 = new Uint16Array(vector.__array);
} else if(view != null) {
this1 = new Uint16Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint16Array(buffer,0);
} else {
this1 = new Uint16Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
var index = 0;
var vertex = 0;
var _g = 0;
var _g1 = this.__quadIndexBufferElements;
while(_g < _g1) {
var i = _g++;
data[index] = vertex;
data[index + 1] = vertex + 1;
data[index + 2] = vertex + 2;
data[index + 3] = vertex + 2;
data[index + 4] = vertex + 1;
data[index + 5] = vertex + 3;
index = index + 6;
vertex = vertex + 4;
}
this.__quadIndexBuffer = this.createIndexBuffer(this.__quadIndexBufferCount);
this.__quadIndexBuffer.uploadFromTypedArray(data);
};
$hxClasses["openfl.display3D.Context3D"] = openfl_display3D_Context3D;
openfl_display3D_Context3D.__name__ = "openfl.display3D.Context3D";
openfl_display3D_Context3D.__driverInfo = null;
openfl_display3D_Context3D.__super__ = openfl_events_EventDispatcher;
openfl_display3D_Context3D.prototype = $extend(openfl_events_EventDispatcher.prototype,{
backBufferHeight: null
,backBufferWidth: null
,driverInfo: null
,maxBackBufferHeight: null
,maxBackBufferWidth: null
,profile: null
,gl: null
,__backBufferAntiAlias: null
,__backBufferTexture: null
,__backBufferWantsBestResolution: null
,__backBufferWantsBestResolutionOnBrowserZoom: null
,__cleared: null
,__context: null
,__contextState: null
,__renderStage3DProgram: null
,__enableErrorChecking: null
,__fragmentConstants: null
,__frontBufferTexture: null
,__positionScale: null
,__present: null
,__programs: null
,__quadIndexBuffer: null
,__quadIndexBufferCount: null
,__quadIndexBufferElements: null
,__stage: null
,__stage3D: null
,__state: null
,__vertexConstants: null
,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;
}
this.__flushGLFramebuffer();
this.__flushGLViewport();
var clearMask = 0;
if((mask & 1) != 0) {
if(this.__state.renderToTexture == null) {
if(this.__stage.context3D == this && !this.__stage.__renderer.__cleared) {
this.__stage.__renderer.__cleared = true;
}
this.__cleared = true;
}
clearMask |= this.gl.COLOR_BUFFER_BIT;
if(this.__contextState.colorMaskRed != true || this.__contextState.colorMaskGreen != true || this.__contextState.colorMaskBlue != true || this.__contextState.colorMaskAlpha != true) {
this.gl.colorMask(true,true,true,true);
this.__contextState.colorMaskRed = true;
this.__contextState.colorMaskGreen = true;
this.__contextState.colorMaskBlue = true;
this.__contextState.colorMaskAlpha = true;
}
this.gl.clearColor(red,green,blue,alpha);
}
if((mask & 2) != 0) {
clearMask |= this.gl.DEPTH_BUFFER_BIT;
if(this.__contextState.depthMask != true) {
this.gl.depthMask(true);
this.__contextState.depthMask = true;
}
this.gl.clearDepth(depth);
}
if((mask & 4) != 0) {
clearMask |= this.gl.STENCIL_BUFFER_BIT;
if(this.__contextState.stencilWriteMask != 255) {
this.gl.stencilMask(255);
this.__contextState.stencilWriteMask = 255;
}
this.gl.clearStencil(stencil);
this.__contextState.stencilWriteMask = 255;
}
if(clearMask == 0) {
return;
}
this.__setGLScissorTest(false);
this.gl.clear(clearMask);
}
,configureBackBuffer: function(width,height,antiAlias,enableDepthAndStencil,wantsBestResolution,wantsBestResolutionOnBrowserZoom) {
if(wantsBestResolutionOnBrowserZoom == null) {
wantsBestResolutionOnBrowserZoom = false;
}
if(wantsBestResolution == null) {
wantsBestResolution = false;
}
if(enableDepthAndStencil == null) {
enableDepthAndStencil = true;
}
if(this.__stage3D == null) {
this.backBufferWidth = width;
this.backBufferHeight = height;
this.__backBufferAntiAlias = antiAlias;
this.__state.backBufferEnableDepthAndStencil = enableDepthAndStencil;
this.__backBufferWantsBestResolution = wantsBestResolution;
this.__backBufferWantsBestResolutionOnBrowserZoom = wantsBestResolutionOnBrowserZoom;
} else {
if(this.__backBufferTexture == null || this.backBufferWidth != width || this.backBufferHeight != height) {
if(this.__backBufferTexture != null) {
this.__backBufferTexture.dispose();
}
if(this.__frontBufferTexture != null) {
this.__frontBufferTexture.dispose();
}
this.__backBufferTexture = this.createRectangleTexture(width,height,1,true);
this.__frontBufferTexture = this.createRectangleTexture(width,height,1,true);
if(this.__stage3D.__vertexBuffer == null) {
this.__stage3D.__vertexBuffer = this.createVertexBuffer(4,5);
}
var vertexData = openfl_Vector.toFloatVector(null,null,null,[width,height,0,1,1,0,height,0,0,1,width,0,0,1,0,0,0,0,0,0.0]);
this.__stage3D.__vertexBuffer.uploadFromVector(vertexData,0,20);
if(this.__stage3D.__indexBuffer == null) {
this.__stage3D.__indexBuffer = this.createIndexBuffer(6);
var indexData = openfl_Vector.toIntVector(null,null,null,[0,1,2,2,1,3]);
this.__stage3D.__indexBuffer.uploadFromVector(indexData,0,6);
}
}
this.backBufferWidth = width;
this.backBufferHeight = height;
this.__backBufferAntiAlias = antiAlias;
this.__state.backBufferEnableDepthAndStencil = enableDepthAndStencil;
this.__backBufferWantsBestResolution = wantsBestResolution;
this.__backBufferWantsBestResolutionOnBrowserZoom = wantsBestResolutionOnBrowserZoom;
this.__state.__primaryGLFramebuffer = this.__backBufferTexture.__getGLFramebuffer(enableDepthAndStencil,antiAlias,0);
this.__frontBufferTexture.__getGLFramebuffer(enableDepthAndStencil,antiAlias,0);
}
}
,createCubeTexture: function(size,format,optimizeForRenderToTexture,streamingLevels) {
if(streamingLevels == null) {
streamingLevels = 0;
}
return new openfl_display3D_textures_CubeTexture(this,size,format,optimizeForRenderToTexture,streamingLevels);
}
,createIndexBuffer: function(numIndices,bufferUsage) {
if(bufferUsage == null) {
bufferUsage = 1;
}
return new openfl_display3D_IndexBuffer3D(this,numIndices,bufferUsage);
}
,createProgram: function(format) {
if(format == null) {
format = 0;
}
return new openfl_display3D_Program3D(this,format);
}
,createRectangleTexture: function(width,height,format,optimizeForRenderToTexture) {
return new openfl_display3D_textures_RectangleTexture(this,width,height,openfl_display3D_Context3DTextureFormat.toString(format),optimizeForRenderToTexture);
}
,createTexture: function(width,height,format,optimizeForRenderToTexture,streamingLevels) {
if(streamingLevels == null) {
streamingLevels = 0;
}
return new openfl_display3D_textures_Texture(this,width,height,format,optimizeForRenderToTexture,streamingLevels);
}
,createVertexBuffer: function(numVertices,data32PerVertex,bufferUsage) {
if(bufferUsage == null) {
bufferUsage = 1;
}
return new openfl_display3D_VertexBuffer3D(this,numVertices,data32PerVertex,openfl_display3D_Context3DBufferUsage.toString(bufferUsage));
}
,createVideoTexture: function() {
return new openfl_display3D_textures_VideoTexture(this);
}
,dispose: function(recreate) {
if(recreate == null) {
recreate = true;
}
this.gl = null;
this.__dispose();
}
,drawToBitmapData: function(destination,srcRect,destPoint) {
if(destination == null) {
return;
}
var sourceRect = srcRect != null ? srcRect.__toLimeRectangle() : new lime_math_Rectangle(0,0,this.backBufferWidth,this.backBufferHeight);
var destVector = destPoint != null ? destPoint.__toLimeVector2() : new lime_math_Vector2();
if(this.__stage.context3D == this) {
if(this.__stage.window != null) {
if(this.__stage3D != null) {
var xa = -this.__stage3D.get_x() | 0;
var ya = -this.__stage3D.get_y() | 0;
destVector.x = xa;
destVector.y = ya;
}
var image = this.__stage.window.readPixels();
destination.image.copyPixels(image,sourceRect,destVector);
}
} else if(this.__backBufferTexture != null) {
var cacheRenderToTexture = this.__state.renderToTexture;
this.setRenderToBackBuffer();
this.__flushGLFramebuffer();
this.__flushGLViewport();
var elements = this.backBufferWidth * this.backBufferHeight * 4;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
var this1 = this.gl;
var width = this.backBufferWidth;
var height = this.backBufferHeight;
var format = this.__backBufferTexture.__format;
var type = this.gl.UNSIGNED_BYTE;
var pixels = data;
var dstOffset = null;
if(dstOffset != null) {
this1.readPixels(0,0,width,height,format,type,pixels,dstOffset);
} else {
this1.readPixels(0,0,width,height,format,type,pixels);
}
var image = new lime_graphics_Image(new lime_graphics_ImageBuffer(data,this.backBufferWidth,this.backBufferHeight,32,2));
destination.image.copyPixels(image,sourceRect,destVector);
if(cacheRenderToTexture != null) {
this.setRenderToTexture(cacheRenderToTexture,this.__state.renderToTextureDepthStencil,this.__state.renderToTextureAntiAlias,this.__state.renderToTextureSurfaceSelector);
}
}
}
,drawTriangles: function(indexBuffer,firstIndex,numTriangles) {
if(numTriangles == null) {
numTriangles = -1;
}
if(firstIndex == null) {
firstIndex = 0;
}
if(this.__state.renderToTexture == null) {
if(this.__stage.context3D == this && !this.__stage.__renderer.__cleared) {
this.__stage.__renderer.__clear();
} else if(!this.__cleared) {
this.clear(0,0,0,0,1,0,1);
}
}
this.__flushGL();
if(this.__state.program != null) {
this.__state.program.__flush();
}
var count = numTriangles == -1 ? indexBuffer.__numIndices : numTriangles * 3;
this.__bindGLElementArrayBuffer(indexBuffer.__id);
this.gl.drawElements(this.gl.TRIANGLES,count,this.gl.UNSIGNED_SHORT,firstIndex * 2);
}
,present: function() {
this.setRenderToBackBuffer();
if(this.__stage3D != null && this.__backBufferTexture != null) {
if(!this.__cleared) {
this.clear(0,0,0,0,1,0,1);
}
var cacheBuffer = this.__backBufferTexture;
this.__backBufferTexture = this.__frontBufferTexture;
this.__frontBufferTexture = cacheBuffer;
this.__state.__primaryGLFramebuffer = this.__backBufferTexture.__getGLFramebuffer(this.__state.backBufferEnableDepthAndStencil,this.__backBufferAntiAlias,0);
this.__cleared = false;
}
this.__present = true;
}
,setBlendFactors: function(sourceFactor,destinationFactor) {
this.setBlendFactorsSeparate(sourceFactor,destinationFactor,sourceFactor,destinationFactor);
}
,setBlendFactorsSeparate: function(sourceRGBFactor,destinationRGBFactor,sourceAlphaFactor,destinationAlphaFactor) {
this.__state.blendSourceRGBFactor = sourceRGBFactor;
this.__state.blendDestinationRGBFactor = destinationRGBFactor;
this.__state.blendSourceAlphaFactor = sourceAlphaFactor;
this.__state.blendDestinationAlphaFactor = destinationAlphaFactor;
this.__setGLBlendEquation(this.gl.FUNC_ADD);
}
,setColorMask: function(red,green,blue,alpha) {
this.__state.colorMaskRed = red;
this.__state.colorMaskGreen = green;
this.__state.colorMaskBlue = blue;
this.__state.colorMaskAlpha = alpha;
}
,setCulling: function(triangleFaceToCull) {
this.__state.culling = triangleFaceToCull;
}
,setDepthTest: function(depthMask,passCompareMode) {
this.__state.depthMask = depthMask;
this.__state.depthCompareMode = passCompareMode;
}
,setProgram: function(program) {
this.__state.program = program;
this.__state.shader = null;
if(program != null) {
var _g = 0;
var _g1 = program.__samplerStates.length;
while(_g < _g1) {
var i = _g++;
if(this.__state.samplerStates[i] == null) {
this.__state.samplerStates[i] = program.__samplerStates[i].clone();
} else {
this.__state.samplerStates[i].copyFrom(program.__samplerStates[i]);
}
}
}
}
,setProgramConstantsFromByteArray: function(programType,firstRegister,numRegisters,data,byteArrayOffset) {
if(numRegisters == 0 || this.__state.program == null) {
return;
}
if(!(this.__state.program != null && this.__state.program.__format == 1)) {
if(numRegisters == -1) {
numRegisters = (openfl_utils_ByteArray.get_length(data) >>> 2) - byteArrayOffset;
}
var isVertex = programType == 1;
var dest = isVertex ? this.__vertexConstants : this.__fragmentConstants;
var bytes = openfl_utils_ByteArray.toBytes(data);
var byteOffset = 0;
var len = openfl_utils_ByteArray.get_length(data);
if(byteOffset == null) {
byteOffset = 0;
}
var floatData = byteOffset == null ? new Float32Array(bytes.b.bufferValue) : len == null ? new Float32Array(bytes.b.bufferValue,byteOffset) : new Float32Array(bytes.b.bufferValue,byteOffset,len);
var outOffset = firstRegister * 4;
var inOffset = UInt.toFloat(byteArrayOffset) / UInt.toFloat(4) | 0;
var _g = 0;
var _g1 = numRegisters * 4;
while(_g < _g1) {
var i = _g++;
dest[outOffset + i] = floatData[inOffset + i];
}
if(this.__state.program != null) {
this.__state.program.__markDirty(isVertex,firstRegister,numRegisters);
}
}
}
,setProgramConstantsFromMatrix: function(programType,firstRegister,matrix,transposedMatrix) {
if(transposedMatrix == null) {
transposedMatrix = false;
}
if(this.__state.program != null && this.__state.program.__format == 1) {
this.__flushGLProgram();
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Float32Array(16);
var data = this1;
data[0] = matrix.rawData.get(0);
data[1] = matrix.rawData.get(1);
data[2] = matrix.rawData.get(2);
data[3] = matrix.rawData.get(3);
data[4] = matrix.rawData.get(4);
data[5] = matrix.rawData.get(5);
data[6] = matrix.rawData.get(6);
data[7] = matrix.rawData.get(7);
data[8] = matrix.rawData.get(8);
data[9] = matrix.rawData.get(9);
data[10] = matrix.rawData.get(10);
data[11] = matrix.rawData.get(11);
data[12] = matrix.rawData.get(12);
data[13] = matrix.rawData.get(13);
data[14] = matrix.rawData.get(14);
data[15] = matrix.rawData.get(15);
lime_graphics_WebGLRenderContext.uniformMatrix4fv(this.gl,firstRegister,transposedMatrix,data);
} else {
var isVertex = programType == 1;
var dest = isVertex ? this.__vertexConstants : this.__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(this.__state.program != null) {
this.__state.program.__markDirty(isVertex,firstRegister,4);
}
}
}
,setProgramConstantsFromVector: function(programType,firstRegister,data,numRegisters) {
if(numRegisters == null) {
numRegisters = -1;
}
if(numRegisters == 0) {
return;
}
if(!(this.__state.program != null && this.__state.program.__format == 1)) {
if(numRegisters == -1) {
numRegisters = data.get_length() >> 2;
}
var isVertex = programType == 1;
var dest = isVertex ? this.__vertexConstants : this.__fragmentConstants;
var source = data;
var sourceIndex = 0;
var destIndex = firstRegister * 4;
var _g = 0;
var _g1 = numRegisters;
while(_g < _g1) {
var i = _g++;
dest[destIndex++] = source.get(sourceIndex++);
dest[destIndex++] = source.get(sourceIndex++);
dest[destIndex++] = source.get(sourceIndex++);
dest[destIndex++] = source.get(sourceIndex++);
}
if(this.__state.program != null) {
this.__state.program.__markDirty(isVertex,firstRegister,numRegisters);
}
}
}
,setRenderToBackBuffer: function() {
this.__state.renderToTexture = null;
}
,setRenderToTexture: function(texture,enableDepthAndStencil,antiAlias,surfaceSelector) {
if(surfaceSelector == null) {
surfaceSelector = 0;
}
if(antiAlias == null) {
antiAlias = 0;
}
if(enableDepthAndStencil == null) {
enableDepthAndStencil = false;
}
this.__state.renderToTexture = texture;
this.__state.renderToTextureDepthStencil = enableDepthAndStencil;
this.__state.renderToTextureAntiAlias = antiAlias;
this.__state.renderToTextureSurfaceSelector = surfaceSelector;
}
,setSamplerStateAt: function(sampler,wrap,filter,mipfilter) {
if(this.__state.samplerStates[sampler] == null) {
this.__state.samplerStates[sampler] = new openfl_display__$internal_SamplerState();
}
var state = this.__state.samplerStates[sampler];
state.wrap = wrap;
state.filter = filter;
state.mipfilter = mipfilter;
}
,setScissorRectangle: function(rectangle) {
if(rectangle != null) {
this.__state.scissorEnabled = true;
this.__state.scissorRectangle.copyFrom(rectangle);
} else {
this.__state.scissorEnabled = false;
}
}
,setStencilActions: function(triangleFace,compareMode,actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail) {
if(actionOnDepthPassStencilFail == null) {
actionOnDepthPassStencilFail = 5;
}
if(actionOnDepthFail == null) {
actionOnDepthFail = 5;
}
if(actionOnBothPass == null) {
actionOnBothPass = 5;
}
if(compareMode == null) {
compareMode = 0;
}
if(triangleFace == null) {
triangleFace = 2;
}
this.__state.stencilTriangleFace = triangleFace;
this.__state.stencilCompareMode = compareMode;
this.__state.stencilPass = actionOnBothPass;
this.__state.stencilDepthFail = actionOnDepthFail;
this.__state.stencilFail = actionOnDepthPassStencilFail;
}
,setStencilReferenceValue: function(referenceValue,readMask,writeMask) {
if(writeMask == null) {
writeMask = 255;
}
if(readMask == null) {
readMask = 255;
}
this.__state.stencilReferenceValue = referenceValue;
this.__state.stencilReadMask = readMask;
this.__state.stencilWriteMask = writeMask;
}
,setTextureAt: function(sampler,texture) {
this.__state.textures[sampler] = texture;
}
,setVertexBufferAt: function(index,buffer,bufferOffset,format) {
if(format == null) {
format = 4;
}
if(bufferOffset == null) {
bufferOffset = 0;
}
if(buffer == null) {
this.gl.disableVertexAttribArray(index);
this.__bindGLArrayBuffer(null);
return;
}
this.__bindGLArrayBuffer(buffer.__id);
this.gl.enableVertexAttribArray(index);
var byteOffset = bufferOffset * 4;
switch(format) {
case 0:
this.gl.vertexAttribPointer(index,4,this.gl.UNSIGNED_BYTE,true,buffer.__stride,byteOffset);
break;
case 1:
this.gl.vertexAttribPointer(index,1,this.gl.FLOAT,false,buffer.__stride,byteOffset);
break;
case 2:
this.gl.vertexAttribPointer(index,2,this.gl.FLOAT,false,buffer.__stride,byteOffset);
break;
case 3:
this.gl.vertexAttribPointer(index,3,this.gl.FLOAT,false,buffer.__stride,byteOffset);
break;
case 4:
this.gl.vertexAttribPointer(index,4,this.gl.FLOAT,false,buffer.__stride,byteOffset);
break;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
}
,__bindGLArrayBuffer: function(buffer) {
if(this.__contextState.__currentGLArrayBuffer != buffer) {
this.gl.bindBuffer(this.gl.ARRAY_BUFFER,buffer);
this.__contextState.__currentGLArrayBuffer = buffer;
}
}
,__bindGLElementArrayBuffer: function(buffer) {
if(this.__contextState.__currentGLElementArrayBuffer != buffer) {
this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,buffer);
this.__contextState.__currentGLElementArrayBuffer = buffer;
}
}
,__bindGLFramebuffer: function(framebuffer) {
if(this.__contextState.__currentGLFramebuffer != framebuffer) {
this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,framebuffer);
this.__contextState.__currentGLFramebuffer = framebuffer;
}
}
,__bindGLTexture2D: function(texture) {
this.gl.bindTexture(this.gl.TEXTURE_2D,texture);
this.__contextState.__currentGLTexture2D = texture;
}
,__bindGLTextureCubeMap: function(texture) {
this.gl.bindTexture(this.gl.TEXTURE_CUBE_MAP,texture);
this.__contextState.__currentGLTextureCubeMap = texture;
}
,__dispose: function() {
this.driverInfo += " (Disposed)";
if(this.__stage3D != null) {
this.__stage3D.__indexBuffer = null;
this.__stage3D.__vertexBuffer = null;
this.__stage3D.context3D = null;
this.__stage3D = null;
}
this.__backBufferTexture = null;
this.__context = null;
this.__renderStage3DProgram = null;
this.__fragmentConstants = null;
this.__frontBufferTexture = null;
this.__positionScale = null;
this.__present = false;
this.__quadIndexBuffer = null;
this.__stage = null;
this.__vertexConstants = null;
}
,__drawTriangles: function(firstIndex,count) {
if(firstIndex == null) {
firstIndex = 0;
}
if(this.__state.renderToTexture == null) {
if(this.__stage.context3D == this && !this.__stage.__renderer.__cleared) {
this.__stage.__renderer.__clear();
} else if(!this.__cleared) {
this.clear(0,0,0,0,1,0,1);
}
}
this.__flushGL();
if(this.__state.program != null) {
this.__state.program.__flush();
}
this.gl.drawArrays(this.gl.TRIANGLES,firstIndex,count);
}
,__flushGL: function() {
this.__flushGLProgram();
this.__flushGLFramebuffer();
this.__flushGLViewport();
this.__flushGLBlend();
if(this.__contextState.colorMaskRed != this.__state.colorMaskRed || this.__contextState.colorMaskGreen != this.__state.colorMaskGreen || this.__contextState.colorMaskBlue != this.__state.colorMaskBlue || this.__contextState.colorMaskAlpha != this.__state.colorMaskAlpha) {
this.gl.colorMask(this.__state.colorMaskRed,this.__state.colorMaskGreen,this.__state.colorMaskBlue,this.__state.colorMaskAlpha);
this.__contextState.colorMaskRed = this.__state.colorMaskRed;
this.__contextState.colorMaskGreen = this.__state.colorMaskGreen;
this.__contextState.colorMaskBlue = this.__state.colorMaskBlue;
this.__contextState.colorMaskAlpha = this.__state.colorMaskAlpha;
}
this.__flushGLCulling();
this.__flushGLDepth();
this.__flushGLScissor();
this.__flushGLStencil();
this.__flushGLTextures();
}
,__flushGLBlend: function() {
if(this.__contextState.blendDestinationRGBFactor != this.__state.blendDestinationRGBFactor || this.__contextState.blendSourceRGBFactor != this.__state.blendSourceRGBFactor || this.__contextState.blendDestinationAlphaFactor != this.__state.blendDestinationAlphaFactor || this.__contextState.blendSourceAlphaFactor != this.__state.blendSourceAlphaFactor) {
this.__setGLBlend(true);
if(this.__state.blendDestinationRGBFactor == this.__state.blendDestinationAlphaFactor && this.__state.blendSourceRGBFactor == this.__state.blendSourceAlphaFactor) {
this.gl.blendFunc(this.__getGLBlend(this.__state.blendSourceRGBFactor),this.__getGLBlend(this.__state.blendDestinationRGBFactor));
} else {
this.gl.blendFuncSeparate(this.__getGLBlend(this.__state.blendSourceRGBFactor),this.__getGLBlend(this.__state.blendDestinationRGBFactor),this.__getGLBlend(this.__state.blendSourceAlphaFactor),this.__getGLBlend(this.__state.blendDestinationAlphaFactor));
}
this.__contextState.blendDestinationRGBFactor = this.__state.blendDestinationRGBFactor;
this.__contextState.blendSourceRGBFactor = this.__state.blendSourceRGBFactor;
this.__contextState.blendDestinationAlphaFactor = this.__state.blendDestinationAlphaFactor;
this.__contextState.blendSourceAlphaFactor = this.__state.blendSourceAlphaFactor;
}
}
,__flushGLColor: function() {
if(this.__contextState.colorMaskRed != this.__state.colorMaskRed || this.__contextState.colorMaskGreen != this.__state.colorMaskGreen || this.__contextState.colorMaskBlue != this.__state.colorMaskBlue || this.__contextState.colorMaskAlpha != this.__state.colorMaskAlpha) {
this.gl.colorMask(this.__state.colorMaskRed,this.__state.colorMaskGreen,this.__state.colorMaskBlue,this.__state.colorMaskAlpha);
this.__contextState.colorMaskRed = this.__state.colorMaskRed;
this.__contextState.colorMaskGreen = this.__state.colorMaskGreen;
this.__contextState.colorMaskBlue = this.__state.colorMaskBlue;
this.__contextState.colorMaskAlpha = this.__state.colorMaskAlpha;
}
}
,__flushGLCulling: function() {
if(this.__contextState.culling != this.__state.culling) {
if(this.__state.culling == 3) {
this.__setGLCullFace(false);
} else {
this.__setGLCullFace(true);
switch(this.__state.culling) {
case 0:
this.gl.cullFace(this.gl.BACK);
break;
case 1:
this.gl.cullFace(this.gl.FRONT);
break;
case 2:
this.gl.cullFace(this.gl.FRONT_AND_BACK);
break;
case 3:
break;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
}
this.__contextState.culling = this.__state.culling;
}
}
,__flushGLDepth: function() {
var depthMask = this.__state.depthMask && (this.__state.renderToTexture != null ? this.__state.renderToTextureDepthStencil : this.__state.backBufferEnableDepthAndStencil);
if(this.__contextState.depthMask != depthMask) {
this.gl.depthMask(depthMask);
this.__contextState.depthMask = depthMask;
}
if(this.__contextState.depthCompareMode != this.__state.depthCompareMode) {
switch(this.__state.depthCompareMode) {
case 0:
this.gl.depthFunc(this.gl.ALWAYS);
break;
case 1:
this.gl.depthFunc(this.gl.EQUAL);
break;
case 2:
this.gl.depthFunc(this.gl.GREATER);
break;
case 3:
this.gl.depthFunc(this.gl.GEQUAL);
break;
case 4:
this.gl.depthFunc(this.gl.LESS);
break;
case 5:
this.gl.depthFunc(this.gl.LEQUAL);
break;
case 6:
this.gl.depthFunc(this.gl.NEVER);
break;
case 7:
this.gl.depthFunc(this.gl.NOTEQUAL);
break;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
this.__contextState.depthCompareMode = this.__state.depthCompareMode;
}
}
,__flushGLFramebuffer: function() {
if(this.__state.renderToTexture != null) {
if(this.__contextState.renderToTexture != this.__state.renderToTexture || this.__contextState.renderToTextureSurfaceSelector != this.__state.renderToTextureSurfaceSelector) {
var framebuffer = this.__state.renderToTexture.__getGLFramebuffer(this.__state.renderToTextureDepthStencil,this.__state.renderToTextureAntiAlias,this.__state.renderToTextureSurfaceSelector);
this.__bindGLFramebuffer(framebuffer);
this.__contextState.renderToTexture = this.__state.renderToTexture;
this.__contextState.renderToTextureAntiAlias = this.__state.renderToTextureAntiAlias;
this.__contextState.renderToTextureDepthStencil = this.__state.renderToTextureDepthStencil;
this.__contextState.renderToTextureSurfaceSelector = this.__state.renderToTextureSurfaceSelector;
}
this.__setGLDepthTest(this.__state.renderToTextureDepthStencil);
this.__setGLStencilTest(this.__state.renderToTextureDepthStencil);
this.__setGLFrontFace(true);
} else {
if(this.__stage == null && this.backBufferWidth == 0 && this.backBufferHeight == 0) {
throw haxe_Exception.thrown(new openfl_errors_Error("Context3D backbuffer has not been configured"));
}
if(this.__contextState.renderToTexture != null || this.__contextState.__currentGLFramebuffer != this.__state.__primaryGLFramebuffer || this.__contextState.backBufferEnableDepthAndStencil != this.__state.backBufferEnableDepthAndStencil) {
this.__bindGLFramebuffer(this.__state.__primaryGLFramebuffer);
this.__contextState.renderToTexture = null;
this.__contextState.backBufferEnableDepthAndStencil = this.__state.backBufferEnableDepthAndStencil;
}
this.__setGLDepthTest(this.__state.backBufferEnableDepthAndStencil);
this.__setGLStencilTest(this.__state.backBufferEnableDepthAndStencil);
this.__setGLFrontFace(this.__stage.context3D != this);
}
}
,__flushGLProgram: function() {
var shader = this.__state.shader;
var program = this.__state.program;
if(this.__contextState.shader != shader) {
if(this.__contextState.shader != null) {
this.__contextState.shader.__disable();
}
if(shader != null) {
shader.__enable();
}
this.__contextState.shader = shader;
}
if(this.__contextState.program != program) {
if(this.__contextState.program != null) {
this.__contextState.program.__disable();
}
if(program != null) {
program.__enable();
}
this.__contextState.program = program;
}
if(program != null && program.__format == 0) {
this.__positionScale[1] = this.__stage.context3D == this && this.__state.renderToTexture == null ? 1.0 : -1.0;
program.__setPositionScale(this.__positionScale);
}
}
,__flushGLScissor: function() {
if(!this.__state.scissorEnabled) {
if(this.__contextState.scissorEnabled != this.__state.scissorEnabled) {
this.__setGLScissorTest(false);
this.__contextState.scissorEnabled = false;
}
} else {
this.__setGLScissorTest(true);
this.__contextState.scissorEnabled = true;
var scissorX = this.__state.scissorRectangle.x | 0;
var scissorY = this.__state.scissorRectangle.y | 0;
var scissorWidth = this.__state.scissorRectangle.width | 0;
var scissorHeight = this.__state.scissorRectangle.height | 0;
if(this.__state.renderToTexture == null && this.__stage3D == null) {
var contextHeight = this.__stage.window.__height * this.__stage.window.__scale | 0;
scissorY = contextHeight - (this.__state.scissorRectangle.height | 0) - scissorY;
}
if(this.__contextState.scissorRectangle.x != scissorX || this.__contextState.scissorRectangle.y != scissorY || this.__contextState.scissorRectangle.width != scissorWidth || this.__contextState.scissorRectangle.height != scissorHeight) {
this.gl.scissor(scissorX,scissorY,scissorWidth,scissorHeight);
this.__contextState.scissorRectangle.setTo(scissorX,scissorY,scissorWidth,scissorHeight);
}
}
}
,__flushGLStencil: function() {
if(this.__contextState.stencilTriangleFace != this.__state.stencilTriangleFace || this.__contextState.stencilPass != this.__state.stencilPass || this.__contextState.stencilDepthFail != this.__state.stencilDepthFail || this.__contextState.stencilFail != this.__state.stencilFail) {
this.gl.stencilOpSeparate(this.__getGLTriangleFace(this.__state.stencilTriangleFace),this.__getGLStencilAction(this.__state.stencilFail),this.__getGLStencilAction(this.__state.stencilDepthFail),this.__getGLStencilAction(this.__state.stencilPass));
this.__contextState.stencilTriangleFace = this.__state.stencilTriangleFace;
this.__contextState.stencilPass = this.__state.stencilPass;
this.__contextState.stencilDepthFail = this.__state.stencilDepthFail;
this.__contextState.stencilFail = this.__state.stencilFail;
}
if(this.__contextState.stencilWriteMask != this.__state.stencilWriteMask) {
this.gl.stencilMask(this.__state.stencilWriteMask);
this.__contextState.stencilWriteMask = this.__state.stencilWriteMask;
}
if(this.__contextState.stencilCompareMode != this.__state.stencilCompareMode || this.__contextState.stencilReferenceValue != this.__state.stencilReferenceValue || this.__contextState.stencilReadMask != this.__state.stencilReadMask) {
this.gl.stencilFunc(this.__getGLCompareMode(this.__state.stencilCompareMode),this.__state.stencilReferenceValue,this.__state.stencilReadMask);
this.__contextState.stencilCompareMode = this.__state.stencilCompareMode;
this.__contextState.stencilReferenceValue = this.__state.stencilReferenceValue;
this.__contextState.stencilReadMask = this.__state.stencilReadMask;
}
}
,__flushGLTextures: function() {
var sampler = 0;
var texture;
var samplerState;
var _g = 0;
var _g1 = this.__state.textures.length;
while(_g < _g1) {
var i = _g++;
texture = this.__state.textures[i];
samplerState = this.__state.samplerStates[i];
if(samplerState == null) {
this.__state.samplerStates[i] = new openfl_display__$internal_SamplerState();
samplerState = this.__state.samplerStates[i];
}
this.gl.activeTexture(this.gl.TEXTURE0 + sampler);
if(texture != null) {
if(texture.__textureTarget == this.gl.TEXTURE_2D) {
this.__bindGLTexture2D(texture.__getTexture());
} else {
this.__bindGLTextureCubeMap(texture.__getTexture());
}
this.__contextState.textures[i] = texture;
texture.__setSamplerState(samplerState);
} else {
this.__bindGLTexture2D(null);
}
if(this.__state.program != null && this.__state.program.__format == 0 && samplerState.textureAlpha) {
this.gl.activeTexture(this.gl.TEXTURE0 + sampler + 4);
if(texture != null && texture.__alphaTexture != null) {
if(texture.__alphaTexture.__textureTarget == this.gl.TEXTURE_2D) {
this.__bindGLTexture2D(texture.__alphaTexture.__getTexture());
} else {
this.__bindGLTextureCubeMap(texture.__alphaTexture.__getTexture());
}
texture.__alphaTexture.__setSamplerState(samplerState);
this.gl.uniform1i(this.__state.program.__agalAlphaSamplerEnabled[sampler].location,1);
} else {
this.__bindGLTexture2D(null);
if(this.__state.program.__agalAlphaSamplerEnabled[sampler] != null) {
this.gl.uniform1i(this.__state.program.__agalAlphaSamplerEnabled[sampler].location,0);
}
}
}
++sampler;
}
}
,__flushGLViewport: function() {
if(this.__state.renderToTexture == null) {
if(this.__stage.context3D == this) {
var x = this.__stage3D == null ? 0 : this.__stage3D.get_x() | 0;
var y = this.__stage.window.__height * this.__stage.window.__scale - this.backBufferHeight - (this.__stage3D == null ? 0 : this.__stage3D.get_y()) | 0;
this.gl.viewport(x,y,this.backBufferWidth,this.backBufferHeight);
} else {
this.gl.viewport(0,0,this.backBufferWidth,this.backBufferHeight);
}
} else {
var width = 0;
var height = 0;
if(((this.__state.renderToTexture) instanceof openfl_display3D_textures_Texture)) {
var texture2D = this.__state.renderToTexture;
width = texture2D.__width;
height = texture2D.__height;
} else if(((this.__state.renderToTexture) instanceof openfl_display3D_textures_RectangleTexture)) {
var rectTexture = this.__state.renderToTexture;
width = rectTexture.__width;
height = rectTexture.__height;
} else if(((this.__state.renderToTexture) instanceof openfl_display3D_textures_CubeTexture)) {
var cubeTexture = this.__state.renderToTexture;
width = cubeTexture.__size;
height = cubeTexture.__size;
}
this.gl.viewport(0,0,width,height);
}
}
,__getGLBlend: function(blendFactor) {
switch(blendFactor) {
case 0:
return this.gl.DST_ALPHA;
case 1:
return this.gl.DST_COLOR;
case 2:
return this.gl.ONE;
case 3:
return this.gl.ONE_MINUS_DST_ALPHA;
case 4:
return this.gl.ONE_MINUS_DST_COLOR;
case 5:
return this.gl.ONE_MINUS_SRC_ALPHA;
case 6:
return this.gl.ONE_MINUS_SRC_COLOR;
case 7:
return this.gl.SRC_ALPHA;
case 8:
return this.gl.SRC_COLOR;
case 9:
return this.gl.ZERO;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
}
,__getGLCompareMode: function(mode) {
switch(mode) {
case 0:
return this.gl.ALWAYS;
case 1:
return this.gl.EQUAL;
case 2:
return this.gl.GREATER;
case 3:
return this.gl.GEQUAL;
case 4:
return this.gl.LESS;
case 5:
return this.gl.LEQUAL;
case 6:
return this.gl.NEVER;
case 7:
return this.gl.NOTEQUAL;
default:
return this.gl.EQUAL;
}
}
,__getGLStencilAction: function(action) {
switch(action) {
case 0:
return this.gl.DECR;
case 1:
return this.gl.DECR_WRAP;
case 2:
return this.gl.INCR;
case 3:
return this.gl.INCR_WRAP;
case 4:
return this.gl.INVERT;
case 5:
return this.gl.KEEP;
case 6:
return this.gl.REPLACE;
case 7:
return this.gl.ZERO;
default:
return this.gl.KEEP;
}
}
,__getGLTriangleFace: function(face) {
switch(face) {
case 0:
return this.gl.BACK;
case 1:
return this.gl.FRONT;
case 2:
return this.gl.FRONT_AND_BACK;
case 3:
return this.gl.NONE;
default:
return this.gl.FRONT_AND_BACK;
}
}
,__renderStage3D: function(stage3D) {
var context = stage3D.context3D;
if(context != null && context != this && context.__frontBufferTexture != null && stage3D.visible && this.backBufferHeight > 0 && this.backBufferWidth > 0) {
if(this.__renderStage3DProgram == null) {
var vertexAssembler = new openfl_utils_AGALMiniAssembler();
vertexAssembler.assemble(openfl_display3D_Context3DProgramType.toString(1),"m44 op, va0, vc0\n" + "mov v0, va1");
var fragmentAssembler = new openfl_utils_AGALMiniAssembler();
fragmentAssembler.assemble(openfl_display3D_Context3DProgramType.toString(0),"tex ft1, v0, fs0 <2d,nearest,nomip>\n" + "mov oc, ft1");
this.__renderStage3DProgram = this.createProgram();
this.__renderStage3DProgram.upload(vertexAssembler.agalcode,fragmentAssembler.agalcode);
}
this.setProgram(this.__renderStage3DProgram);
this.setBlendFactors(2,9);
this.setColorMask(true,true,true,true);
this.setCulling(3);
this.setDepthTest(false,0);
this.setStencilActions();
this.setStencilReferenceValue(0,0,0);
this.setScissorRectangle(null);
this.setTextureAt(0,context.__frontBufferTexture);
this.setVertexBufferAt(0,stage3D.__vertexBuffer,0,3);
this.setVertexBufferAt(1,stage3D.__vertexBuffer,3,2);
this.setProgramConstantsFromMatrix(1,0,stage3D.__renderTransform,true);
this.drawTriangles(stage3D.__indexBuffer);
this.__present = true;
}
}
,__setGLBlend: function(enable) {
if(this.__contextState.__enableGLBlend != enable) {
if(enable) {
this.gl.enable(this.gl.BLEND);
} else {
this.gl.disable(this.gl.BLEND);
}
this.__contextState.__enableGLBlend = enable;
}
}
,__setGLBlendEquation: function(value) {
if(this.__contextState.__glBlendEquation != value) {
this.gl.blendEquation(value);
this.__contextState.__glBlendEquation = value;
}
}
,__setGLCullFace: function(enable) {
if(this.__contextState.__enableGLCullFace != enable) {
if(enable) {
this.gl.enable(this.gl.CULL_FACE);
} else {
this.gl.disable(this.gl.CULL_FACE);
}
this.__contextState.__enableGLCullFace = enable;
}
}
,__setGLDepthTest: function(enable) {
if(this.__contextState.__enableGLDepthTest != enable) {
if(enable) {
this.gl.enable(this.gl.DEPTH_TEST);
} else {
this.gl.disable(this.gl.DEPTH_TEST);
}
this.__contextState.__enableGLDepthTest = enable;
}
}
,__setGLFrontFace: function(counterClockWise) {
if(this.__contextState.__frontFaceGLCCW != counterClockWise) {
this.gl.frontFace(counterClockWise ? this.gl.CCW : this.gl.CW);
this.__contextState.__frontFaceGLCCW = counterClockWise;
}
}
,__setGLScissorTest: function(enable) {
if(this.__contextState.__enableGLScissorTest != enable) {
if(enable) {
this.gl.enable(this.gl.SCISSOR_TEST);
} else {
this.gl.disable(this.gl.SCISSOR_TEST);
}
this.__contextState.__enableGLScissorTest = enable;
}
}
,__setGLStencilTest: function(enable) {
if(this.__contextState.__enableGLStencilTest != enable) {
if(enable) {
this.gl.enable(this.gl.STENCIL_TEST);
} else {
this.gl.disable(this.gl.STENCIL_TEST);
}
this.__contextState.__enableGLStencilTest = enable;
}
}
,get_enableErrorChecking: function() {
return this.__enableErrorChecking;
}
,set_enableErrorChecking: function(value) {
return this.__enableErrorChecking = value;
}
,get_totalGPUMemory: function() {
if(openfl_display3D_Context3D.__glMemoryCurrentAvailable != -1) {
var current = this.gl.getParameter(openfl_display3D_Context3D.__glMemoryCurrentAvailable);
var total = this.gl.getParameter(openfl_display3D_Context3D.__glMemoryTotalAvailable);
if(total > 0) {
return (total - current) * 1024;
}
}
return 0;
}
,__class__: openfl_display3D_Context3D
,__properties__: {get_totalGPUMemory:"get_totalGPUMemory",set_enableErrorChecking:"set_enableErrorChecking",get_enableErrorChecking:"get_enableErrorChecking"}
});
var openfl_display3D_Context3DBlendFactor = {};
openfl_display3D_Context3DBlendFactor.fromString = function(value) {
switch(value) {
case "destinationAlpha":
return 0;
case "destinationColor":
return 1;
case "one":
return 2;
case "oneMinusDestinationAlpha":
return 3;
case "oneMinusDestinationColor":
return 4;
case "oneMinusSourceAlpha":
return 5;
case "oneMinusSourceColor":
return 6;
case "sourceAlpha":
return 7;
case "sourceColor":
return 8;
case "zero":
return 9;
default:
return null;
}
};
openfl_display3D_Context3DBlendFactor.toString = function(this1) {
switch(this1) {
case 0:
return "destinationAlpha";
case 1:
return "destinationColor";
case 2:
return "one";
case 3:
return "oneMinusDestinationAlpha";
case 4:
return "oneMinusDestinationColor";
case 5:
return "oneMinusSourceAlpha";
case 6:
return "oneMinusSourceColor";
case 7:
return "sourceAlpha";
case 8:
return "sourceColor";
case 9:
return "zero";
default:
return null;
}
};
var openfl_display3D_Context3DBufferUsage = {};
openfl_display3D_Context3DBufferUsage.fromString = function(value) {
switch(value) {
case "dynamicDraw":
return 0;
case "staticDraw":
return 1;
default:
return null;
}
};
openfl_display3D_Context3DBufferUsage.toString = function(this1) {
switch(this1) {
case 0:
return "dynamicDraw";
case 1:
return "staticDraw";
default:
return null;
}
};
var openfl_display3D_Context3DCompareMode = {};
openfl_display3D_Context3DCompareMode.fromString = function(value) {
switch(value) {
case "always":
return 0;
case "equal":
return 1;
case "greater":
return 2;
case "greaterEqual":
return 3;
case "less":
return 4;
case "lessEqual":
return 5;
case "never":
return 6;
case "notEqual":
return 7;
default:
return null;
}
};
openfl_display3D_Context3DCompareMode.toString = function(this1) {
switch(this1) {
case 0:
return "always";
case 1:
return "equal";
case 2:
return "greater";
case 3:
return "greaterEqual";
case 4:
return "less";
case 5:
return "lessEqual";
case 6:
return "never";
case 7:
return "notEqual";
default:
return null;
}
};
var openfl_display3D_Context3DMipFilter = {};
openfl_display3D_Context3DMipFilter.fromString = function(value) {
switch(value) {
case "miplinear":
return 0;
case "mipnearest":
return 1;
case "mipnone":
return 2;
default:
return null;
}
};
openfl_display3D_Context3DMipFilter.toString = function(this1) {
switch(this1) {
case 0:
return "miplinear";
case 1:
return "mipnearest";
case 2:
return "mipnone";
default:
return null;
}
};
var openfl_display3D_Context3DProfile = {};
openfl_display3D_Context3DProfile.fromString = function(value) {
switch(value) {
case "baseline":
return 0;
case "baselineConstrained":
return 1;
case "baselineExtended":
return 2;
case "standard":
return 3;
case "standardConstrained":
return 4;
case "standardExtended":
return 5;
default:
return null;
}
};
openfl_display3D_Context3DProfile.toString = function(this1) {
switch(this1) {
case 0:
return "baseline";
case 1:
return "baselineConstrained";
case 2:
return "baselineExtended";
case 3:
return "standard";
case 4:
return "standardConstrained";
case 5:
return "standardExtended";
default:
return null;
}
};
var openfl_display3D_Context3DProgramFormat = {};
openfl_display3D_Context3DProgramFormat.fromString = function(value) {
switch(value) {
case "agal":
return 0;
case "glsl":
return 1;
default:
return null;
}
};
openfl_display3D_Context3DProgramFormat.toString = function(this1) {
switch(this1) {
case 0:
return "agal";
case 1:
return "glsl";
default:
return null;
}
};
var openfl_display3D_Context3DProgramType = {};
openfl_display3D_Context3DProgramType.fromString = function(value) {
switch(value) {
case "fragment":
return 0;
case "vertex":
return 1;
default:
return null;
}
};
openfl_display3D_Context3DProgramType.toString = function(this1) {
switch(this1) {
case 0:
return "fragment";
case 1:
return "vertex";
default:
return null;
}
};
var openfl_display3D_Context3DRenderMode = {};
openfl_display3D_Context3DRenderMode.fromString = function(value) {
switch(value) {
case "auto":
return 0;
case "software":
return 1;
default:
return null;
}
};
openfl_display3D_Context3DRenderMode.toString = function(this1) {
switch(this1) {
case 0:
return "auto";
case 1:
return "software";
default:
return null;
}
};
var openfl_display3D_Context3DStencilAction = {};
openfl_display3D_Context3DStencilAction.fromString = function(value) {
switch(value) {
case "decrementSaturate":
return 0;
case "decrementWrap":
return 1;
case "incrementSaturate":
return 2;
case "incrementWrap":
return 3;
case "invert":
return 4;
case "keep":
return 5;
case "set":
return 6;
case "zero":
return 7;
default:
return null;
}
};
openfl_display3D_Context3DStencilAction.toString = function(this1) {
switch(this1) {
case 0:
return "decrementSaturate";
case 1:
return "decrementWrap";
case 2:
return "incrementSaturate";
case 3:
return "incrementWrap";
case 4:
return "invert";
case 5:
return "keep";
case 6:
return "set";
case 7:
return "zero";
default:
return null;
}
};
var openfl_display3D_Context3DTextureFilter = {};
openfl_display3D_Context3DTextureFilter.fromString = function(value) {
switch(value) {
case "anisotropic16x":
return 0;
case "anisotropic2x":
return 1;
case "anisotropic4x":
return 2;
case "anisotropic8x":
return 3;
case "linear":
return 4;
case "nearest":
return 5;
default:
return null;
}
};
openfl_display3D_Context3DTextureFilter.toString = function(this1) {
switch(this1) {
case 0:
return "anisotropic16x";
case 1:
return "anisotropic2x";
case 2:
return "anisotropic4x";
case 3:
return "anisotropic8x";
case 4:
return "linear";
case 5:
return "nearest";
default:
return null;
}
};
var openfl_display3D_Context3DTextureFormat = {};
openfl_display3D_Context3DTextureFormat.fromString = function(value) {
switch(value) {
case "bgrPacked565":
return 0;
case "bgra":
return 1;
case "bgraPacked4444":
return 2;
case "compressed":
return 3;
case "compressedAlpha":
return 4;
case "rgbaHalfFloat":
return 5;
default:
return null;
}
};
openfl_display3D_Context3DTextureFormat.toString = function(this1) {
switch(this1) {
case 0:
return "bgrPacked565";
case 1:
return "bgra";
case 2:
return "bgraPacked4444";
case 3:
return "compressed";
case 4:
return "compressedAlpha";
case 5:
return "rgbaHalfFloat";
default:
return null;
}
};
var openfl_display3D_Context3DTriangleFace = {};
openfl_display3D_Context3DTriangleFace.fromString = function(value) {
switch(value) {
case "back":
return 0;
case "front":
return 1;
case "frontAndBack":
return 2;
case "none":
return 3;
default:
return null;
}
};
openfl_display3D_Context3DTriangleFace.toString = function(this1) {
switch(this1) {
case 0:
return "back";
case 1:
return "front";
case 2:
return "frontAndBack";
case 3:
return "none";
default:
return null;
}
};
var openfl_display3D_Context3DVertexBufferFormat = {};
openfl_display3D_Context3DVertexBufferFormat.fromString = function(value) {
switch(value) {
case "bytes4":
return 0;
case "float1":
return 1;
case "float2":
return 2;
case "float3":
return 3;
case "float4":
return 4;
default:
return null;
}
};
openfl_display3D_Context3DVertexBufferFormat.toString = function(this1) {
switch(this1) {
case 0:
return "bytes4";
case 1:
return "float1";
case 2:
return "float2";
case 3:
return "float3";
case 4:
return "float4";
default:
return null;
}
};
var openfl_display3D_Context3DWrapMode = {};
openfl_display3D_Context3DWrapMode.fromString = function(value) {
switch(value) {
case "clamp":
return 0;
case "clamp_u_repeat_v":
return 1;
case "repeat":
return 2;
case "repeat_u_clamp_v":
return 3;
default:
return null;
}
};
openfl_display3D_Context3DWrapMode.toString = function(this1) {
switch(this1) {
case 0:
return "clamp";
case 1:
return "clamp_u_repeat_v";
case 2:
return "repeat";
case 3:
return "repeat_u_clamp_v";
default:
return null;
}
};
var openfl_display3D_IndexBuffer3D = function(context3D,numIndices,bufferUsage) {
this.__context = context3D;
this.__numIndices = numIndices;
var gl = this.__context.gl;
this.__id = gl.createBuffer();
this.__usage = bufferUsage == 0 ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW;
};
$hxClasses["openfl.display3D.IndexBuffer3D"] = openfl_display3D_IndexBuffer3D;
openfl_display3D_IndexBuffer3D.__name__ = "openfl.display3D.IndexBuffer3D";
openfl_display3D_IndexBuffer3D.prototype = {
__context: null
,__id: null
,__memoryUsage: null
,__numIndices: null
,__tempUInt16Array: null
,__usage: null
,dispose: function() {
var gl = this.__context.gl;
gl.deleteBuffer(this.__id);
}
,uploadFromByteArray: function(data,byteArrayOffset,startOffset,count) {
var offset = byteArrayOffset + startOffset * 2;
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = openfl_utils_ByteArray.toArrayBuffer(data);
var byteoffset = offset;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint16Array(elements);
} else if(array != null) {
this1 = new Uint16Array(array);
} else if(vector != null) {
this1 = new Uint16Array(vector.__array);
} else if(view != null) {
this1 = new Uint16Array(view);
} else if(buffer != null) {
if(count == null) {
this1 = new Uint16Array(buffer,byteoffset);
} else {
this1 = new Uint16Array(buffer,byteoffset,count);
}
} else {
this1 = null;
}
this.uploadFromTypedArray(this1);
}
,uploadFromTypedArray: function(data,byteLength) {
if(byteLength == null) {
byteLength = -1;
}
if(data == null) {
return;
}
var gl = this.__context.gl;
this.__context.__bindGLElementArrayBuffer(this.__id);
lime_graphics_WebGLRenderContext.bufferData(gl,gl.ELEMENT_ARRAY_BUFFER,data,this.__usage);
}
,uploadFromVector: function(data,startOffset,count) {
if(data == null) {
return;
}
var gl = this.__context.gl;
var length = startOffset + count;
var existingUInt16Array = this.__tempUInt16Array;
if(this.__tempUInt16Array == null || this.__tempUInt16Array.length < count) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(count != null) {
this1 = new Uint16Array(count);
} else if(array != null) {
this1 = new Uint16Array(array);
} else if(vector != null) {
this1 = new Uint16Array(vector.__array);
} else if(view != null) {
this1 = new Uint16Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint16Array(buffer,0);
} else {
this1 = new Uint16Array(buffer,0,len);
}
} else {
this1 = null;
}
this.__tempUInt16Array = this1;
if(existingUInt16Array != null) {
this.__tempUInt16Array.set(existingUInt16Array);
}
}
var _g = startOffset;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
this.__tempUInt16Array[i - startOffset] = data.get(i);
}
this.uploadFromTypedArray(this.__tempUInt16Array);
}
,__class__: openfl_display3D_IndexBuffer3D
};
var openfl_display3D_Program3D = function(context3D,format) {
this.__context = context3D;
this.__format = format;
if(this.__format == 0) {
this.__agalSamplerUsageMask = 0;
this.__agalUniforms = new haxe_ds_List();
this.__agalSamplerUniforms = new haxe_ds_List();
this.__agalAlphaSamplerUniforms = new haxe_ds_List();
this.__agalAlphaSamplerEnabled = [];
} else {
this.__glslAttribNames = [];
this.__glslAttribTypes = [];
this.__glslSamplerNames = [];
this.__glslUniformLocations = [];
this.__glslUniformNames = [];
this.__glslUniformTypes = [];
}
this.__samplerStates = [];
};
$hxClasses["openfl.display3D.Program3D"] = openfl_display3D_Program3D;
openfl_display3D_Program3D.__name__ = "openfl.display3D.Program3D";
openfl_display3D_Program3D.prototype = {
__agalAlphaSamplerEnabled: null
,__agalAlphaSamplerUniforms: null
,__agalFragmentUniformMap: null
,__agalPositionScale: null
,__agalSamplerUniforms: null
,__agalSamplerUsageMask: null
,__agalUniforms: null
,__agalVertexUniformMap: null
,__context: null
,__format: null
,__glFragmentShader: null
,__glFragmentSource: null
,__glProgram: null
,__glslAttribNames: null
,__glslAttribTypes: null
,__glslSamplerNames: null
,__glslUniformLocations: null
,__glslUniformNames: null
,__glslUniformTypes: null
,__glVertexShader: null
,__glVertexSource: null
,__samplerStates: null
,dispose: function() {
this.__deleteShaders();
}
,getAttributeIndex: function(name) {
if(this.__format == 0) {
if(StringTools.startsWith(name,"va")) {
return Std.parseInt(name.substring(2));
} else {
return -1;
}
} else {
var _g = 0;
var _g1 = this.__glslAttribNames.length;
while(_g < _g1) {
var i = _g++;
if(this.__glslAttribNames[i] == name) {
return i;
}
}
return -1;
}
}
,getConstantIndex: function(name) {
if(this.__format == 0) {
if(StringTools.startsWith(name,"vc")) {
return Std.parseInt(name.substring(2));
} else if(StringTools.startsWith(name,"fc")) {
return Std.parseInt(name.substring(2));
} else {
return -1;
}
} else {
var _g = 0;
var _g1 = this.__glslUniformNames.length;
while(_g < _g1) {
var i = _g++;
if(this.__glslUniformNames[i] == name) {
return this.__glslUniformLocations[i];
}
}
return -1;
}
}
,upload: function(vertexProgram,fragmentProgram) {
if(this.__format != 0) {
return;
}
var samplerStates = [];
var glslVertex = openfl_display3D__$internal_agal_AGALConverter.convertToGLSL(vertexProgram,null);
var glslFragment = openfl_display3D__$internal_agal_AGALConverter.convertToGLSL(fragmentProgram,samplerStates);
if(lime_utils_Log.level == 5) {
lime_utils_Log.info(glslVertex,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 399, className : "openfl.display3D.Program3D", methodName : "upload"});
lime_utils_Log.info(glslFragment,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 400, className : "openfl.display3D.Program3D", methodName : "upload"});
}
this.__deleteShaders();
this.__uploadFromGLSL(glslVertex,glslFragment);
this.__buildAGALUniformList();
var _g = 0;
var _g1 = samplerStates.length;
while(_g < _g1) {
var i = _g++;
this.__samplerStates[i] = samplerStates[i];
}
}
,uploadSources: function(vertexSource,fragmentSource) {
if(this.__format != 1) {
return;
}
var prefix = "#ifdef GL_ES\n\t\t\t#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\tprecision highp float;\n\t\t\t#else\n\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t#endif\n\t\t\t";
var vertex = prefix + vertexSource;
var fragment = prefix + fragmentSource;
if(vertex == this.__glVertexSource && fragment == this.__glFragmentSource) {
return;
}
this.__processGLSLData(vertexSource,"attribute");
this.__processGLSLData(vertexSource,"uniform");
this.__processGLSLData(fragmentSource,"uniform");
this.__deleteShaders();
this.__uploadFromGLSL(vertex,fragment);
var samplerNames = this.__glslSamplerNames;
var attribNames = this.__glslAttribNames;
var attribTypes = this.__glslAttribTypes;
var uniformNames = this.__glslUniformNames;
this.__glslSamplerNames = [];
this.__glslAttribNames = [];
this.__glslAttribTypes = [];
this.__glslUniformLocations = [];
var gl = this.__context.gl;
var index;
var location;
var _g = 0;
while(_g < samplerNames.length) {
var name = samplerNames[_g];
++_g;
index = gl.getUniformLocation(this.__glProgram,name);
this.__glslSamplerNames[index] = name;
}
var _g = 0;
var _g1 = attribNames.length;
while(_g < _g1) {
var i = _g++;
index = gl.getAttribLocation(this.__glProgram,attribNames[i]);
this.__glslAttribNames[index] = attribNames[i];
this.__glslAttribTypes[index] = attribTypes[i];
}
var _g = 0;
var _g1 = uniformNames.length;
while(_g < _g1) {
var i = _g++;
location = gl.getUniformLocation(this.__glProgram,uniformNames[i]);
this.__glslUniformLocations[i] = location;
}
}
,__buildAGALUniformList: function() {
if(this.__format == 1) {
return;
}
var gl = this.__context.gl;
this.__agalUniforms.clear();
this.__agalSamplerUniforms.clear();
this.__agalAlphaSamplerUniforms.clear();
this.__agalAlphaSamplerEnabled = [];
this.__agalSamplerUsageMask = 0;
var numActive = 0;
numActive = gl.getProgramParameter(this.__glProgram,gl.ACTIVE_UNIFORMS);
var vertexUniforms = new haxe_ds_List();
var fragmentUniforms = new haxe_ds_List();
var _g = 0;
var _g1 = numActive;
while(_g < _g1) {
var i = _g++;
var info = gl.getActiveUniform(this.__glProgram,i);
var name = info.name;
var size = info.size;
var uniformType = info.type;
var uniform = new openfl_display3D_Uniform(this.__context);
uniform.name = name;
uniform.size = size;
uniform.type = uniformType;
uniform.location = gl.getUniformLocation(this.__glProgram,uniform.name);
var indexBracket = uniform.name.indexOf("[");
if(indexBracket >= 0) {
uniform.name = uniform.name.substring(0,indexBracket);
}
switch(uniform.type) {
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;
this.__agalUniforms.add(uniform);
if(uniform.name == "vcPositionScale") {
this.__agalPositionScale = uniform;
} else if(StringTools.startsWith(uniform.name,"vc")) {
uniform.regIndex = Std.parseInt(uniform.name.substring(2));
uniform.regData = this.__context.__vertexConstants;
vertexUniforms.add(uniform);
} else if(StringTools.startsWith(uniform.name,"fc")) {
uniform.regIndex = Std.parseInt(uniform.name.substring(2));
uniform.regData = this.__context.__fragmentConstants;
fragmentUniforms.add(uniform);
} else if(StringTools.startsWith(uniform.name,"sampler") && uniform.name.indexOf("alpha") == -1) {
uniform.regIndex = Std.parseInt(uniform.name.substring(7));
this.__agalSamplerUniforms.add(uniform);
var _g2 = 0;
var _g3 = uniform.regCount;
while(_g2 < _g3) {
var reg = _g2++;
this.__agalSamplerUsageMask |= 1 << uniform.regIndex + reg;
}
} else if(StringTools.startsWith(uniform.name,"sampler") && StringTools.endsWith(uniform.name,"_alpha")) {
var len = uniform.name.indexOf("_") - 7;
uniform.regIndex = Std.parseInt(uniform.name.substring(7,7 + len)) + 4;
this.__agalAlphaSamplerUniforms.add(uniform);
} else if(StringTools.startsWith(uniform.name,"sampler") && StringTools.endsWith(uniform.name,"_alphaEnabled")) {
uniform.regIndex = Std.parseInt(uniform.name.substring(7));
this.__agalAlphaSamplerEnabled[uniform.regIndex] = uniform;
}
if(lime_utils_Log.level == 5) {
lime_utils_Log.verbose("" + i + " name:" + uniform.name + " type:" + uniform.type + " size:" + uniform.size + " location:" + Std.string(uniform.location),{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 577, className : "openfl.display3D.Program3D", methodName : "__buildAGALUniformList"});
}
}
this.__agalVertexUniformMap = new openfl_display3D_UniformMap(Lambda.array(vertexUniforms));
this.__agalFragmentUniformMap = new openfl_display3D_UniformMap(Lambda.array(fragmentUniforms));
}
,__deleteShaders: function() {
var gl = this.__context.gl;
if(this.__glProgram != null) {
this.__glProgram = null;
}
if(this.__glVertexShader != null) {
gl.deleteShader(this.__glVertexShader);
this.__glVertexShader = null;
}
if(this.__glFragmentShader != null) {
gl.deleteShader(this.__glFragmentShader);
this.__glFragmentShader = null;
}
}
,__disable: function() {
var tmp = this.__format == 1;
}
,__enable: function() {
var gl = this.__context.gl;
gl.useProgram(this.__glProgram);
if(this.__format == 0) {
this.__agalVertexUniformMap.markAllDirty();
this.__agalFragmentUniformMap.markAllDirty();
var _g_head = this.__agalSamplerUniforms.h;
while(_g_head != null) {
var val = _g_head.item;
_g_head = _g_head.next;
var sampler = val;
if(sampler.regCount == 1) {
gl.uniform1i(sampler.location,sampler.regIndex);
} else {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("!!! TODO: uniform location on webgl"));
}
}
var _g1_head = this.__agalAlphaSamplerUniforms.h;
while(_g1_head != null) {
var val = _g1_head.item;
_g1_head = _g1_head.next;
var sampler = val;
if(sampler.regCount == 1) {
gl.uniform1i(sampler.location,sampler.regIndex);
} else {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("!!! TODO: uniform location on webgl"));
}
}
}
}
,__flush: function() {
if(this.__format == 0) {
this.__agalVertexUniformMap.flush();
this.__agalFragmentUniformMap.flush();
} else {
return;
}
}
,__getSamplerState: function(sampler) {
return this.__samplerStates[sampler];
}
,__markDirty: function(isVertex,index,count) {
if(this.__format == 1) {
return;
}
if(isVertex) {
this.__agalVertexUniformMap.markDirty(index,count);
} else {
this.__agalFragmentUniformMap.markDirty(index,count);
}
}
,__processGLSLData: function(source,storageType) {
var lastMatch = 0;
var position;
var regex;
var name;
var type;
if(storageType == "uniform") {
regex = new EReg("uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)","");
} else {
regex = new EReg("attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)","");
}
while(regex.matchSub(source,lastMatch)) {
type = regex.matched(1);
name = regex.matched(2);
if(StringTools.startsWith(name,"gl_")) {
continue;
}
if(StringTools.startsWith(type,"sampler")) {
this.__glslSamplerNames.push(name);
} else {
var parameterType;
switch(type) {
case "bool":
parameterType = 0;
break;
case "bvec2":
parameterType = 1;
break;
case "bvec3":
parameterType = 2;
break;
case "bvec4":
parameterType = 3;
break;
case "dvec2":case "vec2":
parameterType = 5;
break;
case "dvec3":case "vec3":
parameterType = 6;
break;
case "double":case "float":
parameterType = 4;
break;
case "ivec3":case "uvec3":
parameterType = 10;
break;
case "ivec4":case "uvec4":
parameterType = 11;
break;
case "mat2":case "mat2x2":
parameterType = 12;
break;
case "mat2x3":
parameterType = 13;
break;
case "mat2x4":
parameterType = 14;
break;
case "mat3x2":
parameterType = 15;
break;
case "mat3":case "mat3x3":
parameterType = 16;
break;
case "mat3x4":
parameterType = 17;
break;
case "mat4":case "mat4x4":
parameterType = 20;
break;
case "mat4x2":
parameterType = 18;
break;
case "mat4x3":
parameterType = 19;
break;
case "int":case "uint":
parameterType = 8;
break;
case "ivec2":case "uvec2":
parameterType = 9;
break;
case "dvec4":case "vec4":
parameterType = 7;
break;
default:
parameterType = null;
}
if(storageType == "uniform") {
this.__glslUniformNames.push(name);
this.__glslUniformTypes.push(parameterType);
} else {
this.__glslAttribNames.push(name);
this.__glslAttribTypes.push(parameterType);
}
}
position = regex.matchedPos();
lastMatch = position.pos + position.len;
}
}
,__setPositionScale: function(positionScale) {
if(this.__format == 1) {
return;
}
if(this.__agalPositionScale != null) {
var gl = this.__context.gl;
var location = this.__agalPositionScale.location;
var data = positionScale;
var srcOffset = null;
if(srcOffset != null) {
gl.uniform4fv(location,data,srcOffset,null);
} else {
gl.uniform4fv(location,data);
}
}
}
,__setSamplerState: function(sampler,state) {
this.__samplerStates[sampler] = state;
}
,__uploadFromGLSL: function(vertexShaderSource,fragmentShaderSource) {
var gl = this.__context.gl;
this.__glVertexSource = vertexShaderSource;
this.__glFragmentSource = fragmentShaderSource;
this.__glVertexShader = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(this.__glVertexShader,vertexShaderSource);
gl.compileShader(this.__glVertexShader);
if(gl.getShaderParameter(this.__glVertexShader,gl.COMPILE_STATUS) == 0) {
var message = "Error compiling vertex shader";
message += "\n" + gl.getShaderInfoLog(this.__glVertexShader);
message += "\n" + vertexShaderSource;
lime_utils_Log.error(message,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 869, className : "openfl.display3D.Program3D", methodName : "__uploadFromGLSL"});
}
this.__glFragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(this.__glFragmentShader,fragmentShaderSource);
gl.compileShader(this.__glFragmentShader);
if(gl.getShaderParameter(this.__glFragmentShader,gl.COMPILE_STATUS) == 0) {
var message = "Error compiling fragment shader";
message += "\n" + gl.getShaderInfoLog(this.__glFragmentShader);
message += "\n" + fragmentShaderSource;
lime_utils_Log.error(message,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 881, className : "openfl.display3D.Program3D", methodName : "__uploadFromGLSL"});
}
this.__glProgram = gl.createProgram();
if(this.__format == 0) {
var _g = 0;
while(_g < 16) {
var i = _g++;
var name = "va" + i;
if(vertexShaderSource.indexOf(" " + name) != -1) {
gl.bindAttribLocation(this.__glProgram,i,name);
}
}
} else {
var _g = 0;
var _g1 = this.__glslAttribNames;
while(_g < _g1.length) {
var name = _g1[_g];
++_g;
if(name.indexOf("Position") > -1 && StringTools.startsWith(name,"openfl_")) {
gl.bindAttribLocation(this.__glProgram,0,name);
break;
}
}
}
gl.attachShader(this.__glProgram,this.__glVertexShader);
gl.attachShader(this.__glProgram,this.__glFragmentShader);
gl.linkProgram(this.__glProgram);
if(gl.getProgramParameter(this.__glProgram,gl.LINK_STATUS) == 0) {
var message = "Unable to initialize the shader program";
message += "\n" + gl.getProgramInfoLog(this.__glProgram);
lime_utils_Log.error(message,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 922, className : "openfl.display3D.Program3D", methodName : "__uploadFromGLSL"});
}
}
,__class__: openfl_display3D_Program3D
};
var openfl_display3D_Uniform = function(context) {
this.context = context;
this.isDirty = true;
var this1 = new lime_utils_BytePointerData(null,0);
this.regDataPointer = this1;
};
$hxClasses["openfl.display3D.Uniform"] = openfl_display3D_Uniform;
openfl_display3D_Uniform.__name__ = "openfl.display3D.Uniform";
openfl_display3D_Uniform.prototype = {
name: null
,location: null
,type: null
,size: null
,regData: null
,regIndex: null
,regCount: null
,isDirty: null
,context: null
,regDataPointer: null
,flush: function() {
var gl = this.context.gl;
var index = this.regIndex * 4;
switch(this.type) {
case 35664:
lime_graphics_WebGL2RenderContext.uniform2fv(gl,this.location,this.regData.subarray(index,index + this.regCount * 2));
break;
case 35665:
var location = this.location;
var data = this.regData.subarray(index,index + this.regCount * 3);
var srcOffset = null;
if(srcOffset != null) {
gl.uniform3fv(location,data,srcOffset,null);
} else {
gl.uniform3fv(location,data);
}
break;
case 35666:
var location = this.location;
var data = this.regData.subarray(index,index + this.regCount * 4);
var srcOffset = null;
if(srcOffset != null) {
gl.uniform4fv(location,data,srcOffset,null);
} else {
gl.uniform4fv(location,data);
}
break;
case 35674:
lime_graphics_WebGLRenderContext.uniformMatrix2fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 2 * 2));
break;
case 35675:
lime_graphics_WebGLRenderContext.uniformMatrix3fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 3 * 3));
break;
case 35676:
lime_graphics_WebGLRenderContext.uniformMatrix4fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 4 * 4));
break;
default:
var location = this.location;
var data = this.regData.subarray(index,index + this.regCount * 4);
var srcOffset = null;
if(srcOffset != null) {
gl.uniform4fv(location,data,srcOffset,null);
} else {
gl.uniform4fv(location,data);
}
}
}
,__getUniformRegisters: function(index,size) {
return this.regData.subarray(index,index + size);
}
,__class__: openfl_display3D_Uniform
};
var openfl_display3D_UniformMap = function(list) {
this.__uniforms = list;
this.__uniforms.sort(function(a,b) {
return Reflect.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.toObjectVector(null,total);
var _g = 0;
var _g1 = this.__uniforms;
while(_g < _g1.length) {
var uniform = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = uniform.regCount;
while(_g2 < _g3) {
var i = _g2++;
this.__registerLookup.set(uniform.regIndex + i,uniform);
}
}
this.__anyDirty = this.__allDirty = true;
};
$hxClasses["openfl.display3D.UniformMap"] = openfl_display3D_UniformMap;
openfl_display3D_UniformMap.__name__ = "openfl.display3D.UniformMap";
openfl_display3D_UniformMap.prototype = {
__allDirty: null
,__anyDirty: null
,__registerLookup: null
,__uniforms: null
,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;
}
}
}
,__class__: openfl_display3D_UniformMap
};
var openfl_display3D_VertexBuffer3D = function(context3D,numVertices,dataPerVertex,bufferUsage) {
this.__context = context3D;
this.__numVertices = numVertices;
this.__vertexSize = dataPerVertex;
var gl = this.__context.gl;
this.__id = gl.createBuffer();
this.__stride = this.__vertexSize * 4;
this.__usage = openfl_display3D_Context3DBufferUsage.fromString(bufferUsage) == 0 ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW;
};
$hxClasses["openfl.display3D.VertexBuffer3D"] = openfl_display3D_VertexBuffer3D;
openfl_display3D_VertexBuffer3D.__name__ = "openfl.display3D.VertexBuffer3D";
openfl_display3D_VertexBuffer3D.prototype = {
__context: null
,__data: null
,__id: null
,__memoryUsage: null
,__numVertices: null
,__stride: null
,__tempFloat32Array: null
,__usage: null
,__vertexSize: null
,dispose: function() {
var gl = this.__context.gl;
gl.deleteBuffer(this.__id);
}
,uploadFromByteArray: function(data,byteArrayOffset,startVertex,numVertices) {
var offset = byteArrayOffset + startVertex * this.__stride;
var length = numVertices * this.__vertexSize;
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = openfl_utils_ByteArray.toArrayBuffer(data);
var byteoffset = offset;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Float32Array(elements);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(length == null) {
this1 = new Float32Array(buffer,byteoffset);
} else {
this1 = new Float32Array(buffer,byteoffset,length);
}
} else {
this1 = null;
}
this.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this1));
}
,uploadFromTypedArray: function(data,byteLength) {
if(byteLength == null) {
byteLength = -1;
}
if(data == null) {
return;
}
var gl = this.__context.gl;
this.__context.__bindGLArrayBuffer(this.__id);
lime_graphics_WebGLRenderContext.bufferData(gl,gl.ARRAY_BUFFER,data,this.__usage);
}
,uploadFromVector: function(data,startVertex,numVertices) {
if(data == null) {
return;
}
var gl = this.__context.gl;
var start = startVertex * this.__vertexSize;
var count = numVertices * this.__vertexSize;
var length = start + count;
var existingFloat32Array = this.__tempFloat32Array;
if(this.__tempFloat32Array == null || this.__tempFloat32Array.length < count) {
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(count != null) {
this1 = new Float32Array(count);
} else if(array != null) {
this1 = new Float32Array(array);
} else if(vector != null) {
this1 = new Float32Array(vector.__array);
} else if(view != null) {
this1 = new Float32Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Float32Array(buffer,0);
} else {
this1 = new Float32Array(buffer,0,len);
}
} else {
this1 = null;
}
this.__tempFloat32Array = this1;
if(existingFloat32Array != null) {
this.__tempFloat32Array.set(existingFloat32Array);
}
}
var _g = start;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
this.__tempFloat32Array[i - start] = data.get(i);
}
this.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.__tempFloat32Array));
}
,__class__: openfl_display3D_VertexBuffer3D
};
var openfl_display3D__$internal_Context3DState = function() {
this.backBufferEnableDepthAndStencil = false;
this.blendDestinationAlphaFactor = 9;
this.blendSourceAlphaFactor = 2;
this.blendDestinationRGBFactor = 9;
this.blendSourceRGBFactor = 2;
this.colorMaskRed = true;
this.colorMaskGreen = true;
this.colorMaskBlue = true;
this.colorMaskAlpha = true;
this.culling = 3;
this.depthCompareMode = 4;
this.depthMask = true;
this.samplerStates = [];
this.scissorRectangle = new openfl_geom_Rectangle();
this.stencilCompareMode = 0;
this.stencilDepthFail = 5;
this.stencilFail = 5;
this.stencilPass = 5;
this.stencilReadMask = 255;
this.stencilReferenceValue = 0;
this.stencilTriangleFace = 2;
this.stencilWriteMask = 255;
this.textures = [];
this.__frontFaceGLCCW = true;
this.__glBlendEquation = 32774;
};
$hxClasses["openfl.display3D._internal.Context3DState"] = openfl_display3D__$internal_Context3DState;
openfl_display3D__$internal_Context3DState.__name__ = "openfl.display3D._internal.Context3DState";
openfl_display3D__$internal_Context3DState.prototype = {
backBufferEnableDepthAndStencil: null
,blendDestinationAlphaFactor: null
,blendSourceAlphaFactor: null
,blendDestinationRGBFactor: null
,blendSourceRGBFactor: null
,colorMaskRed: null
,colorMaskGreen: null
,colorMaskBlue: null
,colorMaskAlpha: null
,culling: null
,depthCompareMode: null
,depthMask: null
,program: null
,renderToTexture: null
,renderToTextureAntiAlias: null
,renderToTextureDepthStencil: null
,renderToTextureSurfaceSelector: null
,samplerStates: null
,scissorEnabled: null
,scissorRectangle: null
,stencilCompareMode: null
,stencilDepthFail: null
,stencilFail: null
,stencilPass: null
,stencilReadMask: null
,stencilReferenceValue: null
,stencilTriangleFace: null
,stencilWriteMask: null
,textures: null
,shader: null
,__currentGLArrayBuffer: null
,__currentGLElementArrayBuffer: null
,__currentGLFramebuffer: null
,__currentGLTexture2D: null
,__currentGLTextureCubeMap: null
,__enableGLBlend: null
,__enableGLCullFace: null
,__enableGLDepthTest: null
,__enableGLScissorTest: null
,__enableGLStencilTest: null
,__frontFaceGLCCW: null
,__glBlendEquation: null
,__primaryGLFramebuffer: null
,__rttDepthGLRenderbuffer: null
,__rttGLFramebuffer: null
,__rttGLRenderbuffer: null
,__rttStencilGLRenderbuffer: null
,__class__: openfl_display3D__$internal_Context3DState
};
var openfl_display3D__$internal_agal_AGALConverter = function() { };
$hxClasses["openfl.display3D._internal.agal.AGALConverter"] = openfl_display3D__$internal_agal_AGALConverter;
openfl_display3D__$internal_agal_AGALConverter.__name__ = "openfl.display3D._internal.agal.AGALConverter";
openfl_display3D__$internal_agal_AGALConverter.prefixFromType = function(regType,programType) {
switch(regType) {
case 0:
return "va";
case 1:
if(programType == openfl_display3D__$internal_agal__$AGALConverter_ProgramType.VERTEX) {
return "vc";
} else {
return "fc";
}
break;
case 2:
if(programType == openfl_display3D__$internal_agal__$AGALConverter_ProgramType.VERTEX) {
return "vt";
} else {
return "ft";
}
break;
case 3:
return "output_";
case 4:
return "v";
case 5:
return "sampler";
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Invalid data!"));
}
};
openfl_display3D__$internal_agal_AGALConverter.readUInt64 = function(byteArray) {
var low = byteArray.readInt();
var high = byteArray.readInt();
var this1 = new haxe__$Int64__$_$_$Int64(high,low);
return this1;
};
openfl_display3D__$internal_agal_AGALConverter.convertToGLSL = function(agal,samplerState) {
agal.position = 0;
agal.__endian = 1;
var magic = agal.readByte() & 255;
if(magic == 176) {
return agal.readUTF();
}
if(magic != 160) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Magic value must be 0xA0, may not be AGAL"));
}
var version = agal.readInt();
if(version != 1) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Version must be 1"));
}
var shaderTypeID = agal.readByte() & 255;
if(shaderTypeID != 161) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Shader type ID must be 0xA1"));
}
var programType = (agal.readByte() & 255) == 0 ? openfl_display3D__$internal_agal__$AGALConverter_ProgramType.VERTEX : openfl_display3D__$internal_agal__$AGALConverter_ProgramType.FRAGMENT;
var map = new openfl_display3D__$internal_agal_RegisterMap();
var sb_b = "";
while(true) {
var a = agal.position;
if(!UInt.gt(openfl_utils_ByteArray.get_length(agal),a)) {
break;
}
var opcode = agal.readInt();
var dest = agal.readUnsignedInt();
var source1 = openfl_display3D__$internal_agal_AGALConverter.readUInt64(agal);
var source2 = openfl_display3D__$internal_agal_AGALConverter.readUInt64(agal);
var dr = openfl_display3D__$internal_agal__$AGALConverter_DestRegister.parse(dest,programType);
var sr1 = openfl_display3D__$internal_agal__$AGALConverter_SourceRegister.parse(source1,programType,dr.mask);
var sr2 = openfl_display3D__$internal_agal__$AGALConverter_SourceRegister.parse(source2,programType,dr.mask);
sb_b += "\t";
switch(opcode) {
case 0:
sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + "; // mov");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 1:
sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " + " + sr2.toGLSL() + "; // add");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 2:
sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " - " + sr2.toGLSL() + "; // sub");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 3:
sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL() + "; // mul");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 4:
sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " / " + sr2.toGLSL() + "; // div");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 5:
var sr = sr1.toGLSL();
if(sr.indexOf(".") > -1) {
sb_b += Std.string(dr.toGLSL() + " = 1.0 / " + sr1.toGLSL() + "; // rcp");
} else {
sb_b += Std.string(dr.toGLSL() + " = vec4(1) / " + sr1.toGLSL() + "; // rcp");
}
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 6:
sb_b += Std.string(dr.toGLSL() + " = min(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // min");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 7:
sb_b += Std.string(dr.toGLSL() + " = max(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // max");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 8:
sb_b += Std.string(dr.toGLSL() + " = fract(" + sr1.toGLSL() + "); // frc");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 9:
sb_b += Std.string(dr.toGLSL() + " = sqrt(" + sr1.toGLSL() + "); // sqrt");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 10:
sb_b += Std.string(dr.toGLSL() + " = inversesqrt(" + sr1.toGLSL() + "); // rsq");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 11:
sb_b += Std.string(dr.toGLSL() + " = pow(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // pow");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 12:
sb_b += Std.string(dr.toGLSL() + " = log2(" + sr1.toGLSL() + "); // log");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 13:
sb_b += Std.string(dr.toGLSL() + " = exp2(" + sr1.toGLSL() + "); // exp");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 14:
sb_b += Std.string(dr.toGLSL() + " = normalize(" + sr1.toGLSL() + "); // normalize");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 15:
sb_b += Std.string(dr.toGLSL() + " = sin(" + sr1.toGLSL() + "); // sin");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 16:
sb_b += Std.string(dr.toGLSL() + " = cos(" + sr1.toGLSL() + "); // cos");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 17:
sr1.sourceMask = sr2.sourceMask = 7;
sb_b += Std.string(dr.toGLSL() + " = cross(vec3(" + sr1.toGLSL() + "), vec3(" + sr2.toGLSL() + ")); // crs");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 18:
sr1.sourceMask = sr2.sourceMask = 7;
sb_b += Std.string(dr.toGLSL() + " = vec4(dot(vec3(" + sr1.toGLSL() + "), vec3(" + sr2.toGLSL() + ")))" + dr.getWriteMask() + "; // dp3");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 19:
sr1.sourceMask = sr2.sourceMask = 15;
sb_b += Std.string(dr.toGLSL() + " = vec4(dot(vec4(" + sr1.toGLSL() + "), vec4(" + sr2.toGLSL() + ")))" + dr.getWriteMask() + "; // dp4");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 20:
sb_b += Std.string(dr.toGLSL() + " = abs(" + sr1.toGLSL() + "); // abs");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 21:
sb_b += Std.string(dr.toGLSL() + " = -" + sr1.toGLSL() + "; // neg");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 22:
sb_b += Std.string(dr.toGLSL() + " = clamp(" + sr1.toGLSL() + ", 0.0, 1.0); // saturate");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 23:
var existingUsage = map.getRegisterUsage(sr2);
if(existingUsage != openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4 && existingUsage != openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY) {
sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " * mat3(" + sr2.toGLSL(false) + "); // m33");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.MATRIX_4_4);
} else {
sr1.sourceMask = sr2.sourceMask = 7;
sb_b += Std.string(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_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,0);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,1);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,2);
}
break;
case 24:
var existingUsage1 = map.getRegisterUsage(sr2);
if(existingUsage1 != openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4 && existingUsage1 != openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY) {
sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL(false) + "; // m44");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.MATRIX_4_4);
} else {
sr1.sourceMask = sr2.sourceMask = 15;
sb_b += Std.string(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_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,0);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,1);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,2);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,3);
}
break;
case 25:
dr.mask &= 7;
var existingUsage2 = map.getRegisterUsage(sr2);
if(existingUsage2 != openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4 && existingUsage2 != openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY) {
sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL(false) + "; // m34");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.MATRIX_4_4);
} else {
sr1.sourceMask = sr2.sourceMask = 15;
sb_b += Std.string(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_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,0);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,1);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4,2);
}
break;
case 39:
sr1.sourceMask = 15;
sb_b += Std.string("if (any(lessThan(" + sr1.toGLSL() + ", vec4(0)))) discard;");
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 40:
var sampler = openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister.parse(source2,programType);
switch(sampler.d) {
case 0:
if(sampler.t == 2) {
sr1.sourceMask = 3;
map.addSaR(sampler,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.SAMPLER_2D_ALPHA);
sb_b += Std.string("if (" + sampler.toGLSL() + "_alphaEnabled) {\n");
sb_b += Std.string("\t\t" + dr.toGLSL() + " = vec4(texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + ").xyz, texture2D(" + sampler.toGLSL() + "_alpha, " + sr1.toGLSL() + ").x); // tex + alpha\n");
sb_b += "\t} else {\n";
sb_b += Std.string("\t\t" + dr.toGLSL() + " = texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex\n");
sb_b += "\t}";
} else {
sr1.sourceMask = 3;
map.addSaR(sampler,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.SAMPLER_2D);
sb_b += Std.string(dr.toGLSL() + " = texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex");
}
break;
case 1:
if(sampler.t == 2) {
sr1.sourceMask = 7;
map.addSaR(sampler,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.SAMPLER_CUBE_ALPHA);
sb_b += Std.string("if (" + sampler.toGLSL() + "_alphaEnabled) {\n");
sb_b += Std.string("\t\t" + dr.toGLSL() + " = vec4(textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + ").xyz, textureCube(" + sampler.toGLSL() + "_alpha, " + sr1.toGLSL() + ").x); // tex + alpha\n");
sb_b += "\t} else {\n";
sb_b += Std.string("\t\t" + dr.toGLSL() + " = textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex");
sb_b += "\t}";
} else {
sr1.sourceMask = 7;
sb_b += Std.string(dr.toGLSL() + " = textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex");
map.addSaR(sampler,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.SAMPLER_CUBE);
}
break;
}
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
if(samplerState != null) {
samplerState[sampler.n] = sampler.toSamplerState();
}
break;
case 41:
sr1.sourceMask = sr2.sourceMask = 15;
sb_b += Std.string(dr.toGLSL() + " = vec4(greaterThanEqual(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // ste");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 42:
sr1.sourceMask = sr2.sourceMask = 15;
sb_b += Std.string(dr.toGLSL() + " = vec4(lessThan(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // slt");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 44:
sr1.sourceMask = sr2.sourceMask = 15;
sb_b += Std.string(dr.toGLSL() + " = vec4(equal(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // seq");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
case 45:
sr1.sourceMask = sr2.sourceMask = 15;
sb_b += Std.string(dr.toGLSL() + " = vec4(notEqual(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // sne");
map.addDR(dr,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr1,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
map.addSR(sr2,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
break;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Opcode " + opcode));
}
sb_b += "\n";
}
if(openfl_display3D__$internal_agal_AGALConverter.limitedProfile == null) {
var version = lime_graphics_opengl_GL.context.getParameter(7938);
openfl_display3D__$internal_agal_AGALConverter.limitedProfile = version.indexOf("OpenGL ES") > -1 || version.indexOf("WebGL") > -1;
}
var glsl_b = "";
glsl_b += Std.string("// AGAL " + (programType == openfl_display3D__$internal_agal__$AGALConverter_ProgramType.VERTEX ? "vertex" : "fragment") + " shader\n");
if(openfl_display3D__$internal_agal_AGALConverter.limitedProfile) {
glsl_b += "#version 100\n";
glsl_b += "#ifdef GL_FRAGMENT_PRECISION_HIGH\n";
glsl_b += "precision highp float;\n";
glsl_b += "#else\n";
glsl_b += "precision mediump float;\n";
glsl_b += "#endif\n";
} else {
glsl_b += "#version 120\n";
}
glsl_b += Std.string(map.toGLSL(false));
if(programType == openfl_display3D__$internal_agal__$AGALConverter_ProgramType.VERTEX) {
glsl_b += "uniform vec4 vcPositionScale;\n";
}
glsl_b += "void main() {\n";
glsl_b += Std.string(map.toGLSL(true));
glsl_b += Std.string(sb_b);
if(programType == openfl_display3D__$internal_agal__$AGALConverter_ProgramType.VERTEX) {
glsl_b += "\tgl_Position *= vcPositionScale;\n";
}
glsl_b += "}\n";
return glsl_b;
};
var openfl_display3D__$internal_agal__$AGALConverter_DestRegister = function() {
};
$hxClasses["openfl.display3D._internal.agal._AGALConverter.DestRegister"] = openfl_display3D__$internal_agal__$AGALConverter_DestRegister;
openfl_display3D__$internal_agal__$AGALConverter_DestRegister.__name__ = "openfl.display3D._internal.agal._AGALConverter.DestRegister";
openfl_display3D__$internal_agal__$AGALConverter_DestRegister.parse = function(v,programType) {
var dr = new openfl_display3D__$internal_agal__$AGALConverter_DestRegister();
dr.programType = programType;
dr.type = v >>> 24 & 15;
dr.mask = v >>> 16 & 15;
dr.n = v & 65535;
return dr;
};
openfl_display3D__$internal_agal__$AGALConverter_DestRegister.prototype = {
mask: null
,n: null
,programType: null
,type: null
,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) {
str = this.programType == openfl_display3D__$internal_agal__$AGALConverter_ProgramType.VERTEX ? "gl_Position" : "gl_FragColor";
} else {
str = openfl_display3D__$internal_agal_AGALConverter.prefixFromType(this.type,this.programType) + this.n;
}
if(useMask && this.mask != 15) {
str += this.getWriteMask();
}
return str;
}
,__class__: openfl_display3D__$internal_agal__$AGALConverter_DestRegister
};
var openfl_display3D__$internal_agal__$AGALConverter_ProgramType = $hxEnums["openfl.display3D._internal.agal._AGALConverter.ProgramType"] = { __ename__ : "openfl.display3D._internal.agal._AGALConverter.ProgramType", __constructs__ : ["VERTEX","FRAGMENT"]
,VERTEX: {_hx_index:0,__enum__:"openfl.display3D._internal.agal._AGALConverter.ProgramType",toString:$estr}
,FRAGMENT: {_hx_index:1,__enum__:"openfl.display3D._internal.agal._AGALConverter.ProgramType",toString:$estr}
};
var openfl_display3D__$internal_agal_RegisterMap = function() {
this.mEntries = [];
};
$hxClasses["openfl.display3D._internal.agal.RegisterMap"] = openfl_display3D__$internal_agal_RegisterMap;
openfl_display3D__$internal_agal_RegisterMap.__name__ = "openfl.display3D._internal.agal.RegisterMap";
openfl_display3D__$internal_agal_RegisterMap.prototype = {
mEntries: null
,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 haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Cannot use register in multiple ways yet (mat4/vec4)"));
}
return;
}
}
var entry = new openfl_display3D__$internal_agal__$AGALConverter_RegisterMapEntry();
entry.type = type;
entry.name = name;
entry.number = number;
entry.usage = usage;
this.mEntries.push(entry);
}
,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_display3D__$internal_agal_AGALConverter.prefixFromType(sr.itype,sr.programType) + sr.n,sr.n,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4);
this.add(sr.type,openfl_display3D__$internal_agal_AGALConverter.prefixFromType(sr.type,sr.programType) + sr.o,sr.o,openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.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_display3D__$internal_agal__$AGALConverter_RegisterUsage.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_display3D__$internal_agal__$AGALConverter_RegisterUsage.UNUSED;
}
,toGLSL: function(tempRegistersOnly) {
this.mEntries.sort(function(a,b) {
return a.number - b.number;
});
var entry;
this.mEntries.sort(function(a,b) {
return js_Boot.__cast(a.type , Int) - js_Boot.__cast(b.type , Int);
});
var sb_b = "";
var _g = 0;
var _g1 = this.mEntries.length;
while(_g < _g1) {
var i = _g++;
entry = this.mEntries[i];
if(tempRegistersOnly && entry.type != 2 || !tempRegistersOnly && entry.type == 2) {
continue;
}
if(entry.type == 3) {
continue;
}
switch(entry.type) {
case 0:
sb_b += "attribute ";
break;
case 1:
sb_b += "uniform ";
break;
case 2:
sb_b += "\t";
break;
case 3:
break;
case 4:
sb_b += "varying ";
break;
case 5:
sb_b += "uniform ";
break;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
switch(entry.usage._hx_index) {
case 0:
lime_utils_Log.info("Missing switch patten: RegisterUsage.UNUSED",{ fileName : "openfl/display3D/_internal/agal/AGALConverter.hx", lineNumber : 750, className : "openfl.display3D._internal.agal.RegisterMap", methodName : "toGLSL"});
break;
case 1:
sb_b += "vec4 ";
break;
case 2:
sb_b += "mat4 ";
break;
case 3:
sb_b += "sampler2D ";
break;
case 4:
break;
case 5:
sb_b += "samplerCube ";
break;
case 6:
break;
case 7:
sb_b += "vec4 ";
break;
}
if(entry.usage == openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.SAMPLER_2D_ALPHA) {
sb_b += "sampler2D ";
sb_b += Std.string(entry.name);
sb_b += ";\n";
sb_b += "uniform ";
sb_b += "sampler2D ";
sb_b += Std.string(entry.name + "_alpha");
sb_b += ";\n";
sb_b += "uniform ";
sb_b += "bool ";
sb_b += Std.string(entry.name + "_alphaEnabled");
sb_b += ";\n";
} else if(entry.usage == openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.SAMPLER_CUBE_ALPHA) {
sb_b += "samplerCube ";
sb_b += Std.string(entry.name);
sb_b += ";\n";
sb_b += "uniform ";
sb_b += "samplerCube ";
sb_b += Std.string(entry.name + "_alpha");
sb_b += ";\n";
sb_b += "uniform ";
sb_b += "bool ";
sb_b += Std.string(entry.name + "_alphaEnabled");
sb_b += ";\n";
} else if(entry.usage == openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY) {
sb_b += Std.string(entry.name + "[128]");
sb_b += ";\n";
} else {
sb_b += Std.string(entry.name);
sb_b += ";\n";
}
}
return sb_b;
}
,__class__: openfl_display3D__$internal_agal_RegisterMap
};
var openfl_display3D__$internal_agal__$AGALConverter_RegisterMapEntry = function() {
};
$hxClasses["openfl.display3D._internal.agal._AGALConverter.RegisterMapEntry"] = openfl_display3D__$internal_agal__$AGALConverter_RegisterMapEntry;
openfl_display3D__$internal_agal__$AGALConverter_RegisterMapEntry.__name__ = "openfl.display3D._internal.agal._AGALConverter.RegisterMapEntry";
openfl_display3D__$internal_agal__$AGALConverter_RegisterMapEntry.prototype = {
name: null
,number: null
,type: null
,usage: null
,__class__: openfl_display3D__$internal_agal__$AGALConverter_RegisterMapEntry
};
var openfl_display3D__$internal_agal__$AGALConverter_RegisterUsage = $hxEnums["openfl.display3D._internal.agal._AGALConverter.RegisterUsage"] = { __ename__ : "openfl.display3D._internal.agal._AGALConverter.RegisterUsage", __constructs__ : ["UNUSED","VECTOR_4","MATRIX_4_4","SAMPLER_2D","SAMPLER_2D_ALPHA","SAMPLER_CUBE","SAMPLER_CUBE_ALPHA","VECTOR_4_ARRAY"]
,UNUSED: {_hx_index:0,__enum__:"openfl.display3D._internal.agal._AGALConverter.RegisterUsage",toString:$estr}
,VECTOR_4: {_hx_index:1,__enum__:"openfl.display3D._internal.agal._AGALConverter.RegisterUsage",toString:$estr}
,MATRIX_4_4: {_hx_index:2,__enum__:"openfl.display3D._internal.agal._AGALConverter.RegisterUsage",toString:$estr}
,SAMPLER_2D: {_hx_index:3,__enum__:"openfl.display3D._internal.agal._AGALConverter.RegisterUsage",toString:$estr}
,SAMPLER_2D_ALPHA: {_hx_index:4,__enum__:"openfl.display3D._internal.agal._AGALConverter.RegisterUsage",toString:$estr}
,SAMPLER_CUBE: {_hx_index:5,__enum__:"openfl.display3D._internal.agal._AGALConverter.RegisterUsage",toString:$estr}
,SAMPLER_CUBE_ALPHA: {_hx_index:6,__enum__:"openfl.display3D._internal.agal._AGALConverter.RegisterUsage",toString:$estr}
,VECTOR_4_ARRAY: {_hx_index:7,__enum__:"openfl.display3D._internal.agal._AGALConverter.RegisterUsage",toString:$estr}
};
var openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister = function() {
};
$hxClasses["openfl.display3D._internal.agal._AGALConverter.SamplerRegister"] = openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister;
openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister.__name__ = "openfl.display3D._internal.agal._AGALConverter.SamplerRegister";
openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister.parse = function(v,programType) {
var sr = new openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister();
sr.programType = programType;
var b = 60;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.f = this_low;
var b = 56;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.m = this_low;
var b = 52;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.w = this_low;
var b = 48;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.s = this_low;
var b = 44;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.d = this_low;
var b = 40;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.t = this_low;
var b = 32;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.type = this_low;
var b = 16;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 255;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.b = this_low;
var b_high = 0;
var b_low = 65535;
var this_high = v.high & b_high;
var this_low = v.low & b_low;
sr.n = this_low;
return sr;
};
openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister.prototype = {
b: null
,d: null
,f: null
,m: null
,n: null
,programType: null
,s: null
,t: null
,type: null
,w: null
,toGLSL: function() {
var str = openfl_display3D__$internal_agal_AGALConverter.prefixFromType(this.type,this.programType) + this.n;
return str;
}
,toSamplerState: function() {
var wrap;
var filter;
var mipfilter;
switch(this.f) {
case 0:
filter = 5;
break;
case 1:
filter = 4;
break;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
switch(this.m) {
case 0:
mipfilter = 2;
break;
case 1:
mipfilter = 1;
break;
case 2:
mipfilter = 0;
break;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
switch(this.w) {
case 0:
wrap = 0;
break;
case 1:
wrap = 2;
break;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
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;
return new openfl_display__$internal_SamplerState(wrap,filter,mipfilter,lodBias,ignoreSampler,centroid,textureAlpha);
}
,__class__: openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister
};
var openfl_display3D__$internal_agal__$AGALConverter_SourceRegister = function() {
};
$hxClasses["openfl.display3D._internal.agal._AGALConverter.SourceRegister"] = openfl_display3D__$internal_agal__$AGALConverter_SourceRegister;
openfl_display3D__$internal_agal__$AGALConverter_SourceRegister.__name__ = "openfl.display3D._internal.agal._AGALConverter.SourceRegister";
openfl_display3D__$internal_agal__$AGALConverter_SourceRegister.parse = function(v,programType,sourceMask) {
var sr = new openfl_display3D__$internal_agal__$AGALConverter_SourceRegister();
sr.programType = programType;
var b = 63;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 1;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.d = this_low;
var b = 48;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 3;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.q = this_low;
var b = 40;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.itype = this_low;
var b = 32;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 15;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.type = this_low;
var b = 24;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 255;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.s = this_low;
var b = 16;
b &= 63;
var a;
if(b == 0) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high,v.low);
a = this1;
} else if(b < 32) {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b);
a = this1;
} else {
var this1 = new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32);
a = this1;
}
var b_high = 0;
var b_low = 255;
var this_high = a.high & b_high;
var this_low = a.low & b_low;
sr.o = this_low;
var b_high = 0;
var b_low = 65535;
var this_high = v.high & b_high;
var this_low = v.low & b_low;
sr.n = this_low;
sr.sourceMask = sourceMask;
return sr;
};
openfl_display3D__$internal_agal__$AGALConverter_SourceRegister.prototype = {
d: null
,itype: null
,n: null
,o: null
,programType: null
,q: null
,s: null
,sourceMask: null
,type: null
,toGLSL: function(emitSwizzle,offset) {
if(offset == null) {
offset = 0;
}
if(emitSwizzle == null) {
emitSwizzle = true;
}
if(this.type == 3) {
if(this.programType == openfl_display3D__$internal_agal__$AGALConverter_ProgramType.VERTEX) {
return "gl_Position";
} else {
return "gl_FragColor";
}
}
var fullxyzw = this.s == 228 && this.sourceMask == 15;
var swizzle = "";
if(this.type != 5 && !fullxyzw) {
if((this.sourceMask & 1) != 0) {
switch(this.s & 3) {
case 0:
swizzle += "x";
break;
case 1:
swizzle += "y";
break;
case 2:
swizzle += "z";
break;
case 3:
swizzle += "w";
break;
}
}
if((this.sourceMask & 2) != 0) {
switch(this.s >> 2 & 3) {
case 0:
swizzle += "x";
break;
case 1:
swizzle += "y";
break;
case 2:
swizzle += "z";
break;
case 3:
swizzle += "w";
break;
}
}
if((this.sourceMask & 4) != 0) {
switch(this.s >> 4 & 3) {
case 0:
swizzle += "x";
break;
case 1:
swizzle += "y";
break;
case 2:
swizzle += "z";
break;
case 3:
swizzle += "w";
break;
}
}
if((this.sourceMask & 8) != 0) {
switch(this.s >> 6 & 3) {
case 0:
swizzle += "x";
break;
case 1:
swizzle += "y";
break;
case 2:
swizzle += "z";
break;
case 3:
swizzle += "w";
break;
}
}
}
var str = openfl_display3D__$internal_agal_AGALConverter.prefixFromType(this.type,this.programType);
if(this.d == 0) {
str += this.n + offset;
} else {
str += this.o;
var indexComponent = "";
switch(this.q) {
case 0:
indexComponent = "x";
break;
case 1:
indexComponent = "y";
break;
case 2:
indexComponent = "z";
break;
case 3:
indexComponent = "w";
break;
}
var indexRegister = openfl_display3D__$internal_agal_AGALConverter.prefixFromType(this.itype,this.programType) + this.n + "." + indexComponent;
str += "[ int(" + indexRegister + ") +" + offset + "]";
}
if(emitSwizzle && swizzle != "") {
str += "." + swizzle;
}
return str;
}
,__class__: openfl_display3D__$internal_agal__$AGALConverter_SourceRegister
};
var openfl_display3D__$internal_atf_ATFReader = function(data,byteArrayOffset) {
this.version = 0;
data.position = byteArrayOffset;
var signature = data.readUTFBytes(3);
data.position = byteArrayOffset;
if(signature != "ATF") {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("ATF signature not found"));
}
var length = 0;
if(data.b[byteArrayOffset + 6] == 255) {
this.version = data.b[byteArrayOffset + 7];
data.position = byteArrayOffset + 8;
length = this.__readUInt32(data);
} else {
this.version = 0;
data.position = byteArrayOffset + 3;
length = this.__readUInt24(data);
}
if(UInt.gt(js_Boot.__cast(byteArrayOffset + length , Int),openfl_utils_ByteArray.get_length(data))) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("ATF length exceeds byte array length"));
}
this.data = data;
};
$hxClasses["openfl.display3D._internal.atf.ATFReader"] = openfl_display3D__$internal_atf_ATFReader;
openfl_display3D__$internal_atf_ATFReader.__name__ = "openfl.display3D._internal.atf.ATFReader";
openfl_display3D__$internal_atf_ATFReader.prototype = {
atfFormat: null
,cubeMap: null
,data: null
,height: null
,mipCount: null
,version: null
,width: null
,readHeader: function(__width,__height,cubeMap) {
var tdata = this.data.readUnsignedByte();
var type = tdata >>> 7;
if(!cubeMap && type != 0) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("ATF Cube map not expected"));
}
if(cubeMap && type != 1) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("ATF Cube map expected"));
}
this.cubeMap = cubeMap;
this.atfFormat = tdata & 127;
if(this.atfFormat != 3 && this.atfFormat != 5) {
lime_utils_Log.warn("Only ATF block compressed textures without JPEG-XR+LZMA are supported",{ fileName : "openfl/display3D/_internal/atf/ATFReader.hx", lineNumber : 96, className : "openfl.display3D._internal.atf.ATFReader", methodName : "readHeader"});
}
this.width = 1 << this.data.readUnsignedByte();
this.height = 1 << this.data.readUnsignedByte();
if(this.width != __width || this.height != __height) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("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 _g = 0;
var _g1 = sideCount;
while(_g < _g1) {
var side = _g++;
var _g2 = 0;
var _g3 = this.mipCount;
while(_g2 < _g3) {
var level = _g2++;
var _g4 = 0;
var _g5 = gpuFormats;
while(_g4 < _g5) {
var gpuFormat = _g4++;
var blockLength = this.version == 0 ? this.__readUInt24(this.data) : this.__readUInt32(this.data);
if(UInt.gt(this.data.position + blockLength,openfl_utils_ByteArray.get_length(this.data))) {
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError("Block length exceeds ATF file length"));
}
if(UInt.gt(blockLength,0)) {
var bytes = new haxe_io_Bytes(new ArrayBuffer(blockLength));
var this1 = this.data;
var bytes1 = openfl_utils_ByteArray.fromBytes(bytes);
var offset = 0;
var length = blockLength;
if(length == null) {
length = 0;
}
if(offset == null) {
offset = 0;
}
this1.readBytes(bytes1,offset,length);
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;
}
,__class__: openfl_display3D__$internal_atf_ATFReader
};
var openfl_display3D_textures_TextureBase = function(context) {
openfl_events_EventDispatcher.call(this);
this.__context = context;
var gl = this.__context.gl;
this.__textureID = gl.createTexture();
this.__textureContext = this.__context.__context;
if(openfl_display3D_textures_TextureBase.__supportsBGRA == null) {
openfl_display3D_textures_TextureBase.__textureInternalFormat = gl.RGBA;
var bgraExtension = null;
if(bgraExtension != null) {
openfl_display3D_textures_TextureBase.__supportsBGRA = true;
openfl_display3D_textures_TextureBase.__textureFormat = bgraExtension.BGRA_EXT;
if(context.__context.type == "opengles") {
openfl_display3D_textures_TextureBase.__textureInternalFormat = bgraExtension.BGRA_EXT;
}
} else {
openfl_display3D_textures_TextureBase.__supportsBGRA = false;
openfl_display3D_textures_TextureBase.__textureFormat = gl.RGBA;
}
openfl_display3D_textures_TextureBase.__compressedFormats = new haxe_ds_IntMap();
openfl_display3D_textures_TextureBase.__compressedFormatsAlpha = new haxe_ds_IntMap();
var dxtExtension = gl.getExtension("WEBGL_compressed_texture_s3tc");
var etc1Extension = gl.getExtension("WEBGL_compressed_texture_etc1");
var pvrtcExtension = gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");
if(dxtExtension != null) {
var v = dxtExtension.COMPRESSED_RGBA_S3TC_DXT1_EXT;
openfl_display3D_textures_TextureBase.__compressedFormats.h[0] = v;
var v = dxtExtension.COMPRESSED_RGBA_S3TC_DXT5_EXT;
openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[0] = v;
}
if(etc1Extension != null) {
var v = etc1Extension.COMPRESSED_RGB_ETC1_WEBGL;
openfl_display3D_textures_TextureBase.__compressedFormats.h[2] = v;
var v = etc1Extension.COMPRESSED_RGB_ETC1_WEBGL;
openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[2] = v;
}
if(pvrtcExtension != null) {
var v = pvrtcExtension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
openfl_display3D_textures_TextureBase.__compressedFormats.h[1] = v;
var v = pvrtcExtension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[1] = v;
}
}
this.__internalFormat = openfl_display3D_textures_TextureBase.__textureInternalFormat;
this.__format = openfl_display3D_textures_TextureBase.__textureFormat;
};
$hxClasses["openfl.display3D.textures.TextureBase"] = openfl_display3D_textures_TextureBase;
openfl_display3D_textures_TextureBase.__name__ = "openfl.display3D.textures.TextureBase";
openfl_display3D_textures_TextureBase.__compressedFormats = null;
openfl_display3D_textures_TextureBase.__compressedFormatsAlpha = null;
openfl_display3D_textures_TextureBase.__textureFormat = null;
openfl_display3D_textures_TextureBase.__textureInternalFormat = null;
openfl_display3D_textures_TextureBase.__super__ = openfl_events_EventDispatcher;
openfl_display3D_textures_TextureBase.prototype = $extend(openfl_events_EventDispatcher.prototype,{
__alphaTexture: null
,__context: null
,__format: null
,__glDepthRenderbuffer: null
,__glFramebuffer: null
,__glStencilRenderbuffer: null
,__height: null
,__internalFormat: null
,__optimizeForRenderToTexture: null
,__samplerState: null
,__streamingLevels: null
,__textureContext: null
,__textureID: null
,__textureTarget: null
,__width: null
,dispose: function() {
var gl = this.__context.gl;
if(this.__alphaTexture != null) {
this.__alphaTexture.dispose();
this.__alphaTexture = null;
}
if(this.__textureID != null) {
gl.deleteTexture(this.__textureID);
this.__textureID = null;
}
if(this.__glFramebuffer != null) {
gl.deleteFramebuffer(this.__glFramebuffer);
this.__glFramebuffer = null;
}
if(this.__glDepthRenderbuffer != null) {
gl.deleteRenderbuffer(this.__glDepthRenderbuffer);
this.__glDepthRenderbuffer = null;
}
if(this.__glStencilRenderbuffer != null) {
gl.deleteRenderbuffer(this.__glStencilRenderbuffer);
this.__glStencilRenderbuffer = null;
}
}
,__getGLFramebuffer: function(enableDepthAndStencil,antiAlias,surfaceSelector) {
var gl = this.__context.gl;
if(this.__glFramebuffer == null) {
this.__glFramebuffer = gl.createFramebuffer();
this.__context.__bindGLFramebuffer(this.__glFramebuffer);
gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,this.__textureID,0);
if(this.__context.__enableErrorChecking) {
var code = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
if(code != gl.FRAMEBUFFER_COMPLETE) {
lime_utils_Log.warn("Error: Context3D.setRenderToTexture status:" + code + " width:" + this.__width + " height:" + this.__height,{ fileName : "openfl/display3D/textures/TextureBase.hx", lineNumber : 201, className : "openfl.display3D.textures.TextureBase", methodName : "__getGLFramebuffer"});
}
}
}
if(enableDepthAndStencil && this.__glDepthRenderbuffer == null) {
this.__context.__bindGLFramebuffer(this.__glFramebuffer);
if(openfl_display3D_Context3D.__glDepthStencil != 0) {
this.__glDepthRenderbuffer = gl.createRenderbuffer();
this.__glStencilRenderbuffer = this.__glDepthRenderbuffer;
gl.bindRenderbuffer(gl.RENDERBUFFER,this.__glDepthRenderbuffer);
gl.renderbufferStorage(gl.RENDERBUFFER,openfl_display3D_Context3D.__glDepthStencil,this.__width,this.__height);
gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.DEPTH_STENCIL_ATTACHMENT,gl.RENDERBUFFER,this.__glDepthRenderbuffer);
} else {
this.__glDepthRenderbuffer = gl.createRenderbuffer();
this.__glStencilRenderbuffer = gl.createRenderbuffer();
gl.bindRenderbuffer(gl.RENDERBUFFER,this.__glDepthRenderbuffer);
gl.renderbufferStorage(gl.RENDERBUFFER,gl.DEPTH_COMPONENT16,this.__width,this.__height);
gl.bindRenderbuffer(gl.RENDERBUFFER,this.__glStencilRenderbuffer);
gl.renderbufferStorage(gl.RENDERBUFFER,gl.STENCIL_INDEX8,this.__width,this.__height);
gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.DEPTH_ATTACHMENT,gl.RENDERBUFFER,this.__glDepthRenderbuffer);
gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.STENCIL_ATTACHMENT,gl.RENDERBUFFER,this.__glStencilRenderbuffer);
}
if(this.__context.__enableErrorChecking) {
var code = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
if(code != gl.FRAMEBUFFER_COMPLETE) {
lime_utils_Log.warn("Error: Context3D.setRenderToTexture status:" + code + " width:" + this.__width + " height:" + this.__height,{ fileName : "openfl/display3D/textures/TextureBase.hx", lineNumber : 239, className : "openfl.display3D.textures.TextureBase", methodName : "__getGLFramebuffer"});
}
}
gl.bindRenderbuffer(gl.RENDERBUFFER,null);
}
return this.__glFramebuffer;
}
,__getImage: function(bitmapData) {
var image = bitmapData.image;
if(!bitmapData.__isValid || image == null) {
return null;
}
lime__$internal_graphics_ImageCanvasUtil.sync(image,false);
var gl = this.__context.gl;
if(image.type != lime_graphics_ImageType.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;
}
,__getTexture: function() {
return this.__textureID;
}
,__setSamplerState: function(state) {
if(!state.equals(this.__samplerState)) {
var gl = this.__context.gl;
if(this.__textureTarget == this.__context.gl.TEXTURE_CUBE_MAP) {
this.__context.__bindGLTextureCubeMap(this.__textureID);
} else {
this.__context.__bindGLTexture2D(this.__textureID);
}
var wrapModeS = 0;
var wrapModeT = 0;
switch(state.wrap) {
case 0:
wrapModeS = gl.CLAMP_TO_EDGE;
wrapModeT = gl.CLAMP_TO_EDGE;
break;
case 1:
wrapModeS = gl.CLAMP_TO_EDGE;
wrapModeT = gl.REPEAT;
break;
case 2:
wrapModeS = gl.REPEAT;
wrapModeT = gl.REPEAT;
break;
case 3:
wrapModeS = gl.REPEAT;
wrapModeT = gl.CLAMP_TO_EDGE;
break;
default:
throw haxe_Exception.thrown(new openfl_errors_Error("wrap bad enum"));
}
var magFilter = 0;
var minFilter = 0;
if(state.filter == 5) {
magFilter = gl.NEAREST;
} else {
magFilter = gl.LINEAR;
}
switch(state.mipfilter) {
case 0:
minFilter = state.filter == 5 ? gl.NEAREST_MIPMAP_LINEAR : gl.LINEAR_MIPMAP_LINEAR;
break;
case 1:
minFilter = state.filter == 5 ? gl.NEAREST_MIPMAP_NEAREST : gl.LINEAR_MIPMAP_NEAREST;
break;
case 2:
minFilter = state.filter == 5 ? gl.NEAREST : gl.LINEAR;
break;
default:
throw haxe_Exception.thrown(new openfl_errors_Error("mipfiter bad enum"));
}
gl.texParameteri(this.__textureTarget,gl.TEXTURE_MIN_FILTER,minFilter);
gl.texParameteri(this.__textureTarget,gl.TEXTURE_MAG_FILTER,magFilter);
gl.texParameteri(this.__textureTarget,gl.TEXTURE_WRAP_S,wrapModeS);
gl.texParameteri(this.__textureTarget,gl.TEXTURE_WRAP_T,wrapModeT);
var tmp = state.lodBias != 0.0;
if(this.__samplerState == null) {
this.__samplerState = state.clone();
}
this.__samplerState.copyFrom(state);
return true;
}
return false;
}
,__uploadFromImage: function(image) {
var gl = this.__context.gl;
var internalFormat;
var format;
if(this.__textureTarget != gl.TEXTURE_2D) {
return;
}
if(image.buffer.bitsPerPixel == 1) {
internalFormat = gl.ALPHA;
format = gl.ALPHA;
} else {
internalFormat = openfl_display3D_textures_TextureBase.__textureInternalFormat;
format = openfl_display3D_textures_TextureBase.__textureFormat;
}
this.__context.__bindGLTexture2D(this.__textureID);
if(image.type != lime_graphics_ImageType.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,1);
}
if(image.type == lime_graphics_ImageType.DATA) {
lime_graphics_WebGLRenderContext.texImage2D(gl,gl.TEXTURE_2D,0,internalFormat,image.buffer.width,image.buffer.height,0,format,gl.UNSIGNED_BYTE,image.get_data());
} else {
lime_graphics_WebGLRenderContext.texImage2D(gl,gl.TEXTURE_2D,0,internalFormat,format,gl.UNSIGNED_BYTE,image.get_src());
}
this.__context.__bindGLTexture2D(null);
}
,__class__: openfl_display3D_textures_TextureBase
});
var openfl_display3D_textures_CubeTexture = function(context,size,format,optimizeForRenderToTexture,streamingLevels) {
openfl_display3D_textures_TextureBase.call(this,context);
this.__size = size;
this.__width = this.__height = this.__size;
this.__optimizeForRenderToTexture = optimizeForRenderToTexture;
this.__streamingLevels = streamingLevels;
this.__textureTarget = this.__context.gl.TEXTURE_CUBE_MAP;
this.__uploadedSides = 0;
};
$hxClasses["openfl.display3D.textures.CubeTexture"] = openfl_display3D_textures_CubeTexture;
openfl_display3D_textures_CubeTexture.__name__ = "openfl.display3D.textures.CubeTexture";
openfl_display3D_textures_CubeTexture.__super__ = openfl_display3D_textures_TextureBase;
openfl_display3D_textures_CubeTexture.prototype = $extend(openfl_display3D_textures_TextureBase.prototype,{
__framebufferSurface: null
,__size: null
,__uploadedSides: null
,uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) {
if(async == null) {
async = false;
}
var _gthis = this;
if(!async) {
this.__uploadCompressedTextureFromByteArray(data,byteArrayOffset);
} else {
haxe_Timer.delay(function() {
_gthis.__uploadCompressedTextureFromByteArray(data,byteArrayOffset);
var event = null;
event = new openfl_events_Event("textureReady");
_gthis.dispatchEvent(event);
},1);
}
}
,uploadFromBitmapData: function(source,side,miplevel,generateMipmap) {
if(generateMipmap == null) {
generateMipmap = false;
}
if(miplevel == null) {
miplevel = 0;
}
if(source == null) {
return;
}
var size = this.__size >> miplevel;
if(size == 0) {
return;
}
var image = this.__getImage(source);
if(image == null) {
return;
}
if(miplevel == 0 && image.buffer != null && image.buffer.data == null && image.buffer.get_src() != null) {
var gl = this.__context.gl;
var size = this.__size >> miplevel;
if(size == 0) {
return;
}
var target = this.__sideToTarget(side);
this.__context.__bindGLTextureCubeMap(this.__textureID);
lime_graphics_WebGLRenderContext.texImage2D(gl,target,miplevel,this.__internalFormat,this.__format,gl.UNSIGNED_BYTE,image.buffer.get_src());
this.__context.__bindGLTextureCubeMap(null);
this.__uploadedSides |= 1 << side;
return;
}
this.uploadFromTypedArray(image.get_data(),side,miplevel);
}
,uploadFromByteArray: function(data,byteArrayOffset,side,miplevel) {
if(miplevel == null) {
miplevel = 0;
}
if(byteArrayOffset == 0) {
this.uploadFromTypedArray(data.b,side,miplevel);
return;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = openfl_utils_ByteArray.toArrayBuffer(data);
var byteoffset = byteArrayOffset;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
this.uploadFromTypedArray(this1,side,miplevel);
}
,uploadFromTypedArray: function(data,side,miplevel) {
if(miplevel == null) {
miplevel = 0;
}
if(data == null) {
return;
}
var gl = this.__context.gl;
var size = this.__size >> miplevel;
if(size == 0) {
return;
}
var target = this.__sideToTarget(side);
this.__context.__bindGLTextureCubeMap(this.__textureID);
lime_graphics_WebGLRenderContext.texImage2D(gl,target,miplevel,this.__internalFormat,size,size,0,this.__format,gl.UNSIGNED_BYTE,data);
this.__context.__bindGLTextureCubeMap(null);
this.__uploadedSides |= 1 << side;
}
,__getGLFramebuffer: function(enableDepthAndStencil,antiAlias,surfaceSelector) {
var gl = this.__context.gl;
if(this.__glFramebuffer == null) {
this.__glFramebuffer = gl.createFramebuffer();
this.__framebufferSurface = -1;
}
if(this.__framebufferSurface != surfaceSelector) {
this.__framebufferSurface = surfaceSelector;
this.__context.__bindGLFramebuffer(this.__glFramebuffer);
gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_CUBE_MAP_POSITIVE_X + surfaceSelector,this.__textureID,0);
if(this.__context.__enableErrorChecking) {
var code = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
if(code != gl.FRAMEBUFFER_COMPLETE) {
lime_utils_Log.error("Error: Context3D.setRenderToTexture status:" + code + " width:" + this.__width + " height:" + this.__height,{ fileName : "openfl/display3D/textures/CubeTexture.hx", lineNumber : 278, className : "openfl.display3D.textures.CubeTexture", methodName : "__getGLFramebuffer"});
}
}
}
return openfl_display3D_textures_TextureBase.prototype.__getGLFramebuffer.call(this,enableDepthAndStencil,antiAlias,surfaceSelector);
}
,__setSamplerState: function(state) {
if(openfl_display3D_textures_TextureBase.prototype.__setSamplerState.call(this,state)) {
var gl = this.__context.gl;
if(state.mipfilter != 2 && !this.__samplerState.mipmapGenerated) {
gl.generateMipmap(gl.TEXTURE_CUBE_MAP);
this.__samplerState.mipmapGenerated = true;
}
if(openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy != 0) {
var aniso;
switch(state.filter) {
case 0:
aniso = 16;
break;
case 1:
aniso = 2;
break;
case 2:
aniso = 4;
break;
case 3:
aniso = 8;
break;
default:
aniso = 1;
}
if(aniso > openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy) {
aniso = openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy;
}
gl.texParameterf(gl.TEXTURE_CUBE_MAP,openfl_display3D_Context3D.__glTextureMaxAnisotropy,aniso);
}
return true;
}
return false;
}
,__sideToTarget: function(side) {
var gl = this.__context.gl;
switch(side) {
case 0:
return gl.TEXTURE_CUBE_MAP_POSITIVE_X;
case 1:
return gl.TEXTURE_CUBE_MAP_NEGATIVE_X;
case 2:
return gl.TEXTURE_CUBE_MAP_POSITIVE_Y;
case 3:
return gl.TEXTURE_CUBE_MAP_NEGATIVE_Y;
case 4:
return gl.TEXTURE_CUBE_MAP_POSITIVE_Z;
case 5:
return gl.TEXTURE_CUBE_MAP_NEGATIVE_Z;
default:
throw haxe_Exception.thrown(new openfl_errors_IllegalOperationError());
}
}
,__uploadCompressedTextureFromByteArray: function(data,byteArrayOffset) {
var _gthis = this;
var reader = new openfl_display3D__$internal_atf_ATFReader(data,byteArrayOffset);
var alpha = reader.readHeader(this.__size,this.__size,true);
var gl = this.__context.gl;
this.__context.__bindGLTextureCubeMap(this.__textureID);
var hasTexture = false;
reader.readTextures(function(side,level,gpuFormat,width,height,blockLength,bytes) {
var format = alpha ? openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[gpuFormat] : openfl_display3D_textures_TextureBase.__compressedFormats.h[gpuFormat];
if(format == 0) {
return;
}
hasTexture = true;
var target = _gthis.__sideToTarget(side);
_gthis.__format = format;
_gthis.__internalFormat = format;
if(alpha && gpuFormat == 2) {
var size = blockLength / 2 | 0;
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytes.b.buffer;
var byteoffset = 0;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(size == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,size);
}
} else {
this1 = null;
}
lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,target,level,_gthis.__internalFormat,width,height,0,this1);
var alphaTexture = new openfl_display3D_textures_CubeTexture(_gthis.__context,_gthis.__size,3,_gthis.__optimizeForRenderToTexture,_gthis.__streamingLevels);
alphaTexture.__format = format;
alphaTexture.__internalFormat = format;
_gthis.__context.__bindGLTextureCubeMap(alphaTexture.__textureID);
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytes.b.buffer;
var byteoffset = size;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(size == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,size);
}
} else {
this1 = null;
}
lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,target,level,alphaTexture.__internalFormat,width,height,0,this1);
_gthis.__alphaTexture = alphaTexture;
} else {
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytes.b.buffer;
var byteoffset = 0;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(blockLength == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,blockLength);
}
} else {
this1 = null;
}
lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,target,level,_gthis.__internalFormat,width,height,0,this1);
}
});
if(!hasTexture) {
var elements = this.__size * this.__size * 4;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(0),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data);
var elements = this.__size * this.__size * 4;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(1),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data);
var elements = this.__size * this.__size * 4;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(2),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data);
var elements = this.__size * this.__size * 4;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(3),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data);
var elements = this.__size * this.__size * 4;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(4),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data);
var elements = this.__size * this.__size * 4;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(5),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data);
}
this.__context.__bindGLTextureCubeMap(null);
}
,__class__: openfl_display3D_textures_CubeTexture
});
var openfl_display3D_textures_RectangleTexture = function(context,width,height,format,optimizeForRenderToTexture) {
openfl_display3D_textures_TextureBase.call(this,context);
this.__width = width;
this.__height = height;
this.__optimizeForRenderToTexture = optimizeForRenderToTexture;
this.__textureTarget = this.__context.gl.TEXTURE_2D;
this.uploadFromTypedArray(null);
if(optimizeForRenderToTexture) {
this.__getGLFramebuffer(true,0,0);
}
};
$hxClasses["openfl.display3D.textures.RectangleTexture"] = openfl_display3D_textures_RectangleTexture;
openfl_display3D_textures_RectangleTexture.__name__ = "openfl.display3D.textures.RectangleTexture";
openfl_display3D_textures_RectangleTexture.__super__ = openfl_display3D_textures_TextureBase;
openfl_display3D_textures_RectangleTexture.prototype = $extend(openfl_display3D_textures_TextureBase.prototype,{
uploadFromBitmapData: function(source) {
if(source == null) {
return;
}
var image = this.__getImage(source);
if(image == null) {
return;
}
if(image.buffer != null && image.buffer.data == null && image.buffer.get_src() != null) {
var gl = this.__context.gl;
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__format,gl.UNSIGNED_BYTE,image.buffer.get_src());
this.__context.__bindGLTexture2D(null);
return;
}
this.uploadFromTypedArray(image.get_data());
}
,uploadFromByteArray: function(data,byteArrayOffset) {
if(byteArrayOffset == 0) {
this.uploadFromTypedArray(data.b);
return;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = openfl_utils_ByteArray.toArrayBuffer(data);
var byteoffset = byteArrayOffset;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
this.uploadFromTypedArray(this1);
}
,uploadFromTypedArray: function(data) {
var gl = this.__context.gl;
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__width,this.__height,0,this.__format,gl.UNSIGNED_BYTE,data);
this.__context.__bindGLTexture2D(null);
}
,__setSamplerState: function(state) {
if(openfl_display3D_textures_TextureBase.prototype.__setSamplerState.call(this,state)) {
var gl = this.__context.gl;
if(openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy != 0) {
var aniso;
switch(state.filter) {
case 0:
aniso = 16;
break;
case 1:
aniso = 2;
break;
case 2:
aniso = 4;
break;
case 3:
aniso = 8;
break;
default:
aniso = 1;
}
if(aniso > openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy) {
aniso = openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy;
}
gl.texParameterf(gl.TEXTURE_2D,openfl_display3D_Context3D.__glTextureMaxAnisotropy,aniso);
}
return true;
}
return false;
}
,__class__: openfl_display3D_textures_RectangleTexture
});
var openfl_display3D_textures_Texture = function(context,width,height,format,optimizeForRenderToTexture,streamingLevels) {
openfl_display3D_textures_TextureBase.call(this,context);
this.__width = width;
this.__height = height;
this.__optimizeForRenderToTexture = optimizeForRenderToTexture;
this.__streamingLevels = streamingLevels;
var gl = this.__context.gl;
this.__textureTarget = gl.TEXTURE_2D;
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__width,this.__height,0,this.__format,gl.UNSIGNED_BYTE,null);
this.__context.__bindGLTexture2D(null);
if(optimizeForRenderToTexture) {
this.__getGLFramebuffer(true,0,0);
}
};
$hxClasses["openfl.display3D.textures.Texture"] = openfl_display3D_textures_Texture;
openfl_display3D_textures_Texture.__name__ = "openfl.display3D.textures.Texture";
openfl_display3D_textures_Texture.__super__ = openfl_display3D_textures_TextureBase;
openfl_display3D_textures_Texture.prototype = $extend(openfl_display3D_textures_TextureBase.prototype,{
uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) {
if(async == null) {
async = false;
}
var _gthis = this;
if(!async) {
this.__uploadCompressedTextureFromByteArray(data,byteArrayOffset);
} else {
haxe_Timer.delay(function() {
_gthis.__uploadCompressedTextureFromByteArray(data,byteArrayOffset);
var event = null;
event = new openfl_events_Event("textureReady");
_gthis.dispatchEvent(event);
},1);
}
}
,uploadFromBitmapData: function(source,miplevel,generateMipmap) {
if(generateMipmap == null) {
generateMipmap = false;
}
if(miplevel == null) {
miplevel = 0;
}
if(source == null) {
return;
}
var width = this.__width >> miplevel;
var height = this.__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(width,height,true,0);
copy.draw(source);
source = copy;
}
var image = this.__getImage(source);
if(image == null) {
return;
}
if(miplevel == 0 && image.buffer != null && image.buffer.data == null && image.buffer.get_src() != null) {
var gl = this.__context.gl;
var width = this.__width >> miplevel;
var height = this.__height >> miplevel;
if(width == 0 && height == 0) {
return;
}
if(width == 0) {
width = 1;
}
if(height == 0) {
height = 1;
}
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,miplevel,this.__internalFormat,this.__format,gl.UNSIGNED_BYTE,image.buffer.get_src());
this.__context.__bindGLTexture2D(null);
return;
}
this.uploadFromTypedArray(image.get_data(),miplevel);
}
,uploadFromByteArray: function(data,byteArrayOffset,miplevel) {
if(miplevel == null) {
miplevel = 0;
}
if(byteArrayOffset == 0) {
this.uploadFromTypedArray(data.b,miplevel);
return;
}
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = openfl_utils_ByteArray.toArrayBuffer(data);
var byteoffset = byteArrayOffset;
var len = null;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,len);
}
} else {
this1 = null;
}
this.uploadFromTypedArray(this1,miplevel);
}
,uploadFromTypedArray: function(data,miplevel) {
if(miplevel == null) {
miplevel = 0;
}
if(data == null) {
return;
}
var gl = this.__context.gl;
var width = this.__width >> miplevel;
var height = this.__height >> miplevel;
if(width == 0 && height == 0) {
return;
}
if(width == 0) {
width = 1;
}
if(height == 0) {
height = 1;
}
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,miplevel,this.__internalFormat,width,height,0,this.__format,gl.UNSIGNED_BYTE,data);
this.__context.__bindGLTexture2D(null);
}
,__setSamplerState: function(state) {
if(openfl_display3D_textures_TextureBase.prototype.__setSamplerState.call(this,state)) {
var gl = this.__context.gl;
if(state.mipfilter != 2 && !this.__samplerState.mipmapGenerated) {
gl.generateMipmap(gl.TEXTURE_2D);
this.__samplerState.mipmapGenerated = true;
}
if(openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy != 0) {
var aniso;
switch(state.filter) {
case 0:
aniso = 16;
break;
case 1:
aniso = 2;
break;
case 2:
aniso = 4;
break;
case 3:
aniso = 8;
break;
default:
aniso = 1;
}
if(aniso > openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy) {
aniso = openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy;
}
gl.texParameterf(gl.TEXTURE_2D,openfl_display3D_Context3D.__glTextureMaxAnisotropy,aniso);
}
return true;
}
return false;
}
,__uploadCompressedTextureFromByteArray: function(data,byteArrayOffset) {
var _gthis = this;
var reader = new openfl_display3D__$internal_atf_ATFReader(data,byteArrayOffset);
var alpha = reader.readHeader(this.__width,this.__height,false);
var context = this.__context;
var gl = context.gl;
this.__context.__bindGLTexture2D(this.__textureID);
var hasTexture = false;
reader.readTextures(function(target,level,gpuFormat,width,height,blockLength,bytes) {
var format = alpha ? openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[gpuFormat] : openfl_display3D_textures_TextureBase.__compressedFormats.h[gpuFormat];
if(format == 0) {
return;
}
hasTexture = true;
_gthis.__format = format;
_gthis.__internalFormat = format;
if(alpha && gpuFormat == 2) {
var size = blockLength / 2 | 0;
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytes.b.buffer;
var byteoffset = 0;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(size == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,size);
}
} else {
this1 = null;
}
lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,_gthis.__textureTarget,level,_gthis.__internalFormat,width,height,0,this1);
var alphaTexture = new openfl_display3D_textures_Texture(_gthis.__context,_gthis.__width,_gthis.__height,3,_gthis.__optimizeForRenderToTexture,_gthis.__streamingLevels);
alphaTexture.__format = format;
alphaTexture.__internalFormat = format;
_gthis.__context.__bindGLTexture2D(alphaTexture.__textureID);
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytes.b.buffer;
var byteoffset = size;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(size == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,size);
}
} else {
this1 = null;
}
lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,alphaTexture.__textureTarget,level,alphaTexture.__internalFormat,width,height,0,this1);
_gthis.__alphaTexture = alphaTexture;
} else {
var elements = null;
var array = null;
var vector = null;
var view = null;
var buffer = bytes.b.buffer;
var byteoffset = 0;
if(byteoffset == null) {
byteoffset = 0;
}
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(blockLength == null) {
this1 = new Uint8Array(buffer,byteoffset);
} else {
this1 = new Uint8Array(buffer,byteoffset,blockLength);
}
} else {
this1 = null;
}
lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,_gthis.__textureTarget,level,_gthis.__internalFormat,width,height,0,this1);
}
});
if(!hasTexture) {
var elements = this.__width * this.__height * 4;
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1;
if(elements != null) {
this1 = new Uint8Array(elements);
} else if(array != null) {
this1 = new Uint8Array(array);
} else if(vector != null) {
this1 = new Uint8Array(vector.__array);
} else if(view != null) {
this1 = new Uint8Array(view);
} else if(buffer != null) {
if(len == null) {
this1 = new Uint8Array(buffer,0);
} else {
this1 = new Uint8Array(buffer,0,len);
}
} else {
this1 = null;
}
var data = this1;
lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__width,this.__height,0,this.__format,gl.UNSIGNED_BYTE,data);
}
this.__context.__bindGLTexture2D(null);
}
,__class__: openfl_display3D_textures_Texture
});
var openfl_display3D_textures_VideoTexture = function(context) {
openfl_display3D_textures_TextureBase.call(this,context);
this.__textureTarget = this.__context.gl.TEXTURE_2D;
};
$hxClasses["openfl.display3D.textures.VideoTexture"] = openfl_display3D_textures_VideoTexture;
openfl_display3D_textures_VideoTexture.__name__ = "openfl.display3D.textures.VideoTexture";
openfl_display3D_textures_VideoTexture.__super__ = openfl_display3D_textures_TextureBase;
openfl_display3D_textures_VideoTexture.prototype = $extend(openfl_display3D_textures_TextureBase.prototype,{
videoHeight: null
,videoWidth: null
,__cacheTime: null
,__netStream: null
,attachNetStream: function(netStream) {
var _gthis = this;
if(this.__netStream != null) {
this.__netStream.__video.removeEventListener("canplay",$bind(this,this.__onCanPlay),false);
}
this.__cacheTime = -1;
this.__netStream = netStream;
if(this.__netStream != null) {
if(this.__netStream.__video.readyState >= 2) {
haxe_Timer.delay(function() {
_gthis.__textureReady();
},0);
} else {
this.__netStream.__video.addEventListener("canplay",$bind(this,this.__onCanPlay),false);
}
}
}
,dispose: function() {
if(this.__netStream != null && this.__netStream.__video != null) {
this.__netStream.__video.removeEventListener("timeupdate",$bind(this,this.__onTimeUpdate));
}
openfl_display3D_textures_TextureBase.prototype.dispose.call(this);
}
,__onCanPlay: function(_) {
this.__netStream.__video.addEventListener("timeupdate",$bind(this,this.__onTimeUpdate));
this.__textureReady();
}
,__onTimeUpdate: function(_) {
if(this.__netStream != null && this.__netStream.__video.currentTime != this.__cacheTime && this.__netStream.__video.readyState >= 2) {
this.__textureReady();
}
}
,__getTexture: function() {
if(this.__netStream.__video.currentTime != this.__cacheTime && this.__netStream.__video.readyState >= 2) {
var gl = this.__context.gl;
this.__context.__bindGLTexture2D(this.__textureID);
lime_graphics_WebGLRenderContext.texImage2D(gl,gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,this.__netStream.__video);
this.__cacheTime = this.__netStream.__video.currentTime;
}
return this.__textureID;
}
,__textureReady: function() {
this.videoWidth = this.__netStream.__video.videoWidth;
this.videoHeight = this.__netStream.__video.videoHeight;
var event = null;
event = new openfl_events_Event("textureReady");
this.dispatchEvent(event);
}
,__class__: openfl_display3D_textures_VideoTexture
});
var openfl_errors_Error = function(message,id) {
if(id == null) {
id = 0;
}
if(message == null) {
message = "";
}
this.message = message;
this.errorID = id;
this.name = "Error";
};
$hxClasses["openfl.errors.Error"] = openfl_errors_Error;
openfl_errors_Error.__name__ = "openfl.errors.Error";
openfl_errors_Error.prototype = {
errorID: null
,message: null
,name: null
,getStackTrace: function() {
return haxe_CallStack.toString(haxe_CallStack.exceptionStack());
}
,toString: function() {
if(this.message != null) {
return this.message;
} else {
return "Error";
}
}
,__class__: openfl_errors_Error
};
var openfl_errors_ArgumentError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message);
this.name = "ArgumentError";
};
$hxClasses["openfl.errors.ArgumentError"] = openfl_errors_ArgumentError;
openfl_errors_ArgumentError.__name__ = "openfl.errors.ArgumentError";
openfl_errors_ArgumentError.__super__ = openfl_errors_Error;
openfl_errors_ArgumentError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_ArgumentError
});
var openfl_errors_IOError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message);
this.name = "IOError";
};
$hxClasses["openfl.errors.IOError"] = openfl_errors_IOError;
openfl_errors_IOError.__name__ = "openfl.errors.IOError";
openfl_errors_IOError.__super__ = openfl_errors_Error;
openfl_errors_IOError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_IOError
});
var openfl_errors_EOFError = function(message,id) {
if(id == null) {
id = 0;
}
openfl_errors_IOError.call(this,"End of file was encountered");
this.name = "EOFError";
this.errorID = 2030;
};
$hxClasses["openfl.errors.EOFError"] = openfl_errors_EOFError;
openfl_errors_EOFError.__name__ = "openfl.errors.EOFError";
openfl_errors_EOFError.__super__ = openfl_errors_IOError;
openfl_errors_EOFError.prototype = $extend(openfl_errors_IOError.prototype,{
__class__: openfl_errors_EOFError
});
var openfl_errors_IllegalOperationError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message,0);
this.name = "IllegalOperationError";
};
$hxClasses["openfl.errors.IllegalOperationError"] = openfl_errors_IllegalOperationError;
openfl_errors_IllegalOperationError.__name__ = "openfl.errors.IllegalOperationError";
openfl_errors_IllegalOperationError.__super__ = openfl_errors_Error;
openfl_errors_IllegalOperationError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_IllegalOperationError
});
var openfl_errors_RangeError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message,0);
this.name = "RangeError";
};
$hxClasses["openfl.errors.RangeError"] = openfl_errors_RangeError;
openfl_errors_RangeError.__name__ = "openfl.errors.RangeError";
openfl_errors_RangeError.__super__ = openfl_errors_Error;
openfl_errors_RangeError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_RangeError
});
var openfl_errors_TypeError = function(message) {
if(message == null) {
message = "";
}
openfl_errors_Error.call(this,message,0);
this.name = "TypeError";
};
$hxClasses["openfl.errors.TypeError"] = openfl_errors_TypeError;
openfl_errors_TypeError.__name__ = "openfl.errors.TypeError";
openfl_errors_TypeError.__super__ = openfl_errors_Error;
openfl_errors_TypeError.prototype = $extend(openfl_errors_Error.prototype,{
__class__: openfl_errors_TypeError
});
var openfl_events_Event = function(type,bubbles,cancelable) {
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
this.type = type;
this.bubbles = bubbles;
this.cancelable = cancelable;
this.eventPhase = 2;
};
$hxClasses["openfl.events.Event"] = openfl_events_Event;
openfl_events_Event.__name__ = "openfl.events.Event";
openfl_events_Event.prototype = {
bubbles: null
,cancelable: null
,currentTarget: null
,eventPhase: null
,target: null
,type: null
,__isCanceled: null
,__isCanceledNow: null
,__preventDefault: null
,clone: function() {
var event = new openfl_events_Event(this.type,this.bubbles,this.cancelable);
event.eventPhase = this.eventPhase;
event.target = this.target;
event.currentTarget = this.currentTarget;
return event;
}
,formatToString: function(className,p1,p2,p3,p4,p5) {
var parameters = [];
if(p1 != null) {
parameters.push(p1);
}
if(p2 != null) {
parameters.push(p2);
}
if(p3 != null) {
parameters.push(p3);
}
if(p4 != null) {
parameters.push(p4);
}
if(p5 != null) {
parameters.push(p5);
}
return $bind(this,this.__formatToString).apply(this,[className,parameters]);
}
,isDefaultPrevented: function() {
return this.__preventDefault;
}
,preventDefault: function() {
if(this.cancelable) {
this.__preventDefault = true;
}
}
,stopImmediatePropagation: function() {
this.__isCanceled = true;
this.__isCanceledNow = true;
}
,stopPropagation: function() {
this.__isCanceled = true;
}
,toString: function() {
return this.__formatToString("Event",["type","bubbles","cancelable"]);
}
,__formatToString: function(className,parameters) {
var output = "[" + className;
var arg = null;
var _g = 0;
while(_g < parameters.length) {
var param = parameters[_g];
++_g;
arg = Reflect.field(this,param);
if(typeof(arg) == "string") {
output += " " + param + "=\"" + Std.string(arg) + "\"";
} else {
output += " " + param + "=" + Std.string(arg);
}
}
output += "]";
return output;
}
,__init: function() {
this.target = null;
this.currentTarget = null;
this.bubbles = false;
this.cancelable = false;
this.eventPhase = 2;
this.__isCanceled = false;
this.__isCanceledNow = false;
this.__preventDefault = false;
}
,__class__: openfl_events_Event
};
var openfl_events_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.call(this,type,bubbles,cancelable);
this.timestamp = timestamp;
this.accelerationX = accelerationX;
this.accelerationY = accelerationY;
this.accelerationZ = accelerationZ;
};
$hxClasses["openfl.events.AccelerometerEvent"] = openfl_events_AccelerometerEvent;
openfl_events_AccelerometerEvent.__name__ = "openfl.events.AccelerometerEvent";
openfl_events_AccelerometerEvent.__super__ = openfl_events_Event;
openfl_events_AccelerometerEvent.prototype = $extend(openfl_events_Event.prototype,{
accelerationX: null
,accelerationY: null
,accelerationZ: null
,timestamp: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.timestamp = 0;
this.accelerationX = 0;
this.accelerationY = 0;
this.accelerationZ = 0;
}
,__class__: openfl_events_AccelerometerEvent
});
var openfl_events_ActivityEvent = function(type,bubbles,cancelable,activating) {
if(activating == null) {
activating = false;
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.activating = activating;
};
$hxClasses["openfl.events.ActivityEvent"] = openfl_events_ActivityEvent;
openfl_events_ActivityEvent.__name__ = "openfl.events.ActivityEvent";
openfl_events_ActivityEvent.__super__ = openfl_events_Event;
openfl_events_ActivityEvent.prototype = $extend(openfl_events_Event.prototype,{
activating: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.activating = false;
}
,__class__: openfl_events_ActivityEvent
});
var openfl_events_TextEvent = function(type,bubbles,cancelable,text) {
if(text == null) {
text = "";
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.text = text;
};
$hxClasses["openfl.events.TextEvent"] = openfl_events_TextEvent;
openfl_events_TextEvent.__name__ = "openfl.events.TextEvent";
openfl_events_TextEvent.__super__ = openfl_events_Event;
openfl_events_TextEvent.prototype = $extend(openfl_events_Event.prototype,{
text: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.text = "";
}
,__class__: openfl_events_TextEvent
});
var openfl_events_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.call(this,type,bubbles,cancelable,text);
this.errorID = id;
};
$hxClasses["openfl.events.ErrorEvent"] = openfl_events_ErrorEvent;
openfl_events_ErrorEvent.__name__ = "openfl.events.ErrorEvent";
openfl_events_ErrorEvent.__super__ = openfl_events_TextEvent;
openfl_events_ErrorEvent.prototype = $extend(openfl_events_TextEvent.prototype,{
errorID: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_TextEvent.prototype.__init.call(this);
this.errorID = 0;
}
,__class__: openfl_events_ErrorEvent
});
var openfl_events__$EventDispatcher_DispatchIterator = function(list) {
this.active = false;
this.reset(list);
};
$hxClasses["openfl.events._EventDispatcher.DispatchIterator"] = openfl_events__$EventDispatcher_DispatchIterator;
openfl_events__$EventDispatcher_DispatchIterator.__name__ = "openfl.events._EventDispatcher.DispatchIterator";
openfl_events__$EventDispatcher_DispatchIterator.prototype = {
active: null
,index: null
,isCopy: null
,list: null
,copy: function() {
if(!this.isCopy) {
this.list = this.list.slice();
this.isCopy = true;
}
}
,hasNext: function() {
return this.index < this.list.length;
}
,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 _g = this.index;
var _g1 = this.list.length;
while(_g < _g1) {
var i = _g++;
if(this.list[i] == listener) {
this.list.splice(i,1);
break;
}
}
}
}
}
,reset: function(list) {
this.list = list;
this.isCopy = false;
this.index = 0;
}
,start: function() {
this.active = true;
}
,stop: function() {
this.active = false;
}
,__class__: openfl_events__$EventDispatcher_DispatchIterator
};
var openfl_events__$EventDispatcher_Listener = function(callback,useCapture,priority) {
this.callback = callback;
this.useCapture = useCapture;
this.priority = priority;
};
$hxClasses["openfl.events._EventDispatcher.Listener"] = openfl_events__$EventDispatcher_Listener;
openfl_events__$EventDispatcher_Listener.__name__ = "openfl.events._EventDispatcher.Listener";
openfl_events__$EventDispatcher_Listener.prototype = {
callback: null
,priority: null
,useCapture: null
,match: function(callback,useCapture) {
if(Reflect.compareMethods(this.callback,callback)) {
return this.useCapture == useCapture;
} else {
return false;
}
}
,__class__: openfl_events__$EventDispatcher_Listener
};
var openfl_events_EventType = {};
openfl_events_EventType.equals = function(a,b) {
return a == b;
};
openfl_events_EventType.notEquals = function(a,b) {
return a != b;
};
var openfl_events_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.call(this,type,bubbles,cancelable);
this.keyCode = keyCode;
this.shiftKey = shiftKey;
this.relatedObject = relatedObject;
};
$hxClasses["openfl.events.FocusEvent"] = openfl_events_FocusEvent;
openfl_events_FocusEvent.__name__ = "openfl.events.FocusEvent";
openfl_events_FocusEvent.__super__ = openfl_events_Event;
openfl_events_FocusEvent.prototype = $extend(openfl_events_Event.prototype,{
keyCode: null
,relatedObject: null
,shiftKey: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.keyCode = 0;
this.shiftKey = false;
this.relatedObject = null;
}
,__class__: openfl_events_FocusEvent
});
var openfl_events_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.call(this,type,bubbles,cancelable);
this.fullScreen = fullScreen;
this.interactive = interactive;
};
$hxClasses["openfl.events.FullScreenEvent"] = openfl_events_FullScreenEvent;
openfl_events_FullScreenEvent.__name__ = "openfl.events.FullScreenEvent";
openfl_events_FullScreenEvent.__super__ = openfl_events_ActivityEvent;
openfl_events_FullScreenEvent.prototype = $extend(openfl_events_ActivityEvent.prototype,{
fullScreen: null
,interactive: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_ActivityEvent.prototype.__init.call(this);
this.fullScreen = false;
this.interactive = false;
}
,__class__: openfl_events_FullScreenEvent
});
var openfl_events_GameInputEvent = function(type,bubbles,cancelable,device) {
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = true;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.device = device;
};
$hxClasses["openfl.events.GameInputEvent"] = openfl_events_GameInputEvent;
openfl_events_GameInputEvent.__name__ = "openfl.events.GameInputEvent";
openfl_events_GameInputEvent.__super__ = openfl_events_Event;
openfl_events_GameInputEvent.prototype = $extend(openfl_events_Event.prototype,{
device: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.device = null;
}
,__class__: openfl_events_GameInputEvent
});
var openfl_events_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.call(this,type,bubbles,cancelable);
};
$hxClasses["openfl.events.HTTPStatusEvent"] = openfl_events_HTTPStatusEvent;
openfl_events_HTTPStatusEvent.__name__ = "openfl.events.HTTPStatusEvent";
openfl_events_HTTPStatusEvent.__super__ = openfl_events_Event;
openfl_events_HTTPStatusEvent.prototype = $extend(openfl_events_Event.prototype,{
redirected: null
,responseHeaders: null
,responseURL: null
,status: null
,clone: function() {
var event = new openfl_events_HTTPStatusEvent(this.type,this.bubbles,this.cancelable,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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.status = 0;
this.redirected = false;
}
,__class__: openfl_events_HTTPStatusEvent
});
var openfl_events_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.call(this,type,bubbles,cancelable,text,id);
};
$hxClasses["openfl.events.IOErrorEvent"] = openfl_events_IOErrorEvent;
openfl_events_IOErrorEvent.__name__ = "openfl.events.IOErrorEvent";
openfl_events_IOErrorEvent.__super__ = openfl_events_ErrorEvent;
openfl_events_IOErrorEvent.prototype = $extend(openfl_events_ErrorEvent.prototype,{
clone: function() {
var event = new openfl_events_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"]);
}
,__class__: openfl_events_IOErrorEvent
});
var openfl_events_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.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;
};
$hxClasses["openfl.events.KeyboardEvent"] = openfl_events_KeyboardEvent;
openfl_events_KeyboardEvent.__name__ = "openfl.events.KeyboardEvent";
openfl_events_KeyboardEvent.__super__ = openfl_events_Event;
openfl_events_KeyboardEvent.prototype = $extend(openfl_events_Event.prototype,{
altKey: null
,charCode: null
,commandKey: null
,controlKey: null
,ctrlKey: null
,keyCode: null
,keyLocation: null
,shiftKey: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.charCode = 0;
this.keyCode = 0;
this.keyLocation = 0;
this.ctrlKey = false;
this.altKey = false;
this.shiftKey = false;
this.controlKey = false;
this.commandKey = false;
}
,__class__: openfl_events_KeyboardEvent
});
var openfl_events_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.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;
};
$hxClasses["openfl.events.MouseEvent"] = openfl_events_MouseEvent;
openfl_events_MouseEvent.__name__ = "openfl.events.MouseEvent";
openfl_events_MouseEvent.__altKey = null;
openfl_events_MouseEvent.__buttonDown = null;
openfl_events_MouseEvent.__commandKey = null;
openfl_events_MouseEvent.__ctrlKey = null;
openfl_events_MouseEvent.__shiftKey = null;
openfl_events_MouseEvent.__create = function(type,button,stageX,stageY,local,target,delta) {
if(delta == null) {
delta = 0;
}
var event = new openfl_events_MouseEvent(type,true,false,local.x,local.y,null,openfl_events_MouseEvent.__ctrlKey,openfl_events_MouseEvent.__altKey,openfl_events_MouseEvent.__shiftKey,openfl_events_MouseEvent.__buttonDown,delta,openfl_events_MouseEvent.__commandKey);
event.stageX = stageX;
event.stageY = stageY;
event.target = target;
return event;
};
openfl_events_MouseEvent.__super__ = openfl_events_Event;
openfl_events_MouseEvent.prototype = $extend(openfl_events_Event.prototype,{
altKey: null
,buttonDown: null
,commandKey: null
,clickCount: null
,ctrlKey: null
,delta: null
,isRelatedObjectInaccessible: null
,localX: null
,localY: null
,relatedObject: null
,shiftKey: null
,stageX: null
,stageY: null
,clone: function() {
var event = new openfl_events_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() {
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.shiftKey = false;
this.altKey = false;
this.ctrlKey = false;
this.bubbles = false;
this.relatedObject = null;
this.delta = 0;
this.localX = 0;
this.localY = 0;
this.buttonDown = false;
this.commandKey = false;
this.clickCount = 0;
this.isRelatedObjectInaccessible = false;
this.stageX = NaN;
this.stageY = NaN;
}
,__class__: openfl_events_MouseEvent
});
var openfl_events_NetStatusEvent = function(type,bubbles,cancelable,info) {
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
this.info = info;
openfl_events_Event.call(this,type,bubbles,cancelable);
};
$hxClasses["openfl.events.NetStatusEvent"] = openfl_events_NetStatusEvent;
openfl_events_NetStatusEvent.__name__ = "openfl.events.NetStatusEvent";
openfl_events_NetStatusEvent.__super__ = openfl_events_Event;
openfl_events_NetStatusEvent.prototype = $extend(openfl_events_Event.prototype,{
info: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.info = null;
}
,__class__: openfl_events_NetStatusEvent
});
var openfl_events_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.call(this,type,bubbles,cancelable);
this.bytesLoaded = bytesLoaded;
this.bytesTotal = bytesTotal;
};
$hxClasses["openfl.events.ProgressEvent"] = openfl_events_ProgressEvent;
openfl_events_ProgressEvent.__name__ = "openfl.events.ProgressEvent";
openfl_events_ProgressEvent.__super__ = openfl_events_Event;
openfl_events_ProgressEvent.prototype = $extend(openfl_events_Event.prototype,{
bytesLoaded: null
,bytesTotal: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.bytesLoaded = 0;
this.bytesTotal = 0;
}
,__class__: openfl_events_ProgressEvent
});
var openfl_events_RenderEvent = function(type,bubbles,cancelable,objectMatrix,objectColorTransform,allowSmoothing) {
if(allowSmoothing == null) {
allowSmoothing = true;
}
if(cancelable == null) {
cancelable = false;
}
if(bubbles == null) {
bubbles = false;
}
openfl_events_Event.call(this,type,bubbles,cancelable);
this.objectMatrix = objectMatrix;
this.objectColorTransform = objectColorTransform;
this.allowSmoothing = allowSmoothing;
};
$hxClasses["openfl.events.RenderEvent"] = openfl_events_RenderEvent;
openfl_events_RenderEvent.__name__ = "openfl.events.RenderEvent";
openfl_events_RenderEvent.__super__ = openfl_events_Event;
openfl_events_RenderEvent.prototype = $extend(openfl_events_Event.prototype,{
allowSmoothing: null
,objectColorTransform: null
,objectMatrix: null
,renderer: null
,clone: function() {
var event = new openfl_events_RenderEvent(this.type,this.bubbles,this.cancelable,this.objectMatrix.clone(),this.objectColorTransform.__clone(),this.allowSmoothing);
event.target = this.target;
event.currentTarget = this.currentTarget;
event.eventPhase = this.eventPhase;
return event;
}
,toString: function() {
return this.__formatToString("RenderEvent",["type","bubbles","cancelable"]);
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.objectMatrix = null;
this.objectColorTransform = null;
this.allowSmoothing = false;
this.renderer = null;
}
,__class__: openfl_events_RenderEvent
});
var openfl_events_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.call(this,type,bubbles,cancelable,text,id);
};
$hxClasses["openfl.events.SecurityErrorEvent"] = openfl_events_SecurityErrorEvent;
openfl_events_SecurityErrorEvent.__name__ = "openfl.events.SecurityErrorEvent";
openfl_events_SecurityErrorEvent.__super__ = openfl_events_ErrorEvent;
openfl_events_SecurityErrorEvent.prototype = $extend(openfl_events_ErrorEvent.prototype,{
clone: function() {
var event = new openfl_events_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"]);
}
,__class__: openfl_events_SecurityErrorEvent
});
var openfl_events_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.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;
};
$hxClasses["openfl.events.TouchEvent"] = openfl_events_TouchEvent;
openfl_events_TouchEvent.__name__ = "openfl.events.TouchEvent";
openfl_events_TouchEvent.__create = function(type,touch,stageX,stageY,local,target) {
var evt = new openfl_events_TouchEvent(type,true,false,0,true,local.x,local.y,1,1,1);
evt.stageX = stageX;
evt.stageY = stageY;
evt.target = target;
return evt;
};
openfl_events_TouchEvent.__super__ = openfl_events_Event;
openfl_events_TouchEvent.prototype = $extend(openfl_events_Event.prototype,{
altKey: null
,commandKey: null
,controlKey: null
,ctrlKey: null
,delta: null
,isPrimaryTouchPoint: null
,localX: null
,localY: null
,pressure: null
,relatedObject: null
,shiftKey: null
,sizeX: null
,sizeY: null
,stageX: null
,stageY: null
,touchPointID: null
,clone: function() {
var event = new openfl_events_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() {
}
,__init: function() {
openfl_events_Event.prototype.__init.call(this);
this.touchPointID = 0;
this.isPrimaryTouchPoint = false;
this.localX = 0;
this.localY = 0;
this.sizeX = 0;
this.sizeY = 0;
this.pressure = 0;
this.relatedObject = null;
this.ctrlKey = false;
this.altKey = false;
this.shiftKey = false;
this.commandKey = false;
this.controlKey = false;
this.stageX = NaN;
this.stageY = NaN;
}
,__class__: openfl_events_TouchEvent
});
var openfl_events_UncaughtErrorEvent = function(type,bubbles,cancelable,error) {
if(cancelable == null) {
cancelable = true;
}
if(bubbles == null) {
bubbles = true;
}
openfl_events_ErrorEvent.call(this,type,bubbles,cancelable);
this.error = error;
};
$hxClasses["openfl.events.UncaughtErrorEvent"] = openfl_events_UncaughtErrorEvent;
openfl_events_UncaughtErrorEvent.__name__ = "openfl.events.UncaughtErrorEvent";
openfl_events_UncaughtErrorEvent.__super__ = openfl_events_ErrorEvent;
openfl_events_UncaughtErrorEvent.prototype = $extend(openfl_events_ErrorEvent.prototype,{
error: null
,clone: function() {
var event = new openfl_events_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"]);
}
,__init: function() {
openfl_events_ErrorEvent.prototype.__init.call(this);
this.error = null;
}
,__class__: openfl_events_UncaughtErrorEvent
});
var openfl_events_UncaughtErrorEvents = function() {
openfl_events_EventDispatcher.call(this);
};
$hxClasses["openfl.events.UncaughtErrorEvents"] = openfl_events_UncaughtErrorEvents;
openfl_events_UncaughtErrorEvents.__name__ = "openfl.events.UncaughtErrorEvents";
openfl_events_UncaughtErrorEvents.__super__ = openfl_events_EventDispatcher;
openfl_events_UncaughtErrorEvents.prototype = $extend(openfl_events_EventDispatcher.prototype,{
__class__: openfl_events_UncaughtErrorEvents
});
var openfl_filters_BitmapFilter = function() {
this.__bottomExtension = 0;
this.__leftExtension = 0;
this.__needSecondBitmapData = true;
this.__numShaderPasses = 0;
this.__preserveObject = false;
this.__rightExtension = 0;
this.__shaderBlendMode = 10;
this.__topExtension = 0;
this.__smooth = true;
};
$hxClasses["openfl.filters.BitmapFilter"] = openfl_filters_BitmapFilter;
openfl_filters_BitmapFilter.__name__ = "openfl.filters.BitmapFilter";
openfl_filters_BitmapFilter.prototype = {
__bottomExtension: null
,__leftExtension: null
,__needSecondBitmapData: null
,__numShaderPasses: null
,__preserveObject: null
,__renderDirty: null
,__rightExtension: null
,__shaderBlendMode: null
,__smooth: null
,__topExtension: null
,clone: function() {
return new openfl_filters_BitmapFilter();
}
,__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) {
return sourceBitmapData;
}
,__initShader: function(renderer,pass,sourceBitmapData) {
return null;
}
,__class__: openfl_filters_BitmapFilter
};
var openfl_filters_ShaderFilter = function(shader) {
openfl_filters_BitmapFilter.call(this);
this.shader = shader;
this.__numShaderPasses = 1;
};
$hxClasses["openfl.filters.ShaderFilter"] = openfl_filters_ShaderFilter;
openfl_filters_ShaderFilter.__name__ = "openfl.filters.ShaderFilter";
openfl_filters_ShaderFilter.__super__ = openfl_filters_BitmapFilter;
openfl_filters_ShaderFilter.prototype = $extend(openfl_filters_BitmapFilter.prototype,{
blendMode: null
,bottomExtension: null
,leftExtension: null
,rightExtension: null
,shader: null
,topExtension: null
,clone: function() {
var filter = new openfl_filters_ShaderFilter(this.shader);
filter.bottomExtension = this.bottomExtension;
filter.leftExtension = this.leftExtension;
filter.rightExtension = this.rightExtension;
filter.topExtension = this.topExtension;
return filter;
}
,invalidate: function() {
this.__renderDirty = true;
}
,__initShader: function(renderer,pass,sourceBitmapData) {
this.__shaderBlendMode = this.blendMode;
return this.shader;
}
,__class__: openfl_filters_ShaderFilter
});
var openfl_geom_Matrix3D = function(v) {
if(v != null && v.get_length() == 16) {
this.rawData = v.concat(null);
} else {
this.rawData = openfl_Vector.toFloatVector(null,null,null,[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]);
}
};
$hxClasses["openfl.geom.Matrix3D"] = openfl_geom_Matrix3D;
openfl_geom_Matrix3D.__name__ = "openfl.geom.Matrix3D";
openfl_geom_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 openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[c * scale,-s * scale,0,0,s * scale,c * scale,0,0,0,0,1,0,x,y,0,1]));
};
openfl_geom_Matrix3D.createABCD = function(a,b,c,d,tx,ty) {
return new openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[a,b,0,0,c,d,0,0,0,0,1,0,tx,ty,0,1]));
};
openfl_geom_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 openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[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]));
};
openfl_geom_Matrix3D.interpolate = function(thisMat,toMat,percent) {
var m = new openfl_geom_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;
};
openfl_geom_Matrix3D.__getAxisRotation = function(x,y,z,degrees) {
var m = new openfl_geom_Matrix3D();
var a1 = new openfl_geom_Vector3D(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;
};
openfl_geom_Matrix3D.prototype = {
rawData: null
,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 tz = 0;
var ty = tz;
var 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 openfl_geom_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 openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[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 _g = this.rawData;
_g.set(13,_g.get(13) + y);
var _g = this.rawData;
_g.set(14,_g.get(14) + z);
}
,clone: function() {
return new openfl_geom_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 _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
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 _g = 0;
var _g1 = this.rawData.get_length();
while(_g < _g1) {
var i = _g++;
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 = 1;
}
var vec = openfl_Vector.toObjectVector(null);
var m = this.clone();
var mr = m.rawData.copy();
var pos = new openfl_geom_Vector3D(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();
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 _g = mr;
_g.set(1,_g.get(1) / scale.x);
var _g = mr;
_g.set(2,_g.get(2) / scale.x);
var _g = mr;
_g.set(4,_g.get(4) / scale.y);
var _g = mr;
_g.set(5,_g.get(5) / scale.y);
var _g = mr;
_g.set(6,_g.get(6) / scale.y);
var _g = mr;
_g.set(8,_g.get(8) / scale.z);
var _g = mr;
_g.set(9,_g.get(9) / scale.z);
var _g = mr;
_g.set(10,_g.get(10) / scale.z);
var rot = new openfl_geom_Vector3D();
switch(orientationStyle) {
case 0:
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 1:
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 2:
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(x * this.rawData.get(0) + y * this.rawData.get(4) + z * this.rawData.get(8),x * this.rawData.get(1) + y * this.rawData.get(5) + z * this.rawData.get(9),x * this.rawData.get(2) + y * this.rawData.get(6) + z * this.rawData.get(10),x * this.rawData.get(3) + y * this.rawData.get(7) + z * this.rawData.get(11));
}
,identity: function() {
this.rawData = openfl_Vector.toFloatVector(null,null,null,[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(0,0,-1);
}
if(up == null) {
up = new openfl_geom_Vector3D(0,-1,0);
}
var dir = at.subtract(pos);
var vup = up.clone();
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(-dir.y,dir.x,0);
} else {
vup = new openfl_geom_Vector3D(1,0,0);
}
var 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 tz = 0;
var ty = tz;
var 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 openfl_geom_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 openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[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 openfl_geom_Matrix3D();
m.set_position(new openfl_geom_Vector3D(x,y,z));
this.prepend(m);
}
,recompose: function(components,orientationStyle) {
if(orientationStyle == null) {
orientationStyle = 1;
}
if(components.get_length() < 3 || components.get(2).x == 0 || components.get(2).y == 0 || components.get(2).z == 0) {
return false;
}
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 == 1) {
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 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 == 0) {
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);
}
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(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(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;
}
,__class__: openfl_geom_Matrix3D
,__properties__: {set_position:"set_position",get_position:"get_position",get_determinant:"get_determinant"}
};
var openfl_geom_Orientation3D = {};
openfl_geom_Orientation3D.fromString = function(value) {
switch(value) {
case "axisAngle":
return 0;
case "eulerAngles":
return 1;
case "quaternion":
return 2;
default:
return null;
}
};
openfl_geom_Orientation3D.toString = function(this1) {
switch(this1) {
case 0:
return "axisAngle";
case 1:
return "eulerAngles";
case 2:
return "quaternion";
default:
return null;
}
};
var openfl_geom_Transform = function(displayObject) {
this.__colorTransform = new openfl_geom_ColorTransform();
this.concatenatedColorTransform = new openfl_geom_ColorTransform();
this.pixelBounds = new openfl_geom_Rectangle();
this.__displayObject = displayObject;
this.__hasMatrix = true;
};
$hxClasses["openfl.geom.Transform"] = openfl_geom_Transform;
openfl_geom_Transform.__name__ = "openfl.geom.Transform";
openfl_geom_Transform.prototype = {
concatenatedColorTransform: null
,pixelBounds: null
,__colorTransform: null
,__displayObject: null
,__hasMatrix: null
,__hasMatrix3D: null
,get_colorTransform: function() {
return this.__colorTransform;
}
,set_colorTransform: function(value) {
if(!this.__colorTransform.__equals(value,false)) {
this.__colorTransform.__copyFrom(value);
if(value != null) {
this.__displayObject.set_alpha(value.alphaMultiplier);
}
var _this = this.__displayObject;
if(!_this.__renderDirty) {
_this.__renderDirty = true;
_this.__setParentRenderDirty();
}
}
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(openfl_Vector.toFloatVector(null,null,null,[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 transform = this.__displayObject.__transform;
if(transform.a == a && transform.b == b && transform.c == c && transform.d == d && transform.tx == tx && transform.ty == ty) {
return;
}
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 = d;
} 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);
}
transform.a = a;
transform.b = b;
transform.c = c;
transform.d = d;
transform.tx = tx;
transform.ty = ty;
this.__displayObject.__setTransformDirty();
}
}
,__class__: openfl_geom_Transform
,__properties__: {set_matrix3D:"set_matrix3D",get_matrix3D:"get_matrix3D",set_matrix:"set_matrix",get_matrix:"get_matrix",get_concatenatedMatrix:"get_concatenatedMatrix",set_colorTransform:"set_colorTransform",get_colorTransform:"get_colorTransform"}
};
var openfl_geom_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;
};
$hxClasses["openfl.geom.Vector3D"] = openfl_geom_Vector3D;
openfl_geom_Vector3D.__name__ = "openfl.geom.Vector3D";
openfl_geom_Vector3D.__properties__ = {get_Z_AXIS:"get_Z_AXIS",get_Y_AXIS:"get_Y_AXIS",get_X_AXIS:"get_X_AXIS"};
openfl_geom_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);
};
openfl_geom_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);
};
openfl_geom_Vector3D.get_X_AXIS = function() {
return new openfl_geom_Vector3D(1,0,0);
};
openfl_geom_Vector3D.get_Y_AXIS = function() {
return new openfl_geom_Vector3D(0,1,0);
};
openfl_geom_Vector3D.get_Z_AXIS = function() {
return new openfl_geom_Vector3D(0,0,1);
};
openfl_geom_Vector3D.prototype = {
w: null
,x: null
,y: null
,z: null
,add: function(a) {
return new openfl_geom_Vector3D(this.x + a.x,this.y + a.y,this.z + a.z);
}
,clone: function() {
return new openfl_geom_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 openfl_geom_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 openfl_geom_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;
}
,__class__: openfl_geom_Vector3D
,__properties__: {get_lengthSquared:"get_lengthSquared",get_length:"get_length"}
};
var openfl_media_ID3Info = function() {
};
$hxClasses["openfl.media.ID3Info"] = openfl_media_ID3Info;
openfl_media_ID3Info.__name__ = "openfl.media.ID3Info";
openfl_media_ID3Info.prototype = {
album: null
,artist: null
,comment: null
,genre: null
,songName: null
,track: null
,year: null
,__class__: openfl_media_ID3Info
};
var openfl_media_SoundChannel = function(source,soundTransform) {
openfl_events_EventDispatcher.call(this,this);
this.leftPeak = 1;
this.rightPeak = 1;
if(soundTransform != null) {
this.__soundTransform = soundTransform;
} else {
this.__soundTransform = new openfl_media_SoundTransform();
}
if(source != null) {
this.__source = source;
this.__source.onComplete.add($bind(this,this.source_onComplete));
this.__isValid = true;
this.__source.play();
}
openfl_media_SoundMixer.__registerSoundChannel(this);
};
$hxClasses["openfl.media.SoundChannel"] = openfl_media_SoundChannel;
openfl_media_SoundChannel.__name__ = "openfl.media.SoundChannel";
openfl_media_SoundChannel.__super__ = openfl_events_EventDispatcher;
openfl_media_SoundChannel.prototype = $extend(openfl_events_EventDispatcher.prototype,{
leftPeak: null
,rightPeak: null
,__isValid: null
,__soundTransform: null
,__source: null
,stop: function() {
openfl_media_SoundMixer.__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.__source = null;
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((value | 0) - 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.__soundTransform.pan + this.__soundTransform.pan;
if(pan < -1) {
pan = -1;
}
if(pan > 1) {
pan = 1;
}
var volume = openfl_media_SoundMixer.__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.__unregisterSoundChannel(this);
this.__dispose();
this.dispatchEvent(new openfl_events_Event("soundComplete"));
}
,__class__: openfl_media_SoundChannel
,__properties__: {set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform",set_position:"set_position",get_position:"get_position"}
});
var openfl_media_SoundLoaderContext = function(bufferTime,checkPolicyFile) {
if(checkPolicyFile == null) {
checkPolicyFile = false;
}
if(bufferTime == null) {
bufferTime = 1000;
}
this.bufferTime = bufferTime;
this.checkPolicyFile = checkPolicyFile;
};
$hxClasses["openfl.media.SoundLoaderContext"] = openfl_media_SoundLoaderContext;
openfl_media_SoundLoaderContext.__name__ = "openfl.media.SoundLoaderContext";
openfl_media_SoundLoaderContext.prototype = {
bufferTime: null
,checkPolicyFile: null
,__class__: openfl_media_SoundLoaderContext
};
var openfl_media_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;
};
$hxClasses["openfl.media.SoundTransform"] = openfl_media_SoundTransform;
openfl_media_SoundTransform.__name__ = "openfl.media.SoundTransform";
openfl_media_SoundTransform.prototype = {
leftToLeft: null
,leftToRight: null
,pan: null
,rightToLeft: null
,rightToRight: null
,volume: null
,clone: function() {
return new openfl_media_SoundTransform(this.volume,this.pan);
}
,__class__: openfl_media_SoundTransform
};
var openfl_media_SoundMixer = function() { };
$hxClasses["openfl.media.SoundMixer"] = openfl_media_SoundMixer;
openfl_media_SoundMixer.__name__ = "openfl.media.SoundMixer";
openfl_media_SoundMixer.__properties__ = {set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform"};
openfl_media_SoundMixer.bufferTime = null;
openfl_media_SoundMixer.areSoundsInaccessible = function() {
return false;
};
openfl_media_SoundMixer.stopAll = function() {
var _g = 0;
var _g1 = openfl_media_SoundMixer.__soundChannels;
while(_g < _g1.length) {
var channel = _g1[_g];
++_g;
channel.stop();
}
};
openfl_media_SoundMixer.__registerSoundChannel = function(soundChannel) {
openfl_media_SoundMixer.__soundChannels.push(soundChannel);
};
openfl_media_SoundMixer.__unregisterSoundChannel = function(soundChannel) {
HxOverrides.remove(openfl_media_SoundMixer.__soundChannels,soundChannel);
};
openfl_media_SoundMixer.get_soundTransform = function() {
return openfl_media_SoundMixer.__soundTransform;
};
openfl_media_SoundMixer.set_soundTransform = function(value) {
openfl_media_SoundMixer.__soundTransform = value.clone();
var _g = 0;
var _g1 = openfl_media_SoundMixer.__soundChannels;
while(_g < _g1.length) {
var channel = _g1[_g];
++_g;
channel.__updateTransform();
}
return value;
};
var openfl_net_FileFilter = function(description,extension,macType) {
this.description = description;
this.extension = extension;
this.macType = macType;
};
$hxClasses["openfl.net.FileFilter"] = openfl_net_FileFilter;
openfl_net_FileFilter.__name__ = "openfl.net.FileFilter";
openfl_net_FileFilter.prototype = {
description: null
,extension: null
,macType: null
,__class__: openfl_net_FileFilter
};
var openfl_net_FileReference = function() {
openfl_events_EventDispatcher.call(this);
this.__inputControl = window.document.createElement("input");
this.__inputControl.setAttribute("type","file");
this.__inputControl.onclick = function(e) {
e.cancelBubble = true;
e.stopPropagation();
};
};
$hxClasses["openfl.net.FileReference"] = openfl_net_FileReference;
openfl_net_FileReference.__name__ = "openfl.net.FileReference";
openfl_net_FileReference.__super__ = openfl_events_EventDispatcher;
openfl_net_FileReference.prototype = $extend(openfl_events_EventDispatcher.prototype,{
creationDate: null
,creator: null
,data: null
,modificationDate: null
,name: null
,size: null
,type: null
,__data: null
,__path: null
,__urlLoader: null
,__inputControl: null
,browse: function(typeFilter) {
var _gthis = this;
this.__data = null;
this.__path = null;
var filter = null;
if(typeFilter != null) {
var filters = [];
var _g = 0;
while(_g < typeFilter.length) {
var type = typeFilter[_g];
++_g;
filters.push(StringTools.replace(StringTools.replace(type.extension,"*.","."),";",","));
}
filter = filters.join(",");
}
if(filter != null) {
this.__inputControl.setAttribute("accept",filter);
}
this.__inputControl.onchange = function() {
var file = _gthis.__inputControl.files[0];
var tmp = new Date(file.lastModified);
_gthis.modificationDate = tmp;
_gthis.creationDate = _gthis.modificationDate;
_gthis.size = file.size;
var tmp = haxe_io_Path.extension(file.name);
_gthis.type = "." + tmp;
_gthis.name = haxe_io_Path.withoutDirectory(file.name);
_gthis.__path = file.name;
_gthis.dispatchEvent(new openfl_events_Event("select"));
};
this.__inputControl.click();
return true;
}
,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();
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();
saveFileDialog.onCancel.add($bind(this,this.saveFileDialog_onCancel));
saveFileDialog.onSelect.add($bind(this,this.saveFileDialog_onSelect));
saveFileDialog.browse(lime_ui_FileDialogType.SAVE,defaultFileName != null ? haxe_io_Path.extension(defaultFileName) : null,defaultFileName);
}
,load: function() {
var _gthis = this;
var file = this.__inputControl.files[0];
var reader = new FileReader();
reader.onload = function(evt) {
_gthis.data = openfl_utils_ByteArray.fromArrayBuffer(evt.target.result);
_gthis.openFileDialog_onComplete();
};
reader.readAsArrayBuffer(file);
}
,save: function(data,defaultFileName) {
this.__data = null;
this.__path = null;
if(data == null) {
return;
}
if(((data) instanceof openfl_utils_ByteArrayData)) {
this.__data = data;
} else {
var this1 = new openfl_utils_ByteArrayData(0);
this.__data = this1;
this.__data.writeUTFBytes(Std.string(data));
}
var saveFileDialog = new lime_ui_FileDialog();
saveFileDialog.onCancel.add($bind(this,this.saveFileDialog_onCancel));
saveFileDialog.onSave.add($bind(this,this.saveFileDialog_onSave));
saveFileDialog.save(openfl_utils_ByteArray.toBytes(this.__data),defaultFileName != null ? haxe_io_Path.extension(defaultFileName) : null,defaultFileName);
}
,upload: function(request,uploadDataFieldName,testUpload) {
if(testUpload == null) {
testUpload = false;
}
if(uploadDataFieldName == null) {
uploadDataFieldName = "Filedata";
}
openfl__$internal_Lib.notImplemented({ fileName : "openfl/net/FileReference.hx", lineNumber : 206, className : "openfl.net.FileReference", methodName : "upload"});
}
,openFileDialog_onCancel: function() {
this.dispatchEvent(new openfl_events_Event("cancel"));
}
,openFileDialog_onComplete: function() {
this.dispatchEvent(new openfl_events_Event("complete"));
}
,openFileDialog_onSelect: function(path) {
this.name = haxe_io_Path.withoutDirectory(path);
this.__path = path;
this.dispatchEvent(new openfl_events_Event("select"));
}
,saveFileDialog_onCancel: function() {
this.dispatchEvent(new openfl_events_Event("cancel"));
}
,saveFileDialog_onSave: function(path) {
var _gthis = this;
haxe_Timer.delay(function() {
_gthis.dispatchEvent(new openfl_events_Event("complete"));
},1);
}
,saveFileDialog_onSelect: function(path) {
this.dispatchEvent(new openfl_events_Event("select"));
}
,urlLoader_onComplete: function(event) {
this.dispatchEvent(event);
}
,urlLoader_onIOError: function(event) {
this.dispatchEvent(event);
}
,urlLoader_onProgress: function(event) {
this.dispatchEvent(event);
}
,__class__: openfl_net_FileReference
});
var openfl_net_NetConnection = function() {
openfl_events_EventDispatcher.call(this);
};
$hxClasses["openfl.net.NetConnection"] = openfl_net_NetConnection;
openfl_net_NetConnection.__name__ = "openfl.net.NetConnection";
openfl_net_NetConnection.__super__ = openfl_events_EventDispatcher;
openfl_net_NetConnection.prototype = $extend(openfl_events_EventDispatcher.prototype,{
connect: function(command,p1,p2,p3,p4,p5) {
if(command != null) {
throw haxe_Exception.thrown("Error: Can only connect in \"HTTP streaming\" mode");
}
this.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,true,{ code : "NetConnection.Connect.Success"}));
}
,__class__: openfl_net_NetConnection
});
var openfl_net_NetStream = function(connection,peerID) {
openfl_events_EventDispatcher.call(this);
this.__connection = connection;
this.__soundTransform = new openfl_media_SoundTransform();
this.__video = window.document.createElement("video");
this.__video.setAttribute("playsinline","");
this.__video.setAttribute("webkit-playsinline","");
this.__video.setAttribute("crossorigin","anonymous");
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);
};
$hxClasses["openfl.net.NetStream"] = openfl_net_NetStream;
openfl_net_NetStream.__name__ = "openfl.net.NetStream";
openfl_net_NetStream.__super__ = openfl_events_EventDispatcher;
openfl_net_NetStream.prototype = $extend(openfl_events_EventDispatcher.prototype,{
audioCodec: null
,bufferLength: null
,bufferTime: null
,bytesLoaded: null
,bytesTotal: null
,checkPolicyFile: null
,client: null
,currentFPS: null
,decodedFrames: null
,liveDelay: null
,objectEncoding: null
,time: null
,videoCode: null
,__closed: null
,__connection: null
,__soundTransform: null
,__timer: null
,__video: null
,close: function() {
if(this.__video == null) {
return;
}
this.__closed = true;
this.__video.pause();
this.__video.src = "";
this.time = 0;
}
,dispose: function() {
this.close();
this.__video = null;
}
,pause: function() {
if(this.__video != null) {
this.__video.pause();
}
}
,play: function(url,p1,p2,p3,p4,p5) {
if(this.__video == null) {
return;
}
this.__video.volume = openfl_media_SoundMixer.__soundTransform.volume * this.__soundTransform.volume;
if(typeof(url) == "string") {
this.__video.src = url;
} else {
this.__video.srcObject = url;
}
this.__video.play();
}
,requestVideoStatus: function() {
var _gthis = this;
if(this.__video == null) {
return;
}
if(this.__timer == null) {
this.__timer = new haxe_Timer(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() {
if(this.__video != null) {
this.__video.play();
}
}
,seek: function(time) {
if(this.__video == null) {
return;
}
if(time < 0) {
time = 0;
} else if(time > this.__video.duration) {
time = this.__video.duration;
}
this.__dispatchStatus("NetStream.SeekStart.Notify");
this.__video.currentTime = time;
}
,togglePause: function() {
if(this.__video == null) {
return;
}
if(this.__video.paused) {
this.__video.play();
} else {
this.__video.pause();
}
}
,__dispatchStatus: function(code) {
var event = new openfl_events_NetStatusEvent("netStatus",false,false,{ code : code});
this.__connection.dispatchEvent(event);
this.dispatchEvent(event);
}
,__playStatus: function(code) {
if(this.__video == null) {
return;
}
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( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
}
}
,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.__dispatchStatus("NetStream.Play.Stop");
this.__dispatchStatus("NetStream.Play.Complete");
this.__playStatus("NetStream.Play.Complete");
}
,video_onError: function(event) {
this.__dispatchStatus("NetStream.Play.Stop");
this.__playStatus("NetStream.Play.error");
}
,video_onLoadMetaData: function(event) {
if(this.__video == null) {
return;
}
if(this.client != null) {
try {
var handler = this.client.onMetaData;
handler({ width : this.__video.videoWidth, height : this.__video.videoHeight, duration : this.__video.duration});
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
}
}
,video_onLoadStart: function(event) {
this.__playStatus("NetStream.Play.loadstart");
}
,video_onPause: function(event) {
this.__playStatus("NetStream.Play.pause");
}
,video_onPlaying: function(event) {
this.__dispatchStatus("NetStream.Play.Start");
this.__playStatus("NetStream.Play.playing");
}
,video_onSeeking: function(event) {
this.__playStatus("NetStream.Play.seeking");
this.__dispatchStatus("NetStream.Seek.Complete");
}
,video_onStalled: function(event) {
this.__playStatus("NetStream.Play.stalled");
}
,video_onTimeUpdate: function(event) {
if(this.__video == null) {
return;
}
this.time = this.__video.currentTime;
this.__playStatus("NetStream.Play.timeupdate");
}
,video_onWaiting: function(event) {
this.__playStatus("NetStream.Play.waiting");
}
,get_soundTransform: function() {
return this.__soundTransform.clone();
}
,set_soundTransform: function(value) {
if(value != null) {
this.__soundTransform.pan = value.pan;
this.__soundTransform.volume = value.volume;
if(this.__video != null) {
this.__video.volume = openfl_media_SoundMixer.__soundTransform.volume * this.__soundTransform.volume;
}
}
return value;
}
,get_speed: function() {
if(this.__video != null) {
return this.__video.playbackRate;
} else {
return 1;
}
}
,set_speed: function(value) {
if(this.__video != null) {
return this.__video.playbackRate = value;
} else {
return value;
}
}
,__class__: openfl_net_NetStream
,__properties__: {set_speed:"set_speed",get_speed:"get_speed",set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform"}
});
var openfl_net_SharedObject = function() {
openfl_events_EventDispatcher.call(this);
this.client = this;
this.objectEncoding = openfl_net_SharedObject.defaultObjectEncoding;
};
$hxClasses["openfl.net.SharedObject"] = openfl_net_SharedObject;
openfl_net_SharedObject.__name__ = "openfl.net.SharedObject";
openfl_net_SharedObject.__sharedObjects = null;
openfl_net_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 haxe_Exception.thrown(new openfl_errors_Error("Error #2134: Cannot create SharedObject."));
}
if(openfl_net_SharedObject.__sharedObjects == null) {
openfl_net_SharedObject.__sharedObjects = new haxe_ds_StringMap();
if(lime_app_Application.current != null) {
lime_app_Application.current.onExit.add(openfl_net_SharedObject.application_onExit);
}
}
var id = localPath + "/" + name;
if(!Object.prototype.hasOwnProperty.call(openfl_net_SharedObject.__sharedObjects.h,id)) {
var encodedData = null;
try {
var storage = js_Browser.getLocalStorage();
if(localPath == null) {
if(storage != null) {
encodedData = storage.getItem(window.location.href + ":" + name);
storage.removeItem(window.location.href + ":" + name);
}
localPath = window.location.pathname;
}
if(storage != null && encodedData == null) {
encodedData = storage.getItem(localPath + ":" + name);
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
var sharedObject = new openfl_net_SharedObject();
sharedObject.data = { };
sharedObject.__localPath = localPath;
sharedObject.__name = name;
if(encodedData != null && encodedData != "") {
try {
var unserializer = new haxe_Unserializer(encodedData);
unserializer.setResolver({ resolveEnum : Type.resolveEnum, resolveClass : openfl_net_SharedObject.__resolveClass});
sharedObject.data = unserializer.unserialize();
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
}
openfl_net_SharedObject.__sharedObjects.h[id] = sharedObject;
}
return openfl_net_SharedObject.__sharedObjects.h[id];
};
openfl_net_SharedObject.getRemote = function(name,remotePath,persistence,secure) {
if(secure == null) {
secure = false;
}
if(persistence == null) {
persistence = false;
}
openfl__$internal_Lib.notImplemented({ fileName : "openfl/net/SharedObject.hx", lineNumber : 808, className : "openfl.net.SharedObject", methodName : "getRemote"});
return null;
};
openfl_net_SharedObject.__getPath = function(localPath,name) {
var path = lime_system_System.get_applicationStorageDirectory() + "/" + localPath + "/";
name = StringTools.replace(name,"//","/");
name = StringTools.replace(name,"//","/");
if(StringTools.startsWith(name,"/")) {
name = HxOverrides.substr(name,1,null);
}
if(StringTools.endsWith(name,"/")) {
name = name.substring(0,name.length - 1);
}
if(name.indexOf("/") > -1) {
var split = name.split("/");
name = "";
var _g = 0;
var _g1 = split.length - 1;
while(_g < _g1) {
var i = _g++;
name += "#" + split[i] + "/";
}
name += split[split.length - 1];
}
return path + name + ".sol";
};
openfl_net_SharedObject.__mkdir = function(directory) {
};
openfl_net_SharedObject.__resolveClass = function(name) {
if(name != null) {
if(StringTools.startsWith(name,"neash.")) {
name = StringTools.replace(name,"neash.","openfl.");
}
if(StringTools.startsWith(name,"native.")) {
name = StringTools.replace(name,"native.","openfl.");
}
if(StringTools.startsWith(name,"flash.")) {
name = StringTools.replace(name,"flash.","openfl.");
}
if(StringTools.startsWith(name,"openfl._v2.")) {
name = StringTools.replace(name,"openfl._v2.","openfl.");
}
if(StringTools.startsWith(name,"openfl._legacy.")) {
name = StringTools.replace(name,"openfl._legacy.","openfl.");
}
return $hxClasses[name];
}
return null;
};
openfl_net_SharedObject.application_onExit = function(_) {
var sharedObject = haxe_ds_StringMap.valueIterator(openfl_net_SharedObject.__sharedObjects.h);
while(sharedObject.hasNext()) {
var sharedObject1 = sharedObject.next();
sharedObject1.flush();
}
};
openfl_net_SharedObject.__super__ = openfl_events_EventDispatcher;
openfl_net_SharedObject.prototype = $extend(openfl_events_EventDispatcher.prototype,{
client: null
,data: null
,fps: null
,objectEncoding: null
,__localPath: null
,__name: null
,clear: function() {
this.data = { };
try {
var storage = js_Browser.getLocalStorage();
if(storage != null) {
storage.removeItem(this.__localPath + ":" + this.__name);
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
}
}
,close: function() {
}
,connect: function(myConnection,params) {
openfl__$internal_Lib.notImplemented({ fileName : "openfl/net/SharedObject.hx", lineNumber : 392, className : "openfl.net.SharedObject", methodName : "connect"});
}
,flush: function(minDiskSpace) {
if(minDiskSpace == null) {
minDiskSpace = 0;
}
if(Reflect.fields(this.data).length == 0) {
return 0;
}
var encodedData = haxe_Serializer.run(this.data);
try {
var storage = js_Browser.getLocalStorage();
if(storage != null) {
storage.removeItem(this.__localPath + ":" + this.__name);
storage.setItem(this.__localPath + ":" + this.__name,encodedData);
}
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
return 1;
}
return 0;
}
,send: function(args) {
openfl__$internal_Lib.notImplemented({ fileName : "openfl/net/SharedObject.hx", lineNumber : 824, className : "openfl.net.SharedObject", methodName : "send"});
}
,setDirty: function(propertyName) {
}
,setProperty: function(propertyName,value) {
if(this.data != null) {
this.data[propertyName] = value;
}
}
,get_size: function() {
try {
var d = haxe_Serializer.run(this.data);
return haxe_io_Bytes.ofString(d).length;
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
return 0;
}
}
,__class__: openfl_net_SharedObject
,__properties__: {get_size:"get_size"}
});
var openfl_net_SharedObjectFlushStatus = {};
openfl_net_SharedObjectFlushStatus.fromString = function(value) {
switch(value) {
case "flushed":
return 0;
case "pending":
return 1;
default:
return null;
}
};
openfl_net_SharedObjectFlushStatus.toString = function(this1) {
switch(this1) {
case 0:
return "flushed";
case 1:
return "pending";
default:
return null;
}
};
var openfl_net_URLLoader = function(request) {
openfl_events_EventDispatcher.call(this);
this.bytesLoaded = 0;
this.bytesTotal = 0;
this.dataFormat = 1;
if(request != null) {
this.load(request);
}
};
$hxClasses["openfl.net.URLLoader"] = openfl_net_URLLoader;
openfl_net_URLLoader.__name__ = "openfl.net.URLLoader";
openfl_net_URLLoader.__super__ = openfl_events_EventDispatcher;
openfl_net_URLLoader.prototype = $extend(openfl_events_EventDispatcher.prototype,{
bytesLoaded: null
,bytesTotal: null
,data: null
,dataFormat: null
,__httpRequest: null
,close: function() {
if(this.__httpRequest != null) {
this.__httpRequest.cancel();
}
}
,load: function(request) {
var _gthis = this;
if(this.dataFormat == 0) {
var httpRequest = new lime_net__$HTTPRequest_$openfl_$utils_$ByteArray();
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("complete");
_gthis.dispatchEvent(event);
});
} else {
var httpRequest = new lime_net__$HTTPRequest_$String();
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("complete");
_gthis.dispatchEvent(event);
});
}
}
,__dispatchStatus: function() {
var event = new openfl_events_HTTPStatusEvent("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(header.name,header.value));
}
}
event.responseHeaders = headers;
this.dispatchEvent(event);
}
,__prepareRequest: function(httpRequest,request) {
this.__httpRequest = httpRequest;
this.__httpRequest.uri = request.url;
this.__httpRequest.method = request.method;
if(request.data != null) {
if(Type.typeof(request.data) == ValueType.TObject) {
var fields = Reflect.fields(request.data);
var _g = 0;
while(_g < fields.length) {
var field = fields[_g];
++_g;
this.__httpRequest.formData.h[field] = Reflect.field(request.data,field);
}
} else if(((request.data) instanceof haxe_io_Bytes)) {
this.__httpRequest.data = request.data;
} else {
this.__httpRequest.data = haxe_io_Bytes.ofString(Std.string(request.data));
}
}
this.__httpRequest.contentType = request.contentType;
if(request.requestHeaders != null) {
var _g = 0;
var _g1 = request.requestHeaders;
while(_g < _g1.length) {
var header = _g1[_g];
++_g;
this.__httpRequest.headers.push(new lime_net_HTTPRequestHeader(header.name,header.value));
}
}
this.__httpRequest.followRedirects = request.followRedirects;
this.__httpRequest.timeout = request.idleTimeout | 0;
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("securityError");
event.text = Std.string(error);
this.dispatchEvent(event);
} else {
var event = new openfl_events_IOErrorEvent("ioError");
event.text = Std.string(error);
this.dispatchEvent(event);
}
}
,httpRequest_onProgress: function(bytesLoaded,bytesTotal) {
var event = new openfl_events_ProgressEvent("progress");
event.bytesLoaded = bytesLoaded;
event.bytesTotal = bytesTotal;
this.dispatchEvent(event);
}
,__class__: openfl_net_URLLoader
});
var openfl_net_URLLoaderDataFormat = {};
openfl_net_URLLoaderDataFormat.fromString = function(value) {
switch(value) {
case "binary":
return 0;
case "text":
return 1;
case "variables":
return 2;
default:
return null;
}
};
openfl_net_URLLoaderDataFormat.toString = function(this1) {
switch(this1) {
case 0:
return "binary";
case 1:
return "text";
case 2:
return "variables";
default:
return null;
}
};
var openfl_net_URLRequest = function(url) {
if(url != null) {
this.url = url;
}
this.contentType = null;
this.followRedirects = openfl_net_URLRequestDefaults.followRedirects;
if(openfl_net_URLRequestDefaults.idleTimeout > 0) {
this.idleTimeout = openfl_net_URLRequestDefaults.idleTimeout;
} else {
this.idleTimeout = 30000;
}
this.manageCookies = openfl_net_URLRequestDefaults.manageCookies;
this.method = "GET";
this.requestHeaders = [];
this.userAgent = openfl_net_URLRequestDefaults.userAgent;
};
$hxClasses["openfl.net.URLRequest"] = openfl_net_URLRequest;
openfl_net_URLRequest.__name__ = "openfl.net.URLRequest";
openfl_net_URLRequest.prototype = {
contentType: null
,data: null
,followRedirects: null
,idleTimeout: null
,manageCookies: null
,method: null
,requestHeaders: null
,url: null
,userAgent: null
,__class__: openfl_net_URLRequest
};
var openfl_net_URLRequestDefaults = function() { };
$hxClasses["openfl.net.URLRequestDefaults"] = openfl_net_URLRequestDefaults;
openfl_net_URLRequestDefaults.__name__ = "openfl.net.URLRequestDefaults";
openfl_net_URLRequestDefaults.userAgent = null;
var openfl_net_URLRequestHeader = function(name,value) {
if(value == null) {
value = "";
}
if(name == null) {
name = "";
}
this.name = name;
this.value = value;
};
$hxClasses["openfl.net.URLRequestHeader"] = openfl_net_URLRequestHeader;
openfl_net_URLRequestHeader.__name__ = "openfl.net.URLRequestHeader";
openfl_net_URLRequestHeader.prototype = {
name: null
,value: null
,__class__: openfl_net_URLRequestHeader
};
var openfl_sensors_Accelerometer = function() {
openfl_events_EventDispatcher.call(this);
openfl_sensors_Accelerometer.initialize();
this.__interval = 0;
this.__muted = false;
this.setRequestedUpdateInterval(openfl_sensors_Accelerometer.defaultInterval);
};
$hxClasses["openfl.sensors.Accelerometer"] = openfl_sensors_Accelerometer;
openfl_sensors_Accelerometer.__name__ = "openfl.sensors.Accelerometer";
openfl_sensors_Accelerometer.__properties__ = {get_isSupported:"get_isSupported"};
openfl_sensors_Accelerometer.initialize = function() {
if(!openfl_sensors_Accelerometer.initialized) {
var sensors = lime_system_Sensor.getSensors(lime_system_SensorType.ACCELEROMETER);
if(sensors.length > 0) {
sensors[0].onUpdate.add(openfl_sensors_Accelerometer.accelerometer_onUpdate);
openfl_sensors_Accelerometer.supported = true;
}
openfl_sensors_Accelerometer.initialized = true;
}
};
openfl_sensors_Accelerometer.accelerometer_onUpdate = function(x,y,z) {
openfl_sensors_Accelerometer.currentX = x;
openfl_sensors_Accelerometer.currentY = y;
openfl_sensors_Accelerometer.currentZ = z;
};
openfl_sensors_Accelerometer.get_isSupported = function() {
openfl_sensors_Accelerometer.initialize();
return openfl_sensors_Accelerometer.supported;
};
openfl_sensors_Accelerometer.__super__ = openfl_events_EventDispatcher;
openfl_sensors_Accelerometer.prototype = $extend(openfl_events_EventDispatcher.prototype,{
__interval: null
,__muted: null
,__timer: null
,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.prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference);
this.update();
}
,setRequestedUpdateInterval: function(interval) {
this.__interval = interval;
if(this.__interval < 0) {
throw haxe_Exception.thrown(new openfl_errors_ArgumentError());
} else if(this.__interval == 0) {
this.__interval = openfl_sensors_Accelerometer.defaultInterval;
}
if(this.__timer != null) {
this.__timer.stop();
this.__timer = null;
}
if(openfl_sensors_Accelerometer.supported && !this.get_muted()) {
this.__timer = new haxe_Timer(this.__interval);
this.__timer.run = $bind(this,this.update);
}
}
,update: function() {
var event = new openfl_events_AccelerometerEvent("update");
event.timestamp = new Date().getTime() / 1000;
event.accelerationX = openfl_sensors_Accelerometer.currentX;
event.accelerationY = openfl_sensors_Accelerometer.currentY;
event.accelerationZ = openfl_sensors_Accelerometer.currentZ;
this.dispatchEvent(event);
}
,get_muted: function() {
return this.__muted;
}
,set_muted: function(value) {
this.__muted = value;
this.setRequestedUpdateInterval(this.__interval);
return value;
}
,__class__: openfl_sensors_Accelerometer
,__properties__: {set_muted:"set_muted",get_muted:"get_muted"}
});
var openfl_system_ApplicationDomain = function(parentDomain) {
if(parentDomain != null) {
this.parentDomain = parentDomain;
} else {
this.parentDomain = openfl_system_ApplicationDomain.currentDomain;
}
};
$hxClasses["openfl.system.ApplicationDomain"] = openfl_system_ApplicationDomain;
openfl_system_ApplicationDomain.__name__ = "openfl.system.ApplicationDomain";
openfl_system_ApplicationDomain.prototype = {
parentDomain: null
,getDefinition: function(name) {
return $hxClasses[name];
}
,hasDefinition: function(name) {
return $hxClasses[name] != null;
}
,__class__: openfl_system_ApplicationDomain
};
var openfl_system_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;
};
$hxClasses["openfl.system.LoaderContext"] = openfl_system_LoaderContext;
openfl_system_LoaderContext.__name__ = "openfl.system.LoaderContext";
openfl_system_LoaderContext.prototype = {
allowCodeImport: null
,allowLoadBytesCodeExecution: null
,applicationDomain: null
,checkPolicyFile: null
,securityDomain: null
,__class__: openfl_system_LoaderContext
};
var openfl_system_SecurityDomain = function() {
};
$hxClasses["openfl.system.SecurityDomain"] = openfl_system_SecurityDomain;
openfl_system_SecurityDomain.__name__ = "openfl.system.SecurityDomain";
openfl_system_SecurityDomain.prototype = {
__class__: openfl_system_SecurityDomain
};
var openfl_system_System = function() { };
$hxClasses["openfl.system.System"] = openfl_system_System;
openfl_system_System.__name__ = "openfl.system.System";
openfl_system_System.__properties__ = {get_vmVersion:"get_vmVersion",get_totalMemory:"get_totalMemory"};
openfl_system_System.disposeXML = function(node) {
};
openfl_system_System.exit = function(code) {
lime_system_System.exit(code);
};
openfl_system_System.gc = function() {
};
openfl_system_System.pause = function() {
openfl__$internal_Lib.notImplemented({ fileName : "openfl/system/System.hx", lineNumber : 213, className : "openfl.system.System", methodName : "pause"});
};
openfl_system_System.resume = function() {
openfl__$internal_Lib.notImplemented({ fileName : "openfl/system/System.hx", lineNumber : 229, className : "openfl.system.System", methodName : "resume"});
};
openfl_system_System.setClipboard = function(string) {
lime_system_Clipboard.set_text(string);
};
openfl_system_System.get_totalMemory = function() {
return (window.performance && window.performance.memory) ? window.performance.memory.usedJSHeapSize : 0;
};
openfl_system_System.get_vmVersion = function() {
return "1.0.0";
};
var openfl_text_AntiAliasType = {};
openfl_text_AntiAliasType.fromString = function(value) {
switch(value) {
case "advanced":
return 0;
case "normal":
return 1;
default:
return null;
}
};
openfl_text_AntiAliasType.toString = function(this1) {
switch(this1) {
case 0:
return "advanced";
case 1:
return "normal";
default:
return null;
}
};
var openfl_text_FontStyle = {};
openfl_text_FontStyle.fromString = function(value) {
switch(value) {
case "bold":
return 0;
case "boldItalic":
return 1;
case "italic":
return 2;
case "regular":
return 3;
default:
return null;
}
};
openfl_text_FontStyle.toString = function(this1) {
switch(this1) {
case 0:
return "bold";
case 1:
return "boldItalic";
case 2:
return "italic";
case 3:
return "regular";
default:
return null;
}
};
var openfl_text_FontType = {};
openfl_text_FontType.fromString = function(value) {
switch(value) {
case "device":
return 0;
case "embedded":
return 1;
case "embeddedCFF":
return 2;
default:
return null;
}
};
openfl_text_FontType.toString = function(this1) {
switch(this1) {
case 0:
return "device";
case 1:
return "embedded";
case 2:
return "embeddedCFF";
default:
return null;
}
};
var openfl_text_GridFitType = {};
openfl_text_GridFitType.fromString = function(value) {
switch(value) {
case "none":
return 0;
case "pixel":
return 1;
case "subpixel":
return 2;
default:
return null;
}
};
openfl_text_GridFitType.toString = function(this1) {
switch(this1) {
case 0:
return "none";
case 1:
return "pixel";
case 2:
return "subpixel";
default:
return null;
}
};
var openfl_text_TextFieldAutoSize = {};
openfl_text_TextFieldAutoSize.fromString = function(value) {
switch(value) {
case "center":
return 0;
case "left":
return 1;
case "none":
return 2;
case "right":
return 3;
default:
return null;
}
};
openfl_text_TextFieldAutoSize.toString = function(this1) {
switch(this1) {
case 0:
return "center";
case 1:
return "left";
case 2:
return "none";
case 3:
return "right";
default:
return null;
}
};
var openfl_text_TextFieldType = {};
openfl_text_TextFieldType.fromString = function(value) {
switch(value) {
case "dynamic":
return 0;
case "input":
return 1;
default:
return null;
}
};
openfl_text_TextFieldType.toString = function(this1) {
switch(this1) {
case 0:
return "dynamic";
case 1:
return "input";
default:
return null;
}
};
var openfl_text_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;
};
$hxClasses["openfl.text.TextFormat"] = openfl_text_TextFormat;
openfl_text_TextFormat.__name__ = "openfl.text.TextFormat";
openfl_text_TextFormat.prototype = {
align: null
,blockIndent: null
,bold: null
,bullet: null
,color: null
,font: null
,indent: null
,italic: null
,kerning: null
,leading: null
,leftMargin: null
,letterSpacing: null
,rightMargin: null
,size: null
,tabStops: null
,target: null
,underline: null
,url: null
,__ascent: null
,__descent: null
,clone: function() {
var newFormat = new openfl_text_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) {
this.url = format.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;
}
}
,__class__: openfl_text_TextFormat
};
var openfl_text_TextFormatAlign = {};
openfl_text_TextFormatAlign.fromString = function(value) {
switch(value) {
case "center":
return 0;
case "end":
return 1;
case "justify":
return 2;
case "left":
return 3;
case "right":
return 4;
case "start":
return 5;
default:
return null;
}
};
openfl_text_TextFormatAlign.toString = function(this1) {
switch(this1) {
case 0:
return "center";
case 1:
return "end";
case 2:
return "justify";
case 3:
return "left";
case 4:
return "right";
case 5:
return "start";
default:
return null;
}
};
var openfl_text_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;
};
$hxClasses["openfl.text.TextLineMetrics"] = openfl_text_TextLineMetrics;
openfl_text_TextLineMetrics.__name__ = "openfl.text.TextLineMetrics";
openfl_text_TextLineMetrics.prototype = {
ascent: null
,descent: null
,height: null
,leading: null
,width: null
,x: null
,__class__: openfl_text_TextLineMetrics
};
var openfl_text__$internal_GlyphPosition = function(glyph,advance,offset) {
this.glyph = glyph;
this.advance = advance;
if(offset != null) {
this.offset = offset;
} else {
this.offset = new lime_math_Vector2();
}
};
$hxClasses["openfl.text._internal.GlyphPosition"] = openfl_text__$internal_GlyphPosition;
openfl_text__$internal_GlyphPosition.__name__ = "openfl.text._internal.GlyphPosition";
openfl_text__$internal_GlyphPosition.prototype = {
advance: null
,glyph: null
,offset: null
,__class__: openfl_text__$internal_GlyphPosition
};
var openfl_text__$internal_TextEngine = function(textField) {
this.textField = textField;
this.width = 100;
this.height = 100;
this.set_text("");
this.bounds = new openfl_geom_Rectangle(0,0,0,0);
this.textBounds = new openfl_geom_Rectangle(0,0,0,0);
this.type = 0;
this.autoSize = 2;
this.embedFonts = false;
this.selectable = true;
this.borderColor = 0;
this.border = false;
this.backgroundColor = 16777215;
this.background = false;
this.gridFitType = 1;
this.maxChars = 0;
this.multiline = false;
this.numLines = 1;
this.sharpness = 0;
this.scrollH = 0;
this.set_scrollV(1);
this.wordWrap = false;
this.lineAscents = openfl_Vector.toFloatVector(null);
this.lineBreaks = openfl_Vector.toIntVector(null);
this.lineDescents = openfl_Vector.toFloatVector(null);
this.lineLeadings = openfl_Vector.toFloatVector(null);
this.lineHeights = openfl_Vector.toFloatVector(null);
this.lineWidths = openfl_Vector.toFloatVector(null);
this.layoutGroups = openfl_Vector.toObjectVector(null);
this.textFormatRanges = openfl_Vector.toObjectVector(null);
if(openfl_text__$internal_TextEngine.__context == null) {
openfl_text__$internal_TextEngine.__context = window.document.createElement("canvas").getContext("2d");
}
};
$hxClasses["openfl.text._internal.TextEngine"] = openfl_text__$internal_TextEngine;
openfl_text__$internal_TextEngine.__name__ = "openfl.text._internal.TextEngine";
openfl_text__$internal_TextEngine.__context = null;
openfl_text__$internal_TextEngine.findFont = function(name) {
return openfl_text_Font.__fontByName.h[name];
};
openfl_text__$internal_TextEngine.findFontVariant = function(format) {
var fontName = format.font;
var bold = format.bold;
var italic = format.italic;
if(fontName == null) {
fontName = "_serif";
}
var fontNamePrefix = StringTools.replace(StringTools.replace(fontName," Normal","")," Regular","");
if(bold && italic && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Bold Italic")) {
return openfl_text__$internal_TextEngine.findFont(fontNamePrefix + " Bold Italic");
} else if(bold && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Bold")) {
return openfl_text__$internal_TextEngine.findFont(fontNamePrefix + " Bold");
} else if(italic && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Italic")) {
return openfl_text__$internal_TextEngine.findFont(fontNamePrefix + " Italic");
}
return openfl_text__$internal_TextEngine.findFont(fontName);
};
openfl_text__$internal_TextEngine.getFormatHeight = function(format) {
var ascent;
var descent;
openfl_text__$internal_TextEngine.__context.font = openfl_text__$internal_TextEngine.getFont(format);
var font = openfl_text__$internal_TextEngine.getFontInstance(format);
if(format.__ascent != null) {
ascent = format.size * format.__ascent;
descent = format.size * format.__descent;
} else if(font != null && font.unitsPerEM != 0) {
ascent = font.ascender / font.unitsPerEM * format.size;
descent = Math.abs(font.descender / font.unitsPerEM * format.size);
} else {
ascent = format.size;
descent = format.size * 0.185;
}
var leading = format.leading;
return ascent + descent + leading;
};
openfl_text__$internal_TextEngine.getFont = function(format) {
var fontName = format.font;
var bold = format.bold;
var italic = format.italic;
if(fontName == null) {
fontName = "_serif";
}
var fontNamePrefix = StringTools.replace(StringTools.replace(fontName," Normal","")," Regular","");
if(bold && italic && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Bold Italic")) {
fontName = fontNamePrefix + " Bold Italic";
bold = false;
italic = false;
} else if(bold && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Bold")) {
fontName = fontNamePrefix + " Bold";
bold = false;
} else if(italic && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Italic")) {
fontName = fontNamePrefix + " Italic";
italic = false;
} else {
if(bold && (fontName.indexOf(" Bold ") > -1 || StringTools.endsWith(fontName," Bold"))) {
bold = false;
}
if(italic && (fontName.indexOf(" Italic ") > -1 || StringTools.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:
var _this_r = new RegExp("^[\\s'\"]+(.*)[\\s'\"]+$","".split("u").join(""));
font1 = "'" + fontName.replace(_this_r,"$1") + "'";
}
font += "" + font1;
return font;
};
openfl_text__$internal_TextEngine.getFontInstance = function(format) {
return openfl_text__$internal_TextEngine.findFontVariant(format);
};
openfl_text__$internal_TextEngine.prototype = {
antiAliasType: null
,autoSize: null
,background: null
,backgroundColor: null
,border: null
,borderColor: null
,bottomScrollV: null
,bounds: null
,caretIndex: null
,embedFonts: null
,gridFitType: null
,height: null
,layoutGroups: null
,lineAscents: null
,lineBreaks: null
,lineDescents: null
,lineLeadings: null
,lineHeights: null
,lineWidths: null
,maxChars: null
,maxScrollH: null
,maxScrollV: null
,multiline: null
,numLines: null
,restrict: null
,scrollH: null
,scrollV: null
,selectable: null
,sharpness: null
,text: null
,textBounds: null
,textHeight: null
,textFormatRanges: null
,textWidth: null
,type: null
,width: null
,wordWrap: null
,textField: null
,__cursorTimer: null
,__hasFocus: null
,__isKeyDown: null
,__measuredHeight: null
,__measuredWidth: null
,__restrictRegexp: null
,__selectionStart: null
,__showCursor: null
,__textFormat: null
,__textLayout: null
,__texture: null
,__useIntAdvances: null
,__cairoFont: null
,__font: null
,createRestrictRegexp: function(restrict) {
var declinedRange = new EReg("\\^(.-.|.)","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("(" + testRegexpParts.join("|") + ")","g");
}
,getBounds: function() {
var padding = this.border ? 1 : 0;
this.bounds.width = this.width + padding;
this.bounds.height = this.height + padding;
var x = this.width;
var y = this.width;
var group = this.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
if(group1.offsetX < x) {
x = group1.offsetX;
}
if(group1.offsetY < y) {
y = group1.offsetY;
}
}
if(x >= this.width) {
x = 2;
}
if(y >= this.height) {
y = 2;
}
var textHeight = this.textHeight * 1.185;
this.textBounds.setTo(Math.max(x - 2,0),Math.max(y - 2,0),Math.min(this.textWidth + 4,this.bounds.width + 4),Math.min(textHeight + 4,this.bounds.height + 4));
}
,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 this.text.substring(index > 0 ? this.lineBreaks.get(index - 1) : 0,this.lineBreaks.get(index));
}
}
,getLineBreakIndex: function(startIndex) {
if(startIndex == null) {
startIndex = 0;
}
var cr = this.text.indexOf("\n",startIndex);
var lf = this.text.indexOf("\r",startIndex);
if(cr == -1) {
return lf;
}
if(lf == -1) {
return cr;
}
if(cr < lf) {
return cr;
} else {
return lf;
}
}
,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.maxScrollH = 0;
var group = this.layoutGroups.iterator();
while(group.hasNext()) {
var group1 = group.next();
while(group1.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++;
}
currentLineAscent = Math.max(currentLineAscent,group1.ascent);
currentLineDescent = Math.max(currentLineDescent,group1.descent);
if(currentLineLeading == null) {
currentLineLeading = group1.leading;
} else {
currentLineLeading = Math.max(currentLineLeading,group1.leading) | 0;
}
currentLineHeight = Math.max(currentLineHeight,group1.height);
currentLineWidth = group1.offsetX - 2 + group1.width;
if(currentLineWidth > this.textWidth) {
this.textWidth = currentLineWidth;
}
currentTextHeight = group1.offsetY - 2 + group1.ascent + group1.descent;
if(currentTextHeight > this.textHeight) {
this.textHeight = currentTextHeight;
}
}
if(this.textHeight == 0 && this.textField != null && this.textField.get_type() == 1) {
var currentFormat = this.textField.__textFormat;
var ascent;
var descent;
var font = openfl_text__$internal_TextEngine.getFontInstance(currentFormat);
if(currentFormat.__ascent != null) {
ascent = currentFormat.size * currentFormat.__ascent;
descent = currentFormat.size * currentFormat.__descent;
} else if(font != null && font.unitsPerEM != 0) {
ascent = font.ascender / font.unitsPerEM * currentFormat.size;
descent = Math.abs(font.descender / font.unitsPerEM * currentFormat.size);
} else {
ascent = currentFormat.size;
descent = currentFormat.size * 0.185;
}
var leading = currentFormat.leading;
var 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) {
if(currentLineLeading > 0) {
this.textHeight += currentLineLeading;
}
}
if(this.layoutGroups.get_length() > 0) {
var group = this.layoutGroups.get(this.layoutGroups.get_length() - 1);
if(group != null && group.startIndex == group.endIndex) {
this.textHeight -= currentLineHeight;
}
}
if(this.autoSize != 2) {
switch(this.autoSize) {
case 0:case 1:case 3:
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 = this.textWidth - this.width + 4 | 0;
} else {
this.maxScrollH = 0;
}
if(this.scrollH > this.maxScrollH) {
this.scrollH = this.maxScrollH;
}
}
,getLayoutGroups: function() {
var _gthis = this;
this.layoutGroups.set_length(0);
if(this.text == null || this.text == "") {
return;
}
var rangeIndex = -1;
var formatRange = null;
var font = null;
var currentFormat = openfl_text_TextField.__defaultTextFormat.clone();
var leading = 0;
var ascent = 0.0;
var maxAscent = 0.0;
var descent = 0.0;
var align = 3;
var blockIndent = 0;
var bullet = false;
var indent = 0;
var leftMargin = 0;
var rightMargin = 0;
var tabStops = null;
var layoutGroup = null;
var positions = null;
var widthValue = 0.0;
var heightValue = 0;
var maxHeightValue = 0;
var previousSpaceIndex = -2;
var previousBreakIndex = -1;
var spaceIndex = this.text.indexOf(" ");
var breakIndex = this.getLineBreakIndex();
var offsetX = 2.0;
var offsetY = 2.0;
var textIndex = 0;
var lineIndex = 0;
var getPositions = function(text,startIndex,endIndex) {
var positions = [];
var letterSpacing = 0.0;
if(formatRange.format.letterSpacing != null) {
letterSpacing = formatRange.format.letterSpacing;
}
if(_gthis.__useIntAdvances == null) {
var getPositions = new EReg("Trident/7.0","");
_gthis.__useIntAdvances = getPositions.match($global.navigator.userAgent);
}
if(_gthis.__useIntAdvances) {
var previousWidth = 0.0;
var width;
var _g = startIndex;
var _g1 = endIndex;
while(_g < _g1) {
var i = _g++;
width = openfl_text__$internal_TextEngine.__context.measureText(text.substring(startIndex,i + 1)).width;
positions.push(width - previousWidth);
previousWidth = width;
}
} else {
var _g = startIndex;
var _g1 = endIndex;
while(_g < _g1) {
var i = _g++;
var advance;
if(i < text.length - 1) {
var nextWidth = openfl_text__$internal_TextEngine.__context.measureText(text.charAt(i + 1)).width;
var twoWidths = openfl_text__$internal_TextEngine.__context.measureText(HxOverrides.substr(text,i,2)).width;
advance = twoWidths - nextWidth;
} else {
advance = openfl_text__$internal_TextEngine.__context.measureText(text.charAt(i)).width;
}
positions.push(advance);
}
}
return positions;
};
var getPositionsWidth = function(positions) {
var width = 0.0;
var _g = 0;
while(_g < positions.length) {
var position = positions[_g];
++_g;
width += position;
}
return width;
};
var getTextWidth = function(text) {
return openfl_text__$internal_TextEngine.__context.measureText(text).width;
};
var nextLayoutGroup = function(startIndex,endIndex) {
if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
layoutGroup = new openfl_text__$internal_TextLayoutGroup(formatRange.format,startIndex,endIndex);
_gthis.layoutGroups.push(layoutGroup);
} else {
layoutGroup.format = formatRange.format;
layoutGroup.startIndex = startIndex;
layoutGroup.endIndex = endIndex;
}
};
var setLineMetrics = function() {
if(currentFormat.__ascent != null) {
ascent = currentFormat.size * currentFormat.__ascent;
descent = currentFormat.size * currentFormat.__descent;
} else if(font != null && font.unitsPerEM != 0) {
ascent = font.ascender / font.unitsPerEM * currentFormat.size;
descent = Math.abs(font.descender / font.unitsPerEM * currentFormat.size);
} else {
ascent = currentFormat.size;
descent = currentFormat.size * 0.185;
}
leading = currentFormat.leading;
heightValue = Math.ceil(ascent + descent + leading);
if(heightValue > maxHeightValue) {
maxHeightValue = heightValue;
}
if(ascent > maxAscent) {
maxAscent = ascent;
}
};
var setParagraphMetrics = function() {
if(currentFormat.align != null) {
align = currentFormat.align;
}
var setParagraphMetrics = currentFormat.blockIndent != null;
var setParagraphMetrics = currentFormat.bullet != null;
var setParagraphMetrics = currentFormat.indent != null;
if(currentFormat.leftMargin != null) {
leftMargin = currentFormat.leftMargin;
}
if(currentFormat.rightMargin != null) {
rightMargin = currentFormat.rightMargin;
}
var setParagraphMetrics = currentFormat.tabStops != null;
};
var nextFormatRange = function() {
if(rangeIndex < _gthis.textFormatRanges.get_length() - 1) {
rangeIndex += 1;
formatRange = _gthis.textFormatRanges.get(rangeIndex);
currentFormat.__merge(formatRange.format);
openfl_text__$internal_TextEngine.__context.font = openfl_text__$internal_TextEngine.getFont(currentFormat);
font = openfl_text__$internal_TextEngine.getFontInstance(currentFormat);
return true;
}
return false;
};
var setFormattedPositions = function(startIndex,endIndex) {
if(endIndex <= formatRange.end) {
positions = getPositions(_gthis.text,startIndex,endIndex);
widthValue = getPositionsWidth(positions);
} else {
var tempIndex = startIndex;
var tempRangeEnd = formatRange.end;
var countRanges = 0;
positions = [];
widthValue = 0;
while(true) {
if(tempIndex != tempRangeEnd) {
var tempPositions = getPositions(_gthis.text,tempIndex,tempRangeEnd);
positions = positions.concat(tempPositions);
}
if(tempRangeEnd != endIndex) {
if(!nextFormatRange()) {
lime_utils_Log.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.",{ fileName : "openfl/text/_internal/TextEngine.hx", lineNumber : 1061, className : "openfl.text._internal.TextEngine", methodName : "getLayoutGroups"});
break;
}
tempIndex = tempRangeEnd;
tempRangeEnd = endIndex < formatRange.end ? endIndex : formatRange.end;
++countRanges;
} else {
widthValue = getPositionsWidth(positions);
break;
}
}
rangeIndex -= countRanges + 1;
nextFormatRange();
}
};
var placeFormattedText = function(endIndex) {
if(endIndex <= formatRange.end) {
positions = getPositions(_gthis.text,textIndex,endIndex);
widthValue = getPositionsWidth(positions);
nextLayoutGroup(textIndex,endIndex);
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;
if(endIndex == formatRange.end) {
layoutGroup = null;
nextFormatRange();
setLineMetrics();
}
} else {
while(true) {
var tempRangeEnd = endIndex < formatRange.end ? endIndex : formatRange.end;
if(textIndex != tempRangeEnd) {
positions = getPositions(_gthis.text,textIndex,tempRangeEnd);
widthValue = getPositionsWidth(positions);
nextLayoutGroup(textIndex,tempRangeEnd);
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 = tempRangeEnd;
}
if(tempRangeEnd == formatRange.end) {
layoutGroup = null;
}
if(tempRangeEnd == endIndex) {
break;
}
if(!nextFormatRange()) {
lime_utils_Log.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.",{ fileName : "openfl/text/_internal/TextEngine.hx", lineNumber : 1149, className : "openfl.text._internal.TextEngine", methodName : "getLayoutGroups"});
break;
}
setLineMetrics();
}
}
textIndex = endIndex;
};
var alignBaseline = function() {
setLineMetrics();
var i = _gthis.layoutGroups.get_length();
while(--i > -1) {
var lg = _gthis.layoutGroups.get(i);
if(lg.lineIndex < lineIndex) {
break;
}
if(lg.lineIndex > lineIndex) {
continue;
}
lg.ascent = maxAscent;
lg.height = maxHeightValue;
}
offsetY += maxHeightValue;
maxAscent = 0.0;
maxHeightValue = 0;
lineIndex += 1;
offsetX = 2;
};
var breakLongWords = function(endIndex) {
var remainingPositions = positions;
var i;
var bufferCount;
var placeIndex;
var positionWidth;
var currentPosition;
var tempWidth = getPositionsWidth(remainingPositions);
while(offsetX + tempWidth > _gthis.width - 2) {
bufferCount = 0;
i = bufferCount;
positionWidth = 0.0;
while(offsetX + positionWidth < _gthis.width - 2) {
currentPosition = remainingPositions[i];
if(currentPosition == 0.0) {
++i;
++bufferCount;
} else {
positionWidth += currentPosition;
++i;
}
}
if(positionWidth == 0.0) {
break;
} else if(i < 2 && positionWidth + offsetX > _gthis.width - 2) {
if(textIndex + i - bufferCount == endIndex) {
break;
}
} else {
while(offsetX + positionWidth > _gthis.width - 2) {
--i;
if(i - bufferCount > 0) {
setFormattedPositions(textIndex,textIndex + i - bufferCount);
positionWidth = widthValue;
} else {
i = 1;
bufferCount = 0;
setFormattedPositions(textIndex,textIndex + 1);
positionWidth = 0;
}
}
}
placeIndex = textIndex + i - bufferCount;
placeFormattedText(placeIndex);
alignBaseline();
setFormattedPositions(placeIndex,endIndex);
remainingPositions = positions;
tempWidth = widthValue;
}
};
var placeText = function(endIndex) {
if(_gthis.width >= 4 && _gthis.wordWrap) {
breakLongWords(endIndex);
}
placeFormattedText(endIndex);
};
nextFormatRange();
setParagraphMetrics();
setLineMetrics();
var wrap;
var maxLoops = this.text.length + 1;
while(textIndex < maxLoops) if(breakIndex > -1 && (spaceIndex == -1 || breakIndex < spaceIndex)) {
if(textIndex <= breakIndex) {
setFormattedPositions(textIndex,breakIndex);
placeText(breakIndex);
layoutGroup = null;
} else if(layoutGroup != null && layoutGroup.startIndex != layoutGroup.endIndex) {
if(layoutGroup.endIndex == spaceIndex) {
layoutGroup.width -= layoutGroup.positions[layoutGroup.positions.length - 1];
}
layoutGroup = null;
}
if(formatRange.end == breakIndex) {
nextFormatRange();
setLineMetrics();
}
alignBaseline();
textIndex = breakIndex + 1;
previousBreakIndex = breakIndex;
breakIndex = this.getLineBreakIndex(textIndex);
setParagraphMetrics();
} else if(spaceIndex > -1) {
if(layoutGroup != null && layoutGroup.startIndex != layoutGroup.endIndex) {
layoutGroup = null;
}
wrap = false;
while(textIndex < this.text.length) {
var endIndex = -1;
if(spaceIndex == -1) {
endIndex = breakIndex;
} else {
endIndex = spaceIndex + 1;
if(breakIndex > -1 && breakIndex < endIndex) {
endIndex = breakIndex;
}
}
if(endIndex == -1) {
endIndex = this.text.length;
}
setFormattedPositions(textIndex,endIndex);
if(align == 2) {
if(positions.length > 0 && textIndex == previousSpaceIndex) {
textIndex += 1;
var spaceWidth = positions.shift();
widthValue -= spaceWidth;
offsetX += spaceWidth;
}
if(positions.length > 0 && endIndex == spaceIndex + 1) {
--endIndex;
var spaceWidth1 = positions.pop();
widthValue -= spaceWidth1;
}
}
if(this.wordWrap) {
if(offsetX + widthValue > this.width - 2) {
wrap = true;
if(positions.length > 0 && endIndex == spaceIndex + 1) {
var lastPosition = positions[positions.length - 1];
var spaceWidth2 = lastPosition;
if(offsetX + widthValue - spaceWidth2 <= this.width - 2) {
wrap = false;
}
}
}
}
if(wrap) {
if(align != 2 && (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.positions[previous.positions.length - 1];
previous.endIndex--;
}
var i = this.layoutGroups.get_length() - 1;
var offsetCount = 0;
while(true) {
layoutGroup = this.layoutGroups.get(i);
if(i > 0 && layoutGroup.startIndex > previousSpaceIndex) {
++offsetCount;
} else {
break;
}
--i;
}
if(textIndex == previousSpaceIndex + 1) {
alignBaseline();
}
offsetX = 2;
if(offsetCount > 0) {
var bumpX = this.layoutGroups.get(this.layoutGroups.get_length() - offsetCount).offsetX;
var _g = this.layoutGroups.get_length() - offsetCount;
var _g1 = this.layoutGroups.get_length();
while(_g < _g1) {
var i1 = _g++;
layoutGroup = this.layoutGroups.get(i1);
layoutGroup.offsetX -= bumpX;
layoutGroup.offsetY = offsetY;
layoutGroup.lineIndex = lineIndex;
offsetX += layoutGroup.width;
}
}
placeText(endIndex);
wrap = false;
} else if(layoutGroup != null && textIndex == spaceIndex) {
if(align != 2) {
layoutGroup.endIndex = spaceIndex;
layoutGroup.positions = layoutGroup.positions.concat(positions);
layoutGroup.width += widthValue;
}
offsetX += widthValue;
textIndex = endIndex;
} else if(layoutGroup == null || align == 2) {
placeText(endIndex);
} else {
var tempRangeEnd = endIndex < formatRange.end ? endIndex : formatRange.end;
if(tempRangeEnd < endIndex) {
positions = getPositions(this.text,textIndex,tempRangeEnd);
widthValue = getPositionsWidth(positions);
}
layoutGroup.endIndex = tempRangeEnd;
layoutGroup.positions = layoutGroup.positions.concat(positions);
layoutGroup.width += widthValue;
offsetX += widthValue;
if(tempRangeEnd == formatRange.end) {
layoutGroup = null;
nextFormatRange();
setLineMetrics();
textIndex = tempRangeEnd;
if(tempRangeEnd != endIndex) {
placeFormattedText(endIndex);
}
}
if(breakIndex == endIndex) {
++endIndex;
}
textIndex = endIndex;
}
var nextSpaceIndex = this.text.indexOf(" ",textIndex);
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 > this.text.length) {
break;
}
}
} else {
if(textIndex < this.text.length) {
setFormattedPositions(textIndex,this.text.length);
placeText(this.text.length);
alignBaseline();
}
textIndex += 1;
}
if(previousBreakIndex == textIndex - 2 && previousBreakIndex > -1) {
nextLayoutGroup(textIndex,textIndex);
layoutGroup.positions = [];
layoutGroup.ascent = ascent;
layoutGroup.descent = descent;
layoutGroup.leading = leading;
layoutGroup.lineIndex = lineIndex;
layoutGroup.offsetX = 2;
layoutGroup.offsetY = offsetY;
layoutGroup.width = 0;
layoutGroup.height = heightValue;
}
}
,restrictText: function(value) {
if(value == null) {
return value;
}
if(this.__restrictRegexp != null) {
value = this.__restrictRegexp.split(value).join("");
}
return value;
}
,setTextAlignment: function() {
var lineIndex = -1;
var offsetX = 0.0;
var totalWidth = this.width - 4;
var group;
var lineLength;
var lineMeasurementsDirty = false;
var _g = 0;
var _g1 = this.layoutGroups.get_length();
while(_g < _g1) {
var i = _g++;
group = this.layoutGroups.get(i);
if(group.lineIndex != lineIndex) {
lineIndex = group.lineIndex;
totalWidth = this.width - 4 - group.format.rightMargin;
switch(group.format.align) {
case 0:
if(this.lineWidths.get(lineIndex) < totalWidth) {
offsetX = Math.round((totalWidth - this.lineWidths.get(lineIndex)) / 2);
} else {
offsetX = 0;
}
break;
case 2:
if(this.lineWidths.get(lineIndex) < totalWidth) {
lineLength = 1;
var _g2 = i + 1;
var _g3 = this.layoutGroups.get_length();
while(_g2 < _g3) {
var j = _g2++;
if(this.layoutGroups.get(j).lineIndex == lineIndex) {
if(j == 0 || HxOverrides.cca(this.text,this.layoutGroups.get(j).startIndex - 1) == 32) {
++lineLength;
}
} else {
break;
}
}
if(lineLength > 1) {
group = this.layoutGroups.get(i + lineLength - 1);
var endChar = HxOverrides.cca(this.text,group.endIndex);
if(group.endIndex < this.text.length && endChar != 10 && endChar != 13) {
offsetX = (totalWidth - this.lineWidths.get(lineIndex)) / (lineLength - 1);
lineMeasurementsDirty = true;
var j1 = 1;
while(true) {
this.layoutGroups.get(i + j1).offsetX += offsetX * j1;
if(!(++j1 < lineLength)) {
break;
}
}
}
}
}
offsetX = 0;
break;
case 4:
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;
}
}
if(lineMeasurementsDirty) {
this.getLineMeasurements();
}
}
,trimText: function(value) {
if(value == null) {
return value;
}
if(this.maxChars > 0 && value.length > this.maxChars) {
value = HxOverrides.substr(value,0,this.maxChars);
}
return value;
}
,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();
}
,get_bottomScrollV: function() {
if(this.numLines == 1 || this.lineHeights == null) {
return 1;
} else {
var tempHeight = 0.0;
var ret = this.lineHeights.get_length();
var _g = ret - 1;
var _g1 = this.lineHeights.get_length();
while(_g < _g1) {
var i = _g++;
if(tempHeight + this.lineHeights.get(i) <= this.height - 4) {
tempHeight += this.lineHeights.get(i);
} else {
ret = i;
break;
}
}
if(ret < 1) {
return 1;
}
return ret;
}
}
,get_maxScrollV: function() {
if(this.numLines == 1 || this.lineHeights == null) {
return 1;
} else {
var i = this.numLines - 1;
var tempHeight = 0.0;
if(HxOverrides.cca(this.text,this.text.length - 1) == 10) {
--i;
}
var j = i;
while(i >= 0) if(tempHeight + this.lineHeights.get(i) <= this.height - 4) {
tempHeight += this.lineHeights.get(i);
--i;
} else {
break;
}
if(i == j) {
i = this.numLines;
} else {
i += 2;
}
if(i < 1) {
return 1;
}
return i;
}
}
,set_restrict: function(value) {
if(this.restrict == value) {
return this.restrict;
}
this.restrict = value;
if(this.restrict == null || this.restrict.length == 0) {
this.__restrictRegexp = null;
} else {
this.__restrictRegexp = this.createRestrictRegexp(value);
}
return this.restrict;
}
,get_scrollV: function() {
if(this.numLines == 1 || this.lineHeights == null) {
return 1;
}
var max = this.get_maxScrollV();
if(this.scrollV > max) {
return max;
}
return this.scrollV;
}
,set_scrollV: function(value) {
if(value < 1) {
value = 1;
}
return this.scrollV = value;
}
,set_text: function(value) {
return this.text = value;
}
,__class__: openfl_text__$internal_TextEngine
,__properties__: {set_text:"set_text",set_scrollV:"set_scrollV",get_scrollV:"get_scrollV",set_restrict:"set_restrict",get_maxScrollV:"get_maxScrollV",get_bottomScrollV:"get_bottomScrollV"}
};
var openfl_text__$internal_TextFormatRange = function(format,start,end) {
this.format = format;
this.start = start;
this.end = end;
};
$hxClasses["openfl.text._internal.TextFormatRange"] = openfl_text__$internal_TextFormatRange;
openfl_text__$internal_TextFormatRange.__name__ = "openfl.text._internal.TextFormatRange";
openfl_text__$internal_TextFormatRange.prototype = {
end: null
,format: null
,start: null
,__class__: openfl_text__$internal_TextFormatRange
};
var openfl_text__$internal_TextLayout = function(text,font,size,direction,script,language) {
if(language == null) {
language = "en";
}
if(script == null) {
script = "Zyyy";
}
if(direction == null) {
direction = 4;
}
if(size == null) {
size = 12;
}
if(text == null) {
text = "";
}
this.letterSpacing = 0;
this.set_text(text);
this.set_font(font);
this.set_size(size);
this.__direction = direction;
this.__script = script;
this.__language = language;
this.positions = [];
this.__dirty = true;
this.__create(this.__direction,this.__script,this.__language);
};
$hxClasses["openfl.text._internal.TextLayout"] = openfl_text__$internal_TextLayout;
openfl_text__$internal_TextLayout.__name__ = "openfl.text._internal.TextLayout";
openfl_text__$internal_TextLayout.prototype = {
autoHint: null
,font: null
,glyphs: null
,letterSpacing: null
,positions: null
,size: null
,text: null
,__buffer: null
,__direction: null
,__dirty: null
,__handle: null
,__language: null
,__script: null
,__font: null
,__hbBuffer: null
,__hbFont: null
,__create: function(direction,script,language) {
if(language.length != 4) {
return;
}
this.__hbBuffer = lime_text_harfbuzz_HBBuffer._new();
switch(direction) {
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
default:
}
var this1 = this.__hbBuffer;
var value = lime_text_harfbuzz_HBLanguage._new(language);
}
,__position: function() {
this.positions = [];
}
,get_positions: function() {
if(this.__dirty) {
this.__dirty = false;
this.__position();
}
return this.positions;
}
,get_direction: function() {
return this.__direction;
}
,set_direction: function(value) {
if(value == this.__direction) {
return value;
}
this.__direction = value;
this.__dirty = true;
return value;
}
,set_font: function(value) {
if(value == this.font) {
return value;
}
this.font = value;
this.__dirty = true;
return value;
}
,get_glyphs: function() {
var glyphs = [];
var _g = 0;
var _g1 = this.get_positions();
while(_g < _g1.length) {
var position = _g1[_g];
++_g;
glyphs.push(position.glyph);
}
return glyphs;
}
,get_language: function() {
return this.__language;
}
,set_language: function(value) {
if(value == this.__language) {
return value;
}
this.__language = value;
this.__dirty = true;
return value;
}
,get_script: function() {
return this.__script;
}
,set_script: function(value) {
if(value == this.__script) {
return value;
}
this.__script = value;
this.__dirty = true;
return value;
}
,set_size: function(value) {
if(value == this.size) {
return value;
}
this.size = value;
this.__dirty = true;
return value;
}
,set_text: function(value) {
if(value == this.text) {
return value;
}
this.text = value;
this.__dirty = true;
return value;
}
,__class__: openfl_text__$internal_TextLayout
,__properties__: {set_text:"set_text",set_size:"set_size",set_script:"set_script",get_script:"get_script",get_positions:"get_positions",set_language:"set_language",get_language:"get_language",get_glyphs:"get_glyphs",set_font:"set_font",set_direction:"set_direction",get_direction:"get_direction"}
};
var openfl_text__$internal_TextDirection = {};
openfl_text__$internal_TextDirection.__properties__ = {get_vertical:"get_vertical",get_horizontal:"get_horizontal",get_forward:"get_forward",get_backward:"get_backward"};
openfl_text__$internal_TextDirection.reverse = function(this1) {
this1 ^= 1;
};
openfl_text__$internal_TextDirection.toString = function(this1) {
switch(this1) {
case 4:
return "leftToRight";
case 5:
return "rightToLeft";
case 6:
return "topToBottom";
case 7:
return "bottomToTop";
default:
return "";
}
};
openfl_text__$internal_TextDirection.toHBDirection = function(this1) {
switch(this1) {
case 4:
return 4;
case 5:
return 5;
case 6:
return 6;
case 7:
return 7;
default:
return 0;
}
};
openfl_text__$internal_TextDirection.get_backward = function(this1) {
return (this1 & -3) == 5;
};
openfl_text__$internal_TextDirection.get_forward = function(this1) {
return (this1 & -3) == 4;
};
openfl_text__$internal_TextDirection.get_horizontal = function(this1) {
return (this1 & -2) == 4;
};
openfl_text__$internal_TextDirection.get_vertical = function(this1) {
return (this1 & -2) == 6;
};
var openfl_text__$internal_TextScript = {};
openfl_text__$internal_TextScript.__properties__ = {get_rightToLeft:"get_rightToLeft"};
openfl_text__$internal_TextScript.toHBScript = function(this1) {
return 1517910393;
};
openfl_text__$internal_TextScript.get_rightToLeft = function(this1) {
switch(this1) {
case "Arab":case "Armi":case "Avst":case "Cprt":case "Hebr":case "Khar":case "Lydi":case "Mand":case "Nkoo":case "Orkh":case "Phli":case "Phlp":case "Phnx":case "Samr":case "Sarb":case "Syrc":case "Thaa":
return true;
default:
return false;
}
};
var openfl_text__$internal_TextLayoutGroup = function(format,startIndex,endIndex) {
this.format = format;
this.startIndex = startIndex;
this.endIndex = endIndex;
};
$hxClasses["openfl.text._internal.TextLayoutGroup"] = openfl_text__$internal_TextLayoutGroup;
openfl_text__$internal_TextLayoutGroup.__name__ = "openfl.text._internal.TextLayoutGroup";
openfl_text__$internal_TextLayoutGroup.prototype = {
ascent: null
,descent: null
,endIndex: null
,format: null
,height: null
,leading: null
,lineIndex: null
,offsetX: null
,offsetY: null
,positions: null
,startIndex: null
,width: null
,getAdvance: function(index) {
return this.positions[index];
}
,__class__: openfl_text__$internal_TextLayoutGroup
};
var openfl_ui_GameInputControl = function(device,id,minValue,maxValue,value) {
if(value == null) {
value = 0;
}
openfl_events_EventDispatcher.call(this);
this.device = device;
this.id = id;
this.minValue = minValue;
this.maxValue = maxValue;
this.value = value;
};
$hxClasses["openfl.ui.GameInputControl"] = openfl_ui_GameInputControl;
openfl_ui_GameInputControl.__name__ = "openfl.ui.GameInputControl";
openfl_ui_GameInputControl.__super__ = openfl_events_EventDispatcher;
openfl_ui_GameInputControl.prototype = $extend(openfl_events_EventDispatcher.prototype,{
device: null
,id: null
,maxValue: null
,minValue: null
,value: null
,__class__: openfl_ui_GameInputControl
});
var openfl_ui_GameInputDevice = function(id,name) {
this.__controls = [];
this.__button = new haxe_ds_IntMap();
this.__axis = new haxe_ds_IntMap();
this.id = id;
this.name = name;
var control;
control = new openfl_ui_GameInputControl(this,"AXIS_" + 0,-1,1);
this.__axis.h[0] = control;
this.__controls.push(control);
control = new openfl_ui_GameInputControl(this,"AXIS_" + 1,-1,1);
this.__axis.h[1] = control;
this.__controls.push(control);
control = new openfl_ui_GameInputControl(this,"AXIS_" + 2,-1,1);
this.__axis.h[2] = control;
this.__controls.push(control);
control = new openfl_ui_GameInputControl(this,"AXIS_" + 3,-1,1);
this.__axis.h[3] = control;
this.__controls.push(control);
control = new openfl_ui_GameInputControl(this,"AXIS_" + 4,-1,1);
this.__axis.h[4] = control;
this.__controls.push(control);
control = new openfl_ui_GameInputControl(this,"AXIS_" + 5,-1,1);
this.__axis.h[5] = control;
this.__controls.push(control);
var _g = 0;
while(_g < 15) {
var i = _g++;
control = new openfl_ui_GameInputControl(this,"BUTTON_" + i,0,1);
this.__button.h[i] = control;
this.__controls.push(control);
}
};
$hxClasses["openfl.ui.GameInputDevice"] = openfl_ui_GameInputDevice;
openfl_ui_GameInputDevice.__name__ = "openfl.ui.GameInputDevice";
openfl_ui_GameInputDevice.prototype = {
enabled: null
,id: null
,name: null
,sampleInterval: null
,__axis: null
,__button: null
,__controls: null
,__gamepad: null
,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;
}
,__class__: openfl_ui_GameInputDevice
,__properties__: {get_numControls:"get_numControls"}
};
var openfl_ui_Keyboard = function() { };
$hxClasses["openfl.ui.Keyboard"] = openfl_ui_Keyboard;
openfl_ui_Keyboard.__name__ = "openfl.ui.Keyboard";
openfl_ui_Keyboard.capsLock = null;
openfl_ui_Keyboard.numLock = null;
openfl_ui_Keyboard.isAccessible = function() {
return false;
};
openfl_ui_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 13;
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;
}
};
openfl_ui_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;
};
openfl_ui_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;
}
};
var openfl_ui_Mouse = function() { };
$hxClasses["openfl.ui.Mouse"] = openfl_ui_Mouse;
openfl_ui_Mouse.__name__ = "openfl.ui.Mouse";
openfl_ui_Mouse.__properties__ = {set_cursor:"set_cursor",get_cursor:"get_cursor"};
openfl_ui_Mouse.__hidden = null;
openfl_ui_Mouse.hide = function() {
openfl_ui_Mouse.__hidden = true;
var _g = 0;
var _g1 = lime_app_Application.current.__windows;
while(_g < _g1.length) {
var $window = _g1[_g];
++_g;
$window.set_cursor(null);
}
};
openfl_ui_Mouse.show = function() {
openfl_ui_Mouse.__hidden = false;
var cacheCursor = openfl_ui_Mouse.__cursor;
openfl_ui_Mouse.__cursor = null;
openfl_ui_Mouse.set_cursor(cacheCursor);
};
openfl_ui_Mouse.get_cursor = function() {
return openfl_ui_Mouse.__cursor;
};
openfl_ui_Mouse.set_cursor = function(value) {
if(value == null) {
value = "auto";
}
var setCursor = null;
switch(value) {
case "arrow":
setCursor = lime_ui_MouseCursor.ARROW;
break;
case "button":
setCursor = lime_ui_MouseCursor.POINTER;
break;
case "crosshair":
setCursor = lime_ui_MouseCursor.CROSSHAIR;
break;
case "custom":
setCursor = lime_ui_MouseCursor.CUSTOM;
break;
case "hand":
setCursor = lime_ui_MouseCursor.MOVE;
break;
case "ibeam":
setCursor = lime_ui_MouseCursor.TEXT;
break;
case "resize_nesw":
setCursor = lime_ui_MouseCursor.RESIZE_NESW;
break;
case "resize_ns":
setCursor = lime_ui_MouseCursor.RESIZE_NS;
break;
case "resize_nwse":
setCursor = lime_ui_MouseCursor.RESIZE_NWSE;
break;
case "resize_we":
setCursor = lime_ui_MouseCursor.RESIZE_WE;
break;
case "wait":
setCursor = lime_ui_MouseCursor.WAIT;
break;
case "waitarrow":
setCursor = lime_ui_MouseCursor.WAIT_ARROW;
break;
default:
}
if(setCursor != null && !openfl_ui_Mouse.__hidden) {
var _g = 0;
var _g1 = lime_app_Application.current.__windows;
while(_g < _g1.length) {
var $window = _g1[_g];
++_g;
$window.set_cursor(setCursor);
}
}
return openfl_ui_Mouse.__cursor = value;
};
var openfl_ui_MouseCursor = {};
openfl_ui_MouseCursor.fromLimeCursor = function(cursor) {
switch(cursor._hx_index) {
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";
}
};
openfl_ui_MouseCursor.toLimeCursor = function(this1) {
switch(this1) {
case "arrow":
return lime_ui_MouseCursor.ARROW;
case "auto":
return lime_ui_MouseCursor.DEFAULT;
case "button":
return lime_ui_MouseCursor.POINTER;
case "crosshair":
return lime_ui_MouseCursor.CROSSHAIR;
case "custom":
return lime_ui_MouseCursor.CUSTOM;
case "hand":
return lime_ui_MouseCursor.MOVE;
case "ibeam":
return lime_ui_MouseCursor.TEXT;
case "resize_nesw":
return lime_ui_MouseCursor.RESIZE_NESW;
case "resize_ns":
return lime_ui_MouseCursor.RESIZE_NS;
case "resize_nwse":
return lime_ui_MouseCursor.RESIZE_NWSE;
case "resize_we":
return lime_ui_MouseCursor.RESIZE_WE;
case "wait":
return lime_ui_MouseCursor.WAIT;
case "waitarrow":
return lime_ui_MouseCursor.WAIT_ARROW;
default:
return lime_ui_MouseCursor.DEFAULT;
}
};
var openfl_ui_Multitouch = function() { };
$hxClasses["openfl.ui.Multitouch"] = openfl_ui_Multitouch;
openfl_ui_Multitouch.__name__ = "openfl.ui.Multitouch";
openfl_ui_Multitouch.__properties__ = {get_supportsTouchEvents:"get_supportsTouchEvents"};
openfl_ui_Multitouch.inputMode = null;
openfl_ui_Multitouch.maxTouchPoints = null;
openfl_ui_Multitouch.supportedGestures = null;
openfl_ui_Multitouch.supportsGestureEvents = null;
openfl_ui_Multitouch.get_supportsTouchEvents = function() {
if(('ontouchstart' in document.documentElement) || (window.DocumentTouch && document instanceof DocumentTouch)) {
return true;
}
return false;
};
var openfl_ui_MultitouchInputMode = {};
openfl_ui_MultitouchInputMode.fromString = function(value) {
switch(value) {
case "gesture":
return 0;
case "none":
return 1;
case "touchPoint":
return 2;
default:
return null;
}
};
openfl_ui_MultitouchInputMode.toString = function(this1) {
switch(this1) {
case 0:
return "gesture";
case 1:
return "none";
case 2:
return "touchPoint";
default:
return null;
}
};
var openfl_utils_AGALMiniAssembler = function(debugging) {
if(debugging == null) {
debugging = false;
}
this.debugEnabled = false;
this.debugEnabled = debugging;
if(!openfl_utils_AGALMiniAssembler.initialized) {
openfl_utils_AGALMiniAssembler.init();
}
};
$hxClasses["openfl.utils.AGALMiniAssembler"] = openfl_utils_AGALMiniAssembler;
openfl_utils_AGALMiniAssembler.__name__ = "openfl.utils.AGALMiniAssembler";
openfl_utils_AGALMiniAssembler.init = function() {
openfl_utils_AGALMiniAssembler.initialized = true;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("mov",2,0,0);
this1.h["mov"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("add",3,1,0);
this1.h["add"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("sub",3,2,0);
this1.h["sub"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("mul",3,3,0);
this1.h["mul"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("div",3,4,0);
this1.h["div"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("rcp",2,5,0);
this1.h["rcp"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("min",3,6,0);
this1.h["min"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("max",3,7,0);
this1.h["max"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("frc",2,8,0);
this1.h["frc"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("sqt",2,9,0);
this1.h["sqt"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("rsq",2,10,0);
this1.h["rsq"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("pow",3,11,0);
this1.h["pow"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("log",2,12,0);
this1.h["log"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("exp",2,13,0);
this1.h["exp"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("nrm",2,14,0);
this1.h["nrm"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("sin",2,15,0);
this1.h["sin"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("cos",2,16,0);
this1.h["cos"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("crs",3,17,0);
this1.h["crs"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("dp3",3,18,0);
this1.h["dp3"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("dp4",3,19,0);
this1.h["dp4"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("abs",2,20,0);
this1.h["abs"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("neg",2,21,0);
this1.h["neg"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("sat",2,22,0);
this1.h["sat"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("m33",3,23,16);
this1.h["m33"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("m44",3,24,16);
this1.h["m44"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("m34",3,25,16);
this1.h["m34"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("ddx",2,26,288);
this1.h["ddx"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("ddy",2,27,288);
this1.h["ddy"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("ife",2,28,897);
this1.h["ife"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("ine",2,29,897);
this1.h["ine"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("ifg",2,30,897);
this1.h["ifg"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("ifl",2,31,897);
this1.h["ifl"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("els",0,32,1921);
this1.h["els"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("eif",0,33,1409);
this1.h["eif"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("kil",1,39,160);
this1.h["kil"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("tex",3,40,40);
this1.h["tex"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("sge",3,41,0);
this1.h["sge"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("slt",3,42,0);
this1.h["slt"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("sgn",2,43,0);
this1.h["sgn"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("seq",3,44,0);
this1.h["seq"] = v;
var this1 = openfl_utils_AGALMiniAssembler.OPMAP;
var v = new openfl_utils__$AGALMiniAssembler_OpCode("sne",3,45,0);
this1.h["sne"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("rgba",8,0);
this1.h["rgba"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("compressed",8,1);
this1.h["compressed"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("compressedalpha",8,2);
this1.h["compressedalpha"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("dxt1",8,1);
this1.h["dxt1"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("dxt5",8,2);
this1.h["dxt5"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("video",8,3);
this1.h["video"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("2d",12,0);
this1.h["2d"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("3d",12,2);
this1.h["3d"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("cube",12,1);
this1.h["cube"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("mipnearest",24,1);
this1.h["mipnearest"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("miplinear",24,2);
this1.h["miplinear"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("mipnone",24,0);
this1.h["mipnone"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("nomip",24,0);
this1.h["nomip"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("nearest",28,0);
this1.h["nearest"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("linear",28,1);
this1.h["linear"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic2x",28,2);
this1.h["anisotropic2x"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic4x",28,3);
this1.h["anisotropic4x"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic8x",28,4);
this1.h["anisotropic8x"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic16x",28,5);
this1.h["anisotropic16x"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("centroid",16,1);
this1.h["centroid"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("single",16,2);
this1.h["single"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("ignoresampler",16,4);
this1.h["ignoresampler"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("repeat",20,1);
this1.h["repeat"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("wrap",20,1);
this1.h["wrap"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("clamp",20,0);
this1.h["clamp"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("clamp_u_repeat_v",20,2);
this1.h["clamp_u_repeat_v"] = v;
var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP;
var v = new openfl_utils__$AGALMiniAssembler_Sampler("repeat_u_clamp_v",20,3);
this1.h["repeat_u_clamp_v"] = v;
};
openfl_utils_AGALMiniAssembler.prototype = {
agalcode: null
,error: null
,verbose: null
,debugEnabled: null
,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.getTimer();
var this1 = new openfl_utils_ByteArrayData(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.__endian = 1;
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.replace(source,"\r","\n").split("\n");
var nops = 0;
var lng = lines.length;
var reg1 = new EReg("<.*>","g");
var reg2 = new EReg("([\\w\\.\\-\\+]+)","gi");
var reg3 = new EReg("^\\w{3}","ig");
var reg4 = new EReg("vc\\[([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw](\\+\\d{1,3})?)?\\](\\.[xyzw]{1,4})?|([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw]{1,4})?","gi");
var reg5 = new EReg("\\[.*\\]","ig");
var reg6 = new EReg("^\\b[A-Za-z]{1,3}","ig");
var reg7 = new EReg("\\d+","");
var reg8 = new EReg("(\\.[xyzw]{1,4})","");
var reg9 = new EReg("[A-Za-z]{1,3}","ig");
var reg10 = new EReg("(\\.[xyzw]{1,1})","");
var reg11 = new EReg("\\+\\d{1,3}","ig");
var i = 0;
while(i < lng && this.error == "") {
var line = StringTools.trim(lines[i]);
var startcomment = line.indexOf("//");
if(startcomment != -1) {
line = HxOverrides.substr(line,0,startcomment);
}
var optsi = reg1.match(line) ? reg1.matchedPos().pos : -1;
var opts = null;
if(optsi != -1) {
opts = this.match(HxOverrides.substr(line,optsi,null),reg2);
line = HxOverrides.substr(line,0,optsi);
}
var opCode = null;
var opFound = null;
if(reg3.match(line)) {
opCode = reg3.matched(0);
opFound = openfl_utils_AGALMiniAssembler.OPMAP.h[opCode];
}
if(opFound == null) {
if(line.length >= 3) {
lime_utils_Log.warn("warning: bad line " + i + ": " + lines[i],{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 262, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
++i;
continue;
}
if(this.debugEnabled) {
lime_utils_Log.info(opFound,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 272, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
if(opFound == null) {
if(line.length >= 3) {
lime_utils_Log.warn("warning: bad line " + i + ": " + lines[i],{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 279, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
++i;
continue;
}
line = HxOverrides.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) {
lime_utils_Log.info("emit opcode=" + Std.string(opFound),{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 308, 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 _g = 0;
var _g1 = regLength;
while(_g < _g1) {
var j = _g++;
var isRelative = false;
var relreg = this.match(regs[j],reg5);
if(relreg.length > 0) {
regs[j] = StringTools.replace(regs[j],relreg[0],"0");
if(this.verbose) {
lime_utils_Log.info("IS REL",{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 344, 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 = openfl_utils_AGALMiniAssembler.REGMAP.h[res[0]];
if(this.debugEnabled) {
lime_utils_Log.info(regFound,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 363, 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;
}
regs[j] = HxOverrides.substr(regs[j],regs[j].indexOf(regFound.name) + regFound.name.length,null);
var idxmatch = isRelative ? this.match(relreg[0],reg7) : this.match(regs[j],reg7);
var regidx = 0;
if(idxmatch.length > 0) {
regidx = Std.parseInt(idxmatch[0]);
}
if(UInt.gt(regidx,regFound.range)) {
var tmp = regFound.range + 1;
this.error = "error: register operand " + j + " (" + regs[j] + ") index exceeds limit of " + (tmp == null ? "null" : Std.string(UInt.toFloat(tmp))) + ".";
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.cca(maskmatch[0],k) - 120;
if(UInt.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 {
regmask = isDest ? 15 : 228;
}
if(isRelative) {
var relname = this.match(relreg[0],reg9);
var regFoundRel = openfl_utils_AGALMiniAssembler.REGMAP.h[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.cca(selmatch[0],1) - 120;
if(UInt.gt(relsel,2)) {
relsel = 3;
}
var relofs = this.match(relreg[0],reg11);
if(relofs.length > 0) {
reloffset = Std.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) {
lime_utils_Log.info("RELATIVE: type=" + reltype + "==" + relname[0] + " sel=" + (relsel == null ? "null" : Std.string(UInt.toFloat(relsel))) + "==" + selmatch[0] + " idx=" + (regidx == null ? "null" : Std.string(UInt.toFloat(regidx))) + " offset=" + reloffset,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 518, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
}
if(this.verbose) {
lime_utils_Log.info(" emit argcode=" + Std.string(regFound) + "[" + (regidx == null ? "null" : Std.string(UInt.toFloat(regidx))) + "][" + regmask + "]",{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 525, 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) {
lime_utils_Log.info(" emit sampler",{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 541, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
var samplerbits = 5;
var optsLength = opts == null ? 0 : opts.length;
var bias = 0.0;
var _g2 = 0;
var _g3 = optsLength;
while(_g2 < _g3) {
var k1 = _g2++;
if(this.verbose) {
lime_utils_Log.info(" opt: " + opts[k1],{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 552, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
var optfound = openfl_utils_AGALMiniAssembler.SAMPLEMAP.h[opts[k1]];
if(optfound == null) {
bias = parseFloat(opts[k1]);
if(this.verbose) {
lime_utils_Log.info(" bias: " + bias,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 565, 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(bias * 8.0 | 0);
this.agalcode.writeByte(0);
this.agalcode.writeUnsignedInt(samplerbits);
if(this.verbose) {
lime_utils_Log.info(" bits: " + (samplerbits - 5),{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 586, 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.set_length(this.agalcode,0);
lime_utils_Log.info(this.error,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 631, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
if(this.debugEnabled) {
var dbgLine = "generated bytecode:";
var agalLength = openfl_utils_ByteArray.get_length(this.agalcode);
var _g = 0;
var _g1 = agalLength;
while(_g < _g1) {
var index = _g++;
if(index % 16 == 0) {
dbgLine += "\n";
}
if(index % 4 == 0) {
dbgLine += " ";
}
var byteStr = StringTools.hex(this.agalcode.b[index],2);
if(byteStr.length < 2) {
byteStr = "0" + byteStr;
}
dbgLine += byteStr;
}
lime_utils_Log.info(dbgLine,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 662, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
if(this.verbose) {
lime_utils_Log.info("AGALMiniAssembler.assemble time: " + (openfl_Lib.getTimer() - start) / 1000 + "s",{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 667, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
}
return this.agalcode;
}
,initregmap: function(version,ignorelimits) {
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("va","vertex attribute",0,ignorelimits ? 1024 : version == 1 || version == 2 ? 7 : 15,66);
this1.h["va"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("vc","vertex constant",1,ignorelimits ? 1024 : version == 1 ? 127 : 249,66);
this1.h["vc"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("vt","vertex temporary",2,ignorelimits ? 1024 : version == 1 ? 7 : 25,67);
this1.h["vt"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("vo","vertex output",3,ignorelimits ? 1024 : 0,65);
this1.h["vo"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("vi","varying",4,ignorelimits ? 1024 : version == 1 ? 7 : 9,99);
this1.h["vi"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("fc","fragment constant",1,ignorelimits ? 1024 : version == 1 ? 27 : version == 2 ? 63 : 199,34);
this1.h["fc"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("ft","fragment temporary",2,ignorelimits ? 1024 : version == 1 ? 7 : 25,35);
this1.h["ft"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("fs","texture sampler",5,ignorelimits ? 1024 : 7,34);
this1.h["fs"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("fo","fragment output",3,ignorelimits ? 1024 : version == 1 ? 0 : 3,33);
this1.h["fo"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("fd","fragment depth output",6,ignorelimits ? 1024 : version == 1 ? -1 : 0,33);
this1.h["fd"] = v;
var this1 = openfl_utils_AGALMiniAssembler.REGMAP;
var v = new openfl_utils__$AGALMiniAssembler_Register("iid","instance id",7,ignorelimits ? 1024 : 0,66);
this1.h["iid"] = v;
var v = openfl_utils_AGALMiniAssembler.REGMAP.h["vo"];
openfl_utils_AGALMiniAssembler.REGMAP.h["op"] = v;
var v = openfl_utils_AGALMiniAssembler.REGMAP.h["vi"];
openfl_utils_AGALMiniAssembler.REGMAP.h["i"] = v;
var v = openfl_utils_AGALMiniAssembler.REGMAP.h["vi"];
openfl_utils_AGALMiniAssembler.REGMAP.h["v"] = v;
var v = openfl_utils_AGALMiniAssembler.REGMAP.h["fo"];
openfl_utils_AGALMiniAssembler.REGMAP.h["oc"] = v;
var v = openfl_utils_AGALMiniAssembler.REGMAP.h["fd"];
openfl_utils_AGALMiniAssembler.REGMAP.h["od"] = v;
var v = openfl_utils_AGALMiniAssembler.REGMAP.h["vi"];
openfl_utils_AGALMiniAssembler.REGMAP.h["fi"] = v;
}
,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;
}
,__class__: openfl_utils_AGALMiniAssembler
};
var openfl_utils__$AGALMiniAssembler_OpCode = function(name,numRegister,emitCode,flags) {
this.name = name;
this.numRegister = numRegister;
this.emitCode = emitCode;
this.flags = flags;
};
$hxClasses["openfl.utils._AGALMiniAssembler.OpCode"] = openfl_utils__$AGALMiniAssembler_OpCode;
openfl_utils__$AGALMiniAssembler_OpCode.__name__ = "openfl.utils._AGALMiniAssembler.OpCode";
openfl_utils__$AGALMiniAssembler_OpCode.prototype = {
emitCode: null
,flags: null
,name: null
,numRegister: null
,toString: function() {
return "[OpCode name=\"" + this.name + "\", numRegister=" + this.numRegister + ", emitCode=" + this.emitCode + ", flags=" + this.flags + "]";
}
,__class__: openfl_utils__$AGALMiniAssembler_OpCode
};
var openfl_utils__$AGALMiniAssembler_Register = function(name,longName,emitCode,range,flags) {
this.name = name;
this.longName = longName;
this.emitCode = emitCode;
this.range = range;
this.flags = flags;
};
$hxClasses["openfl.utils._AGALMiniAssembler.Register"] = openfl_utils__$AGALMiniAssembler_Register;
openfl_utils__$AGALMiniAssembler_Register.__name__ = "openfl.utils._AGALMiniAssembler.Register";
openfl_utils__$AGALMiniAssembler_Register.prototype = {
emitCode: null
,name: null
,longName: null
,flags: null
,range: null
,toString: function() {
return "[Register name=\"" + this.name + "\", longName=\"" + this.longName + "\", emitCode=" + (this.emitCode == null ? "null" : Std.string(UInt.toFloat(this.emitCode))) + ", range=" + (this.range == null ? "null" : Std.string(UInt.toFloat(this.range))) + ", flags=" + (this.flags == null ? "null" : Std.string(UInt.toFloat(this.flags))) + "]";
}
,__class__: openfl_utils__$AGALMiniAssembler_Register
};
var openfl_utils__$AGALMiniAssembler_Sampler = function(name,flag,mask) {
this.name = name;
this.flag = flag;
this.mask = mask;
};
$hxClasses["openfl.utils._AGALMiniAssembler.Sampler"] = openfl_utils__$AGALMiniAssembler_Sampler;
openfl_utils__$AGALMiniAssembler_Sampler.__name__ = "openfl.utils._AGALMiniAssembler.Sampler";
openfl_utils__$AGALMiniAssembler_Sampler.prototype = {
flag: null
,mask: null
,name: null
,toString: function() {
return "[Sampler name=\"" + this.name + "\", flag=\"" + (this.flag == null ? "null" : Std.string(UInt.toFloat(this.flag))) + "\", mask=" + (this.mask == null ? "null" : Std.string(UInt.toFloat(this.mask))) + "]";
}
,__class__: openfl_utils__$AGALMiniAssembler_Sampler
};
var openfl_utils_IAssetCache = function() { };
$hxClasses["openfl.utils.IAssetCache"] = openfl_utils_IAssetCache;
openfl_utils_IAssetCache.__name__ = "openfl.utils.IAssetCache";
openfl_utils_IAssetCache.__isInterface__ = true;
openfl_utils_IAssetCache.prototype = {
get_enabled: null
,set_enabled: null
,clear: null
,getBitmapData: null
,getFont: null
,getSound: null
,hasBitmapData: null
,hasFont: null
,hasSound: null
,removeBitmapData: null
,removeFont: null
,removeSound: null
,setBitmapData: null
,setFont: null
,setSound: null
,__class__: openfl_utils_IAssetCache
,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"}
};
var openfl_utils_AssetCache = function() {
this.__enabled = true;
this.bitmapData = new haxe_ds_StringMap();
this.font = new haxe_ds_StringMap();
this.sound = new haxe_ds_StringMap();
};
$hxClasses["openfl.utils.AssetCache"] = openfl_utils_AssetCache;
openfl_utils_AssetCache.__name__ = "openfl.utils.AssetCache";
openfl_utils_AssetCache.__interfaces__ = [openfl_utils_IAssetCache];
openfl_utils_AssetCache.prototype = {
bitmapData: null
,font: null
,sound: null
,__enabled: null
,clear: function(prefix) {
if(prefix == null) {
this.bitmapData = new haxe_ds_StringMap();
this.font = new haxe_ds_StringMap();
this.sound = new haxe_ds_StringMap();
} else {
var keys = haxe_ds_StringMap.keysIterator(this.bitmapData.h);
var key = keys;
while(key.hasNext()) {
var key1 = key.next();
if(StringTools.startsWith(key1,prefix)) {
this.removeBitmapData(key1);
}
}
var keys = haxe_ds_StringMap.keysIterator(this.font.h);
var key = keys;
while(key.hasNext()) {
var key1 = key.next();
if(StringTools.startsWith(key1,prefix)) {
this.removeFont(key1);
}
}
var keys = haxe_ds_StringMap.keysIterator(this.sound.h);
var key = keys;
while(key.hasNext()) {
var key1 = key.next();
if(StringTools.startsWith(key1,prefix)) {
this.removeSound(key1);
}
}
}
}
,getBitmapData: function(id) {
return this.bitmapData.h[id];
}
,getFont: function(id) {
return this.font.h[id];
}
,getSound: function(id) {
return this.sound.h[id];
}
,hasBitmapData: function(id) {
return Object.prototype.hasOwnProperty.call(this.bitmapData.h,id);
}
,hasFont: function(id) {
return Object.prototype.hasOwnProperty.call(this.font.h,id);
}
,hasSound: function(id) {
return Object.prototype.hasOwnProperty.call(this.sound.h,id);
}
,removeBitmapData: function(id) {
var _this = lime_utils_Assets.cache.image;
if(Object.prototype.hasOwnProperty.call(_this.h,id)) {
delete(_this.h[id]);
}
var _this = this.bitmapData;
if(Object.prototype.hasOwnProperty.call(_this.h,id)) {
delete(_this.h[id]);
return true;
} else {
return false;
}
}
,removeFont: function(id) {
var _this = lime_utils_Assets.cache.font;
if(Object.prototype.hasOwnProperty.call(_this.h,id)) {
delete(_this.h[id]);
}
var _this = this.font;
if(Object.prototype.hasOwnProperty.call(_this.h,id)) {
delete(_this.h[id]);
return true;
} else {
return false;
}
}
,removeSound: function(id) {
var _this = lime_utils_Assets.cache.audio;
if(Object.prototype.hasOwnProperty.call(_this.h,id)) {
delete(_this.h[id]);
}
var _this = this.sound;
if(Object.prototype.hasOwnProperty.call(_this.h,id)) {
delete(_this.h[id]);
return true;
} else {
return false;
}
}
,setBitmapData: function(id,bitmapData) {
this.bitmapData.h[id] = bitmapData;
}
,setFont: function(id,font) {
this.font.h[id] = font;
}
,setSound: function(id,sound) {
this.sound.h[id] = sound;
}
,get_enabled: function() {
return this.__enabled;
}
,set_enabled: function(value) {
return this.__enabled = value;
}
,__class__: openfl_utils_AssetCache
,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"}
};
var openfl_utils_AssetLibrary = function() {
lime_utils_AssetLibrary.call(this);
};
$hxClasses["openfl.utils.AssetLibrary"] = openfl_utils_AssetLibrary;
openfl_utils_AssetLibrary.__name__ = "openfl.utils.AssetLibrary";
openfl_utils_AssetLibrary.fromBytes = function(bytes,rootPath) {
return openfl_utils_AssetLibrary.fromManifest(lime_utils_AssetManifest.fromBytes(openfl_utils_ByteArray.toBytes(bytes),rootPath));
};
openfl_utils_AssetLibrary.fromFile = function(path,rootPath) {
return openfl_utils_AssetLibrary.fromManifest(lime_utils_AssetManifest.fromFile(path,rootPath));
};
openfl_utils_AssetLibrary.fromManifest = function(manifest) {
var library = lime_utils_AssetLibrary.fromManifest(manifest);
if(library != null) {
if(((library) instanceof openfl_utils_AssetLibrary)) {
return library;
} else {
var _library = new openfl_utils_AssetLibrary();
_library.__proxy = library;
return _library;
}
} else {
return null;
}
};
openfl_utils_AssetLibrary.loadFromBytes = function(bytes,rootPath) {
return lime_utils_AssetManifest.loadFromBytes(openfl_utils_ByteArray.toBytes(bytes),rootPath).then(function(manifest) {
return openfl_utils_AssetLibrary.loadFromManifest(manifest);
});
};
openfl_utils_AssetLibrary.loadFromFile = function(path,rootPath) {
return lime_utils_AssetManifest.loadFromFile(path,rootPath).then(function(manifest) {
return openfl_utils_AssetLibrary.loadFromManifest(manifest);
});
};
openfl_utils_AssetLibrary.loadFromManifest = function(manifest) {
var library = openfl_utils_AssetLibrary.fromManifest(manifest);
if(library != null) {
return library.load().then(function(library) {
return lime_app_Future.withValue(library);
});
} else {
return lime_app_Future.withError("Could not load asset manifest");
}
};
openfl_utils_AssetLibrary.__super__ = lime_utils_AssetLibrary;
openfl_utils_AssetLibrary.prototype = $extend(lime_utils_AssetLibrary.prototype,{
__proxy: null
,exists: function(id,type) {
if(this.__proxy != null) {
return this.__proxy.exists(id,type);
} else {
return lime_utils_AssetLibrary.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.prototype.getAsset.call(this,id,type);
}
}
,getAudioBuffer: function(id) {
if(this.__proxy != null) {
return this.__proxy.getAudioBuffer(id);
} else {
return lime_utils_AssetLibrary.prototype.getAudioBuffer.call(this,id);
}
}
,getBytes: function(id) {
if(this.__proxy != null) {
return this.__proxy.getBytes(id);
} else {
return lime_utils_AssetLibrary.prototype.getBytes.call(this,id);
}
}
,getFont: function(id) {
if(this.__proxy != null) {
return this.__proxy.getFont(id);
} else {
return lime_utils_AssetLibrary.prototype.getFont.call(this,id);
}
}
,getImage: function(id) {
if(this.__proxy != null) {
return this.__proxy.getImage(id);
} else {
return lime_utils_AssetLibrary.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.prototype.getPath.call(this,id);
}
}
,getText: function(id) {
if(this.__proxy != null) {
return this.__proxy.getText(id);
} else {
return lime_utils_AssetLibrary.prototype.getText.call(this,id);
}
}
,isLocal: function(id,type) {
if(this.__proxy != null) {
return this.__proxy.isLocal(id,type);
} else {
return lime_utils_AssetLibrary.prototype.isLocal.call(this,id,type);
}
}
,list: function(type) {
if(this.__proxy != null) {
return this.__proxy.list(type);
} else {
return lime_utils_AssetLibrary.prototype.list.call(this,type);
}
}
,loadAsset: function(id,type) {
if(this.__proxy != null) {
return this.__proxy.loadAsset(id,type);
} else {
return lime_utils_AssetLibrary.prototype.loadAsset.call(this,id,type);
}
}
,load: function() {
if(this.__proxy != null) {
return this.__proxy.load();
} else {
return lime_utils_AssetLibrary.prototype.load.call(this);
}
}
,loadAudioBuffer: function(id) {
if(this.__proxy != null) {
return this.__proxy.loadAudioBuffer(id);
} else {
return lime_utils_AssetLibrary.prototype.loadAudioBuffer.call(this,id);
}
}
,loadBytes: function(id) {
if(this.__proxy != null) {
return this.__proxy.loadBytes(id);
} else {
return lime_utils_AssetLibrary.prototype.loadBytes.call(this,id);
}
}
,loadFont: function(id) {
if(this.__proxy != null) {
return this.__proxy.loadFont(id);
} else {
return lime_utils_AssetLibrary.prototype.loadFont.call(this,id);
}
}
,loadImage: function(id) {
if(this.__proxy != null) {
return this.__proxy.loadImage(id);
} else {
return lime_utils_AssetLibrary.prototype.loadImage.call(this,id);
}
}
,loadMovieClip: function(id) {
return lime_app_Future.withValue(this.getMovieClip(id));
}
,loadText: function(id) {
if(this.__proxy != null) {
return this.__proxy.loadText(id);
} else {
return lime_utils_AssetLibrary.prototype.loadText.call(this,id);
}
}
,unload: function() {
if(this.__proxy != null) {
this.__proxy.unload();
return;
} else {
lime_utils_AssetLibrary.prototype.unload.call(this);
return;
}
}
,__class__: openfl_utils_AssetLibrary
});
var openfl_utils_Assets = function() { };
$hxClasses["openfl.utils.Assets"] = openfl_utils_Assets;
openfl_utils_Assets.__name__ = "openfl.utils.Assets";
openfl_utils_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.onChange.has(openfl_utils_Assets.LimeAssets_onChange)) {
lime_utils_Assets.onChange.add(openfl_utils_Assets.LimeAssets_onChange);
}
openfl_utils_Assets.dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference);
};
openfl_utils_Assets.dispatchEvent = function(event) {
return openfl_utils_Assets.dispatcher.dispatchEvent(event);
};
openfl_utils_Assets.exists = function(id,type) {
return lime_utils_Assets.exists(id,type);
};
openfl_utils_Assets.getBitmapData = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasBitmapData(id)) {
var bitmapData = openfl_utils_Assets.cache.getBitmapData(id);
if(openfl_utils_Assets.isValidBitmapData(bitmapData)) {
return bitmapData;
}
}
var image = lime_utils_Assets.getImage(id,false);
if(image != null) {
var bitmapData = openfl_display_BitmapData.fromImage(image);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_Assets.cache.setBitmapData(id,bitmapData);
}
return bitmapData;
}
return null;
};
openfl_utils_Assets.getBytes = function(id) {
return openfl_utils_ByteArray.fromBytes(lime_utils_Assets.getBytes(id));
};
openfl_utils_Assets.getFont = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasFont(id)) {
return openfl_utils_Assets.cache.getFont(id);
}
var limeFont = lime_utils_Assets.getFont(id,false);
if(limeFont != null) {
var font = new openfl_text_Font();
font.__fromLimeFont(limeFont);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_Assets.cache.setFont(id,font);
}
return font;
}
return new openfl_text_Font();
};
openfl_utils_Assets.getLibrary = function(name) {
return lime_utils_Assets.getLibrary(name);
};
openfl_utils_Assets.getMovieClip = function(id) {
var libraryName = id.substring(0,id.indexOf(":"));
var symbolName = HxOverrides.substr(id,id.indexOf(":") + 1,null);
var limeLibrary = openfl_utils_Assets.getLibrary(libraryName);
if(limeLibrary != null) {
if(((limeLibrary) instanceof openfl_utils_AssetLibrary)) {
var library = limeLibrary;
if(library.exists(symbolName,"MOVIE_CLIP")) {
if(library.isLocal(symbolName,"MOVIE_CLIP")) {
return library.getMovieClip(symbolName);
} else {
lime_utils_Log.error("MovieClip asset \"" + id + "\" exists, but only asynchronously",{ fileName : "openfl/utils/Assets.hx", lineNumber : 159, className : "openfl.utils.Assets", methodName : "getMovieClip"});
return null;
}
}
}
lime_utils_Log.error("There is no MovieClip asset with an ID of \"" + id + "\"",{ fileName : "openfl/utils/Assets.hx", lineNumber : 165, className : "openfl.utils.Assets", methodName : "getMovieClip"});
} else {
lime_utils_Log.error("There is no asset library named \"" + libraryName + "\"",{ fileName : "openfl/utils/Assets.hx", lineNumber : 169, className : "openfl.utils.Assets", methodName : "getMovieClip"});
}
return null;
};
openfl_utils_Assets.getMusic = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
return openfl_utils_Assets.getSound(id,useCache);
};
openfl_utils_Assets.getPath = function(id) {
return lime_utils_Assets.getPath(id);
};
openfl_utils_Assets.getSound = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasSound(id)) {
var sound = openfl_utils_Assets.cache.getSound(id);
if(openfl_utils_Assets.isValidSound(sound)) {
return sound;
}
}
var buffer = lime_utils_Assets.getAudioBuffer(id,false);
if(buffer != null) {
var sound = openfl_media_Sound.fromAudioBuffer(buffer);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_Assets.cache.setSound(id,sound);
}
return sound;
}
return null;
};
openfl_utils_Assets.getText = function(id) {
return lime_utils_Assets.getText(id);
};
openfl_utils_Assets.hasEventListener = function(type) {
return openfl_utils_Assets.dispatcher.hasEventListener(type);
};
openfl_utils_Assets.hasLibrary = function(name) {
return lime_utils_Assets.hasLibrary(name);
};
openfl_utils_Assets.isLocal = function(id,type,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
if(type == "IMAGE" || type == null) {
if(openfl_utils_Assets.cache.hasBitmapData(id)) {
return true;
}
}
if(type == "FONT" || type == null) {
if(openfl_utils_Assets.cache.hasFont(id)) {
return true;
}
}
if(type == "SOUND" || type == "MUSIC" || type == null) {
if(openfl_utils_Assets.cache.hasSound(id)) {
return true;
}
}
}
var libraryName = id.substring(0,id.indexOf(":"));
var symbolName = HxOverrides.substr(id,id.indexOf(":") + 1,null);
var library = openfl_utils_Assets.getLibrary(libraryName);
if(library != null) {
return library.isLocal(symbolName,type);
}
return false;
};
openfl_utils_Assets.isValidBitmapData = function(bitmapData) {
return bitmapData != null && bitmapData.image != null;
};
openfl_utils_Assets.isValidSound = function(sound) {
return true;
};
openfl_utils_Assets.list = function(type) {
return lime_utils_Assets.list(type);
};
openfl_utils_Assets.loadBitmapData = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache == null) {
useCache = true;
}
var promise = new lime_app_Promise();
if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasBitmapData(id)) {
var bitmapData = openfl_utils_Assets.cache.getBitmapData(id);
if(openfl_utils_Assets.isValidBitmapData(bitmapData)) {
promise.complete(bitmapData);
return promise.future;
}
}
lime_utils_Assets.loadImage(id,false).onComplete(function(image) {
if(image != null) {
var bitmapData = openfl_display_BitmapData.fromImage(image);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_Assets.cache.setBitmapData(id,bitmapData);
}
promise.complete(bitmapData);
} else {
promise.error("[Assets] Could not load Image \"" + id + "\"");
}
}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
return promise.future;
};
openfl_utils_Assets.loadBytes = function(id) {
var promise = new lime_app_Promise();
var future = lime_utils_Assets.loadBytes(id);
future.onComplete(function(bytes) {
promise.complete(openfl_utils_ByteArray.fromBytes(bytes));
});
future.onProgress(function(progress,total) {
promise.progress(progress,total);
});
future.onError(function(msg) {
promise.error(msg);
});
return promise.future;
};
openfl_utils_Assets.loadFont = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache == null) {
useCache = true;
}
var promise = new lime_app_Promise();
if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasFont(id)) {
promise.complete(openfl_utils_Assets.cache.getFont(id));
return promise.future;
}
lime_utils_Assets.loadFont(id).onComplete(function(limeFont) {
var font = new openfl_text_Font();
font.__fromLimeFont(limeFont);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_Assets.cache.setFont(id,font);
}
promise.complete(font);
}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
return promise.future;
};
openfl_utils_Assets.loadLibrary = function(name) {
return lime_utils_Assets.loadLibrary(name).then(function(library) {
var _library = null;
if(library != null) {
if(((library) instanceof openfl_utils_AssetLibrary)) {
_library = library;
} else {
_library = new openfl_utils_AssetLibrary();
_library.__proxy = library;
lime_utils_Assets.registerLibrary(name,_library);
}
}
return lime_app_Future.withValue(_library);
});
};
openfl_utils_Assets.loadMusic = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache == null) {
useCache = true;
}
var future = new lime_app_Future(function() {
return openfl_utils_Assets.getMusic(id,useCache);
});
return future;
};
openfl_utils_Assets.loadMovieClip = function(id) {
var promise = new lime_app_Promise();
var libraryName = id.substring(0,id.indexOf(":"));
var symbolName = HxOverrides.substr(id,id.indexOf(":") + 1,null);
var limeLibrary = openfl_utils_Assets.getLibrary(libraryName);
if(limeLibrary != null) {
if(((limeLibrary) instanceof openfl_utils_AssetLibrary)) {
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;
};
openfl_utils_Assets.loadSound = function(id,useCache) {
if(useCache == null) {
useCache = true;
}
if(useCache == null) {
useCache = true;
}
var promise = new lime_app_Promise();
lime_utils_Assets.loadAudioBuffer(id,useCache).onComplete(function(buffer) {
if(buffer != null) {
var sound = openfl_media_Sound.fromAudioBuffer(buffer);
if(useCache && openfl_utils_Assets.cache.get_enabled()) {
openfl_utils_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;
};
openfl_utils_Assets.loadText = function(id) {
var future = lime_utils_Assets.loadText(id);
return future;
};
openfl_utils_Assets.registerLibrary = function(name,library) {
lime_utils_Assets.registerLibrary(name,library);
};
openfl_utils_Assets.removeEventListener = function(type,listener,capture) {
if(capture == null) {
capture = false;
}
openfl_utils_Assets.dispatcher.removeEventListener(type,listener,capture);
};
openfl_utils_Assets.resolveClass = function(name) {
return $hxClasses[name];
};
openfl_utils_Assets.resolveEnum = function(name) {
var value = $hxEnums[name];
return value;
};
openfl_utils_Assets.unloadLibrary = function(name) {
lime_utils_Assets.unloadLibrary(name);
};
openfl_utils_Assets.LimeAssets_onChange = function() {
openfl_utils_Assets.dispatchEvent(new openfl_events_Event("change"));
};
var openfl_utils_ByteArray = {};
openfl_utils_ByteArray.__properties__ = {set_position:"set_position",get_position:"get_position",set_length:"set_length",get_length:"get_length",get_bytesAvailable:"get_bytesAvailable",set_defaultObjectEncoding:"set_defaultObjectEncoding",get_defaultObjectEncoding:"get_defaultObjectEncoding",set_defaultEndian:"set_defaultEndian",get_defaultEndian:"get_defaultEndian"};
openfl_utils_ByteArray._new = function(length) {
if(length == null) {
length = 0;
}
var this1 = new openfl_utils_ByteArrayData(length);
return this1;
};
openfl_utils_ByteArray.clear = function(this1) {
this1.clear();
};
openfl_utils_ByteArray.compress = function(this1,algorithm) {
this1.compress(algorithm);
};
openfl_utils_ByteArray.deflate = function(this1) {
this1.deflate();
};
openfl_utils_ByteArray.fromArrayBuffer = function(buffer) {
if(buffer == null) {
return null;
}
return openfl_utils_ByteArrayData.fromBytes(haxe_io_Bytes.ofData(buffer));
};
openfl_utils_ByteArray.fromBytes = function(bytes) {
if(bytes == null) {
return null;
}
if(((bytes) instanceof openfl_utils_ByteArrayData)) {
return bytes;
} else {
return openfl_utils_ByteArrayData.fromBytes(bytes);
}
};
openfl_utils_ByteArray.fromBytesData = function(bytesData) {
if(bytesData == null) {
return null;
}
return openfl_utils_ByteArrayData.fromBytes(haxe_io_Bytes.ofData(bytesData));
};
openfl_utils_ByteArray.fromFile = function(path) {
return openfl_utils_ByteArray.fromBytes(lime_utils_Bytes.fromFile(path));
};
openfl_utils_ByteArray.fromLimeBytes = function(bytes) {
return openfl_utils_ByteArray.fromBytes(bytes);
};
openfl_utils_ByteArray.get = function(this1,index) {
return this1.b[index];
};
openfl_utils_ByteArray.inflate = function(this1) {
this1.inflate();
};
openfl_utils_ByteArray.loadFromBytes = function(bytes) {
return lime_utils_Bytes.loadFromBytes(bytes).then(function(limeBytes) {
var byteArray = openfl_utils_ByteArray.fromBytes(limeBytes);
return lime_app_Future.withValue(byteArray);
});
};
openfl_utils_ByteArray.loadFromFile = function(path) {
return lime_utils_Bytes.loadFromFile(path).then(function(limeBytes) {
var byteArray = openfl_utils_ByteArray.fromBytes(limeBytes);
return lime_app_Future.withValue(byteArray);
});
};
openfl_utils_ByteArray.readBoolean = function(this1) {
return this1.readBoolean();
};
openfl_utils_ByteArray.readByte = function(this1) {
return this1.readByte();
};
openfl_utils_ByteArray.readBytes = function(this1,bytes,offset,length) {
if(length == null) {
length = 0;
}
if(offset == null) {
offset = 0;
}
this1.readBytes(bytes,offset,length);
};
openfl_utils_ByteArray.readDouble = function(this1) {
return this1.readDouble();
};
openfl_utils_ByteArray.readFloat = function(this1) {
return this1.readFloat();
};
openfl_utils_ByteArray.readInt = function(this1) {
return this1.readInt();
};
openfl_utils_ByteArray.readMultiByte = function(this1,length,charSet) {
return this1.readMultiByte(length,charSet);
};
openfl_utils_ByteArray.readObject = function(this1) {
return this1.readObject();
};
openfl_utils_ByteArray.readShort = function(this1) {
return this1.readShort();
};
openfl_utils_ByteArray.readUTF = function(this1) {
return this1.readUTF();
};
openfl_utils_ByteArray.readUTFBytes = function(this1,length) {
return this1.readUTFBytes(length);
};
openfl_utils_ByteArray.readUnsignedByte = function(this1) {
return this1.readUnsignedByte();
};
openfl_utils_ByteArray.readUnsignedInt = function(this1) {
return this1.readUnsignedInt();
};
openfl_utils_ByteArray.readUnsignedShort = function(this1) {
return this1.readUnsignedShort();
};
openfl_utils_ByteArray.set = function(this1,index,value) {
this1.__resize(index + 1);
this1.b[index] = value & 255;
return value;
};
openfl_utils_ByteArray.toArrayBuffer = function(byteArray) {
return byteArray.b.bufferValue;
};
openfl_utils_ByteArray.toBytePointer = function(byteArray) {
lime_utils_BytePointer.set(openfl_utils_ByteArray.__bytePointer,byteArray,null,null,byteArray.position);
return openfl_utils_ByteArray.__bytePointer;
};
openfl_utils_ByteArray.toBytes = function(byteArray) {
return byteArray;
};
openfl_utils_ByteArray.toBytesData = function(byteArray) {
return byteArray.b.bufferValue;
};
openfl_utils_ByteArray.toLimeBytes = function(byteArray) {
return openfl_utils_ByteArray.toBytes(openfl_utils_ByteArray.fromBytes(openfl_utils_ByteArray.toBytes(byteArray)));
};
openfl_utils_ByteArray.toString = function(this1) {
return this1.toString();
};
openfl_utils_ByteArray.uncompress = function(this1,algorithm) {
this1.uncompress(algorithm);
};
openfl_utils_ByteArray.writeBoolean = function(this1,value) {
this1.writeBoolean(value);
};
openfl_utils_ByteArray.writeByte = function(this1,value) {
this1.writeByte(value);
};
openfl_utils_ByteArray.writeBytes = function(this1,bytes,offset,length) {
if(length == null) {
length = 0;
}
if(offset == null) {
offset = 0;
}
this1.writeBytes(bytes,offset,length);
};
openfl_utils_ByteArray.writeDouble = function(this1,value) {
this1.writeDouble(value);
};
openfl_utils_ByteArray.writeFloat = function(this1,value) {
this1.writeFloat(value);
};
openfl_utils_ByteArray.writeInt = function(this1,value) {
this1.writeInt(value);
};
openfl_utils_ByteArray.writeMultiByte = function(this1,value,charSet) {
this1.writeMultiByte(value,charSet);
};
openfl_utils_ByteArray.writeObject = function(this1,object) {
this1.writeObject(object);
};
openfl_utils_ByteArray.writeShort = function(this1,value) {
this1.writeShort(value);
};
openfl_utils_ByteArray.writeUTF = function(this1,value) {
this1.writeUTF(value);
};
openfl_utils_ByteArray.writeUTFBytes = function(this1,value) {
this1.writeUTFBytes(value);
};
openfl_utils_ByteArray.writeUnsignedInt = function(this1,value) {
this1.writeUnsignedInt(value);
};
openfl_utils_ByteArray.get_bytesAvailable = function(this1) {
return this1.length - this1.position;
};
openfl_utils_ByteArray.get_defaultEndian = function() {
if(openfl_utils_ByteArrayData.__defaultEndian == null) {
if(lime_system_System.get_endianness() == lime_system_Endian.LITTLE_ENDIAN) {
openfl_utils_ByteArrayData.__defaultEndian = 1;
} else {
openfl_utils_ByteArrayData.__defaultEndian = 0;
}
}
return openfl_utils_ByteArrayData.__defaultEndian;
};
openfl_utils_ByteArray.set_defaultEndian = function(value) {
return openfl_utils_ByteArrayData.__defaultEndian = value;
};
openfl_utils_ByteArray.get_defaultObjectEncoding = function() {
return openfl_utils_ByteArrayData.defaultObjectEncoding;
};
openfl_utils_ByteArray.set_defaultObjectEncoding = function(value) {
return openfl_utils_ByteArrayData.defaultObjectEncoding = value;
};
openfl_utils_ByteArray.get_endian = function(this1) {
return this1.__endian;
};
openfl_utils_ByteArray.set_endian = function(this1,value) {
return this1.__endian = value;
};
openfl_utils_ByteArray.get_length = function(this1) {
if(this1 == null) {
return 0;
} else {
return this1.length;
}
};
openfl_utils_ByteArray.set_length = function(this1,value) {
if(value > 0) {
this1.__resize(value);
if(value < this1.position) {
this1.position = value;
}
}
this1.length = value;
return value;
};
openfl_utils_ByteArray.get_objectEncoding = function(this1) {
return this1.objectEncoding;
};
openfl_utils_ByteArray.set_objectEncoding = function(this1,value) {
return this1.objectEncoding = value;
};
openfl_utils_ByteArray.get_position = function(this1) {
return this1.position;
};
openfl_utils_ByteArray.set_position = function(this1,value) {
return this1.position = value;
};
var openfl_utils_CompressionAlgorithm = {};
openfl_utils_CompressionAlgorithm.fromString = function(value) {
switch(value) {
case "deflate":
return 0;
case "lzma":
return 1;
case "zlib":
return 2;
default:
return null;
}
};
openfl_utils_CompressionAlgorithm.toString = function(this1) {
switch(this1) {
case 0:
return "deflate";
case 1:
return "lzma";
case 2:
return "zlib";
default:
return null;
}
};
var openfl_utils_Endian = {};
openfl_utils_Endian.fromLimeEndian = function(value) {
switch(value._hx_index) {
case 0:
return 1;
case 1:
return 0;
}
};
openfl_utils_Endian.fromString = function(value) {
switch(value) {
case "bigEndian":
return 0;
case "littleEndian":
return 1;
default:
return null;
}
};
openfl_utils_Endian.toLimeEndian = function(this1) {
switch(this1) {
case 0:
return lime_system_Endian.BIG_ENDIAN;
case 1:
return lime_system_Endian.LITTLE_ENDIAN;
default:
return null;
}
};
openfl_utils_Endian.toString = function(this1) {
switch(this1) {
case 0:
return "bigEndian";
case 1:
return "littleEndian";
default:
return null;
}
};
var openfl_utils_Object = {};
openfl_utils_Object._new = function() {
var this1 = { };
return this1;
};
openfl_utils_Object.hasOwnProperty = function(this1,name) {
if(this1 != null) {
return Object.prototype.hasOwnProperty.call(this1,name);
} else {
return false;
}
};
openfl_utils_Object.isPrototypeOf = function(this1,theClass) {
var c = js_Boot.getClass(this1);
while(c != null) {
if(c == theClass) {
return true;
}
c = c.__super__;
}
return false;
};
openfl_utils_Object.iterator = function(this1) {
var fields = Reflect.fields(this1);
if(fields == null) {
fields = [];
}
return new haxe_iterators_ArrayIterator(fields);
};
openfl_utils_Object.propertyIsEnumerable = function(this1,name) {
if(this1 != null && Object.prototype.hasOwnProperty.call(this1,name)) {
return js_Boot.__implements(Reflect.field(this1,name),haxe_lang_Iterable);
} else {
return false;
}
};
openfl_utils_Object.toLocaleString = function(this1) {
return Std.string(this1);
};
openfl_utils_Object.toString = function(this1) {
return Std.string(this1);
};
openfl_utils_Object.valueOf = function(this1) {
return this1;
};
openfl_utils_Object.__get = function(this1,key) {
return Reflect.field(this1,key);
};
openfl_utils_Object.__set = function(this1,key,value) {
this1[key] = value;
return value;
};
var haxe_lang_Iterator = function() { };
$hxClasses["haxe.lang.Iterator"] = haxe_lang_Iterator;
haxe_lang_Iterator.__name__ = "haxe.lang.Iterator";
haxe_lang_Iterator.__isInterface__ = true;
haxe_lang_Iterator.prototype = {
hasNext: null
,next: null
,__class__: haxe_lang_Iterator
};
var haxe_lang_Iterable = function() { };
$hxClasses["haxe.lang.Iterable"] = haxe_lang_Iterable;
haxe_lang_Iterable.__name__ = "haxe.lang.Iterable";
haxe_lang_Iterable.__isInterface__ = true;
haxe_lang_Iterable.prototype = {
iterator: null
,__class__: haxe_lang_Iterable
};
var polymod_Framework = $hxEnums["polymod.Framework"] = { __ename__ : "polymod.Framework", __constructs__ : ["NME","LIME","OPENFL","HEAPS","KHA","CUSTOM","UNKNOWN"]
,NME: {_hx_index:0,__enum__:"polymod.Framework",toString:$estr}
,LIME: {_hx_index:1,__enum__:"polymod.Framework",toString:$estr}
,OPENFL: {_hx_index:2,__enum__:"polymod.Framework",toString:$estr}
,HEAPS: {_hx_index:3,__enum__:"polymod.Framework",toString:$estr}
,KHA: {_hx_index:4,__enum__:"polymod.Framework",toString:$estr}
,CUSTOM: {_hx_index:5,__enum__:"polymod.Framework",toString:$estr}
,UNKNOWN: {_hx_index:6,__enum__:"polymod.Framework",toString:$estr}
};
var polymod_Polymod = function() { };
$hxClasses["polymod.Polymod"] = polymod_Polymod;
polymod_Polymod.__name__ = "polymod.Polymod";
polymod_Polymod.init = function(params) {
polymod_Polymod.onError = params.errorCallback;
var modRoot = params.modRoot;
var dirs = params.dirs;
var apiVersion = null;
try {
var apiStr = params.apiVersion;
if(apiStr == null || apiStr == "") {
apiStr = "*.*.*";
}
apiVersion = polymod_util_SemanticVersion.fromString(apiStr);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
polymod_Polymod.error("parse_api_version","Error parsing api version: (" + Std.string(msg) + ")","init");
return [];
}
var modMeta = [];
var modVers = [];
if(params.modVersions != null) {
var _g = 0;
var _g1 = params.modVersions;
while(_g < _g1.length) {
var str = _g1[_g];
++_g;
var semVer = null;
try {
semVer = polymod_util_SemanticVersion.fromString(str);
} catch( _g2 ) {
haxe_NativeStackTrace.lastError = _g2;
var msg = haxe_Exception.caught(_g2).unwrap();
polymod_Polymod.error("param_mod_version","There was an error with one of the mod version patterns you provided: " + Std.string(msg),"init");
semVer = polymod_util_SemanticVersion.fromString("*.*.*");
}
modVers.push(semVer);
}
}
var _g = 0;
var _g1 = dirs.length;
while(_g < _g1) {
var i = _g++;
if(dirs[i] != null) {
var origDir = dirs[i];
dirs[i] = polymod_util_Util.pathJoin(modRoot,dirs[i]);
var meta = polymod_Polymod.getMetadata(dirs[i]);
if(meta != null) {
meta.id = origDir;
var apiScore = meta.apiVersion.checkCompatibility(apiVersion);
if(apiScore < 3) {
polymod_Polymod.error("version_conflict_api","Mod \"" + origDir + "\" was built for incompatible API version " + meta.apiVersion.toString() + ", current API version is " + params.apiVersion.toString(),"init");
} else if(apiVersion.major == 0) {
if(apiVersion.minor != meta.apiVersion.minor) {
polymod_Polymod.warning("version_prerelease_api","Modding API is in pre-release, some things might have changed!\n" + "Mod \"" + origDir + "\" was built for API version " + meta.apiVersion.toString() + ", current API version is " + apiVersion.toString(),"init");
}
}
var modVer = modVers.length > i ? modVers[i] : null;
if(modVer != null) {
var score = modVer.checkCompatibility(meta.modVersion);
if(score < 3) {
polymod_Polymod.error("version_conflict_mod","Mod pack wants version " + modVer.toString() + " of mod(" + meta.id + "), found incompatible version " + meta.modVersion.toString() + " instead","init");
}
}
modMeta.push(meta);
}
}
}
polymod_backends_PolymodAssets.init({ framework : params.framework, dirs : dirs, parseRules : params.parseRules, ignoredFiles : params.ignoredFiles, customBackend : params.customBackend, extensionMap : params.extensionMap});
if(polymod_backends_PolymodAssets.exists("_polymod_pack.txt")) {
polymod_Polymod.initModPack(params);
}
return modMeta;
};
polymod_Polymod.getDefaultIgnoreList = function() {
return ["_polymod_meta.json","_polymod_icon.png","_polymod_pack.txt","ASSET_LICENSE.txt","CODE_LICENSE.txt","LICENSE.txt"];
};
polymod_Polymod.scan = function(modRoot,apiVersionStr,errorCallback) {
if(apiVersionStr == null) {
apiVersionStr = "*.*.*";
}
polymod_Polymod.onError = errorCallback;
var apiVersion = null;
try {
apiVersion = polymod_util_SemanticVersion.fromString(apiVersionStr);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
polymod_Polymod.error("parse_api_version","Error parsing api version: (" + Std.string(msg) + ")","scan");
return [];
}
var modMeta = [];
return modMeta;
};
polymod_Polymod.error = function(code,message,origin) {
if(origin == null) {
origin = "unknown";
}
if(polymod_Polymod.onError != null) {
polymod_Polymod.onError(new polymod_PolymodError(polymod_PolymodErrorType.ERROR,code,message,origin));
}
};
polymod_Polymod.warning = function(code,message,origin) {
if(origin == null) {
origin = "unknown";
}
if(polymod_Polymod.onError != null) {
polymod_Polymod.onError(new polymod_PolymodError(polymod_PolymodErrorType.WARNING,code,message,origin));
}
};
polymod_Polymod.notice = function(code,message,origin) {
if(origin == null) {
origin = "unknown";
}
if(polymod_Polymod.onError != null) {
polymod_Polymod.onError(new polymod_PolymodError(polymod_PolymodErrorType.NOTICE,code,message,origin));
}
};
polymod_Polymod.getFileSystem = function() {
return null;
};
polymod_Polymod.getMetadata = function(dir) {
polymod_Polymod.error("missing_mod","Could not find mod directory: \"" + dir + "\"");
return null;
};
polymod_Polymod.listModFiles = function(type) {
if(polymod_Polymod.library != null) {
return polymod_Polymod.library.listModFiles(type);
}
return [];
};
polymod_Polymod.initModPack = function(params) {
var polymodpack = polymod_backends_PolymodAssets.getText("_polymod_pack.txt");
if(polymodpack != null) {
var data = polymod_Polymod.getModPack(polymodpack);
var mods = data.mods;
var vers = data.versions;
params.dirs = mods;
params.modVersions = vers;
polymod_Polymod.init(params);
}
};
polymod_Polymod.getModPack = function(text) {
if(text != null) {
var mods = text.split(",");
if(mods == null || mods.length == 0) {
return null;
}
var vers = [];
var _g = 0;
var _g1 = mods.length;
while(_g < _g1) {
var i = _g++;
vers[i] = "*.*.*";
if(mods[i].indexOf(":") != -1) {
var arr = mods[i].split(":");
if(arr != null && arr.length == 2) {
mods[i] = arr[0];
vers[i] = arr[1];
}
}
}
return { mods : mods, versions : vers};
}
return null;
};
var polymod_ModMetadata = function() {
};
$hxClasses["polymod.ModMetadata"] = polymod_ModMetadata;
polymod_ModMetadata.__name__ = "polymod.ModMetadata";
polymod_ModMetadata.fromJsonStr = function(str) {
var m = new polymod_ModMetadata();
var json = JSON.parse(str);
m.title = polymod_format_JsonHelp.str(json,"title");
m.description = polymod_format_JsonHelp.str(json,"description");
m.author = polymod_format_JsonHelp.str(json,"author");
var apiVersionStr = polymod_format_JsonHelp.str(json,"api_version");
var modVersionStr = polymod_format_JsonHelp.str(json,"mod_version");
try {
m.apiVersion = polymod_util_SemanticVersion.fromString(apiVersionStr);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
polymod_Polymod.error("parse_mod_api_version","Error parsing api version: (" + Std.string(msg) + ") _polymod_meta.json was : " + str);
return null;
}
try {
m.modVersion = polymod_util_SemanticVersion.fromString(modVersionStr);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
polymod_Polymod.error("parse_mod_version","Error parsing mod version: (" + Std.string(msg) + ") _polymod_meta.json was : " + str);
return null;
}
m.license = polymod_format_JsonHelp.str(json,"license");
m.licenseRef = polymod_format_JsonHelp.str(json,"license_ref");
m.metaData = polymod_format_JsonHelp.mapStr(json,"metadata");
return m;
};
polymod_ModMetadata.prototype = {
id: null
,title: null
,description: null
,author: null
,apiVersion: null
,modVersion: null
,license: null
,licenseRef: null
,icon: null
,isModPack: null
,modPack: null
,metaData: null
,toJsonStr: function() {
var json = { };
json["title"] = this.title;
json["description"] = this.description;
json["author"] = this.author;
json["api_version"] = this.apiVersion.toString();
json["mod_version"] = this.modVersion.toString();
json["license"] = this.license;
json["license_ref"] = this.licenseRef;
var meta = { };
var key = haxe_ds_StringMap.keysIterator(this.metaData.h);
while(key.hasNext()) {
var key1 = key.next();
meta[key1] = this.metaData.h[key1];
}
json["metadata"] = meta;
return JSON.stringify(json,null," ");
}
,__class__: polymod_ModMetadata
};
var polymod_PolymodError = function(severity,code,message,origin) {
this.severity = severity;
this.code = code;
this.message = message;
this.origin = origin;
};
$hxClasses["polymod.PolymodError"] = polymod_PolymodError;
polymod_PolymodError.__name__ = "polymod.PolymodError";
polymod_PolymodError.prototype = {
severity: null
,code: null
,message: null
,origin: null
,__class__: polymod_PolymodError
};
var polymod_PolymodErrorType = $hxEnums["polymod.PolymodErrorType"] = { __ename__ : "polymod.PolymodErrorType", __constructs__ : ["NOTICE","WARNING","ERROR"]
,NOTICE: {_hx_index:0,__enum__:"polymod.PolymodErrorType",toString:$estr}
,WARNING: {_hx_index:1,__enum__:"polymod.PolymodErrorType",toString:$estr}
,ERROR: {_hx_index:2,__enum__:"polymod.PolymodErrorType",toString:$estr}
};
var polymod_backends_IBackend = function() { };
$hxClasses["polymod.backends.IBackend"] = polymod_backends_IBackend;
polymod_backends_IBackend.__name__ = "polymod.backends.IBackend";
polymod_backends_IBackend.__isInterface__ = true;
polymod_backends_IBackend.prototype = {
polymodLibrary: null
,init: null
,destroy: null
,clearCache: null
,exists: null
,getBytes: null
,getText: null
,getPath: null
,list: null
,stripAssetsPrefix: null
,__class__: polymod_backends_IBackend
};
var polymod_backends_StubBackend = function() {
};
$hxClasses["polymod.backends.StubBackend"] = polymod_backends_StubBackend;
polymod_backends_StubBackend.__name__ = "polymod.backends.StubBackend";
polymod_backends_StubBackend.__interfaces__ = [polymod_backends_IBackend];
polymod_backends_StubBackend.prototype = {
polymodLibrary: null
,init: function() {
}
,destroy: function() {
}
,clearCache: function() {
}
,exists: function(id) {
return false;
}
,getBytes: function(id) {
return null;
}
,getText: function(id) {
return null;
}
,getPath: function(id) {
return null;
}
,list: function(type) {
return [];
}
,stripAssetsPrefix: function(id) {
return id;
}
,__class__: polymod_backends_StubBackend
};
var polymod_backends_HEAPSBackend = function() {
polymod_backends_StubBackend.call(this);
polymod_Polymod.error("failed_create_backend","HEAPSBackend requires the heaps library, did you forget to install it?");
};
$hxClasses["polymod.backends.HEAPSBackend"] = polymod_backends_HEAPSBackend;
polymod_backends_HEAPSBackend.__name__ = "polymod.backends.HEAPSBackend";
polymod_backends_HEAPSBackend.__super__ = polymod_backends_StubBackend;
polymod_backends_HEAPSBackend.prototype = $extend(polymod_backends_StubBackend.prototype,{
__class__: polymod_backends_HEAPSBackend
});
var polymod_backends_LimeBackend = function() {
};
$hxClasses["polymod.backends.LimeBackend"] = polymod_backends_LimeBackend;
polymod_backends_LimeBackend.__name__ = "polymod.backends.LimeBackend";
polymod_backends_LimeBackend.__interfaces__ = [polymod_backends_IBackend];
polymod_backends_LimeBackend.getDefaultAssetLibrary = function() {
if(polymod_backends_LimeBackend.defaultAssetLibrary == null) {
polymod_backends_LimeBackend.defaultAssetLibrary = lime_utils_Assets.getLibrary("default");
}
return polymod_backends_LimeBackend.defaultAssetLibrary;
};
polymod_backends_LimeBackend.restoreDefaultAssetLibrary = function() {
if(polymod_backends_LimeBackend.defaultAssetLibrary != null) {
lime_utils_Assets.registerLibrary("default",polymod_backends_LimeBackend.defaultAssetLibrary);
}
};
polymod_backends_LimeBackend.prototype = {
polymodLibrary: null
,modLibrary: null
,fallback: null
,init: function() {
this.fallback = polymod_backends_LimeBackend.getDefaultAssetLibrary();
this.modLibrary = new polymod_backends_LimeModLibrary(this);
lime_utils_Assets.registerLibrary("default",this.modLibrary);
}
,destroy: function() {
polymod_backends_LimeBackend.restoreDefaultAssetLibrary();
this.polymodLibrary = null;
this.modLibrary.destroy();
this.modLibrary = null;
this.fallback = null;
}
,exists: function(id) {
return this.modLibrary.exists(id,null);
}
,getBytes: function(id) {
return this.modLibrary.getBytes(id);
}
,getText: function(id) {
return this.modLibrary.getText(id);
}
,getPath: function(id) {
return this.modLibrary.getPath(id);
}
,list: function(type) {
return this.modLibrary.list(type == null ? null : polymod_backends_LimeModLibrary.PolyToLime(type));
}
,clearCache: function() {
if(polymod_backends_LimeBackend.defaultAssetLibrary != null) {
var key = haxe_ds_StringMap.keysIterator(lime_utils_Assets.cache.audio.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = lime_utils_Assets.cache.audio;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
var key = haxe_ds_StringMap.keysIterator(lime_utils_Assets.cache.font.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = lime_utils_Assets.cache.font;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
var key = haxe_ds_StringMap.keysIterator(lime_utils_Assets.cache.image.h);
while(key.hasNext()) {
var key1 = key.next();
var _this = lime_utils_Assets.cache.image;
if(Object.prototype.hasOwnProperty.call(_this.h,key1)) {
delete(_this.h[key1]);
}
}
}
}
,stripAssetsPrefix: function(id) {
if(polymod_util_Util.uIndexOf(id,"assets/") == 0) {
id = polymod_util_Util.uSubstring(id,7);
}
return id;
}
,__class__: polymod_backends_LimeBackend
};
var polymod_backends_LimeModLibrary = function(backend) {
this.b = backend;
this.p = this.b.polymodLibrary;
this.fallback = this.b.fallback;
this.hasFallback = this.fallback != null;
lime_utils_AssetLibrary.call(this);
};
$hxClasses["polymod.backends.LimeModLibrary"] = polymod_backends_LimeModLibrary;
polymod_backends_LimeModLibrary.__name__ = "polymod.backends.LimeModLibrary";
polymod_backends_LimeModLibrary.LimeToPoly = function(type) {
switch(type) {
case "BINARY":
return "BYTES";
case "FONT":
return "FONT";
case "IMAGE":
return "IMAGE";
case "MANIFEST":
return "MANIFEST";
case "MUSIC":
return "AUDIO_MUSIC";
case "SOUND":
return "AUDIO_SOUND";
case "TEMPLATE":
return "TEMPLATE";
case "TEXT":
return "TEXT";
default:
return "UNKNOWN";
}
};
polymod_backends_LimeModLibrary.PolyToLime = function(type) {
switch(type) {
case "AUDIO_GENERIC":
return "SOUND";
case "AUDIO_MUSIC":
return "MUSIC";
case "AUDIO_SOUND":
return "SOUND";
case "BYTES":
return "BINARY";
case "FONT":
return "FONT";
case "IMAGE":
return "IMAGE";
case "MANIFEST":
return "MANIFEST";
case "TEMPLATE":
return "TEMPLATE";
case "TEXT":
return "TEXT";
default:
return "BINARY";
}
};
polymod_backends_LimeModLibrary.__super__ = lime_utils_AssetLibrary;
polymod_backends_LimeModLibrary.prototype = $extend(lime_utils_AssetLibrary.prototype,{
b: null
,p: null
,fallback: null
,hasFallback: null
,type: null
,destroy: function() {
this.b = null;
this.p = null;
this.fallback = null;
this.type = null;
}
,getAsset: function(id,type) {
var e = this.p.check(id,polymod_backends_LimeModLibrary.LimeToPoly(type));
if(type == "TEXT") {
return this.getText(id);
}
if(!e && this.hasFallback) {
return this.fallback.getAsset(id,type);
}
return lime_utils_AssetLibrary.prototype.getAsset.call(this,id,type);
}
,exists: function(id,type) {
var e = this.p.check(id,polymod_backends_LimeModLibrary.LimeToPoly(type));
if(!e && this.hasFallback) {
return this.fallback.exists(id,type);
}
return e;
}
,getAudioBuffer: function(id) {
if(this.p.check(id)) {
var path = this.p.file(id);
return lime_media_AudioBuffer.fromBytes(null);
} else if(this.hasFallback) {
return this.fallback.getAudioBuffer(id);
}
return null;
}
,getBytes: function(id) {
var file = this.p.file(id);
if(this.p.check(id)) {
var path = this.p.file(id);
return null;
} else if(this.hasFallback) {
return this.fallback.getBytes(id);
}
return null;
}
,getFont: function(id) {
if(this.p.check(id)) {
var path = this.p.file(id);
return lime_text_Font.fromBytes(null);
} else if(this.hasFallback) {
return this.fallback.getFont(id);
}
return null;
}
,getImage: function(id) {
if(this.p.check(id)) {
var path = this.p.file(id);
return lime_graphics_Image.fromBytes(null);
} else if(this.hasFallback) {
return this.fallback.getImage(id);
}
return null;
}
,getPath: function(id) {
if(this.p.check(id)) {
return this.p.file(id);
} else if(this.hasFallback) {
return this.fallback.getPath(id);
}
return null;
}
,getText: function(id) {
var modText = null;
if(this.p.check(id)) {
modText = lime_utils_AssetLibrary.prototype.getText.call(this,id);
} else if(this.hasFallback) {
modText = this.fallback.getText(id);
}
if(modText != null) {
modText = this.p.mergeAndAppendText(id,modText);
}
return modText;
}
,loadBytes: function(id) {
if(this.p.check(id)) {
return lime_utils_Bytes.loadFromFile(this.p.file(id));
} else if(this.hasFallback) {
return this.fallback.loadBytes(id);
}
return lime_utils_Bytes.loadFromFile("");
}
,loadFont: function(id) {
if(this.p.check(id)) {
var this1 = this.paths;
var key = this.p.file(id);
return lime_text_Font.loadFromName(this1.h[key]);
} else if(this.hasFallback) {
return this.fallback.loadFont(id);
}
return lime_text_Font.loadFromName(this.paths.h[""]);
}
,loadImage: function(id) {
if(this.p.check(id)) {
return lime_graphics_Image.loadFromFile(this.p.file(id));
} else if(this.hasFallback) {
return this.fallback.loadImage(id);
}
return lime_graphics_Image.loadFromFile("");
}
,loadAudioBuffer: function(id) {
if(this.p.check(id)) {
var this1 = this.pathGroups;
var key = this.p.file(id);
if(Object.prototype.hasOwnProperty.call(this1.h,key)) {
var this1 = this.pathGroups;
var key = this.p.file(id);
return lime_media_AudioBuffer.loadFromFiles(this1.h[key]);
} else {
var this1 = this.paths;
var key = this.p.file(id);
return lime_media_AudioBuffer.loadFromFile(this1.h[key]);
}
} else if(this.hasFallback) {
return this.fallback.loadAudioBuffer(id);
}
return lime_media_AudioBuffer.loadFromFile("");
}
,loadText: function(id) {
if(this.p.check(id)) {
var request = new lime_net__$HTTPRequest_$String();
var this1 = this.paths;
var key = this.p.file(id);
return request.load(this1.h[key]);
} else if(this.hasFallback) {
return this.fallback.loadText(id);
}
var request = new lime_net__$HTTPRequest_$String();
return request.load("");
}
,isLocal: function(id,type) {
if(this.p.check(id)) {
return true;
} else if(this.hasFallback) {
return this.fallback.isLocal(id,type);
}
return false;
}
,list: function(type) {
var otherList = this.hasFallback ? this.fallback.list(type) : [];
var requestedType = type != null ? js_Boot.__cast(type , String) : null;
var items = [];
var id = haxe_ds_StringMap.keysIterator(this.p.type.h);
while(id.hasNext()) {
var id1 = id.next();
if(id1.indexOf("_append") == 0 || id1.indexOf("_merge") == 0) {
continue;
}
if(requestedType == null || this.exists(id1,requestedType)) {
items.push(id1);
}
}
var _g = 0;
while(_g < otherList.length) {
var otherId = otherList[_g];
++_g;
if(items.indexOf(otherId) == -1) {
if(requestedType == null || this.fallback.exists(otherId,type)) {
items.push(otherId);
}
}
}
return items;
}
,__class__: polymod_backends_LimeModLibrary
});
var polymod_backends_NMEBackend = function() {
polymod_backends_StubBackend.call(this);
polymod_Polymod.error("failed_create_backend","NMEBackend requires the nme library, did you forget to install it?");
};
$hxClasses["polymod.backends.NMEBackend"] = polymod_backends_NMEBackend;
polymod_backends_NMEBackend.__name__ = "polymod.backends.NMEBackend";
polymod_backends_NMEBackend.__super__ = polymod_backends_StubBackend;
polymod_backends_NMEBackend.prototype = $extend(polymod_backends_StubBackend.prototype,{
__class__: polymod_backends_NMEBackend
});
var polymod_backends_OpenFLBackend = function() {
polymod_backends_LimeBackend.call(this);
};
$hxClasses["polymod.backends.OpenFLBackend"] = polymod_backends_OpenFLBackend;
polymod_backends_OpenFLBackend.__name__ = "polymod.backends.OpenFLBackend";
polymod_backends_OpenFLBackend.__super__ = polymod_backends_LimeBackend;
polymod_backends_OpenFLBackend.prototype = $extend(polymod_backends_LimeBackend.prototype,{
clearCache: function() {
polymod_backends_LimeBackend.prototype.clearCache.call(this);
openfl_utils_Assets.cache.clear();
}
,__class__: polymod_backends_OpenFLBackend
});
var polymod_backends_PolymodAssetLibrary = function(params) {
this.parseRules = null;
this.ignoredFiles = null;
this.dirs = null;
this.backend = params.backend;
this.backend.polymodLibrary = this;
this.dirs = params.dirs;
this.parseRules = params.parseRules;
this.ignoredFiles = params.ignoredFiles != null ? params.ignoredFiles.slice() : [];
this.extensions = params.extensionMap;
this.backend.clearCache();
this.init();
};
$hxClasses["polymod.backends.PolymodAssetLibrary"] = polymod_backends_PolymodAssetLibrary;
polymod_backends_PolymodAssetLibrary.__name__ = "polymod.backends.PolymodAssetLibrary";
polymod_backends_PolymodAssetLibrary.prototype = {
backend: null
,type: null
,dirs: null
,ignoredFiles: null
,parseRules: null
,extensions: null
,destroy: function() {
if(this.backend != null) {
this.backend.destroy();
}
}
,mergeAndAppendText: function(id,modText) {
modText = polymod_util_Util.mergeAndAppendText(modText,id,this.dirs,$bind(this,this.getTextDirectly),this.parseRules);
return modText;
}
,getExtensionType: function(ext) {
ext = ext.toLowerCase();
if(Object.prototype.hasOwnProperty.call(this.extensions.h,ext) == false) {
return "BYTES";
}
return this.extensions.h[ext];
}
,getTextDirectly: function(id,directory) {
if(directory == null) {
directory = "";
}
var bytes = null;
if(this.checkDirectly(id,directory)) {
var path = this.file(id,directory);
bytes = null;
} else {
bytes = this.backend.getBytes(id);
}
if(bytes == null) {
return null;
} else {
return bytes.getString(0,bytes.length);
}
}
,exists: function(id) {
return this.backend.exists(id);
}
,getText: function(id) {
return this.backend.getText(id);
}
,getBytes: function(id) {
return this.backend.getBytes(id);
}
,getPath: function(id) {
return this.backend.getPath(id);
}
,list: function(type) {
return this.backend.list(type);
}
,listModFiles: function(type) {
var items = [];
var id = haxe_ds_StringMap.keysIterator(this.type.h);
while(id.hasNext()) {
var id1 = id.next();
if(id1.indexOf("_append") == 0 || id1.indexOf("_merge") == 0) {
continue;
}
if(type == null || type == "BYTES" || this.check(id1,type)) {
items.push(id1);
}
}
return items;
}
,check: function(id,type) {
var exists = this._checkExists(id);
if(exists && type != null && type != "BYTES") {
var otherType = this.type.h[id];
exists = otherType == type || otherType == "BYTES";
}
return exists;
}
,getType: function(id) {
var exists = this._checkExists(id);
if(exists) {
return this.type.h[id];
}
return null;
}
,checkDirectly: function(id,dir) {
id = this.backend.stripAssetsPrefix(id);
if(dir == null || dir == "") {
return false;
} else {
var thePath = polymod_util_Util.uCombine([dir,polymod_util_Util.sl(),id]);
}
return false;
}
,file: function(id,theDir) {
if(theDir == null) {
theDir = "";
}
id = this.backend.stripAssetsPrefix(id);
if(theDir != "") {
return polymod_util_Util.pathJoin(theDir,id);
}
var theFile = "";
var _g = 0;
var _g1 = this.dirs;
while(_g < _g1.length) {
var d = _g1[_g];
++_g;
var thePath = polymod_util_Util.pathJoin(d,id);
}
return theFile;
}
,_checkExists: function(id) {
if(this.ignoredFiles.length > 0 && this.ignoredFiles.indexOf(id) != -1) {
return false;
}
var exists = false;
id = this.backend.stripAssetsPrefix(id);
var _g = 0;
var _g1 = this.dirs;
while(_g < _g1.length) {
var d = _g1[_g];
++_g;
var path = polymod_util_Util.pathJoin(d,id);
}
return exists;
}
,init: function() {
this.type = new haxe_ds_StringMap();
this.extensions = new haxe_ds_StringMap();
this.initExtensions();
if(this.parseRules == null) {
this.parseRules = polymod_format_ParseRules.getDefault();
}
if(this.dirs != null) {
var _g = 0;
var _g1 = this.dirs;
while(_g < _g1.length) {
var d = _g1[_g];
++_g;
this.initMod(d);
}
}
}
,initExtensions: function() {
if(this.extensions == null) {
this.extensions = new haxe_ds_StringMap();
}
this._extensionSet("mp3","AUDIO_GENERIC");
this._extensionSet("ogg","AUDIO_GENERIC");
this._extensionSet("wav","AUDIO_GENERIC");
this._extensionSet("jpg","IMAGE");
this._extensionSet("png","IMAGE");
this._extensionSet("gif","IMAGE");
this._extensionSet("tga","IMAGE");
this._extensionSet("bmp","IMAGE");
this._extensionSet("tif","IMAGE");
this._extensionSet("tiff","IMAGE");
this._extensionSet("txt","TEXT");
this._extensionSet("xml","TEXT");
this._extensionSet("json","TEXT");
this._extensionSet("csv","TEXT");
this._extensionSet("tsv","TEXT");
this._extensionSet("mpf","TEXT");
this._extensionSet("tsx","TEXT");
this._extensionSet("tmx","TEXT");
this._extensionSet("vdf","TEXT");
this._extensionSet("ttf","FONT");
this._extensionSet("otf","FONT");
}
,_extensionSet: function(str,type) {
if(Object.prototype.hasOwnProperty.call(this.extensions.h,str) == false) {
this.extensions.h[str] = type;
}
}
,initMod: function(d) {
if(d == null) {
return;
}
var all = null;
if(d == "" || d == null) {
all = [];
}
try {
all = [];
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
throw haxe_Exception.thrown("ModAssetLibrary._initMod(" + d + ") failed : " + Std.string(msg));
}
var _g = 0;
while(_g < all.length) {
var f = all[_g];
++_g;
var doti = polymod_util_Util.uLastIndexOf(f,".");
var ext = doti != -1 ? f.substring(doti + 1) : "";
ext = ext.toLowerCase();
var assetType = this.getExtensionType(ext);
this.type.h[f] = assetType;
}
}
,__class__: polymod_backends_PolymodAssetLibrary
};
var polymod_backends_PolymodAssets = function() { };
$hxClasses["polymod.backends.PolymodAssets"] = polymod_backends_PolymodAssets;
polymod_backends_PolymodAssets.__name__ = "polymod.backends.PolymodAssets";
polymod_backends_PolymodAssets.init = function(params) {
var framework = params.framework;
if(framework == null) {
framework = polymod_backends_PolymodAssets.autoDetectFramework();
polymod_Polymod.notice("framework_autodetect"," going with " + Std.string(framework));
} else {
polymod_Polymod.notice("framework_init"," user specified " + Std.string(framework));
}
var backend;
switch(framework._hx_index) {
case 0:
backend = new polymod_backends_NMEBackend();
break;
case 1:
backend = new polymod_backends_LimeBackend();
break;
case 2:
backend = new polymod_backends_OpenFLBackend();
break;
case 3:
backend = new polymod_backends_HEAPSBackend();
break;
case 5:
if(params.customBackend != null) {
backend = Type.createInstance(params.customBackend,[]);
} else {
polymod_Polymod.error("undefined_custom_backend","params.customBackend was not defined!");
backend = null;
}
break;
default:
backend = null;
}
if(backend == null) {
polymod_Polymod.error("failed_create_backend","could not create a backend for framework(" + Std.string(framework) + ")!");
return null;
}
if(polymod_backends_PolymodAssets.library != null) {
polymod_backends_PolymodAssets.library.destroy();
}
polymod_backends_PolymodAssets.library = new polymod_backends_PolymodAssetLibrary({ backend : backend, dirs : params.dirs, parseRules : params.parseRules, ignoredFiles : params.ignoredFiles, extensionMap : params.extensionMap});
backend.init();
return polymod_backends_PolymodAssets.library;
};
polymod_backends_PolymodAssets.exists = function(id) {
return polymod_backends_PolymodAssets.library.exists(id);
};
polymod_backends_PolymodAssets.getBytes = function(id) {
return polymod_backends_PolymodAssets.library.getBytes(id);
};
polymod_backends_PolymodAssets.getText = function(id) {
return polymod_backends_PolymodAssets.library.getText(id);
};
polymod_backends_PolymodAssets.getPath = function(id) {
return polymod_backends_PolymodAssets.library.getPath(id);
};
polymod_backends_PolymodAssets.list = function(type) {
return polymod_backends_PolymodAssets.library.list(type);
};
polymod_backends_PolymodAssets.library = null;
polymod_backends_PolymodAssets.autoDetectFramework = function() {
return polymod_Framework.OPENFL;
};
var polymod_backends_PolymodAssetType = {};
polymod_backends_PolymodAssetType.fromString = function(str) {
str = str.toUpperCase();
switch(str) {
case "AUDIO_GENERIC":case "AUDIO_MUSIC":case "AUDIO_SOUND":case "BYTES":case "FONT":case "IMAGE":case "MANIFEST":case "TEMPLATE":case "TEXT":case "UNKNOWN":case "VIDEO":
return str;
default:
return "UNKNOWN";
}
};
var polymod_format_BaseParseFormat = function() { };
$hxClasses["polymod.format.BaseParseFormat"] = polymod_format_BaseParseFormat;
polymod_format_BaseParseFormat.__name__ = "polymod.format.BaseParseFormat";
polymod_format_BaseParseFormat.__isInterface__ = true;
polymod_format_BaseParseFormat.prototype = {
format: null
,append: null
,merge: null
,__class__: polymod_format_BaseParseFormat
};
var polymod_format_CSV = function() {
this._quoted = false;
this._delimeter = "";
this._rgx = null;
};
$hxClasses["polymod.format.CSV"] = polymod_format_CSV;
polymod_format_CSV.__name__ = "polymod.format.CSV";
polymod_format_CSV.parse = function(input,delimeter,quotedCells) {
if(quotedCells == null) {
quotedCells = true;
}
if(delimeter == null) {
delimeter = ",";
}
var csv = new polymod_format_CSV();
csv._parse(input,delimeter,quotedCells);
return csv;
};
polymod_format_CSV.parseWithFormat = function(input,format) {
if(format.get_isSimpleMode()) {
return polymod_format_CSV.parseSimple(input);
} else {
return polymod_format_CSV.parse(input,format.delimeter,format.quotedCells);
}
};
polymod_format_CSV.parseSimple = function(input) {
var endline = "\n";
if(input.indexOf("\r\n") != -1) {
endline = "\r\n";
}
var lines = input.split(endline);
var fieldLine = lines.shift();
var fields = fieldLine.split(",");
var grid = [];
var _g = 0;
while(_g < lines.length) {
var line = lines[_g];
++_g;
var cells = line.split(",");
grid.push(cells);
}
var csv = new polymod_format_CSV();
csv.fields = fields;
csv.grid = grid;
return csv;
};
polymod_format_CSV.prototype = {
fields: null
,grid: null
,destroy: function() {
this.clearArray(this.grid);
this.clearArray(this.fields);
this.grid = null;
this.fields = null;
}
,_rgx: null
,_delimeter: null
,_quoted: null
,_parse: function(input,delimeter,quoted) {
if(quoted == null) {
quoted = true;
}
if(delimeter == null) {
delimeter = ",";
}
this._delimeter = delimeter;
this._quoted = quoted;
if(input != "") {
this.processRows(this.getRows(input));
}
}
,clearArray: function(array) {
if(array == null) {
return;
}
var i = array.length - 1;
while(i >= 0) {
this.destroyThing(array[i]);
array[i] = null;
array.splice(i,1);
--i;
}
array = null;
}
,destroyThing: function(thing) {
if(thing == null) {
return;
}
if(((thing) instanceof Array)) {
this.clearArray(thing);
}
thing = null;
}
,getCells: function(row) {
if(this._rgx == null) {
if(row.charAt(row.length - 1) == this._delimeter) {
row = HxOverrides.substr(row,0,row.length - 1);
}
if(this._delimeter == ",") {
this._rgx = new EReg(",(?=(?:[^\\x22]*\\x22[^\\x22]*\\x22)*(?![^\\x22]*\\x22))","gm");
} else {
this._rgx = new EReg(this._delimeter + "(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))","gm");
}
}
return this._rgx.split(row);
}
,getRows: function(input) {
var endl = "\r\n";
if(input.indexOf("\r\n") == -1) {
endl = "\n";
}
return input.split(endl);
}
,processCells: function(cells,row) {
if(row == null) {
row = 0;
}
var col = 0;
var newline = false;
var row_array = null;
if(this.grid == null) {
this.grid = [];
this.fields = [];
}
row_array = [];
var _g = 0;
var _g1 = cells.length;
while(_g < _g1) {
var i = _g++;
var cell = "";
if(this._quoted) {
cell = HxOverrides.substr(cells[i],1,cells[i].length - 2);
} else {
cell = cells[i];
}
if(row == 0) {
this.fields.push(cell);
} else {
row_array.push(cell);
}
}
this.grid.push(row_array);
this.clearArray(cells);
cells = null;
}
,processRows: function(rows) {
var _g = 0;
var _g1 = rows.length;
while(_g < _g1) {
var i = _g++;
this.processCells(this.getCells(rows[i]),i);
}
}
,__class__: polymod_format_CSV
};
var polymod_format_JsonHelp = function() { };
$hxClasses["polymod.format.JsonHelp"] = polymod_format_JsonHelp;
polymod_format_JsonHelp.__name__ = "polymod.format.JsonHelp";
polymod_format_JsonHelp.bool = function(json,field,defaultValue) {
if(defaultValue == null) {
defaultValue = false;
}
var str = "";
if(Object.prototype.hasOwnProperty.call(json,field)) {
str = Reflect.field(json,field);
}
if(str == null || str == "") {
return defaultValue;
}
str = str.toLowerCase();
if(str == "true") {
return true;
}
return false;
};
polymod_format_JsonHelp.int = function(json,field,defaultValue) {
if(defaultValue == null) {
defaultValue = 0;
}
var str = "";
if(Object.prototype.hasOwnProperty.call(json,field)) {
str = Reflect.field(json,field);
}
if(str == null || str == "") {
return defaultValue;
}
var i = Std.parseInt(str);
if(i == null) {
return defaultValue;
}
return i;
};
polymod_format_JsonHelp.float = function(json,field,defaultValue) {
if(defaultValue == null) {
defaultValue = 0;
}
var str = "";
if(Object.prototype.hasOwnProperty.call(json,field)) {
str = Reflect.field(json,field);
}
if(str == null || str == "") {
return defaultValue;
}
var f = NaN;
try {
f = parseFloat(str);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
f = NaN;
}
if(isNaN(f)) {
return defaultValue;
}
return f;
};
polymod_format_JsonHelp.mapStr = function(json,field) {
var map = new haxe_ds_StringMap();
if(json == null || field == "" || field == null) {
return map;
}
var val = null;
if(Object.prototype.hasOwnProperty.call(json,field)) {
val = Reflect.field(json,field);
}
if(val != null) {
var _g = 0;
var _g1 = Reflect.fields(val);
while(_g < _g1.length) {
var field = _g1[_g];
++_g;
var fieldVal = Reflect.field(val,field);
map.h[field] = Std.string(fieldVal);
}
}
return map;
};
polymod_format_JsonHelp.str = function(json,field,defaultValue) {
if(defaultValue == null) {
defaultValue = "";
}
var str = "";
if(Object.prototype.hasOwnProperty.call(json,field)) {
str = Reflect.field(json,field);
}
if(str == null || str == "") {
return defaultValue;
}
return str;
};
polymod_format_JsonHelp.arrStr = function(json,field,defaultValue) {
var val = null;
if(Object.prototype.hasOwnProperty.call(json,field)) {
val = Reflect.field(json,field);
}
if(val != null && ((val) instanceof Array)) {
return val;
}
return defaultValue;
};
var polymod_format_ParseRules = function() {
this.formats = new haxe_ds_StringMap();
};
$hxClasses["polymod.format.ParseRules"] = polymod_format_ParseRules;
polymod_format_ParseRules.__name__ = "polymod.format.ParseRules";
polymod_format_ParseRules.getDefault = function() {
var rules = new polymod_format_ParseRules();
rules.addFormat("csv",new polymod_format_CSVParseFormat(",",true));
rules.addFormat("tsv",new polymod_format_TSVParseFormat());
rules.addFormat("xml",new polymod_format_XMLParseFormat());
rules.addFormat("json",new polymod_format_JSONParseFormat());
rules.addFormat("txt",new polymod_format_PlainTextParseFormat());
return rules;
};
polymod_format_ParseRules.prototype = {
formats: null
,addType: function(extension,type) {
var format;
switch(type._hx_index) {
case 0:
format = new polymod_format_PlainTextParseFormat();
break;
case 1:
format = new polymod_format_LinesParseFormat(polymod_format_EndLineType.LF);
break;
case 2:
format = new polymod_format_CSVParseFormat(",",true);
break;
case 3:
format = new polymod_format_TSVParseFormat();
break;
case 4:
format = new polymod_format_XMLParseFormat();
break;
case 5:
format = new polymod_format_JSONParseFormat();
break;
}
this.formats.h[extension] = format;
}
,get: function(extension) {
return this.formats.h[extension];
}
,addFormat: function(extension,format) {
this.formats.h[extension] = format;
}
,addFile: function(path,format) {
this.formats.h[path] = format;
}
,__class__: polymod_format_ParseRules
};
var polymod_format_CSVParseFormat = function(delimeter,quotedCells) {
this.format = polymod_format_TextFileFormat.CSV;
this.delimeter = delimeter;
this.quotedCells = quotedCells;
};
$hxClasses["polymod.format.CSVParseFormat"] = polymod_format_CSVParseFormat;
polymod_format_CSVParseFormat.__name__ = "polymod.format.CSVParseFormat";
polymod_format_CSVParseFormat.__interfaces__ = [polymod_format_BaseParseFormat];
polymod_format_CSVParseFormat.prototype = {
format: null
,isSimpleMode: null
,delimeter: null
,quotedCells: null
,lookForHeaders: null
,get_isSimpleMode: function() {
if(this.delimeter == ",") {
return this.quotedCells == false;
} else {
return false;
}
}
,parse: function(str) {
return polymod_format_CSV.parse(str,this.delimeter,this.quotedCells);
}
,append: function(baseText,appendText,id) {
var endLine = "\n";
if(baseText.indexOf("\r\n") != -1) {
endLine = "\r\n";
}
if(this.lookForHeaders) {
var baseCSV;
var appendCSV;
var appendEndLine = "\n";
if(appendText.indexOf("\r\n") != -1) {
appendEndLine = "\r\n";
}
var appendLength = polymod_util_Util.uLength(appendText);
var appendLast = polymod_util_Util.uLastIndexOf(appendText,appendEndLine);
if(appendLast == appendLength - 1 || appendLast == appendLength - 2) {
appendText = polymod_util_Util.uSubstr(appendText,0,appendLength - polymod_util_Util.uLength(appendEndLine));
}
try {
baseCSV = polymod_format_CSV.parseWithFormat(baseText,this);
appendCSV = polymod_format_CSV.parseWithFormat(appendText,this);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
polymod_Polymod.error("append_error","CSV Append error (" + id + ") : " + Std.string(msg));
return baseText;
}
var finalText = baseText;
var finalLength = polymod_util_Util.uLength(finalText);
var lastEndLine = polymod_util_Util.uLastIndexOf(finalText,endLine);
var addFinalEndline = false;
if(lastEndLine == finalLength - 1 || lastEndLine == finalLength - 2) {
finalText = polymod_util_Util.uSubstr(finalText,0,finalLength - polymod_util_Util.uLength(endLine));
addFinalEndline = true;
}
var compareFields = 0;
var _g = 0;
var _g1 = baseCSV.fields.length;
while(_g < _g1) {
var i = _g++;
var baseField = baseCSV.fields[i];
var appendFieldExists = appendCSV.fields.indexOf(baseField) != -1;
if(appendFieldExists) {
++compareFields;
}
}
if(this.lookForHeaders) {
if(compareFields < (baseCSV.fields.length / 2 | 0)) {
polymod_Polymod.error("append_error","Mod file(" + id + ") is missing most or all of the expected header fields","init");
}
}
var missingFields = [];
var _g = 0;
var _g1 = appendCSV.grid.length;
while(_g < _g1) {
var r = _g++;
var line = "";
var _g2 = 0;
var _g3 = baseCSV.fields.length;
while(_g2 < _g3) {
var bi = _g2++;
var baseField = baseCSV.fields[bi];
var appendField = appendCSV.fields.indexOf(baseField);
if(appendField != -1) {
var appendValue = appendCSV.grid[r][appendField];
if(appendValue == null) {
appendValue = "";
}
line += appendValue;
} else if(missingFields.indexOf(baseField) == -1) {
missingFields.push(baseField);
}
if(bi != baseCSV.fields.length - 1) {
line += this.delimeter;
}
}
finalText += endLine + line;
}
if(addFinalEndline) {
finalText += endLine;
}
var _g = 0;
while(_g < missingFields.length) {
var baseField = missingFields[_g];
++_g;
polymod_Polymod.warning("append_error","Mod file(" + id + ") missing expected field \"" + baseField + "\", values will default to empty string.","init");
}
return finalText;
}
return polymod_util_Util.appendCSVOrTSV(baseText,appendText,id);
}
,merge: function(baseText,mergeText,id) {
var baseCSV;
var mergeCSV;
try {
baseCSV = polymod_format_CSV.parseWithFormat(baseText,this);
mergeCSV = polymod_format_CSV.parseWithFormat(mergeText,this);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
polymod_Polymod.error("merge_error","CSV Merge error (" + id + ") : " + Std.string(msg));
return baseText;
}
var _g = 0;
var _g1 = mergeCSV.grid;
while(_g < _g1.length) {
var row = _g1[_g];
++_g;
var flag = row.length > 0 ? row[0] : "";
if(flag != "") {
var _g2 = 0;
var _g3 = baseCSV.grid.length;
while(_g2 < _g3) {
var i = _g2++;
var otherRow = baseCSV.grid[i];
var otherFlag = otherRow[0];
if(flag == otherFlag) {
var _g4 = 0;
var _g5 = row.length;
while(_g4 < _g5) {
var j = _g4++;
if(j < otherRow.length) {
otherRow[j] = row[j];
}
}
}
}
}
}
var result = this.print(baseCSV);
return result;
}
,print: function(csv) {
var buf_b = "";
var lf = 10;
var dq = 34;
var _g = 0;
var _g1 = csv.fields.length;
while(_g < _g1) {
var i = _g++;
buf_b += Std.string(csv.fields[i]);
if(i != csv.fields.length - 1) {
buf_b += Std.string(this.delimeter);
}
}
var strSoFar = buf_b;
if(strSoFar.indexOf("\n") == -1) {
buf_b += "\r\n";
}
var grid = csv.grid;
var _g = 0;
var _g1 = grid.length;
while(_g < _g1) {
var iy = _g++;
var row = grid[iy];
var _g2 = 0;
var _g3 = row.length;
while(_g2 < _g3) {
var ix = _g2++;
var cell = row[ix];
if(this.quotedCells) {
buf_b += String.fromCodePoint(dq);
}
haxe_Utf8.iter(cell,function(char) {
buf_b += String.fromCodePoint(char);
});
if(this.quotedCells) {
buf_b += String.fromCodePoint(dq);
}
if(ix != row.length - 1) {
buf_b += Std.string(this.delimeter);
}
}
if(iy != grid.length - 1) {
buf_b += "\r\n";
}
}
return buf_b;
}
,__class__: polymod_format_CSVParseFormat
,__properties__: {get_isSimpleMode:"get_isSimpleMode"}
};
var polymod_format_TSVParseFormat = function() {
this.format = polymod_format_TextFileFormat.TSV;
};
$hxClasses["polymod.format.TSVParseFormat"] = polymod_format_TSVParseFormat;
polymod_format_TSVParseFormat.__name__ = "polymod.format.TSVParseFormat";
polymod_format_TSVParseFormat.__interfaces__ = [polymod_format_BaseParseFormat];
polymod_format_TSVParseFormat.prototype = {
format: null
,parse: function(str) {
return polymod_format_TSV.parse(str);
}
,append: function(baseText,appendText,id) {
return polymod_util_Util.appendCSVOrTSV(baseText,appendText,id);
}
,merge: function(baseText,mergeText,id) {
var baseTSV = polymod_format_TSV.parse(baseText);
var mergeTSV = polymod_format_TSV.parse(mergeText);
var _g = 0;
var _g1 = mergeTSV.grid;
while(_g < _g1.length) {
var row = _g1[_g];
++_g;
var flag = row.length > 0 ? row[0] : "";
if(flag != "") {
var _g2 = 0;
var _g3 = baseTSV.grid.length;
while(_g2 < _g3) {
var i = _g2++;
var otherRow = baseTSV.grid[i];
var otherFlag = otherRow[0];
if(flag == otherFlag) {
var _g4 = 0;
var _g5 = row.length;
while(_g4 < _g5) {
var j = _g4++;
if(j < otherRow.length) {
otherRow[j] = row[j];
}
}
}
}
}
}
var result = this.print(baseTSV);
return result;
}
,print: function(tsv) {
var buf_b = "";
var tab = 9;
var lf = 10;
var _g = 0;
var _g1 = tsv.fields.length;
while(_g < _g1) {
var i = _g++;
buf_b += Std.string(tsv.fields[i]);
if(i != tsv.fields.length - 1) {
buf_b += String.fromCodePoint(tab);
}
}
var strSoFar = buf_b;
if(strSoFar.indexOf("\n") == -1) {
buf_b += "\r\n";
}
var grid = tsv.grid;
var _g = 0;
var _g1 = grid.length;
while(_g < _g1) {
var iy = _g++;
var row = grid[iy];
var _g2 = 0;
var _g3 = row.length;
while(_g2 < _g3) {
var ix = _g2++;
var cell = row[ix];
haxe_Utf8.iter(cell,function(char) {
buf_b += String.fromCodePoint(char);
});
if(ix != row.length - 1) {
buf_b += String.fromCodePoint(tab);
}
}
if(iy != grid.length - 1) {
buf_b += "\r\n";
}
}
return buf_b;
}
,__class__: polymod_format_TSVParseFormat
};
var polymod_format_LinesParseFormat = function(endline) {
this.format = polymod_format_TextFileFormat.LINES;
this.endline = endline;
};
$hxClasses["polymod.format.LinesParseFormat"] = polymod_format_LinesParseFormat;
polymod_format_LinesParseFormat.__name__ = "polymod.format.LinesParseFormat";
polymod_format_LinesParseFormat.__interfaces__ = [polymod_format_BaseParseFormat];
polymod_format_LinesParseFormat.prototype = {
format: null
,endline: null
,parse: function(str) {
if(str == null || str == "") {
return [];
}
var other = "";
var endl = "";
switch(this.endline._hx_index) {
case 0:
endl = "\n";
break;
case 1:
endl = "\r";
break;
case 2:
endl = "\r\n";
break;
default:
endl = "\r";
other = "\n";
}
if(other == "") {
return str.split(endl);
} else {
str = StringTools.replace(str,other,endl);
return str.split(endl);
}
}
,append: function(baseText,appendText,id) {
return polymod_util_Util.uCombine([baseText,this.getEndl(),appendText]);
}
,merge: function(baseText,mergeText,id) {
if(baseText == null || mergeText == "") {
return baseText;
}
if(baseText == null || mergeText == "") {
return baseText;
}
var lines = this.parse(baseText);
if(lines == null || lines.length <= 0) {
return baseText;
}
var mergeLines = this.parse(mergeText);
if(mergeLines == null || mergeLines.length <= 1) {
return baseText;
}
var pattern = mergeLines.shift();
var newLines = [];
var _g = 0;
while(_g < lines.length) {
var line = lines[_g];
++_g;
if(line.indexOf(pattern) == 0) {
newLines = newLines.concat(mergeLines);
} else {
newLines.push(line);
}
}
return polymod_util_Util.uJoin(newLines,this.getEndl());
}
,print: function(lines) {
return lines.join(this.getEndl());
}
,getEndl: function() {
switch(this.endline._hx_index) {
case 0:
return "\n";
case 1:
return "\r";
case 2:
return "\r\n";
default:
return "\n";
}
}
,__class__: polymod_format_LinesParseFormat
};
var polymod_format_XMLParseFormat = function(prettyPrint,headers,footers) {
if(prettyPrint == null) {
prettyPrint = false;
}
this.prettyPrint = false;
if(headers == null) {
headers = [];
}
if(footers == null) {
footers = [];
}
this.stripHeaders = headers;
this.stripFooters = footers;
this.prettyPrint = prettyPrint;
this.format = polymod_format_TextFileFormat.XML;
};
$hxClasses["polymod.format.XMLParseFormat"] = polymod_format_XMLParseFormat;
polymod_format_XMLParseFormat.__name__ = "polymod.format.XMLParseFormat";
polymod_format_XMLParseFormat.__interfaces__ = [polymod_format_BaseParseFormat];
polymod_format_XMLParseFormat.prototype = {
format: null
,prettyPrint: null
,stripHeaders: null
,stripFooters: null
,parse: function(str) {
return Xml.parse(str);
}
,append: function(baseText,appendText,id) {
if(this.stripHeaders != null && this.stripFooters != null) {
return polymod_util_Util.appendSpecialXML(baseText,appendText,this.stripHeaders,this.stripFooters);
} else {
return polymod_util_Util.appendXML(baseText,appendText);
}
}
,merge: function(baseText,mergeText,id) {
var basex = null;
var mergex = null;
try {
basex = Xml.parse(baseText);
mergex = Xml.parse(mergeText);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
throw haxe_Exception.thrown("Error parsing XML files during merge (" + id + ") " + Std.string(msg));
}
try {
polymod_format_XMLMerge.mergeXMLNodes(basex,mergex);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
throw haxe_Exception.thrown("Error combining XML files during merge (" + id + ") " + Std.string(msg));
}
return this.print(basex);
}
,print: function(xml) {
return haxe_xml_Printer.print(xml,this.prettyPrint);
}
,__class__: polymod_format_XMLParseFormat
};
var polymod_format_JSONParseFormat = function(space,replacer) {
this.replacer = replacer;
this.space = space;
this.format = polymod_format_TextFileFormat.JSON;
};
$hxClasses["polymod.format.JSONParseFormat"] = polymod_format_JSONParseFormat;
polymod_format_JSONParseFormat.__name__ = "polymod.format.JSONParseFormat";
polymod_format_JSONParseFormat.__interfaces__ = [polymod_format_BaseParseFormat];
polymod_format_JSONParseFormat.prototype = {
format: null
,space: null
,replacer: null
,parse: function(str) {
return JSON.parse(str);
}
,append: function(baseText,appendText,id) {
var lastBracket = polymod_util_Util.uLastIndexOf(baseText,"}");
var baseFirst = polymod_util_Util.uSubstr(baseText,0,lastBracket);
var baseEnd = polymod_util_Util.uSubstr(baseText,lastBracket,baseText.length);
var firstAppendBracket = polymod_util_Util.uIndexOf(appendText,"{");
var lastAppendBracket = polymod_util_Util.uLastIndexOf(appendText,"}");
var injectText = polymod_util_Util.uSubstring(appendText,firstAppendBracket + 1,lastAppendBracket);
if(injectText == null || injectText == "") {
return baseText;
}
baseFirst = polymod_util_Util.uTrimFinalEndlines(baseFirst);
injectText = polymod_util_Util.uTrimFinalEndlines(injectText);
injectText = polymod_util_Util.uTrimFirstEndlines(injectText);
baseEnd = polymod_util_Util.uTrimFinalEndlines(baseEnd);
var comma = ",";
return baseFirst + comma + "\n" + injectText + baseEnd;
}
,merge: function(baseText,mergeText,id) {
var base = null;
var merge = null;
try {
base = this.parse(baseText);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
polymod_Polymod.error("merge_error","JSON merge error (" + id + "): couldn't parse base text! : " + Std.string(msg));
}
try {
merge = this.parse(mergeText);
} catch( _g ) {
haxe_NativeStackTrace.lastError = _g;
var msg = haxe_Exception.caught(_g).unwrap();
polymod_Polymod.error("merge_error","JSON merge error (" + id + "): couldn't parse merge text! : " + Std.string(msg));
return baseText;
}
if(Object.prototype.hasOwnProperty.call(merge,"merge")) {
if(((merge.merge) instanceof Array)) {
var merge1 = merge.merge;
var _g = 0;
while(_g < merge1.length) {
var entry = merge1[_g];
++_g;
var target = null;
var payload = null;
target = entry.target;
payload = entry.payload;
base = this._mergeJson(base,entry,id);
}
} else {
polymod_Polymod.error("merge_error","JSON merge error (" + id + "): merge file must contain a single top-level array named \"merge\"! (Found an object, not an array)");
}
} else {
polymod_Polymod.error("merge_error","JSON merge error (" + id + "): merge file must contain a single top-level array named \"merge\"!");
}
return this.print(base);
}
,_mergeJson: function(base,entry,id) {
var sig = this._getTargetSignature(entry.target);
var obj = base;
var currTarget = sig[0];
if(currTarget == null) {
polymod_Polymod.warning("merge_error","JSON merge failed (" + id + "), sig was " + Std.string(sig));
return obj;
}
var done = false;
var last = obj;
var i = 0;
var signatureSoFar = "";
var struct = { next : null, parent : null, arrIndex : -1, target : null};
var next = null;
while(!done) {
struct = this._descend(last,currTarget,signatureSoFar,struct);
if(struct == null) {
next = null;
} else {
next = struct.next;
}
if(signatureSoFar != "") {
signatureSoFar += ".";
}
signatureSoFar += this._targSigElementToString(currTarget);
++i;
if(next == null) {
polymod_Polymod.warning("merge_error","JSON merge failed (" + id + "), could not find object \"" + signatureSoFar + "\")");
done = true;
} else if(i < sig.length) {
currTarget = sig[i];
} else {
this._inject(struct.parent,struct.target,struct.arrIndex,entry.payload,signatureSoFar);
done = true;
}
last = next;
}
return obj;
}
,_targSigElementToString: function(target) {
var str = target.value;
if(target.arrayIndeces != null && target.arrayIndeces.length > 0) {
var _g = 0;
var _g1 = target.arrayIndeces;
while(_g < _g1.length) {
var arri = _g1[_g];
++_g;
if(arri >= 0) {
str += "[" + arri + "]";
}
}
}
return str;
}
,_inject: function(obj,target,arrIndex,payload,signatureSoFar) {
if(signatureSoFar == null) {
signatureSoFar = "";
}
if(arrIndex == -1) {
if(Object.prototype.hasOwnProperty.call(obj,target)) {
var baseObject = Reflect.field(obj,target);
var mergedValue = this._mergeObjects(baseObject,payload,signatureSoFar);
obj[target] = mergedValue;
} else {
obj[target] = payload;
}
} else if(((obj) instanceof Array)) {
var arr = obj;
if(arr.length > arrIndex) {
var baseObject = arr[arrIndex];
var mergedValue = this._mergeObjects(baseObject,payload,signatureSoFar);
} else {
polymod_Polymod.warning("merge_error","JSON merge failed, array index (" + arrIndex + ") out of bounds for array of length (" + arr.length + ") at " + signatureSoFar);
}
}
}
,_mergeObjects: function(a,b,signatureSoFar) {
if(signatureSoFar == null) {
signatureSoFar = "";
}
if(((a) instanceof Array) && ((b) instanceof Array)) {
return b;
} else if(!((a) instanceof Array) && !((b) instanceof Array)) {
var _g = 0;
var _g1 = Reflect.fields(b);
while(_g < _g1.length) {
var field = _g1[_g];
++_g;
if(Object.prototype.hasOwnProperty.call(a,field)) {
var aValue = Reflect.field(a,field);
var bValue = Reflect.field(b,field);
if(((aValue) instanceof Array) && ((bValue) instanceof Array)) {
a[field] = bValue;
} else if(!((aValue) instanceof Array) && !((bValue) instanceof Array)) {
var aPrimitive = this.isPrimitive(a);
var bPrimitive = this.isPrimitive(b);
if(aPrimitive && bPrimitive) {
return bValue;
} else if(aPrimitive != bPrimitive) {
return aValue;
}
var mergedValue = this.copyVal(this._mergeObjects(aValue,bValue,signatureSoFar + "." + field));
a[field] = mergedValue;
return a;
} else {
var aArr = ((aValue) instanceof Array) ? "array" : "object";
var bArr = ((bValue) instanceof Array) ? "array" : "object";
polymod_Polymod.warning("merge_error","Can't merge field (" + field + ") @ (" + signatureSoFar + ") because base is (" + aArr + ") but payload is (" + bArr + ")");
}
} else {
a[field] = Reflect.field(b,field);
}
}
} else {
var aArr = ((a) instanceof Array) ? "array" : "object";
var bArr = ((b) instanceof Array) ? "array" : "object";
polymod_Polymod.warning("merge_error","JSON can't merge @ (" + signatureSoFar + ") because base is (" + aArr + ") but payload is (" + bArr + ")");
}
return a;
}
,copyVal: function(a) {
var b = null;
if(typeof(a) == "number" && ((a | 0) === a)) {
b = a | 0;
}
if(typeof(a) == "number") {
b = js_Boot.__cast(a , Float);
}
if(typeof(a) == "string") {
b = Std.string(b);
}
if(typeof(a) == "boolean") {
b = a == true;
} else {
b = Std.string(a);
}
return b;
}
,isPrimitive: function(a) {
if(typeof(a) == "string") {
return true;
}
if(typeof(a) == "number") {
return true;
}
if(typeof(a) == "number" && ((a | 0) === a)) {
return true;
}
if(typeof(a) == "boolean") {
return true;
}
return false;
}
,_descend: function(obj,target,signatureSoFar,struct) {
if(signatureSoFar == null) {
signatureSoFar = "";
}
if(struct == null) {
struct = { next : null, parent : null, arrIndex : -1, target : null};
}
if(obj == null) {
return null;
}
if(target == null) {
return null;
}
if(Object.prototype.hasOwnProperty.call(obj,target.value) == false) {
polymod_Polymod.warning("merge_error","JSON merge error : object (" + signatureSoFar + ") has no field (" + target.value + ")");
return null;
}
var next = Reflect.field(obj,target.value);
struct.next = next;
struct.parent = obj;
struct.target = target.value;
if(next == null) {
return struct;
}
if(target.arrayIndeces.length > 0) {
struct.next = next;
if(((next) instanceof Array)) {
var arr = next;
var arrIndeces = target.arrayIndeces.slice();
var done = false;
signatureSoFar += "." + target.value;
while(arrIndeces.length > 0) {
var arrIndex = arrIndeces.shift();
if(arrIndex < arr.length) {
struct.parent = next;
next = arr[arrIndex];
struct.next = next;
struct.arrIndex = arrIndex;
if(((next) instanceof Array)) {
arr = next;
} else {
polymod_Polymod.warning("merge_error","JSON merge error : invalid array access [" + arrIndex + "] on target \"" + signatureSoFar + "\"");
done = true;
}
} else {
polymod_Polymod.warning("merge_error","JSON merge error : array index (" + arrIndex + ") out of bounds on target \"" + signatureSoFar + "\" with length " + arr.length);
done = true;
}
signatureSoFar += "[" + arrIndex + "]";
}
} else {
return null;
}
}
return struct;
}
,_getTargetSignature: function(str) {
if(str == null) {
return [];
}
var result = [];
var arr = str.split(".");
var _g = 0;
while(_g < arr.length) {
var bit = arr[_g];
++_g;
if(bit.indexOf("[") != -1) {
var arr2 = bit.split("[");
var value = arr2.shift();
var arrayIndeces = [];
while(arr2.length > 0) {
var value2 = arr2.shift();
value2 = polymod_util_Util.uTrimFinalCharIf(value2,"]");
var arrIndex = Std.parseInt(value2);
if(arrIndex != null && arrIndex >= 0) {
arrayIndeces.push(arrIndex);
} else {
polymod_Polymod.warning("merge_error","JSON merge error: found invalid array index (" + value2 + ") in signature (" + str + ")");
break;
}
}
result.push({ value : value, arrayIndeces : arrayIndeces});
} else {
result.push({ value : bit, arrayIndeces : []});
}
}
return result;
}
,print: function(data) {
return JSON.stringify(data,this.replacer,this.space);
}
,__class__: polymod_format_JSONParseFormat
};
var polymod_format_PlainTextParseFormat = function() {
this.format = polymod_format_TextFileFormat.PLAINTEXT;
};
$hxClasses["polymod.format.PlainTextParseFormat"] = polymod_format_PlainTextParseFormat;
polymod_format_PlainTextParseFormat.__name__ = "polymod.format.PlainTextParseFormat";
polymod_format_PlainTextParseFormat.__interfaces__ = [polymod_format_BaseParseFormat];
polymod_format_PlainTextParseFormat.prototype = {
format: null
,parse: function(str) {
return str;
}
,append: function(baseText,appendText,id) {
var lastChar = polymod_util_Util.uCharAt(baseText,polymod_util_Util.uLength(baseText) - 1);
var lastLastChar = polymod_util_Util.uCharAt(baseText,polymod_util_Util.uLength(baseText) - 1);
var joiner = "";
var endLine = "\n";
var crIndex = polymod_util_Util.uIndexOf(baseText,"\r");
var lfIndex = polymod_util_Util.uIndexOf(baseText,"\n");
if(crIndex != -1) {
if(lfIndex == crIndex + 1) {
endLine = "\r\n";
}
}
if(lastChar != "\n") {
joiner = endLine;
}
return polymod_util_Util.uCombine([baseText,joiner,appendText]);
}
,merge: function(baseText,mergeText,id) {
polymod_Polymod.warning("merge_error","(" + id + ") Plain text does not support merging!");
return baseText;
}
,print: function(str) {
return str;
}
,__class__: polymod_format_PlainTextParseFormat
};
var polymod_format_TextFileFormat = $hxEnums["polymod.format.TextFileFormat"] = { __ename__ : "polymod.format.TextFileFormat", __constructs__ : ["PLAINTEXT","LINES","CSV","TSV","XML","JSON"]
,PLAINTEXT: {_hx_index:0,__enum__:"polymod.format.TextFileFormat",toString:$estr}
,LINES: {_hx_index:1,__enum__:"polymod.format.TextFileFormat",toString:$estr}
,CSV: {_hx_index:2,__enum__:"polymod.format.TextFileFormat",toString:$estr}
,TSV: {_hx_index:3,__enum__:"polymod.format.TextFileFormat",toString:$estr}
,XML: {_hx_index:4,__enum__:"polymod.format.TextFileFormat",toString:$estr}
,JSON: {_hx_index:5,__enum__:"polymod.format.TextFileFormat",toString:$estr}
};
var polymod_format_EndLineType = $hxEnums["polymod.format.EndLineType"] = { __ename__ : "polymod.format.EndLineType", __constructs__ : ["LF","CR","CRLF","ANY"]
,LF: {_hx_index:0,__enum__:"polymod.format.EndLineType",toString:$estr}
,CR: {_hx_index:1,__enum__:"polymod.format.EndLineType",toString:$estr}
,CRLF: {_hx_index:2,__enum__:"polymod.format.EndLineType",toString:$estr}
,ANY: {_hx_index:3,__enum__:"polymod.format.EndLineType",toString:$estr}
};
var polymod_format_TSV = function() {
polymod_format_CSV.call(this);
};
$hxClasses["polymod.format.TSV"] = polymod_format_TSV;
polymod_format_TSV.__name__ = "polymod.format.TSV";
polymod_format_TSV.parse = function(input) {
var endline = "\n";
if(input.indexOf("\r\n") != -1) {
endline = "\r\n";
}
var lines = input.split(endline);
var fieldLine = lines.shift();
var fields = fieldLine.split("\t");
var grid = [];
var _g = 0;
while(_g < lines.length) {
var line = lines[_g];
++_g;
while(line.charAt(line.length - 1) == "\t") line = HxOverrides.substr(line,0,line.length - 1);
var cells = line.split("\t");
grid.push(cells);
}
var tsv = new polymod_format_TSV();
tsv.fields = fields;
tsv.grid = grid;
return tsv;
};
polymod_format_TSV.__super__ = polymod_format_CSV;
polymod_format_TSV.prototype = $extend(polymod_format_CSV.prototype,{
__class__: polymod_format_TSV
});
var polymod_format_XMLMerge = function() { };
$hxClasses["polymod.format.XMLMerge"] = polymod_format_XMLMerge;
polymod_format_XMLMerge.__name__ = "polymod.format.XMLMerge";
polymod_format_XMLMerge.mergeXMLWork = function(a,b,children,attributes) {
if(attributes == null) {
attributes = true;
}
if(children == null) {
children = true;
}
if(a == null || b == null) {
return;
}
if(a.nodeType == 6) {
a = a.firstElement();
}
if(b.nodeType == 6) {
b = b.firstElement();
}
if(a.nodeType != 0 || b.nodeType != 0) {
return;
}
var tmp;
if(a.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (a.nodeType == null ? "null" : XmlType.toString(a.nodeType)));
}
if(a.nodeName != "merge") {
if(b.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (b.nodeType == null ? "null" : XmlType.toString(b.nodeType)));
}
tmp = b.nodeName == "merge";
} else {
tmp = true;
}
if(tmp) {
return;
}
if(children) {
var el = b.elements();
while(el.hasNext()) {
var el1 = el.next();
if(el1 == null) {
continue;
}
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
if(el1.nodeName == "merge") {
continue;
}
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
var aCount = polymod_format_XMLMerge.countNodes(a,el1.nodeName);
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
var bCount = polymod_format_XMLMerge.countNodes(b,el1.nodeName);
if(aCount == 0 && bCount > 0) {
var parent = null;
var c = null;
if(el1.nodeType == Xml.Element) {
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c = Xml.createElement(el1.nodeName);
var att = el1.attributes();
while(att.hasNext()) {
var att1 = att.next();
c.set(att1,el1.get(att1));
}
var el2 = el1.elements();
while(el2.hasNext()) {
var el3 = el2.next();
var c1 = null;
if(el3.nodeType == Xml.Element) {
if(el3.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType)));
}
c1 = Xml.createElement(el3.nodeName);
var att2 = el3.attributes();
while(att2.hasNext()) {
var att3 = att2.next();
c1.set(att3,el3.get(att3));
}
var el4 = el3.elements();
while(el4.hasNext()) {
var el5 = el4.next();
c1.addChild(polymod_util_Util.copyXml(el5,c1));
}
} else if(el3.nodeType == Xml.PCData) {
if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType)));
}
c1 = Xml.createPCData(el3.nodeValue);
} else if(el3.nodeType == Xml.CData) {
if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType)));
}
c1 = Xml.createCData(el3.nodeValue);
} else if(el3.nodeType == Xml.Comment) {
if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType)));
}
c1 = Xml.createComment(el3.nodeValue);
} else if(el3.nodeType == Xml.DocType) {
if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType)));
}
c1 = Xml.createDocType(el3.nodeValue);
} else if(el3.nodeType == Xml.ProcessingInstruction) {
if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType)));
}
c1 = Xml.createProcessingInstruction(el3.nodeValue);
} else if(el3.nodeType == Xml.Document) {
c1 = Xml.createDocument();
var el6 = el3.elements();
while(el6.hasNext()) {
var el7 = el6.next();
c1.addChild(polymod_util_Util.copyXml(el7,c1));
}
}
c1.parent = c;
c.addChild(c1);
}
} else if(el1.nodeType == Xml.PCData) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c = Xml.createPCData(el1.nodeValue);
} else if(el1.nodeType == Xml.CData) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c = Xml.createCData(el1.nodeValue);
} else if(el1.nodeType == Xml.Comment) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c = Xml.createComment(el1.nodeValue);
} else if(el1.nodeType == Xml.DocType) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c = Xml.createDocType(el1.nodeValue);
} else if(el1.nodeType == Xml.ProcessingInstruction) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c = Xml.createProcessingInstruction(el1.nodeValue);
} else if(el1.nodeType == Xml.Document) {
c = Xml.createDocument();
var el8 = el1.elements();
while(el8.hasNext()) {
var el9 = el8.next();
var c2 = null;
if(el9.nodeType == Xml.Element) {
if(el9.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType)));
}
c2 = Xml.createElement(el9.nodeName);
var att4 = el9.attributes();
while(att4.hasNext()) {
var att5 = att4.next();
c2.set(att5,el9.get(att5));
}
var el10 = el9.elements();
while(el10.hasNext()) {
var el11 = el10.next();
c2.addChild(polymod_util_Util.copyXml(el11,c2));
}
} else if(el9.nodeType == Xml.PCData) {
if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType)));
}
c2 = Xml.createPCData(el9.nodeValue);
} else if(el9.nodeType == Xml.CData) {
if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType)));
}
c2 = Xml.createCData(el9.nodeValue);
} else if(el9.nodeType == Xml.Comment) {
if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType)));
}
c2 = Xml.createComment(el9.nodeValue);
} else if(el9.nodeType == Xml.DocType) {
if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType)));
}
c2 = Xml.createDocType(el9.nodeValue);
} else if(el9.nodeType == Xml.ProcessingInstruction) {
if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType)));
}
c2 = Xml.createProcessingInstruction(el9.nodeValue);
} else if(el9.nodeType == Xml.Document) {
c2 = Xml.createDocument();
var el12 = el9.elements();
while(el12.hasNext()) {
var el13 = el12.next();
c2.addChild(polymod_util_Util.copyXml(el13,c2));
}
}
c2.parent = c;
c.addChild(c2);
}
}
c.parent = parent;
a.addChild(c);
} else {
var tmp;
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
if(polymod_format_XMLMerge.countNodes(a,el1.nodeName) == 1) {
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
tmp = polymod_format_XMLMerge.countNodes(b,el1.nodeName) == 1;
} else {
tmp = false;
}
if(tmp) {
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
polymod_format_XMLMerge.mergeXMLWork(a.elementsNamed(el1.nodeName).next(),el1);
} else {
var parent1 = null;
var c3 = null;
if(el1.nodeType == Xml.Element) {
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c3 = Xml.createElement(el1.nodeName);
var att6 = el1.attributes();
while(att6.hasNext()) {
var att7 = att6.next();
c3.set(att7,el1.get(att7));
}
var el14 = el1.elements();
while(el14.hasNext()) {
var el15 = el14.next();
var c4 = null;
if(el15.nodeType == Xml.Element) {
if(el15.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType)));
}
c4 = Xml.createElement(el15.nodeName);
var att8 = el15.attributes();
while(att8.hasNext()) {
var att9 = att8.next();
c4.set(att9,el15.get(att9));
}
var el16 = el15.elements();
while(el16.hasNext()) {
var el17 = el16.next();
c4.addChild(polymod_util_Util.copyXml(el17,c4));
}
} else if(el15.nodeType == Xml.PCData) {
if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType)));
}
c4 = Xml.createPCData(el15.nodeValue);
} else if(el15.nodeType == Xml.CData) {
if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType)));
}
c4 = Xml.createCData(el15.nodeValue);
} else if(el15.nodeType == Xml.Comment) {
if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType)));
}
c4 = Xml.createComment(el15.nodeValue);
} else if(el15.nodeType == Xml.DocType) {
if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType)));
}
c4 = Xml.createDocType(el15.nodeValue);
} else if(el15.nodeType == Xml.ProcessingInstruction) {
if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType)));
}
c4 = Xml.createProcessingInstruction(el15.nodeValue);
} else if(el15.nodeType == Xml.Document) {
c4 = Xml.createDocument();
var el18 = el15.elements();
while(el18.hasNext()) {
var el19 = el18.next();
c4.addChild(polymod_util_Util.copyXml(el19,c4));
}
}
c4.parent = c3;
c3.addChild(c4);
}
} else if(el1.nodeType == Xml.PCData) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c3 = Xml.createPCData(el1.nodeValue);
} else if(el1.nodeType == Xml.CData) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c3 = Xml.createCData(el1.nodeValue);
} else if(el1.nodeType == Xml.Comment) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c3 = Xml.createComment(el1.nodeValue);
} else if(el1.nodeType == Xml.DocType) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c3 = Xml.createDocType(el1.nodeValue);
} else if(el1.nodeType == Xml.ProcessingInstruction) {
if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
c3 = Xml.createProcessingInstruction(el1.nodeValue);
} else if(el1.nodeType == Xml.Document) {
c3 = Xml.createDocument();
var el20 = el1.elements();
while(el20.hasNext()) {
var el21 = el20.next();
var c5 = null;
if(el21.nodeType == Xml.Element) {
if(el21.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType)));
}
c5 = Xml.createElement(el21.nodeName);
var att10 = el21.attributes();
while(att10.hasNext()) {
var att11 = att10.next();
c5.set(att11,el21.get(att11));
}
var el22 = el21.elements();
while(el22.hasNext()) {
var el23 = el22.next();
c5.addChild(polymod_util_Util.copyXml(el23,c5));
}
} else if(el21.nodeType == Xml.PCData) {
if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType)));
}
c5 = Xml.createPCData(el21.nodeValue);
} else if(el21.nodeType == Xml.CData) {
if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType)));
}
c5 = Xml.createCData(el21.nodeValue);
} else if(el21.nodeType == Xml.Comment) {
if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType)));
}
c5 = Xml.createComment(el21.nodeValue);
} else if(el21.nodeType == Xml.DocType) {
if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType)));
}
c5 = Xml.createDocType(el21.nodeValue);
} else if(el21.nodeType == Xml.ProcessingInstruction) {
if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType)));
}
c5 = Xml.createProcessingInstruction(el21.nodeValue);
} else if(el21.nodeType == Xml.Document) {
c5 = Xml.createDocument();
var el24 = el21.elements();
while(el24.hasNext()) {
var el25 = el24.next();
c5.addChild(polymod_util_Util.copyXml(el25,c5));
}
}
c5.parent = c3;
c3.addChild(c5);
}
}
c3.parent = parent1;
a.addChild(c3);
}
}
}
}
if(attributes) {
var att = b.attributes();
while(att.hasNext()) {
var att1 = att.next();
a.set(att1,b.get(att1));
}
}
};
polymod_format_XMLMerge.countNodes = function(xml,nodeName) {
var i = 0;
var el = xml.elementsNamed(nodeName);
while(el.hasNext()) {
var el1 = el.next();
++i;
}
return i;
};
polymod_format_XMLMerge.mergeXML = function(a,b,allSigs,mergeMap) {
var aName;
if(a.nodeType == 6) {
aName = "";
} else {
if(a.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (a.nodeType == null ? "null" : XmlType.toString(a.nodeType)));
}
aName = a.nodeName;
}
var bName;
if(b.nodeType == 6) {
bName = "";
} else {
if(b.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (b.nodeType == null ? "null" : XmlType.toString(b.nodeType)));
}
bName = b.nodeName;
}
if(aName != bName) {
return;
}
var aSig = polymod_format_XMLMerge.getNodeSignature(a);
var bSig = polymod_format_XMLMerge.getNodeSignature(b);
if(aSig != bSig) {
return;
}
var _g = 0;
while(_g < allSigs.length) {
var sig = allSigs[_g];
++_g;
if(sig.indexOf(aSig) == 0) {
if(sig == aSig) {
var keyValues = mergeMap.h[sig];
if(keyValues == null) {
if(sig == "" && aSig == "") {
if(a.nodeType == 6 && b.nodeType == 6) {
var a1 = a.firstElement();
var b1 = b.firstElement();
polymod_format_XMLMerge.mergeXML(a1,b1,allSigs,mergeMap);
} else {
return;
}
}
}
if(keyValues != null && keyValues.length % 2 == 0 && keyValues.length >= 2) {
var _g1 = 0;
var _g2 = keyValues.length / 2 | 0;
while(_g1 < _g2) {
var i = _g1++;
var key = keyValues[i * 2];
var value = keyValues[i * 2 + 1];
var aValue = a.get(key);
if(aValue == value) {
var bValue = b.get(key);
polymod_format_XMLMerge.mergeXMLWork(a,b);
}
}
}
} else {
var aEl = a.elements();
while(aEl.hasNext()) {
var aEl1 = aEl.next();
var bEl = b.elements();
while(bEl.hasNext()) {
var bEl1 = bEl.next();
polymod_format_XMLMerge.mergeXML(aEl1,bEl1,allSigs,mergeMap);
}
}
}
}
}
};
polymod_format_XMLMerge.mergeXMLNodes = function(a,b) {
if(b == null) {
return;
}
var allSigs = [""];
var bMap = polymod_format_XMLMerge.getNodeMergeMap(b,allSigs);
polymod_format_XMLMerge.mergeXML(a,b,allSigs,bMap);
};
polymod_format_XMLMerge.getNodeMergeMap = function(xml,addToArray) {
var map = new haxe_ds_StringMap();
if(xml == null) {
return map;
}
var el = xml.elements();
while(el.hasNext()) {
var el1 = el.next();
if(el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
if(el1.nodeName == "merge") {
continue;
}
var subMap = polymod_format_XMLMerge.getNodeMergeMap(el1,addToArray);
map = polymod_format_XMLMerge.mergeMapsDestructively(map,subMap);
var sig = polymod_format_XMLMerge.getNodeSignature(el1);
if(el1.nodeType != Xml.Document && el1.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Invalid nodeType " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType)));
}
var this1 = el1;
var f = this1;
if(haxe_xml__$Access_HasNodeAccess.resolve(f,"merge")) {
if(Object.prototype.hasOwnProperty.call(map.h,sig) == false) {
map.h[sig] = [];
}
var arr = map.h[sig];
var mergeKey = haxe_xml__$Access_HasAttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(f,"merge"),"key") ? haxe_xml__$Access_AttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(f,"merge"),"key") : "";
var mergeKeyValue = haxe_xml__$Access_NodeAccess.resolve(f,"merge").get(mergeKey);
arr.push(mergeKey);
arr.push(mergeKeyValue);
if(addToArray.indexOf(sig) == -1) {
addToArray.push(sig);
}
}
}
return map;
};
polymod_format_XMLMerge.getNodeSignature = function(xml) {
var arr = [];
var parent = xml;
while(parent != null && parent.nodeType == 0) {
if(parent.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (parent.nodeType == null ? "null" : XmlType.toString(parent.nodeType)));
}
arr.push(parent.nodeName);
if(parent.nodeType == 0) {
parent = parent.parent;
} else {
parent = null;
}
}
var str = "";
var _g = 0;
var _g1 = arr.length;
while(_g < _g1) {
var i = _g++;
var j = arr.length - 1 - i;
str += arr[j];
if(i != arr.length - 1) {
str += ".";
}
}
return str;
};
polymod_format_XMLMerge.mergeMapsDestructively = function(a,b) {
if(a == null) {
a = new haxe_ds_StringMap();
}
if(b == null) {
return a;
}
var bkey = haxe_ds_StringMap.keysIterator(b.h);
while(bkey.hasNext()) {
var bkey1 = bkey.next();
if(Object.prototype.hasOwnProperty.call(a.h,bkey1)) {
var aArr = a.h[bkey1];
var bArr = b.h[bkey1];
var _g = 0;
while(_g < bArr.length) {
var bVal = bArr[_g];
++_g;
aArr.push(bVal);
}
} else {
var bArr1 = b.h[bkey1];
a.h[bkey1] = bArr1;
if(Object.prototype.hasOwnProperty.call(b.h,bkey1)) {
delete(b.h[bkey1]);
}
}
}
return a;
};
var polymod_fs_PolymodFileSystem = function() { };
$hxClasses["polymod.fs.PolymodFileSystem"] = polymod_fs_PolymodFileSystem;
polymod_fs_PolymodFileSystem.__name__ = "polymod.fs.PolymodFileSystem";
polymod_fs_PolymodFileSystem.exists = function(path) {
return false;
};
polymod_fs_PolymodFileSystem.isDirectory = function(path) {
return false;
};
polymod_fs_PolymodFileSystem.readDirectory = function(path) {
return [];
};
polymod_fs_PolymodFileSystem.getFileContent = function(path) {
return null;
};
polymod_fs_PolymodFileSystem.getFileBytes = function(path) {
return null;
};
polymod_fs_PolymodFileSystem.readDirectoryRecursive = function(path) {
return [];
};
var polymod_fs_StubFileSystem = function() { };
$hxClasses["polymod.fs.StubFileSystem"] = polymod_fs_StubFileSystem;
polymod_fs_StubFileSystem.__name__ = "polymod.fs.StubFileSystem";
polymod_fs_StubFileSystem.exists = function(path) {
return false;
};
polymod_fs_StubFileSystem.isDirectory = function(path) {
return false;
};
polymod_fs_StubFileSystem.readDirectory = function(path) {
return [];
};
polymod_fs_StubFileSystem.getFileContent = function(path) {
return null;
};
polymod_fs_StubFileSystem.getFileBytes = function(path) {
return null;
};
polymod_fs_StubFileSystem.readDirectoryRecursive = function(path) {
return [];
};
var polymod_util_SemanticVersion = function() {
};
$hxClasses["polymod.util.SemanticVersion"] = polymod_util_SemanticVersion;
polymod_util_SemanticVersion.__name__ = "polymod.util.SemanticVersion";
polymod_util_SemanticVersion.fromString = function(str) {
var v = new polymod_util_SemanticVersion();
v.original = str;
if(str == "" || str == null) {
throw haxe_Exception.thrown("SemanticVersion.hx: string is empty!");
}
var extra = "";
if(str.indexOf("+") != -1) {
var arr = str.split("+");
str = arr[0];
}
if(str.indexOf("-") != -1) {
var arr = str.split("-");
str = arr[0];
extra = arr[1];
}
var arr = str.split(".");
if(arr.length < 3) {
throw haxe_Exception.thrown("SemanticVersion.hx: needs major, minor, and patch versions! :\"" + str + "\"");
}
var _g = 0;
var _g1 = arr.length;
while(_g < _g1) {
var ii = _g++;
var substr = arr[ii];
if(substr.length > 1 && substr.charAt(0) == "0") {
throw haxe_Exception.thrown("SemanticVersion.hx: no leading zeroes allowed! :\"" + str + "\"");
}
var _g2 = 0;
var _g3 = substr.length;
while(_g2 < _g3) {
var i = _g2++;
var char = substr.charAt(i);
switch(char) {
case "*":case "0":case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":
break;
default:
var word;
switch(ii) {
case 0:
word = "major";
break;
case 1:
word = "minor";
break;
case 2:
word = "patch";
break;
default:
word = "";
}
throw haxe_Exception.thrown("SemanticVersion.hx: couldn't parse " + word + " version! :\"" + str + "\"");
}
}
}
var maj = null;
var min = null;
var pat = null;
if(arr[0] == "*") {
maj = -1;
}
if(arr[1] == "*") {
min = -1;
}
if(arr[2] == "*") {
pat = -1;
}
if(maj == null) {
maj = Std.parseInt(arr[0]);
}
if(min == null) {
min = Std.parseInt(arr[1]);
}
if(pat == null) {
pat = Std.parseInt(arr[2]);
}
if(maj == null) {
throw haxe_Exception.thrown("SemanticVersion.hx: couldn't parse major version! :\"" + str + "\"");
}
if(min == null) {
throw haxe_Exception.thrown("SemanticVersion.hx: couldn't parse minor version! :\"" + str + "\"");
}
if(pat == null) {
throw haxe_Exception.thrown("SemanticVersion.hx: couldn't parse patch version! :\"" + str + "\"");
}
if(maj == -1) {
min = -1;
pat = -1;
}
if(min == -1) {
pat = -1;
}
v.major = maj;
v.minor = min;
v.patch = pat;
v.preRelease = [];
if(maj == -1 || min == -1 || pat == -1) {
extra = "";
}
if(extra != null && extra != "") {
if(maj > 1) {
throw haxe_Exception.thrown("SemanticVersion.hx: pre-release version not allowed post 1.0.0! :\"" + str + "\"");
}
if(maj == 1) {
if(min > 0) {
throw haxe_Exception.thrown("SemanticVersion.hx: pre-release version not allowed post 1.0.0! :\"" + str + "\"");
}
if(pat > 0) {
throw haxe_Exception.thrown("SemanticVersion.hx: pre-release version not allowed post 1.0.0! :\"" + str + "\"");
}
}
var arr = extra.split(".");
if(arr != null && arr.length > 0) {
var _g = 0;
while(_g < arr.length) {
var substr = arr[_g];
++_g;
var i = Std.parseInt(substr);
if(i != null) {
if(substr.length > 0 && substr.charAt(0) == "0") {
throw haxe_Exception.thrown("SemanticVersion.hx: no leading zeroes allowed! :\"" + str + "\"");
}
}
v.preRelease.push(substr);
}
}
}
v.effective = v.major + "." + v.minor + "." + v.patch;
if(v.preRelease != null && v.preRelease.length > 0) {
v.effective = v.effective + "-" + v.preRelease.join(".");
}
return v;
};
polymod_util_SemanticVersion.prototype = {
original: null
,effective: null
,major: null
,minor: null
,patch: null
,preRelease: null
,checkCompatibility: function(newer) {
var score = 0;
if(newer.major == this.major || newer.major == -1 || this.major == -1) {
++score;
if(newer.minor >= this.minor || newer.minor == -1 || this.minor == -1) {
++score;
if(newer.patch >= this.patch || newer.patch == -1 || this.patch == -1) {
++score;
}
}
}
return score;
}
,compare: function(other) {
if(this.major == -1 || other.major == -1) {
return 0;
}
if(this.major > other.major) {
return -1;
}
if(this.major < other.major) {
return 1;
}
if(this.minor == -1 || other.minor == -1) {
return 0;
}
if(this.minor > other.minor) {
return -1;
}
if(this.minor < other.minor) {
return 1;
}
if(this.patch == -1 || other.patch == -1) {
return 0;
}
if(this.patch > other.patch) {
return -1;
}
if(this.patch < other.patch) {
return 1;
}
var bits = this.preRelease.length;
var otherBits = other.preRelease.length;
if(otherBits > bits) {
bits = otherBits;
}
var _g = 0;
var _g1 = bits;
while(_g < _g1) {
var i = _g++;
var bit = this.preRelease != null && this.preRelease.length > i ? this.preRelease[i] : "";
var otherBit = other.preRelease != null && other.preRelease.length > i ? other.preRelease[i] : "";
if(bit == "" && otherBit != "") {
return -1;
}
if(bit != "" && otherBit == "") {
return 1;
}
var i1 = Std.parseInt(bit);
var j = Std.parseInt(otherBit);
if(i1 != null && j != null) {
if(i1 > j) {
return -1;
}
if(i1 < j) {
return 1;
}
} else {
if(bit > otherBit) {
return -1;
}
if(bit < otherBit) {
return 1;
}
}
}
return 0;
}
,isEqualTo: function(other) {
return this.compare(other) == 0;
}
,isNewerThan: function(other) {
return this.compare(other) == -1;
}
,toString: function() {
return this.effective;
}
,__class__: polymod_util_SemanticVersion
};
var polymod_util_Util = function() { };
$hxClasses["polymod.util.Util"] = polymod_util_Util;
polymod_util_Util.__name__ = "polymod.util.Util";
polymod_util_Util.mergeAndAppendText = function(baseText,id,dirs,getModText,parseRules) {
var text = baseText;
var _g = 0;
while(_g < dirs.length) {
var d = dirs[_g];
++_g;
var theDir = d;
if(theDir == null) {
theDir = "";
}
if(polymod_util_Util.hasSpecial(id,"_merge",theDir)) {
text = polymod_util_Util.mergeText(text,id,d,getModText,parseRules);
}
var theDir1 = d;
if(theDir1 == null) {
theDir1 = "";
}
if(polymod_util_Util.hasSpecial(id,"_append",theDir1)) {
text = polymod_util_Util.appendText(text,id,d,getModText,parseRules);
}
}
return text;
};
polymod_util_Util.mergeText = function(baseText,id,theDir,getModText,parseRules) {
if(theDir == null) {
theDir = "";
}
var extension = polymod_util_Util.uExtension(id,true);
var id1 = id;
if(polymod_util_Util.uIndexOf(id1,"assets/") == 0) {
id1 = polymod_util_Util.uSubstring(id1,7);
}
id = id1;
var mergeFile = "_merge" + polymod_util_Util.sl() + id;
var format = parseRules.get(id);
if(format == null) {
format = parseRules.get(extension);
}
if(format != null) {
var mergeText = getModText(mergeFile,theDir);
return format.merge(baseText,mergeText,id);
} else {
polymod_Polymod.error("merge_error","Could not merge file (" + id + "), no parse format was specified for extension (" + extension + ").");
return baseText;
}
};
polymod_util_Util.appendText = function(baseText,id,theDir,getModText,parseRules) {
var extension = polymod_util_Util.uExtension(id,true);
var id1 = id;
if(polymod_util_Util.uIndexOf(id1,"assets/") == 0) {
id1 = polymod_util_Util.uSubstring(id1,7);
}
id = id1;
var format = parseRules.get(id);
if(format == null) {
format = parseRules.get(extension);
}
if(format != null) {
var appendText = getModText(polymod_util_Util.pathJoin("_append",id),theDir);
return format.append(baseText,appendText,id);
}
return baseText;
};
polymod_util_Util.appendCSVOrTSV = function(baseText,appendText,id) {
var lastChar = polymod_util_Util.uCharAt(baseText,polymod_util_Util.uLength(baseText) - 1);
var lastLastChar = polymod_util_Util.uCharAt(baseText,polymod_util_Util.uLength(baseText) - 1);
var joiner = "";
var endLine = "\n";
var crIndex = polymod_util_Util.uIndexOf(baseText,"\r");
var lfIndex = polymod_util_Util.uIndexOf(baseText,"\n");
if(crIndex != -1 && lfIndex == crIndex + 1) {
endLine = "\r\n";
}
if(lastChar != "\n") {
joiner = endLine;
}
var otherEndline = endLine == "\n" ? "\r\n" : "\n";
appendText = polymod_util_Util.uSplitReplace(appendText,otherEndline,endLine);
return polymod_util_Util.uCombine([baseText,joiner,appendText]);
};
polymod_util_Util.appendSpecialXML = function(a,b,headers,footers) {
a = polymod_util_Util.stripXML(a,true,true,headers,footers);
b = polymod_util_Util.stripXML(b,true,true,headers,footers);
var txt = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
txt = polymod_util_Util.uCat(txt,"<data>");
txt = polymod_util_Util.uCat(txt,a);
txt = polymod_util_Util.uCat(txt,b);
txt = polymod_util_Util.uCat(txt,"</data>");
return txt;
};
polymod_util_Util.appendXML = function(a,b) {
a = polymod_util_Util.stripXML(a,false,true);
b = polymod_util_Util.stripXML(b,true,false);
var txt = polymod_util_Util.uCat(a,b);
return txt;
};
polymod_util_Util.stripComments = function(txt) {
var start = polymod_util_Util.uIndexOf(txt,"<!--");
var end = polymod_util_Util.uIndexOf(txt,"-->");
while(start != -1 && end != -1) {
var len = polymod_util_Util.uLength(txt);
var before = polymod_util_Util.uSubstr(txt,0,start);
var after = polymod_util_Util.uSubstr(txt,end + 3,len - (end + 3));
txt = polymod_util_Util.uCat(before,after);
start = polymod_util_Util.uIndexOf(txt,"<!--");
end = polymod_util_Util.uIndexOf(txt,"-->");
}
return txt;
};
polymod_util_Util.trimLeadingWhiteSpace = function(txt) {
var white = ["\r","\n"," ","\t"];
var len = polymod_util_Util.uLength(txt);
var _g = 0;
while(_g < white.length) {
var w = white[_g];
++_g;
while(polymod_util_Util.uIndexOf(txt,w) == 0) {
txt = polymod_util_Util.uSubstr(txt,1,len - 1);
--len;
}
}
return txt;
};
polymod_util_Util.trimTrailingWhiteSpace = function(txt) {
var white = ["\r","\n"," ","\t"];
var len = polymod_util_Util.uLength(txt);
var _g = 0;
while(_g < white.length) {
var w = white[_g];
++_g;
while(polymod_util_Util.uCharAt(txt,len - 1) == w) {
txt = polymod_util_Util.uSubstr(txt,0,len - 1);
--len;
}
}
return txt;
};
polymod_util_Util.stripXML = function(txt,stripHeader,stripFooter,headers,footers) {
if(stripFooter == null) {
stripFooter = true;
}
if(stripHeader == null) {
stripHeader = true;
}
txt = polymod_util_Util.stripComments(txt);
if(stripHeader) {
if(polymod_util_Util.uIndexOf(txt,"<?xml") == 0) {
var i = polymod_util_Util.uIndexOf(txt,">");
txt = polymod_util_Util.uSubstr(txt,i + 1,polymod_util_Util.uLength(txt) - (i + 1));
txt = polymod_util_Util.trimLeadingWhiteSpace(txt);
}
if(polymod_util_Util.uIndexOf(txt,"<data") == 0) {
var i = polymod_util_Util.uIndexOf(txt,">");
txt = polymod_util_Util.uSubstr(txt,i + 1,polymod_util_Util.uLength(txt) - (i + 1));
txt = polymod_util_Util.trimLeadingWhiteSpace(txt);
}
if(headers != null) {
var _g = 0;
while(_g < headers.length) {
var header = headers[_g];
++_g;
if(polymod_util_Util.uIndexOf(txt,header) == 0) {
var i = polymod_util_Util.uIndexOf(txt,">");
txt = polymod_util_Util.uSubstr(txt,i + 1,polymod_util_Util.uLength(txt) - (i + 1));
txt = polymod_util_Util.trimLeadingWhiteSpace(txt);
}
}
}
}
if(stripFooter) {
txt = polymod_util_Util.trimTrailingWhiteSpace(txt);
var ulen = polymod_util_Util.uLength(txt);
if(polymod_util_Util.uLastIndexOf(txt,"</data>") == ulen - 7) {
txt = polymod_util_Util.uSubstr(txt,0,ulen - 7);
}
if(footers != null) {
var _g = 0;
while(_g < footers.length) {
var footer = footers[_g];
++_g;
txt = polymod_util_Util.trimTrailingWhiteSpace(txt);
var ulen = polymod_util_Util.uLength(txt);
var footerlen = polymod_util_Util.uLength(footer);
if(polymod_util_Util.uLastIndexOf(txt,footer) == ulen - footerlen) {
txt = polymod_util_Util.uSubstr(txt,0,ulen - footerlen);
}
}
}
}
return txt;
};
polymod_util_Util.hasMerge = function(id,theDir) {
if(theDir == null) {
theDir = "";
}
return polymod_util_Util.hasSpecial(id,"_merge",theDir);
};
polymod_util_Util.hasAppend = function(id,theDir) {
if(theDir == null) {
theDir = "";
}
return polymod_util_Util.hasSpecial(id,"_append",theDir);
};
polymod_util_Util.stripAssetsPrefix = function(id) {
if(polymod_util_Util.uIndexOf(id,"assets/") == 0) {
id = polymod_util_Util.uSubstring(id,7);
}
return id;
};
polymod_util_Util.hasSpecial = function(id,special,theDir) {
if(theDir == null) {
theDir = "";
}
if(special == null) {
special = "";
}
return false;
};
polymod_util_Util.pathJoin = function(a,b) {
var aSlash = polymod_util_Util.uLastIndexOf(a,"/") == polymod_util_Util.uLength(a) - 1 || polymod_util_Util.uLastIndexOf(a,"\\") == polymod_util_Util.uLength(a) - 1;
var bSlash = polymod_util_Util.uIndexOf(b,"/") == 0 || polymod_util_Util.uIndexOf(b,"\\") == 0;
var str = "";
if(aSlash || bSlash) {
str = polymod_util_Util.uCombine([a,b]);
} else {
str = polymod_util_Util.uCombine([a,polymod_util_Util.sl(),b]);
}
str = polymod_util_Util.cleanSlashes(str);
return str;
};
polymod_util_Util.cleanSlashes = function(str) {
str = polymod_util_Util.uSplitReplace(str,"\\","/");
str = polymod_util_Util.uSplitReplace(str,"//","/");
return str;
};
polymod_util_Util.sl = function() {
return "/";
};
polymod_util_Util.copyXml = function(data,parent) {
var c = null;
if(data.nodeType == Xml.Element) {
if(data.nodeType != Xml.Element) {
throw haxe_Exception.thrown("Bad node type, expected Element but found " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType)));
}
c = Xml.createElement(data.nodeName);
var att = data.attributes();
while(att.hasNext()) {
var att1 = att.next();
c.set(att1,data.get(att1));
}
var el = data.elements();
while(el.hasNext()) {
var el1 = el.next();
c.addChild(polymod_util_Util.copyXml(el1,c));
}
} else if(data.nodeType == Xml.PCData) {
if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType)));
}
c = Xml.createPCData(data.nodeValue);
} else if(data.nodeType == Xml.CData) {
if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType)));
}
c = Xml.createCData(data.nodeValue);
} else if(data.nodeType == Xml.Comment) {
if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType)));
}
c = Xml.createComment(data.nodeValue);
} else if(data.nodeType == Xml.DocType) {
if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType)));
}
c = Xml.createDocType(data.nodeValue);
} else if(data.nodeType == Xml.ProcessingInstruction) {
if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) {
throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType)));
}
c = Xml.createProcessingInstruction(data.nodeValue);
} else if(data.nodeType == Xml.Document) {
c = Xml.createDocument();
var el = data.elements();
while(el.hasNext()) {
var el1 = el.next();
c.addChild(polymod_util_Util.copyXml(el1,c));
}
}
c.parent = parent;
return c;
};
polymod_util_Util.uCat = function(a,b) {
var sb_b = "";
sb_b += Std.string(a == null ? "null" : "" + a);
sb_b += Std.string(b == null ? "null" : "" + b);
return sb_b;
};
polymod_util_Util.uCharAt = function(str,index) {
return str.charAt(index);
};
polymod_util_Util.uJoin = function(arr,token) {
var sb_b = "";
var i = 0;
var _g = 0;
while(_g < arr.length) {
var str = arr[_g];
++_g;
sb_b += str == null ? "null" : "" + str;
if(i != arr.length - 1) {
sb_b += token == null ? "null" : "" + token;
}
++i;
}
return sb_b;
};
polymod_util_Util.uCombine = function(arr) {
var sb_b = "";
var _g = 0;
while(_g < arr.length) {
var str = arr[_g];
++_g;
sb_b += str == null ? "null" : "" + str;
}
return sb_b;
};
polymod_util_Util.uExtension = function(str,lowerCase) {
if(lowerCase == null) {
lowerCase = false;
}
var i = polymod_util_Util.uLastIndexOf(str,".");
var extension = polymod_util_Util.uSubstr(str,i + 1,polymod_util_Util.uLength(str) - (i + 1));
if(lowerCase) {
extension = extension.toLowerCase();
}
return extension;
};
polymod_util_Util.uIndexOf = function(str,substr,startIndex) {
return str.indexOf(substr,startIndex);
};
polymod_util_Util.uLastIndexOf = function(str,value,startIndex) {
return str.lastIndexOf(value,startIndex);
};
polymod_util_Util.uLength = function(str) {
return str.length;
};
polymod_util_Util.uPathPop = function(str) {
var path = str.split("/");
path.pop();
return path.join("/");
};
polymod_util_Util.uTrimFinalCharIf = function(str,match) {
var uLength = polymod_util_Util.uLength(str);
var last = polymod_util_Util.uLastIndexOf(str,match);
if(last == uLength - 1) {
str = polymod_util_Util.uSubstr(str,0,uLength - 1);
uLength = polymod_util_Util.uLength(str);
}
return str;
};
polymod_util_Util.uTrimFinalEndlines = function(str) {
var done = false;
var fix = "";
var last = "";
while(!done) {
var fix = polymod_util_Util.uTrimFinalCharIf(str,"\n");
fix = polymod_util_Util.uTrimFinalCharIf(fix,"\r");
if(fix == str) {
done = true;
} else {
str = fix;
}
}
return str;
};
polymod_util_Util.uTrimFirstCharIf = function(str,match) {
var uLength = polymod_util_Util.uLength(str);
var first = polymod_util_Util.uIndexOf(str,match);
if(first == 0) {
str = polymod_util_Util.uSubstr(str,1,uLength);
uLength = polymod_util_Util.uLength(str);
}
return str;
};
polymod_util_Util.uTrimFirstEndlines = function(str) {
var done = false;
var fix = "";
var last = "";
while(!done) {
var fix = polymod_util_Util.uTrimFirstCharIf(str,"\n");
fix = polymod_util_Util.uTrimFirstCharIf(fix,"\r");
if(fix == str) {
done = true;
} else {
str = fix;
}
}
return str;
};
polymod_util_Util.uSplit = function(str,substr) {
return str.split(substr);
};
polymod_util_Util.uSplitReplace = function(s,substr,by) {
if(polymod_util_Util.uIndexOf(s,substr) == -1) {
return s;
}
var arr = polymod_util_Util.uSplit(s,substr);
if(arr == null || arr.length < 2) {
return s;
}
var sb_b = "";
var _g = 0;
var _g1 = arr.length;
while(_g < _g1) {
var i = _g++;
var bit = arr[i];
sb_b += bit == null ? "null" : "" + bit;
if(i != arr.length - 1) {
sb_b += by == null ? "null" : "" + by;
}
}
return sb_b;
};
polymod_util_Util.uSubstr = function(str,pos,len) {
return HxOverrides.substr(str,pos,len);
};
polymod_util_Util.uSubstring = function(str,startIndex,endIndex) {
return str.substring(startIndex,endIndex);
};
function $getIterator(o) { if( o instanceof Array ) return new haxe_iterators_ArrayIterator(o); else return o.iterator(); }
function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $global.$haxeUID++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = m.bind(o); o.hx__closures__[m.__id__] = f; } return f; }
$global.$haxeUID |= 0;
var _init = lime__$internal_backend_html5_HTML5Application;
var init = lime_app_Application;
haxe_ds_ObjectMap.count = 0;
if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
HxOverrides.now = performance.now.bind(performance);
}
$hxClasses["Math"] = Math;
if( String.fromCodePoint == null ) String.fromCodePoint = function(c) { return c < 0x10000 ? String.fromCharCode(c) : String.fromCharCode((c>>10)+0xD7C0)+String.fromCharCode((c&0x3FF)+0xDC00); }
String.prototype.__class__ = $hxClasses["String"] = String;
String.__name__ = "String";
$hxClasses["Array"] = Array;
Array.__name__ = "Array";
Date.prototype.__class__ = $hxClasses["Date"] = Date;
Date.__name__ = "Date";
var Int = { };
var Dynamic = { };
var Float = Number;
var Bool = Boolean;
var Class = { };
var Enum = { };
js_Boot.__toStr = ({ }).toString;
haxe_Resource.content = [{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleX", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFUZ0FBQUU0QnNjMGZNd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQlBTVVJCVkJpVmpWQkJEc0F3Q0FLMy8vKzRZNWV5R05hREpoNVVCSlNTTUlrYW9RSW9BSXk1aktrOXRENWJHcmdBRkRVMGVZZGtMbjFXdUFsWHM5SGpzUlVmY3lWRHE4dlNQNWxUYi96SEY2VW9FeGRNWXJPSEFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMaximizeButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQUIyQUFBQWRnRk9leVlJQUFBQUIzUkpUVVVIM2dNSkNSOFVCaGtEeVFBQUFFOUpSRUZVR05PdGtFRVN3REFJQW92Ly8vUDJvb2FhOUJaUFpvQXdxd0NlTlpMVUQ5ZkNIVzc2VFkyZmR3MklVOVVwZUhlVU5kMVlBRm5kTUFGUW1ndTV0eGFWM202VDV5bW9EL0gwT3ZrTFNBOUI4bis0Y2pvQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:bitmap_flixel_system_GraphicLogo", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQmtDQVlBQUFCdzRwVlVBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBQUFnWTBoU1RRQUFlaVVBQUlDREFBRDUvd0FBZ09rQUFIVXdBQURxWUFBQU9wZ0FBQmR2a2wvRlJnQUFCTTFKUkVGVWVOcnMyOCtMRzJVWXdQSFhabTZDdVhrMGRFMFRzVCtTbVQxb2Q1Rmsrd3ZwbXRHYmlFaE9YbFZRTDE0Q25rdjNYRVFESG9SQ1llbXBiS21kcE10U3dVejIxUE1jUlBCU2dwQmxZVWQ0UEd5em1VMDJ1L01tNzQvbm1mZDk0ZmtIOHVHYk4rL2tIUVpkRDVSTXgydkRqbHRnUkJjczNjanZsUnJ0dmJJUE1vY3BBK2w2QUIxM0FGMnZCYjNsUEMwSXZ6VXMrUVBaR09wQkNNR29odEFMY2d5bTJzU0dNU3o1emIyeUg2bUV3QUV5aG9rd3dPaUV3QVdTaEhubTFsUkQ3QmNidGIyU3Y2c1RBaWZJR0NaUUFiTmZiTlNHNVVhQUFRSTNTQkptMjYySS8ycjZxSUlOZ2dhSTREUE0vdm5iQlJWbmlleURMQWhEQVlJbUNPY1pSdGRad2l5UUZEQVVJZWlEekRoY0RrdCtreUpFZGtCZXpSL0JsYWh6NjJaRUZTSlRJTHRCQmZKYmIwTitzd2pQcjkyMElCZ3cyTllTc0swbDhpZ3NTeGhaUUdGWnc2Q093cktJa1p4N1gzeGdRV1RPNXRQTHFURW9vcEFDYVQrOXhBVkJFWVdaZ0VFSmhabUNRUVdGbVlSQkFZV1pob0VkaFptSWdSbUZtWXFCRllWQnh3MU14UmpORDkrOGp3amttVnN6R1dNMG4vL280UUJoakRIb2VHMlRNVENoSElMMGx2T3YvaEkxRmdNSlNqVCtIN3BiL1ZvSHhzYnZGOUZnNkVZWmx2emoxMmtQNzlpcXcyZytlUWNkaGthVWFQcmFqTUlOSGpPR0RwU3BPc2FWZUpzV1F6bEtOUHR5Mlk1YmtMbkJVOEpRaFRLemp2RUc3N1VzeGpUSzM5VjF0WFVjZ1J6K0RJNHN4dkc1L1BPN3dsSE9yR084d1ZjL3RoaVNVVXIrTHQrTGp3S2VjMlVKUXpUS2ZySEI5MUlTYkxzVml5RUhaVmh1QlBPOUh0ejFOaXlHZUJUdU9pWTIrSUhGRUljeWR4Mko1MXhOaXlFT1plNDZKamI0M2RNZ0JoMFhLbzh2R0lmQmk3SndIV21lYzVtT3dZTWlwSTdFYzY2MnhUaDkzdnF0UFBPU3Q3QTZabTN3Rm9QdjVyM1FPaWFmYzFrTVBoVGhkU1RYeTA0MXNoaDhLRkxxR0sxTHplZEI3bUhGZnVncFVSNnRYNWRYeDlVMXFLMnVBVlErZlFFV0pjVTh1UTI1UC8rUkI3SmFoMkIxRGNDaXBNVjRDVTRZZzlPUGE5THFTSTVGU1lFUnh1RDA0a0JxSGNrcGZ2WEFBcHlHTVJxUmxaeFVoMFhod0JCZHlhdzZMRXBLREpHVm5GV0hSVW1KSWFxU05IVVlqWklXUTBRbFBIVVlpY0tMc1dnbHZIV1loUEphOENVL3hpS1Z6RnRIY3M1Ly8wczJNVHJmemdleFNDV0wxSkdjTis5OFp6RVdyVVJFSFZsRUVZWVJ4cERyeFp2SzY4Z1Npa2lNMGJBK0ZKVFhrUVVVR1JoT0dFTXVQR2hycVlNeWlpeU1WSlhJcklNaWlteU1NeXVSWFFjbEZCVVlwMWFpcW83a3ZQSFRaOFpqekt4RVpSMmplZS9EZitIMVg5ZU54aml4RWgxMVlFVFJoVEZWaVk0NnNLSG94RGlxUkhjZFdGQXdZQnlCNks1RE53b1dEQ2VNQVUwZHVsQXdZVGhoREtqcVVJMkNEZU1RQkNIR2FKWS8rVXZhblMrTUdPaEJaRjNFdzRwQkFrUTB5cm50dTJneHlJQ0lRam0zY3g4MUJpbVFSVkVvWUpBRG1SZUZDZ1pKRUY0VVNoaGtRZEtpVU1NZ0RYTFdSVHlLR09SQlpxRlF4Y2dFeUNRS1pZek1nSXhRcUdOa0JtU2xEdTJWYTFCZ2ZTamt3b08yQmRFMWRRaXVyc0gwL2RnK1ZKeGVIRmdRM1JBVHkrbkhOV293ak5oWFU3UmFoeWJ2TFg1S01DekxFSk1yMS91dm1Rc1BJZ3N5LzFmVFlLVU9MZEh2MjJPR1laZ2hsbTlBbmtsY0dHRVlRb3dOMlJESFZnL3lUaGkzY21FOHNDQW5uU1YwTFNRd0RNTlBXSzBReUdBWTlyT0V0cVhwMVAvL0FOd29yczhWOE1oV0FBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileDiamond", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9WMmx1Wkc5M2N5a2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZNek5HUmtFd05FSXhPRVV3TVRGRk5EazVRVGRDUlVVME56Z3lPVFkyT0RjaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk16TkdSa0V3TkVNeE9FVXdNVEZGTkRrNVFUZENSVVUwTnpneU9UWTJPRGNpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvek0wWkdRVEEwT1RFNFJUQXhNVVUwT1RsQk4wSkZSVFEzT0RJNU5qWTROeUlnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG96TTBaR1FUQTBRVEU0UlRBeE1VVTBPVGxCTjBKRlJUUTNPREk1TmpZNE55SXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QckhzdVhJQUFBTHRTVVJCVkhqYTdOakJidVVnRUVUUk1QLy96NDRpelNhenlpakdYTGZPbGJLSnpLTUZEVlRWdXE3ckF3QmV4cjhYMXpvMDc4ZERkZnp2UmIwT3pYdFhIWGMvVE92UXZEK3Q0K21IZUIyYTl4dC8zR01BZnZGSVhJZm1QWEdCWHpkOTg4UmpmQjJhdDFKN1plOHF2VnVZa3dBQmNQc0ZkaDJhOThsTDlkcjA3YzdmT2pXMnNuYVYzcW1jblp3SUlVQ0FkNHNBQ1VURFBWZlNnMHJ0bGIycjlHN3U4UzlBZ0FEdkZSK24zVnZGdlZiY2UyVnNaZTBxdlZNNU8wUUlBUUxjZW9GSUlCcnV1WkllVkdxdjdGMmxkejMrQkFnd1NueWNkbThWOTFweDc1V3hsYldyOUU3bDdCQWhCQWh3NndVaWdXaTQ1MHA2VUttOXNuZVYzdlg0Z3dEQktQRngycjFWM0d2RnZWZkdWdGF1MGp1VnMwT0VnQURCclJlSUJLTGhuaXZwUWFYMnl0NVZldGZqRHdJRW84VEhhZmRXY2E4VjkxNFpXMW03U3U5VXpnNFJBZ0lFdDE0Z0VvaUdlNjZrQjVYYUszdFg2VjJQUDBDQWpCSWZwOTFieGIxVzNIdGxiR1h0S3IxVE9UdEVDRUNBM0hxQlNDQWE3cm1TSGxScXIreGRwWGM5L2dBQk1rcDhuSFp2RmZkYWNlK1ZzWlcxcS9STzVld1FJUUFCY3VzRklvRm91T2RLZWxDcHZiSjNsZDcxK0FNWUpVQUFBQUFCOGpqcjc5K0plWC95dnlmbWZhS085ZENZeW0rc1FYdFg2ZDNDbkFBSWtCR3NRNWZwT25TcHIwM2Y3dnl0VTJNcmExZnBuY3JaSVlJQUFtU1VDSkhBTk5LREhYVklZT2IwTHZFQkVDQjR1WXVVd1BUSFZ0YXUwanVWczBNRUFRVElLQkVpZ1dta0J6dnFrTURNNlYzaUF5QkE4SElYS1lIcGo2MnNYYVYzS21lSENBSUJnbEVpUkFMVFNBOTIxQ0dCbWRPN3hBY0lFT0RsTGxJQzB4OWJXYnRLNzFUT0RoRUVBZ1NqUklnRXBwRWU3S2hEQWpPbmQ0a1BFQ0RBeTEya0JLWS90ckoybGQ2cG5CMGlpQUFCUm9rUUNVd2pQZGhSaHdSbVR1OFNId1FJZ0plN1NBbE1mMnhsN1NxOVV6azdSQkFCQW93U0lSS1lSbnF3b3c0SnpKemVKVDRJRUFBdmQ1RVNtUDdZeXRwVmVxZHlkbklpaUFBQjhKc0xUQUxUU0E5MjFDR0JtZE83T2ZIeHhhY0FBd0RrMWZzODNpRUEyd0FBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "__ASSET__:file_flixel_system_VirtualInputData", data : "YmFzZSA9IDI2NiA0NiA4NCA4NAp0aHVtYiA9IDI2NiAxMzEgNTIgNTIKYSA9IDAgMCAxMzIgNDUKYiA9IDAgNDYgMTMyIDQ1CmMgPSAwIDkyIDEzMiA0NQpkb3duID0gMCAxMzggMTMyIDQ1CmxlZnQgPSAxMzMgMCAxMzIgNDUKcmlnaHQgPSAxMzMgNDYgMTMyIDQ1CnVwID0gMTMzIDkyIDEzMiA0NQp4ID0gMjY2IDAgMTMyIDQ1CnkgPSAxMzMgMTM4IDEzMiA0NQo"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicCloseButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFBQUlDQVlBQUFERUQ3NkxBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFkZ0FBQUhZQlRuc21DQUFBQUJsMFJWaDBVMjltZEhkaGNtVUFkM2QzTG1sdWEzTmpZWEJsTG05eVo1dnVQQm9BQUFCL1NVUkJWQmlWVFkweENzSlFFQVhIYnlTZXdNdWxUV2R2YTZPbGxXSnBDQ0syaWsxT1krY3RRc1lpcS9rREM4dnM3bHZVU3UzVXBVcFdPN1ZDM1RqU3FXVU1EK0dldisxdGlKZDZ5dm95ajl3NzhWQVhLb21SR2JCaW9nY0dBTlNrTm5GNVY0L1IzOVNFMm9hNHF2TjRkdzUzS1lBMzBBRDFQeGJXUUFGOHZwYVlyTldBYU5WMEFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicBitmapLog", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQm1KTFIwUUFBQUFBQUFENVE3dC9BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVIM2dRWkV4c2Fka1ZHNHdBQUFFRkpSRUZVR05PVnpjc0pBREFJQk5FdDFUSnl0UFBKS2VSbnhBd3NlSGlnOUJOUW1mRURBU3REUUdXWTRRdStjQWhQN013cytqaU94cDR5dk9ZWkxrRkFIVzZYWUMwODhkcWRBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicStats", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFBeFNVUkJWSGphWXZ6Ly96OERzWUNKZ1FSQWpPTC9VRXdkaytHbTBkVE5XQlZqdFpvK3ptQWtKUVlCQUFBQS8vOERBTDhIREFscWRHWVJBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileSquare", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBN2EybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MUxXTXdNakVnTnprdU1UVTFOemN5TENBeU1ERTBMekF4THpFekxURTVPalEwT2pBd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRkpsWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sVW1WbUl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uUnBabVk5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmRHbG1aaTh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGxlR2xtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwyVjRhV1l2TVM0d0x5SStDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJ2Y2xSdmIydytRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRRZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTBMVEE0TFRFMVZERTJPakU1T2pBNExUQTFPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRRdE1EZ3RNVFZVTVRZNk16UTZNekl0TURVNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUwTFRBNExURTFWREUyT2pNME9qTXlMVEExT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tSmxPVEZqT1dVd0xXRTNabUV0Wm1JME9TMWlZMlEwTFdVMU5qaGpZV00xWkRNNU5Ud3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T21WbE56TTFPRGhtTFRJMFl6TXRNVEZsTkMwNU9UQmlMV0kyTkRnMk1EQTRNVEpsTXp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdQSE4wVW1WbU9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNMFpHUVRBME9URTRSVEF4TVVVME9UbEJOMEpGUlRRM09ESTVOalk0Tnp3dmMzUlNaV1k2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEb3pNMFpHUVRBMFFURTRSVEF4TVVVME9UbEJOMEpGUlRRM09ESTVOalk0Tnp3dmMzUlNaV1k2Wkc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BDOTRiWEJOVFRwRVpYSnBkbVZrUm5KdmJUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09qTXpSa1pCTURSRE1UaEZNREV4UlRRNU9VRTNRa1ZGTkRjNE1qazJOamczUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K2MyRjJaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzFNMkV6TTJFM05DMWlNVFJrTFdNMk5EQXRPVFE1TVMwd1kyTm1ObVJpWm1abVpUZzhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UUXRNRGd0TVRWVU1UWTZNelE2TXpJdE1EVTZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMElDaFhhVzVrYjNkektUd3ZjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbU5vWVc1blpXUStMend2YzNSRmRuUTZZMmhoYm1kbFpENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBuTmhkbVZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHBibk4wWVc1alpVbEVQbmh0Y0M1cGFXUTZZbVU1TVdNNVpUQXRZVGRtWVMxbVlqUTVMV0pqWkRRdFpUVTJPR05oWXpWa016azFQQzl6ZEVWMmREcHBibk4wWVc1alpVbEVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZkMmhsYmo0eU1ERTBMVEE0TFRFMVZERTJPak0wT2pNeUxUQTFPakF3UEM5emRFVjJkRHAzYUdWdVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5DQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTnpJd01EQXdMekV3TURBd1BDOTBhV1ptT2xoU1pYTnZiSFYwYVc5dVBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwWlVtVnpiMngxZEdsdmJqNDNNakF3TURBdk1UQXdNREE4TDNScFptWTZXVkpsYzI5c2RYUnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4MGFXWm1PbEpsYzI5c2RYUnBiMjVWYm1sMFBqSThMM1JwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1Pa052Ykc5eVUzQmhZMlUrTmpVMU16VThMMlY0YVdZNlEyOXNiM0pUY0dGalpUNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3hZUkdsdFpXNXphVzl1UGpVME5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgralJOUkFBQUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUE3a2xFUVZSNDJ1elp3UTJBSUJRRlFUWDIzL0szQStNTmRXYzZBQTV2RS9hWjJRQ0FuS1VCY0xwL0FNaEZ3TDc2NEFJRUFCRVFHLzgzRUNBQWxDTEErQXNRQUdJUllQd1JJQUN4Q0REK0NCQ0FXQVFZZnhBZ1FDd0NqRDhJRUNBV0FjWWZFQ0FRaXdEakR3Z1FpRVdBOFFjUUlNUWl3UGdEQ0JCaUVXRDhBUkFnc1Fndy9nQUlrRmdFR0g4QWVPajRRUVNNWndRQUFRSUFjT3ZyWHpDK1BRQkFnS1NJSHdBUUlPSUhBQVFJNGdjQUJBamlCd0FCQXVJSFFJQUE0Z2RBZ0FEaUJ4QWdBT0lIRUNBQTRnY0VDQURpQndRSUFPSUhBUUlBNGdjQkFnRGlSNEFBZ1BqcHVBQUFBUC8vQXdERGpoU0RtSUFyY1FBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "__ASSET__:bitmap_flixel_input_mouse__FlxMouse_GraphicCursor", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQWdDQVlBQUFBSVhyZzRBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQW1SSlJFRlVlTnEwbHM5ckUwRVV4Nzg3MllTZ0psVFNTaVdwVnZyRElxaEZVSUtnK0NlSUlncWVGRS9pVFJDOHBMUVhqeUwwNGc5Q29tWFRKSVcwT1ZVRU1UZEJSSWs1VzZXdGtLSlNiR25EcHNuNlprMlczVFFicytua3dkdVpuVm0rbjMwenczc2pCVUxCQ0lBcGRNbGMrL3orZDlScTVMbHVBT1JhTzhrZkR5ZW5XMGJ5YU9LZVl3RGpEMDNUZEFnSlJFUkhJTkVlYUpWS0ZZeEprQ1NKajAzWVJYTC85bVZib2Q2QmtIMEV1bWxTdlNjMEVnTnc1ZXAxakE2UENJY1lnQU0rUDU0OG5zYXh3VUdoRUdaKzJTaFZNSjlLNCtqQUVXRVFDMkM3cEVKakhpeWswd2dGZzBJZ3JIRmdhYm1vaTJkbWt6amMzNzlueUM3QW44MHQvRjdmMFBlQ1F3NzE5UmtRT29xUlBRTzRmVjBwNnUzdzBCQXl5U1FDZ1VESGtLYUE0czkxYkc2VjlQN3hrVkU5a29NOVBSMUJtTjNFVWkwS2JpZkd4akNuS1BEN2ZJNGh0b0RWNGkrbzVSM2ovZlRKVXdSSk9JYllBbmgrK3I2NlpoazdNejRPSlI2SDErdHRHOEphVFg3N3NZWkt0V29aQzU4OWg5U3JtYlloTFFHcXVxTXZWYU9kRDRjeEU0M0M0M2JEVkU4aWpnR05tMjIyU3hjdUl2Nzh4WDhoY2l2eFdTV0dmUDRUYmV4K0VtcitLVjhxdFZ3MlEyQ3U4YmFBVk9JbEZ1YlQvejZTWFdBdTF1N1J0MENhQXJJa25Na2t3UXVjTE11UW1PUTBReGlRWFlEWGkxa2thR2tZWTVEZExqNzBsdnhCaDhuVVl3SGtjbThRaXo0MUw4a2lMM1pVbzdjN3Jja0c0T09IOXlnVThuQVRzMWI4cytUWFNGd1ZVbkMrRkQ3VFh4czNpemtSNGtZRUx1c0o0ZUkzbTRuYkxZT1RWS0dRM3hEeDU1YUxWNjBmSTcvRDg1ekltMTA5Z21ma3QwU0wxMi9YdmRUZTdkYjEvYThBQXdDWlVNUU16UW9keXdBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorRotate", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFUZ0FBQUU0QnNjMGZNd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQkVTVVJCVkJpVmRjNUpEZ0F3Q0FMQVl2ei9sK25KQkJjOFZaMFNRZkpKYVFOZDVFQndmUmhVaVZSNG9WVnA1cHp2TUhDZDRhQmlWR0k3MmlXSERCeHVVUEg1NFFNNWNROFhwbTRKVmdBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMinimizeButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQUIyQUFBQWRnRk9leVlJQUFBQUIzUkpUVVVIM2dNSkNSMDFlRVp4RlFBQUFEOUpSRUZVR05OaitQLy8vMzhHQWdDdUJzWkExb1JOREM2QnJoQ1p6L1QvLzM4bWZOWVQ0elR5QUNPNjhZeU1qRmpGbUpBbHNacUVMRWRVOEJBYjRBQzRjRkxGc3d1SW53QUFBQUJKUlU1RXJrSmdnZz09"},{ name : "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoLight", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQVlBQUFDcWFYSGVBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQnE1SlJFRlVlTnJVVzR0dTR6WVE1TktVYzNmcHQvYWYrcE01MjVLNFJRQ3gySnZiRi8xSTJ3Q0VaRWQyTk1QWnQwTGx6Ny9LQzMvb1NkL0RyN3JCOXNXZzZVN0E5Q295MmhjQXB3ZStpNFB2NC84Q0FSUzhSM2VBbE5ld3VBNC9RNCtTMEw0SU9EMWdDcFM0RC81cUFpeEFsSHd2SW9PVHBQQ0VtcDVHQUUwQ0orTzZqQk5rQjlSVFRLSTlDTndDR0wwWDdUd0xnS3lBWlllSUtUVTg2Z1ExSXNaN1ZRRS9TNEE4NzQ0S1h1b0RNdktPVm5XVWdJQ3NSUWNKRkpBeFJVeDdFSHlGY3dSY0EySTg4QU5rRjY5SlVRWTdEalEwaDVZQWI1RkFEdUFxRnNGNWhvQU93UHZ4K1E0cTZBYjR0Qis0eHdscTREWGdKK1cxWmc3c0VERFdMc0NpQ1hqK0ljd1ZXbkwzU1pFK0FwWkFjVlZGRmFSNGRqN0FzZ0MrSDUvWndROGcwRzRvd1EyUjdRNnZYNVhkSHlBYkFHOEtHZmdkMnU0UDRKczR4OWZqZm5ieG5YMDJTclNKM2RkMi9pU09UUnkxZFlMcjBRZDBBRDhBeTRYa2FVUjRvZkkzTWxvaXhkWGlPMG9ld1M2d21xSUdWSUFrUUlKZWp6WCszbVlrUldnS2x2Ui9lZDBtS2poTi9pY0Q5RmtjeitMMzQ5b0t6cENGbzBQZ0RmeUk1ZUZaMmUzeWlBL3draHEwOHdVQXY4SDVJb2lRU2tCUExuZitKcFpHZ0JWQ2krSVV6YWpRa3BWZURhUXZ3WDg3UUkvMVRmeE9tb1NtQUFSL0ZZUlI0RGhMMER0SU9VRnliSitVVUllN1AwQi9QNERMOVNaSWtHYkFRSUFFdjRqZEw0cGlNR21xQWp3Wi9RVFZDVklpSDdETW9BRUJBL0FuQ1QrTzQzZEJ6aG5zZWhBZzdmNFQvRThnQ3NIdlNzSlVJVzBtbzcvSVVSZ2tKd3lpL1dzRWZBSitQd2dZUzVyRzRoRHdDZjRDU2lsR2xyZ2JaS0FTckVZclo0b2hMZDNGMEhkV0NQaHhrUEN1S0dFUkpFb0h1QjdnaDBwSUFhOGxSaWVSTVZZbFd6VHJnMHd4cEJFaGZjRWlTSkFFSUFudmdvQXpSQUpwLzJkbDUyVitzRUtJYk1mN0o1RU00YkljSWJWRTFXZWx2bG9PZ0k0UUNaQ21nQXBZaGRldjRzWXQ4R05wOVlaSHdpOUtpRExCNGhSQUo4TVJuc0VSRG4vd0J4Q3dnTk5hUWZvTXdHVmtXSlQwR2plcVo3ckhUUWtSTldoalJabmdHWlNBSmpITW9JRUNic0lrQnZnQi9BMXlDU3Uxcm80RDU0d1BvQ0FaaWtwZ0xTcThLZUZ4Z0tuQ0I4aW9JTUZmSUwxdWlWTGJhNzJGWVRBVEZTaHdqTTFSeGpDUlJlejRKbXI5TTZUTkMrUU5sdXk5QnF4cEJqTzFnQlVleVZBRGtxRVJVK0hHUmlSb3prNlRrNm5TN0N5eUpZWVRzeDNpQW0xeEN0cG94ZWtZUlUzVnUwQVh1TW1aMlI4N0ZSZzcvVDJyMVYyVWZvRDNXYTk5bmhtcjNhMEE3WTk3N1d4TVQzZFk2MEV3SmtJYnRMMnNuUDllOEdZWUpLZU5aTzF3VDdTeE1HbTVpci9KSWd6dVVQL2Z4R2MyY2R3VVFsQTkzc3pBRElQUkdKcVYzbDBQMmxpeXJKV2xMWW5QVk1nRHJzcTZBUUdhU3Rnd3lSSjFoVnBDTWw3ZkhuY2VnVjlFL0Vid0MrUUJzZ3orT0k2WFl3MHlWa1VORmhIZUlOWE5BNnkrR2twdGQzYitDbVZ0aGZSMmhZS25ReW44QVNSY3dUUlFBWmFQaUtLYW1ncVQ0Z09zY1pVbCtjWG81bGdWWDRmTTd3T1dSOFNtQUk4YzVUOEthY2FPRjRNRWRxUXZuVnd6cXJvVkNDQWdZQld5bCtDUmdCV1VnSW9vR1FjWW1ZQVg0anFFdEhiY21CeVdrTkx4dllGUGtBckFqdEJGVVlFa3dsSUFubk1tQ2hSbnlvbzl0azNKNkc3S0VGVHVyblJ5NkJUeEd1bEFmOExTRklBT2taMlErRnRWT0JNR05UVnNrUGRYQXp6dVBqWkZPNWpCVGV5MGpBWVhKVS9ZamR6QWNvUnVGR0NuZHU0d2t4dm5ZMngxVlZTek83dGZ3UVIyVUFIbUJSZHh0SnhnRDU0eWNVM0E2NkdqS2V4S3I2REF6ck1DQ25jZkJ5TmFQbkZUdlArcWhNTTlDSU4zT1VFckJTYVIxR3lKTWZkTk5FS3QyV0EzU0pESHEyUDdtZDNIOUQ1VkRHbFBjZlNnNVl4Z21taDV6VXlIVjZXbXNNQjNweVpJSzhDZHBSdkFOeU5ibEFTY2xLNU9FVTdRZXo1Z0Qyb0JiL2VuTTBFdkg3Q2V5Y0dFYVFCcHg4MWxtcGRlaldFOUtUSlRLdk1qaVZCSlBKT3p3WmdMbldBTituajRqSkJHUkUvbS96elRGR21KM2ZjYURkM0lGYW80N2tyTHF6Z0U0UENUamVaSWxQV0Z1NS90Q211NUFRNGdHRVpaVlF3cHZhZkROQ2ZibmVKTEE1d3BnKzl1aVZId1hsZUlRSDlnTlRpTEUyVllxZTZpZmlGUE5IZW5HaUxraEVRQ1U4RHFyMExPRUQwMm55R2lPS0dPWnh1aldSTW9Tbmkwd2lRcFQyaVEwNGttQnp3N3RRZ0hOcDhpWW1ZeTVEMTBxRDJwVGNiTWdCTmtsNENFakpON3lmOExjS0tEck8yOE5ZTG53QXk4bHJ5MzAwODFnZG5Ka1VXSU5YVGxoQkl5NzAwUFJlNGx3RXFPTEFkcDNTQWxBSEJ5V0hNWCtHY29nQnhpSWpJeWl1STdydmt5QWlJMXpONGtUeWpqS2VDZlFVQlcyc1dwS1NJbitCTGd6eVlnVXNXak4vNi8rdS94NkticDN3QnEvZnd0d0FDRGVkRE1KazlyRWdBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicConsole", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFCVVNVUkJWSGphdEpIUkNVQWhEQVBqRzhVVjNNbmhuTVZaWE9IOFVTaFBoSW9ZeUUrNXRJRUdRRjU5T3BDRm82UXFLVzFwd0RvRERTaS91WUFGbmk0amxEM3d2SUlOWEcxMmQ0NUFCZEt1V25qMmxENEFLVWJYUXNkOGx3a0FBQUFBU1VWT1JLNUNZSUk9"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Eraser_GraphicEraserTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROWEcxNHpZQUFBUW5jSEpXVjNpYzdWZGJiNkpBR0lWWGZzV0VmVjBGckZZbGFyT3hhZmJGVGJOdDBzMitVYUNXS0pjQWpiWi9iWlBkOTAzL1MvL0J1bmlqaUZ6bUJ0cVcwMkFyenN5WmM4NDNIL1h2djk4dmpNTTRpOFhpK2ZsNWJqck1FcjJ6dWFPb0U5MEh0L3JZc1ByOHk2OC9QREMwUG4vVEdva2paNmpmRzErZlhQM3E2ZHUxK2pSUnV4cC9OdUI2Y3psWXdOUjlCY3pOcWVYSjh6NnZhUGF0TGdkL0wyOExQRmdOOFNkOS9zdnlBL0JqZEFtR3RxdURWbDJzcWVLcENFNmx1blRTYkxmYm4wRkRsRVJCYkFoU295YTE1Wk9HTElwZ0EzN0FCYTg5Vjd1VHY1OWZiT2lDZDMzKzN2Y2RXUkJtczFsOWRsSzMzYkVnZGJ2ZDVUS05SaTBZVWZNZUxWK1oxeXp2MDNxUjdUcm51cWU2aHVNYnRnV1c3NVZiKzhIdjh6d0hJdGpvTXAyUXlQTHFLNDExMVRhRnVlSUlVbDBVd3BXWGl3ZWo1YUdySzc3dFh0djJkTEJXZm1HNCtzeDJKeDRZWHJXQUZNd0tmcHFkSnJneExNMmVlVDBoUGk5cFNmMDh1QWFCVWMyYTJLbUp6V3VwSTdlYWNsUDZHWm0vSGhTYlBySTE0KzR4YWZxcDNPcHNwa2NHYmEwU1lsN2hlcWlwb1lYT2d6dGRKYVdwZ2o3VlRkM3l2Y0JHYWRkR1RaWHZiTmRVL0lGaEttTmRjS3h4VDNpOW1ibS85ZDJnVW9JaUZjSXFqYXdPbUpJQllxajRTY0J1cmtQeG8rL2dmZm9QNzhENzBuL2cvTkZLbno3L2FnZlkrWE52UG45azlkVDQ5MmhoOTBHSG44MjQ4dms1Y3YwNHBSL3lFK3RuWDMraE9rQ3QvakFOb0pkL3RQclI4aWZseDgyZUZ2OTJEd2ZMbjhBQVN2cFRzaTg2ZnhpTzdERWsvRm1ad3pxQnowOVM5VW44SElILytBNFErRS9GQUtMNnk2ajY0dk9QYlFRVFlQZnhpOElmKzIrbjlQeGplOEVEcmZNUFV3dTArTm53WmVjUDZQMlM4Y2NWUisraG53UlUvZ1MxUkgwQTEzL1U3Tk1jUU9ablU5OWdBVU0veHJtbmwvLytYc2lBNHo5cDlvbjVjNmo2eWJQZjRjZnpQN0tYb3ZOUDc2TG9Ucnl1QmN1ZjFjT2puNk5lc2NkdkNuK09Rb0pTb09FL1EzQUtJUG5wRkhzQ29QV3o5Tld6S1B3RkFkNy9yUHh4MVIrZGZvNTBQZXorbjZJL3IrL3NEVVpFTmo4UysyWUN2ZjVmMktGUDRPY1M5YU03UURWL1ZBT281NS9aOVZKMlFDLy9NaEI3L083eTUzUzlKTkErLzBVamdSOURkUkt5YzgvZ0QyY1Rra01oaVo5SzMwazRDYkQ4Mi9sbElEMS9HaEdnNXM4Qk1zNGRjaWlrNVU5c1AybitKZUZJemo5SFdUOVIvdEZWc0oyQW5KdWZmN0dOSUp1ZmhCdk9PUzVYUDlZbXFPYVB1d002K1JlTC9QeHhhd0J1YmtINjM5SDVMeFk3NUZ3cVA2U2F2S2RkRG4rT2ZwaFZVYk9DNVVmOURrQ2JIMnBoakdJTmc4L21oKzJFYkdRc0F2K1IxSDlPL3JEMVYxaitNT1NJZ09TSDdZVElIZk90NUI4aVNTSEJjd0pQZnhJVDNuTWFuWjhlTndGS0o0d3k3M1ZDU3QrWXlGQVdlNUxTd3lvdkZaVFAveHZHVWFnK0pQdFI1SDFjbmZCRDRmRFZYNkZDaFFvVktueHNMQ3BVb0lCTFJtSEdqTTRBUnFxcTZnUGlQMUhNM1VabjEzZmJBQUFBU0cxclFrYjYzc3IrQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXBwRE9oQUFBNWNHMXJWRk40bk8xOTJYZmJ4cEkrYm02Y1JQSWlPNW1UZVpnWG5UUHpPNytuNUJJTHQwZFJGQ1hGbE1RUWxDM254UWNFaVZnVGVSbFpWdUxod2Y4K1hWWGRXQnFOVmFSRU9iaStVWk5ZRzE5VmY3VjBOWGowdkhlOWVERzJ6eGVPLzJKOGRMN1EvY0Y0TjlLTWZ6MCtYN1NzZWNPejVqUC9iTGpyTFJyK0sycGVIdmE5aGE3N0I0Y1RiTWQ3dHJkb0cvN1lQajFudTN2NzdBb2UvczhmRFlmWGk5NkkvZG5kbVh4Y2FCdmFWSE8xMTlwSW0ydnYyS2R6N2NJL1BENWllemJabm5kc2o2Nzl4UGFlYTMreEl5NzhjZjlrQ3BmY09jWXI3N0FPbS9PTzMrc2ZRaWQ3UjZ6bkhtdndPWHIySGg1a0QzQ2ZmWUJOYjRnYmU4K3gyVDNtRjlnYjRQZnhCQThhOVBEYllJek5NVzIwUitlTGJzdnZUV2puaEs0K3Nla21SM1E5YWc1M29KZkgwS3VHM3ovUnp4Y2QxaGh3bWY2SmljMkFiVFJZWTFCalF1TVhRdWJmVmNobzI5b08yM3JGdnYvRVBsMncxdEUrc2oyejI4Uk12eUZtK3Fvd2U4Z3gyOWN1R1M0ZnREZHMzNVUyejhUR0ltem1HZGcwbE5pNGJneWJSZ1kyYm9ld01ZM1M2T2dXd2VNUVBBN0IweUY0T2dSUHg3ZEh2N0c3VEgzYjV1M29oS0hXZE5nRy9xRVlnTTg0Z0x2YWU2WmM3eG1NVExXWTBrV1BqSUxKTG94b0dzMHNOSjBDYUVxYWxvV21wR25PY2tjblF0aHFLU0MwUnozYVkxTWJoZlE3RG1rUHgrTzU1bkpBdHppZ05nUFRZN3E0clkzWnAwOXMyeXgzMUNxeDFEMXJ1ZVBXZEN1T1c2ZnN1RTNENkZFQ295SGIrNjdLdUpYUkthUnI2NDJPMEtBRHR2MFNCK01OTldqSnRySUVRbzNWNmsrSVVHWDlLY0w3YTRtTm9QUStZdk1HTllQUTJlRG85Sm5XWElFMXZEWFd5ZVJ3MTZvNHNCb0VUWU9nYVJBMERZS21RZEEwQ2tLekZVQVQ3RUUxbXJQdjE5cm5lMG5PZXR4dGFCSk1UWUxKSVpnY2drbnRGQlNGS1J5RldUQVo2dzNURXNmWmt4UmxRazRxajlHZE0xRVdRazFDcUVrSU5Rc2k5RlNKMElUaGM4NTg5WXNjdmw1WFRUS1hya2xxblBwbzlhZjNGaWVqSWs2UE9FNDdURXN1bVczdnNiK2ZBQmVPMW5jY3JXSjhCUDJPd05PeUNCL2NuNHRQeDhxd2J4amJSUkNhM2REMkc0U1FRUWhaaEpCRkNGa1U4SUZVWXhFZlBBYUdLMnhER1F4RjNEeGh1dllYOHhFK1VlQ1hqYVJTMGJLQjFMc2NTbU9hRlR6TFVKWUtueXVEYVhTTGdmbUVnN25MRk80Q1V6Qy9CK21Henh6UWJ6aWdMeG1NVnpFWTJ6UENzUzFTTTJwSElpdU1nVk5qNDlYSTk3Y3F4ekZHcHhpQ1BaNS82RlhDYXlNeWlOK3l6KysxOTlrSkxZNmFiaFlPYmZTR1ZkNU5iVFlJTnVSUEFNN0x5alpVUSs0M1lCYWVkekQxV1duc3NnbFE2RnZISmVUbVMzSTJHbG5PaHJGU1phc0swSytNMTg3aHFCaEFWcE1BMHFlU2JvbHNhWU13Y3JPSURkUWlYN2ZRZ0VSd2F2RVlDSlZxSmFOUzFxMkEyS29PMERIYk84VUIraTVUemZUdWN2WHNMa2d0aXRIREFLTTM2Tkc3REFFblNKdCtHODlnRmFJdWpneXFWYTZIcGhzdWh3ZE1ZRUY0V25OT1huQXlBSVNKMDJKMnM2Q0NqWmxlR2ZNNSs5Qkw2bFUyWmtLamR0SFhBTnJQRHJnbDNQQ2hGS1pTd3EzdGxsY3JpK2VYSGE1WDVzeGFObTZLZ2RrVDJXWnVib29qV2NWN1U3c2RtTVpQQjlNMXlvTVorRzVOZzlBa2JTeUdwajR2N0h5UXR3WWdlaFdVY0lTMjh5cC84bEZTUXM4cTRIaDRWb1d4SzB3RDEwR0VjZmtxQ0pwbkMrY1hiQU41d2VKRERGajhNRlpvNTBZQU1WaU56MmdiNHJ3NFp0di95SWxiTzRSc2w1QkZVeGxCdG5IVHZLTkZ1SkwyZ1pwMHVOSEZtQVNnaGJrc3dOYkl3TGJKczQvTXZGSDgyaVYwV3h6ZUZzZTN4UUdtRVEwZnBwNDBvd1RlOHZnQWpYOHhNTXNGdXZFNEYrT3Rpc24vSW1xYVJMT0FvcHFHU2xGYkhFa09aQnFPZ2FJS0hLVnhuNC9qQktlSFhlMlBNaU8rRUpERnZFRTFrampRd2VoTWwyNnNjY1RqYUJaQWpxTkRuOGdnSFZIQnBBTXNSSUJwdWdrazdxU2hUcWkrVys2MFZNRzhRV001QlFscU9GdUpLZmNlUjlIdUphZllzOEVTdWVJRDlMWGZjSi83RFJxZ1MrVUVPOXBlMU1kR2pDZkpZaWQ0VXVsYW95RXFHdmc2S3dXdlBGUjl0TjUvc0wxSC9KTU1WWXBCS1ROdzllYThTS3BQN1M2dVVzOG8wNWZNcldSakp5WnVob0Y2cGFNbjU2VmNaWGJQeUFqZ3doaWxncSs5TXZDaUpqZDB0TVd3MVR2ekdKN2ZjRHhQRkRVeGtEUUYzeEVtbUcyY3NIRDRoR3EySGpyS2VLK0FJWWJBS2lPWjREcUVwTUU5RzllUXdyMFpkN1RKUzgyeElZd3RDYzhPQjdSRGlMcTgxTWpsbUxvZDJTTERoN0g0a0N5YUdRY2ZoQTg1R25Pck14NExyOUpPUm84cVVXeEdSSEdPRG52ZWJJaFQxdFFJSndqTWI1NE9tNUpQS1d5M2NOWnh1Q1E4U3IxQWlBTmJCMXdhQTVJR1lveW1lUWM5RElRYXFwSEFWRnN0QWxIM2NqSDhRUjB0OGxtQllxaTJLNkpheUh4elQ5MXpwTlFyNXdackdnUFZVb0hhc3RUSzNPUjFBazFlS01EYWVPNmZuS0V4K2o2MlBlYUE4KzhBdE80VkJub3pTQXBkb1E4S0JUc2ZpMWdza2RRV2sxTzZNNy9wNUJTSHRpa3BiSngxd1dHeXNTZzRuU1lFc2xoZllGSUx5Sm91SVl1dGlTMHFMQ3JvbU9OMndIRzBFNzZsQ3IrSEFYNjN3TFhtckJEWFNrbU5nR296cHdWU1FzaUNDQkpsS21rVnZRTFFWb0V5MElLS1N4OXplRjhpakhPZUJzRUN6d3J1dThmVjFJdXJxZWNzaVZadjZvS3FLZFZRaFVQa0NFU05WeEFGeVZNeCtSaVdDeXlOampJRGgyNXFIb3FRU3lzWlY1b2kvUVl1N28zaVNsTUZKSmJGcGhYT1ZvT3hXQjJXTkEwZHhFUEZLaDVLQUNuQ3lXRE1JMlhjS0pHcHJPSU9jbkpocWdPZGYvRmhmQkpoMVFheHFsU01MSElmWTI1MTNtdHZwV0grQ3FPQTdHSGVLWi9xRkxBV0tZM25abjZxckFPVWpMeHltS2Vab3JSY1hEemZEckNoY2JjVFFWVStmRlJMbVczTVRkWHdsaVlSbFdHNjJTaU9IcXA3RXI2cGxaL0tET0NUVXBtZzM0Z2ZmVERwQTdsSkxGb2lOd2srb0J2ZmFwQ2ZoSlpuTEZTVVBOSmltSXBTaVFGNG9pcEU0V0VpdGwyWW5UTEdQVk1mRVVOVmlsanRIWEZNVFJXbWJrZnRkM1o1WE5ybFdjMXVpOXg0VkVDUmNldUYzcWJJd0JWV1RPRXJ3YnFOZDVvSFZTZXdTRWdGcDk3a2VMYmllRG9sckhoTFNac05GVzFTUXJoS0haU3dQdkdWTHdZM1A5aWEySkxpdFRnWHluWTdIYlRRUWY4ZnBuc094a0haWTdwWmRWSzdoSjJoZUNjU1RaYVl0V1cwcVJ6VHNIM0F0dzlvZTZCL2FHSGEzTUMwYVZnTFBjUlJmVUJoa2FxZTdKVGg5dzROK1NjTWNZVHIvaWhReHpjNHN3dkpxWG1pWmtCR3QxVTFWdGVMSitzQ0syNjJ5azlZQ0N1ZXR4YnJRUGcvQjBuL0p3KzZCeHc2VSt0WG1NQnRGeWxqTEpLZU0rUGVZM3p3TWpWUmhPREZ3aHlqbzhoc0hKQzNVd2FuelJBbmJWdmJSdy95ejJ6RWxCYTVXT1duZ0V6UE44bXUwaUxyYzVYMTBHOFZzaDg1WkM4d3krTmlQZkZIWEZFSzh3K3d3RzhiSjhKaDdVeDJEWXN5T1V3VkdVV1JOUE9WVDBJU0k1aGtWcTJVOXBrOENqUjVxVEZyMGJQaGsySTh5MGJ1RGJmTE1jY2JDVE9TSHVyRXMwTXBaYmRwQW5rY0JJenYwYUY4bzMwUWRRalptcnk4R3U4cy9EdktNajZJV3lQd0cyV3lSR21hVEI2NW5UVGVlUWcraVNENEZ3YmQyeGhabHNZUWF6TktGREFIT0ZyNUxsRGwxZVRnNHhTd054Z3N1bTNGdkRoT0hlRUc4VUZvNjRpSFAvQ0lsSUtQeEVOeStpaFBDbUtHSkNDUGtqTWs2cm1tVEVFa3B0aVZmR0oyTy9FNUVrOXB6OVI1ZXFsWXdWV3J0TXExbHhkamg3TWozTGVLWnBhUmJBRDlkcFBRbDRMNW91QVBHTnhRMzFwMmVxb0MrSVdzSWxiTlJiQjNsT2s4WVJlTDVKemxxRXJKSm9LK3g4RWtVeklZTGVwYm5MRHRWMmdjOHhhVExzTzNhQmFmRTVFdzdPWW5TMFN0alJSTVpYa1cvbURZdjE0TW91dHZQWVROeG9UZGVXU0ZxWWR3SGVNTEE5NGlrS2VwZXppTUEzcU9BZG1pQWZWL3NJZXNPUmozOFpEeG1QWWRVSE1HalQrSWhuYlVJYjdjRjBJNHFVdlJQYWVwZTZwMXlhQXVzV1kvNk5FejFoODNlQUhGakx0VlY1SDNLWHdNYkwvTHB6SmhvTHJhSDh4dWlkZFZEUFpmTU9DUGQrbmloK3p6L2dqZXdES2dWNncwOEg5K1pKY3VkdkgzcjhDK1Y3Q3ZjZlByNkJVdklYYXg3d2lkSHhQZFF5NjZYVnlSNUxLQmRxRVEzNWlEbU5TbzZKNXE0ak5KZkdZdHZncmllOExGTjJZQXVleWhJYlh5dXlURUo0R29WTWVjRmppbW1tQWRFcXhUQzdhQ1lEZURjUW1KUkhDb28yYlJpeVFaeGI3VGpIM1ZCR2lSQUsxYWdEY1ltU1NJS3d6eUx3VnMwc2hVSDNOYTRKZ2JVYTZ1MTVLdElOblEvWEx3QldCaFBiUEgwOWhpKzJuSzltcFNhNUxVbXJYUWJpQzBFYnFiYm1UVnVzZERackg5TkdWN05hRzFTV2p0V21nM0VOb0FnWmtGc0FqaGhOdFBVN1pYRTFxSGhOYXBoVlpCYUkrNTBQYjRHdFlQU0hwUi8rVXhGNVBxaU5QY0k2cUp0RXNpN2RZaXJTRFNiN2xJZXpnNSt6RW93dkNDZFZDWHdSaVV0MVlUbDB2aWNtdHhWUkRYUmhBVXdzaWhOL3JJOFh5NFI0N253ejNWUkRjajBjMXEwZDNBNHIzRWlydDV3dUtGMjA5VHRsY1QycHlFTnErRmRvTllmUlJtK29PZ1lEUHdJNlA3VGpQMlZST2dSd0wwWWgxN0ZHalRYSnRxZlpUSUc1eUlFT1VoUW52ay9hYzUrNnQxVXVmWlkyajdlZ1RZUWQrSWZUTmozNnpZdHdrSllCK1Q0bFcwOVFuWFZ0Z3p4VmR0WE9HaUM1aTJpZXByUzYwa1pnZVVLYkxyWjZNVDdqVzZUanUrMTJxR2U2Y3QrZHhXMXFudGpGTjF1VWZ5TUxsLzNWL2U2S3haYklVNGJYR2N4cmhjYVIvTDllRFk1QWd5VlIya2ZzUTFKYUlvOEY5cTcxVkFydW9tYTRJeUZBbTl4N0s5SysyRXIxLzZQVjhqalc3RGFYWlROS250OGc3bWEyU3g2NnpKeUEzR2F6aUc4M0FTd3lxN2MvazRGYnZPSGVQME5NSndiS1R5RWZ3S3kwS3BiaTluN0RhNmpNbU5sR0dWSEhOUjhsS3EzS3B1Y3NjNFA1TndqaUNjeDVJL2gzMlpOZ3pIU1lOaDVySGQ4WjFkK2N4TXRKZDhvelhSN0Qwc2NzWWFFaXpBQ2F5VG4rUFhHUTNUbFExRzZCanAwMjVibjZZNVJ2cmM4dGkzMk43QU1XbzVjN2VocHpsR3lRdnJjbzlrS2Q2Lzd0K3hianprdWdIRldEUzdEUzlkZlp1bkVTb1h3b2p1bEgxaEsreTM0V1E0eXJMejBmaTVFMTQyMVRNUjNTbWtEdXZiOXp2V2hVMnVDNUgzakxGOXVaclFha0V4b0hwd2RScWRKSnpCQ0dtMVpMOGdnaWVjMlBiU0JoZmRPTTMxWXY4dnJBeHIzUDA3MW9lTlNDN2dBL0xEWlVRYkxGV251bTJycFV2bTBneWViRHJydUJLWGRvSzlMZGVZNjJwSTV0NXM2czZTRXIyYkxxeUpWR3g4VGV5MUpCV2xrbmZOTHZNYjA1VGNNdUJmbXBKUG0xTnpxcWNvZWF1VkhEMmhrcy9tOEUrSkJReXNUbEhDWHV2dXJ3bG5VN1NTOUo5VDRySDBidkg0UWhiTURhNnp4THp5M3FCL3ZkZ2JSS1pUNTRqVElkWklnMi9iWTMrdjhRMlpZaDV1SGhTZU85cVZ2emV5cnhmOTNUMzQ4eHp4czFsY0RMSEhpVGJWL3B0OElMKy8rd0pYdVhub0szOWtpUHFSY3piRVNpNFdVME1wKzVYMmhwL3hENjBSTzNJejdFL2kySzgwWFRwNmcvWGxBcmwycmsyMHo5Q21YUGNoOXRyQmhhSi9obHJCai81VyswK3RFZjZUenR4alQrVnhYKzhJM3hWMXFQWDVtZjlQVzJodDNOdGl2V1A5MHd6dEovYlpaVnZnRTJ5YjRZLzlkZGkyTnR0RDkyamlrVzMyVjJkNzRKc3Y0UkMrM1dzSGN6UVh3YlA5azUxamFrMnBsd2ZJYnBTdlVEMmZGLzZUenV4aFBmd1ZWb1RaV0sxNWxZcmpSa1ErMllnL2pod3BxczB1eVU4SzVObVdudUl4dzNvRytTaDgyUVl1M0VWZFk5Rlg2bDFDblByOE5VY09sdGhFMFpKbHVoWFJteU9zUzczaVAxWnlqdFpCM0V1WDdoVklJdmhSczNmWXg0L0JHV2JzakVmNFhyYVAyaCtweDh2OW9yVUpzWEdwbE9hTVhVMmxyVS93SlFaLzh2d3BqT1JaNHZ5TnVMWXpYZktrWGtRMS9wRDFsNVlXbnZPZkthR3JmTTBqbjdtRTBRSHFZUGJkSTdxb3ZEdjlWZ0REaWJHUWcyTXA3eGxrSEo0RmpFTWFmWm1xSDdJTS9qKzcreC9zL2dNY1QzUE1BMTd5Y1hYQ3pyeGdXayt2MlhyTE5PWTk2dlFsMnhiRjdKUWRmMHhMcFBsZEhrWVlkenZDdVVqUkZkaDVqSVZrdjk5YmRwYlpxMmJubXAxcmRxN1orWDZ6OC9lY25XMTJiYkgybTQ3SHFGT2puMm04cjV4dDFKeGRjM2JOMlRWbmYxR2N2WkhrN0h2TDBIck4wRFZEMXd4ZE0vUVh4ZENibktGL1E2My9qZDNqZCthTDNsZU90bXFPcmptNjV1aWFvNzhvamhaZWRJU2o3eTFEbXpWRDF3eGRNM1ROMEY4a1E0OFo4bkEva01kOVplaFd6ZEExUTljTVhUUDBQV1JvaFJiVWxYYzFPOStJbldVdXE5bTVadWVhblFVN2g1SmRCanZYbFhjMU85ZnNYTE56emM3cnhNNTE1VjNOMlRWbjE1eGRjL2I5NGV5NjhxNW02SnFoYTRhdUdYcGRHYnF1dktzNXV1Ym9tcU5yamw1ZmpxNHI3MnFHcmhtNlp1aWFvZGVkb2V2S3U1cWhhNGF1R2JwbTZMdGg2RDQ3Q3JRendsbFNiUWZYcHdRN1ovT2NqRm9yd1pKNVhPZXdNZHZWTFBadnhqRHFMSVhyYnFKdlQyTFBxNVl3MkExRFl0Zm9XZGxWZ2ZGajZTMk1JVU4wTXF4TWtyZE4xcFBtcldpYjBLRHRtQTZWMWJZdHJtM2hMNE84amgxMU0rMXpFclBGWDZMMi9VTnJyMGozc3JLRTY2NTdUN2p1UmJsZTlrYS80OW9IdFJITW8xeXJPbU81MHFHdU1sNG5UOVNVZkpMYUU4MzNSQTJwWDdVbldzMFQxYVYrckpzbitpamtVOGJRa1NlOEFVT1AyUjNPa1dscmhxNFp1Z2hER3pWRDF3eGQ1d3FVRFAwNDVGTnRsc25SV3pHbTJzYmUwcTgvWFVTaXVFZXhWWC9Mak45a1hzbGp2eWJuTkEvWkREaXZ6ZjVaN0hqQmZpYjdCTDlOQ24wUTkra2dYM29ZOVFFSDF2SGI2djBEbGJaVTBiMHRaTE1MdE0yeHEyay93eitGQnVicDBGVHJNaTF3MlYrd2hITzBvQlp5bk5BaHlBdUFCbmxNdzRTbXd0RWQ5aDAwYjhhT2ordlFmN0E3OVJoV0hpSkpuUHFhWVhhSnZBbzgveWY3ZmhYZ0ROcjF2d0ZpRC9ETzIvQTNkdFh2dEZuQmZOUnFKSm1IZmJRSER6Ukgwcml2R0VwTjZSZzNoNStSV1N0b3lXWk01OFErV1RleS9FSjVMT1Zwa1lFczAySGF3R1NCckFQYUFmcFNuWW1LZURFdENkTjhxMjlWdFBwcDF1NG1mTGx1bGxLdE4zRU5mTVM0ZE1ZaWowL1l5KzBJVnVKWDhuWVEwZmRzM3pCQTlHTUZaZ0tkc05oK0QvMTNIYTJienA3WlN2ajJIYzVNRGxwQnNIOHo5aDk0VjkxYllhWW43TGozWUl2UVgzck5aZnFhZmY5ZG02WkljRXM2NXczM3BlTm4vWk05VDFQUzhVMjJINlQybHYxOWpWcjJLWFhXY0NOMkxEemxMT1hJaDdFamY5ZkU3MTBXdTI3ME9lTkhQazE5em5qUFZVLzZMUFZjdVgrcXMrVTdDNmtrbisxMlpxelU0eUxPZUROa3F5dEpIMEtwcVo1elMzbFdFWVN5ZEREdm5tcHNaVzJVSTZTMGNUTFBpRExWbUdTUGtVZVJzNHFNeHNlSzQvT2VKWGxHbm1hcGU1WCs3RStVejU0eWJrcXg5QWJiQW5LNHh1dFg5UjFOeHJYQXNWTzA1WE5reHk2My82SFZoLzN3SEEzMEw0R2h1NWdYbUtFUEtXZGZWc1BRajBMWjROWGVhK2ZvVDN6MDkwY010UDNSNUhweE50eUZYMXQ3UlkwZmJqT2FUZG9LSDN5Sk5iazBsbnJWVGRMVnBWOFQ0dDlsWG5NMVRLblN6YkxhSFdIWXl0b2Q5eitNd1A5bzF2NUg3WC9jTy85RE5TWnEzNlAyUFc3ZjkvZ20rbmFHU3J3TWQ3VXcwOURsY1NGNEV5MEZMemZ1bEpkWE01TGorSlhEL3BsMmdON0t2elFiNTVvKzRUM2h1U0Mvc2h3L2NCYjRnY1lhK29GdmtQOWVoN2szNlR6MUhPb21PNCs4UEFmWHJIOEMveWxsNUlEVlNHSmI1TXlubUYya0dUV2V0eXAwM21yMHJJaXVsTk8rSDVsRUx4TlArQzg1dTdja1BYUURQZFRYVGcrM1VQK2l6MXhNczZZSy9PNU9ROHJKczV5dWJJWmIyRjdxOTRVaWh4M09kZ0lHczR3cWhIeTdNa083NG5BckFiTWVCbFpJeG5QWW9GRk9ySllBWjFLeGhuSyt4Tm0wYjVsa1B1QWNMTWpwYzJCemszUHFEMUtyRGxRWjYxWGxqbFh5aXN2OEFicyt2SjlwSHBIeUFHTlJtcGVsK29NcXVXSVBLendhVERZZ0NSanZIczVSaFRPaERmUUpRRUozRzZ1dENuMFZqbm5vUCtValZid3BhNXZuSjNkWUx6N0FQRk1GU1Jnb0F3UEhrb01lZ010YUMyY1JvOTVaRStkK2lsWGszQ2RKNUdNYWw4clh3VHcyeVNUOFhtVVU2R3lmaHhHT0ZjeVlpTXpjT21Vc1ZvTjlpRjAyeGh2aU8rdlpFVjQ5V1dsWEZtM2piNGUyQ3NWczNKOWdKUTdNNG9PUHZSMmNYejFEQnhJd3NaYURKR0RnOVlGckxQVDdtbWpGQVdlUVU1UHQ2NktYQ0RMeFVBYnVyVWpnZThSVVBMbUlveStWdnR0WHJJZHhpLzFENnRuL3cxcEh1NGg1Q0YrQnR0MkMvTE9sbWEwSlQ3VjlkdFluOUJmUGNhNDdUeHYrRFROKzBUT2lPQWg4UGdVei9kOHpLZitNSGtINnY3S3J0ZUlaNFVhUUVUYi9KaU0rWDJyWlVuK2svYWJCKzk3ZUxtSHNkL21xSmNqN3RJSzR6a0QyaFJWTlU2eGdnbml1aFQ3OWxMVno5TkpuNkoyWTZISGNoaXllc21Qb3FjdU8rMmZLTSs5eXpLZExNSS81UVlZaWQ1QS8xdDlHam80K2Uzb0ZXTmxvcjhuUTdxREgyVUxkK0FtUHB5eWloWGJjUTl1aG80MW9ZcFhjSEhWb3p2YkJFVTRpMmx1Ti9qeExSU05aWTlhOUplYlBrbVpjRTc3bEZXdVhXUEg5TGxoM0c5OWFmdnk3eUxBUTQwSHRHVVY4Vk9XZmpQamFYeUFYeXdnV1FYMkxYZWNkMXZYVG51MmdXazQ5RG45RWZncVBmNDN6YlI5eDNlcFZ3VlVDWmYxb2E0Mzk2Qjh5OEZpR0I1SjFmWlc5YU43S2FNL1RtaUthOXlpKzlVWnhGMVNNR3ZoZms4Ly9kTkVUYUNmMFJkU2FmbGtqUHgxTE9kOXpqSlVlTUpjaHBMQ0QvczkydUtleS96VkhQQnRZdlR2RlBKdUxTSnRvUDEzdUZjUGZKcTZaRXZYQTRIWE4wWGVEbU94Mi9DOEhuL28xdzBvOGRiSHg5SVB5ekUrOGxhdTMwK2FPVnFVRmFiS1V4eU90TzR4WGlJdjNYaHhnajkrdmZKMWh2T3E2L3NVcGdjUDlXMmtZbDJTeEduMjUzaUYvcGFHOCttK2RWaHBDckZWMjFZRmN3Vkt2TmJ6OXRZYWRXMkRscjFOV1RhaFpXTHdmN2hpdkQ3NWVjb1p6MlV3czEvTFZUUHgzWXVMeWE3Ni9MQ1pPcmhXc3VmaExYZmVkeHNYZnNDZTdRTjkveHZSQzFDUkd0MVdaQy9Rd0swanhwc3R6ME4zSVdqVmFSZHRnSEhTM3EyaFhWWk1ZeFMvT1lEQWFQeXZpSlJoVFhZd0NvVmFqSzdHa0cxd3YvY3d1enVhWkJlVDdERFdSbnVBU1J3bG8rUFlOcFQ3RCtZWTIycGt1U3IyRnM0dmRtTlNubURudXhxUU8vM2w0N08za2tGZFZJWmlQNnQzcXd2ZFlEL09aOTRwV1MzOW1ueTB1RFZpTHQ4ZDFKR3BCSWFkTmJGaDlicnFEbG5DT0k1enkweDJjYTRqbXAxdFlCMlBpZkFMOHBlOFc2dFA5MW8wc05LdkxhRXVhZVpoZ2I2RGZkeVVucWhtOHYzTEtRN1M2ckRiUUY3c2tEK1lPNVFQYjdxOThWQ2pHWmZJRDFwYWRhNVFMdGxrZnp2a244TEFodW9oSzVidXdQbkRGTW1relNiU3hNcWVORlRyd3Q0VzJzb25lMGYyVlNSTER1RVFlSXZaenJOeUYrRnhVdzRvcStCRkdXVmZJaVc4MGVyY254RlhYT0s2aTk2N2lsY0RNMlJ4amJ3OGpYWmdmbWVNWlFqb08rcUp0SEI4TnZrckc0SjVybCsyQmlvb3FkY3hwK1lpdjBVOXdJNUdvbkZsWVZYMTZHYVRoZjBjMkU2TC9HLzRkN1V5dUY3M2Q0Zm5DOHp3TC92a0QrdGJBLy9tOVVTRHg3M0FPQk43czZ5QXFiakRqTWczeTdKZVlyUi9pNkp6NzQvN0pkTUd1c1hOOGpvMTl2akRuSGIvWFB6eGY2SDd2Nk9oOE1XY04yK3o0UFhzUEQ3SUh1TTgrd0crOUlUWFBzZGs5NWhmWUcrRDM4UVNQSGZUdzIyQ016VEZ0dEVmc1dOZnZUV2puaEs0K3Nla21SM1E5YWc1M29KZkgwS3VHM3ovUm9UdjlFd011MHo4eHNSbXdqUVpyREdwTWFQeEJGQnNQc1FuZW5oUFlCeStSL1RwTjNjUHhHbENmQi9TVUEraXN3YjdoY3czR2ZUeGtQS1o5QjlTY1FlTlB6bnJYQzdyeEF4WVlrcEY3eHdUKy9Icnhjc1NPNlRUOEE5NU83Ti9ZOVppRUo0ZnNLU2FIL2ZORjI1dFpIcjZOWjNJMldNNkYvTDJ6MGZWaWNEU0JSOWdkanFFWkRmRkpSanVvZ0VQVWpSSHNnb3VNSnZ3N1EwTDNkMFpEYW14NDZKMmRYZnkyMDhmR25vRDZqSVo5T0dFZkx0cndmeG45ZXI1b1FtdlQxeE5xUm5EKy91QVFtbDlzT01aaDdSNTluY0RsZnJGN0NPeHdoSWdlUStmMjdTRnNHOXFuMFBTcEdkb29nVjM3Q0U3YjI3WGhZWTVmMmZCdGFPTzNnd2txMXNHRWlMS1BCQStEOWs5c3NXemFQeHZnc1dkSDJQL0pHQy9Iem9UbXJMK0RGeCtjc1F0by92R1JkYjFnZjg0WExSOGJqeHFkbW9iVXNIWUF4elAxYWZyWU1JTnhiRGZvV3JiT1c0TzNKclo3eDd0dzNHUUhSOXhrOUJLYU0zZ1EzZC90bmVJeHV6M1V1dDNlRG03dDcrQzMvdEgxWWppWWVJdkd6MDEvY2pLaUQrTkR2cVYzd2ovNHUyY0lzWDkwekxwM2ROekhhL3FqL1dNTWFFZWFnK1ptbTVtM3d5TVUyT2h3U0EwYytsODR4QXdNUllIc2RUNzFhaUxWVXlwaWpxUS93MUtMbnpCc05iQXdybzFsc2xNMDVWTW1KZFpqLzNCSXduM0ZKRDNjZWNWbzhQaytiRGdkbzg0TitTaDl5UzR6UlU1ejBDZTg5SWREaE9qSXh1T09kdkV5L1VOVWdOMGhVTUllWEhMM09XemZHOEs5ZlAvRklYdm1GM1NRN3lmdTErRDMyMFIyaGJlbXcxcFhtcnVkeGU3WUtIVEh3NlA5WU1QWnlRRGZla0JOL0IwSU9KaW5OSmFuTkpRNzhaSGNuYnVRVEp6czRHTVVmcEJ2UThCUW9vcEgwRXVDNXUrUCs5ZUwvWk16NlBqK3lTdHNiUGJOYkxIMkZiWENlREZ6NXJFeitzeXgyTy9qUGZmN3p5Tzc5dnNITU1EN0wrQkdKellTN29tTkN1MlArcnZzdG1NMFN5L0dSMFM3dTVGbS9Dc2pxWlkxYjNqV2ZDWWpldGozRmpvYnlhRC9yQjN2MmQ2aWJmaGoreFNOemY0dTJscm93d2llTzJKZ043aUJIZkUwdzNua3B5ckp4SUxPajlqMnZ5RGtMR0pldlF6enF0L1V2SFpiRmMxcnA1QjVMWVRNdjZ1UXdhVW83OUNSL29rSERnNFdEOHh1RXpQOWhwanBxOExzSWNlTURQc0hYUHArbGVPdVdWWGROZGVOWWRQSXdNYnRFRGFtVVJvZDNTSjRISUxISVhnNkJFK0g0T240OW9qeG16djFiWnUzNEI0WXpCV3diZjZoR0lEUE9JRGhha0I2NjJyMHlDaVk3TUtJcHRITVF0TXA3L3htb1NscG1yUGMwWWtRdGxvS0NPMVJqL2JZMUJZSkliWTRvR0pDYTFzYkMrT1hPMnFWV09vc2tGbnF1QzBSU3VnVlFva1NZVmFJVVpFd3F4QTZaUUt0TlVWbkt4R0UzbENEbG13clZ4eUtyaXhNcjh6N2E0bU5vUFErWXZNR05VTUU2b1JPSDFNcFY3ZklPcGtjN2xvVkIxYURvR2tRTkEyQ3BrSFFOQWlhUmtGb3RnSm9najJvUmhUS2ZyNlg1S3pIM1lZbXdkUWttQnlDeVNHWTFFNUJVWmpDVVpnRms3SGVNQzF4bkQxSlVTYmtwUElZM1RrVFpTSFVKSVNhaEZDeklFSlBsUWhOTUZYOEFSUFI5MUdUektWcmtocW5QbHI5NmIzRnlhaUkweU9PMHc3VEV2cTV5RXNzNG44VFRJa1JXc1g0Q1BvZGdhZGxFVDY0UHhlZmpwVmgzekMyaXlBMHU2SHROd2doZ3hDeUNDR0xFTElvNEFPcHhpSStlQXdNVjlpR01oaUt1Qm1tYVA3UzZHVlJlWDZDcVZTMGJDRDFMb2ZTbUdZRnp6S1VwY0xueW1BYTNXSmdQdUZnN3VKc0diM3pTNlFiUGdjVmFRUW81Rml2WWpDMlo0UmpXNlJtMUk1RVZoZ0RwOGJHcTVIdmIxV09ZNHhPTVFSN1BQL1FxNFRYUm1RUVV5M2orK3lFRmtkTk53dUhObnJES3UrbU5oc0VHL0luQU9kbFpSdXFJZmNiTUF2UE81ajZyRFIyMlFRbzlLM2pFbkx6SlRrYmpTeG53MWlwc2xVRjZGZkdhelNWSHdYSWFoSkErbFRTTFpFdGJSQkdiaGF4Z1ZyazZ4WWFrQWhPTFI0RG9WS3RaRlRLdWhVUVc5VUJPc2FpQVJpZzd6TFZUTzh1VjgvdWd0U2lHRDBNTUtMRm15NldibHdFQy9KaUdheEMxTVdSUWJYSzlkQjB3K1h3Z0Frc0NFOXJ6c2tMVGdhQU1IRmF6RzRXVkxBeDB5dGpQbWNmZWttOXlzWk1hTlJ1TUllY0hYQkx1T0ZES1V5bGhGdmJMYTlXRnM4dk8xeXZ6Sm0xYk53VUE3TW5zczNjM0JSSHNvcjNwblk3TUkyZkRxWnJsQWN6OE4yYUJxRkoybGdNVFgxZTJQa2didzFBOUNvbzRZalcydVJQUGtwSzZGa0ZIQS9QcWpCMmhXbmdPb2d3TGw4RlFmTnM0ZnlDYlNBdldIeUlBWXNmeGdydDNBZ2d2c1NaOGZlUkY0VUlxK0ZvZitURXJSMUN0a3ZJb3FtTUlOdTRhZDdSSWx4SiswQk5PdHpvWWt3QzBNSmNGbFVrcFdQYjVObEhadDRvZnUwU3VpME9iNHZqMitJQTA0aUdEMU5QbWxFQ2IzbDhnTWEvR0pqbEF0MTRuSXZ4VnNYa2Z4RTFUYUpaUUZGTlE2V29MWTRrQnpJTngwQlJCWTdTdU0vSGNZTFR3NjcyUjVrUlh3aklZdDZnR2trYzZHQjBwa3MzMWpqaWNUUUxJTWZSb1U5a2tJNm9ZTklCRmlKY1liWDV1ZlpCR3VxRTZydmxUa3NWekJzMGxsT1FvSWF6bFpoeTczRVU3VjV5aWowYkxKRXJQdURMTWNNWGgwTVpsbXFDSFcwdjZtTWp4cE5rc1JNOHFYU3QwUkFWRFh5ZGxZSlhIcW8rV3U4LytQdHI0Sk1NVllwQktUTnc5ZWE4U0twUDdTNnVVczhvMDVmTXJXUmpKeVp1d2xXLzZlakplU2xYbWQwek1nSzRNRWFwNEd1dkRMeW95UTBkYlRGczljNDhodWMzSE04VFJVMU1EK3NXSFcwV1c1MlJITEt5SGpyS2VLK0FJWWJBS2lPWjREcUVwTUU5RzllUXdyMFpkN1RKUzgyeElZd3RDYzhPQjdSRGlMcTgxTWpsbUxvZDJTTERoN0g0a0N5YUdRY2ZoQTg1R25PckE2WGU1RlhheWVoUkpZck5pQ2hvYVhMZWJJaFQxdFFJSndqTWI1NE9tNUpQS1d5M2NOWnh1Q1E4U3IxQWlBTmJCMXdhQTVJR1lveW1lUWM5RElRYXFwSEFWRnN0QWxIM2NqSDhRUjB0OGxtQllxaTJLNkpheUh4elQ5MXpwTlFyNXdackdnUFZVb0hhc3RUSzNPUjFBazFlS01EYWVPNmZuS0V4K2o2MlBlYUE4KzhBdE80VkJub3pTQXJSdXh6ZTRZcmFBaFpMSkxYRjVKVHV6Rzg2T2NXaGJVb0tHMmRkY0poc0xBcE9wd21CTE5ZWG1OUUNzcVpMeUdKcllvc0tpd282NXJnZGNCenRoRytwd3U5aGdOOHRjSzA1SzhTMVVsSWpvTnJNYVlHVUVMSWdna1NaU2xwRnJ3QzBWYUFNdEtEaTBzY2MzcGYwdWhLZUJvbitZRWNaOTkzamF1ckYxZFJ6bGtTck4zVkIxWlJxcU1JaGNnU2l4aXVJZ3VTcG1Id015d1dXUmtlWmdVTTNOUTlGeUtXVmpDdE5rWDRERi9kR2NhV3BBaExMWXRNS1o2dkJXS3dPUzVxR0R1S2hZaFVQSllBVTRXUXc1cEV5YnBUSVZGWnhCem01TU5XQnpyLzRNRDZKc0dxRFdGVXFSaGE1anpHM091KzF0OUl3ZjRWUlFQWXc3NVJQZFFwWWk1VEdjek0vVmRZQlNrWmVPY3pUVEZGYUxpNmVid2ZZMExqYmlhQXFIejZxcGN3MjVxWnFlRXVUaU1vdzNXd1VSdy9WUFFuZjFNcFBaUWJ3U2FsTTBHL0VqejZZOUlIY0pCWXRrWnNFSDlDTmJ6WElUMExMTXhZcVNoNXBNVXhGcWNRQVh6aXVRQlFlSm1MYmhka3BZOXd6OVJFeFZLV0kxZDRSeDlSVVllcDIxSDVubDhlbFhaN1Y3TGJJalVjRkZCbTNYdWh0aWd4Y1ljVVV2aEs5T3d4V1JZTzNkSzZDVTI5eVBGdHhQSjBTVnJ5bHBNMkdpallwSVZ5bERrcFluL2pLRjRPYkgyeE5iRW54V3B3TFpidWREbHJvb05OTCtmRVZhcGxqdWxsMVVydUVuYUY0SnhKTmxwaTFaYlNwSE5Pd2ZjQzNEMmg3b0g5b1lkcmN3TFJwV0FzOXhGRjlRR0dScXA0TVhpMzlUZ3QvWGxDNDdvOENkWHhEUy9yeHRRQnl6WUNNYnF0cXJLNFhUOVlGVnR4c2xaK3dFRlk4YnkzV2dmQi9EcEwrVHg1MER6aDBwdGF2TUlIYkxsTEdXQ1E5WjhhOXgvamdaV3FpQ01HTGhUbEdSNUhaT0NCdnB3eE9teUZPMm5id3JyaE14SlFXdVZqbHA0Qk16emZKcnRJaTYzT1Y5ZEJ2RmJJZk9XVDA4ZzhYNjRrLzhoODNFeStnR2RFTEVYSnFXSlRKWWFySUtJcWttYTk4RXBJWXdTU3phcVcweitSUm9NbExqVm1MbmcyZkZPTlpObkp2dUYyT09kNUltSkgwVUNlZUhVb3B1MDBUeU9NZ1lIeVBEdVViL01YSWo3bExWdlhsMVhobjRkOVJsdkZCM0JxQjN5aVRKVXJUWlBMSTdhVHh6a1B3U1FUQnZ6RG8zc2JJc2pTR1dKdFJvb0E1d05IS2Q0RXFyeVlISDZlQXZjRmcwVzByNXNWeDZnZzNpQTlDVzBjOC9JRkhwQlI4SkI2UzAwZDVVaEF6SkFGNWxKd2hVYzgxWlFvaU1jV3U1Qk96MjRuUGtYaEtlNmJPMDB2RkNxNWFwVld1dmJ3WU81d2Q0YjVWTkxPTVpBUG90NXVFdmhUTUZ3Vi9vRjFnZld2WjZha0s0QmV5aWxnMUY4SGVVYWJ6aEYwc2tuT1dveW9sbXdqNkhnZVRUTWxndEtodlFlOFd2aWp5enFjbCtCYk40bk1pRW9iZC9HU0pxTFdSZ3Frc3o4SWZEUHZYaTdWN0ZkUWdHdHBSaC9oeVh3amhwQzVGOTV5bTdxbldKWU82eEpyOW9FZlBXSC9jNEFVVU0rNVdYVVhlcC9BeHNQMHVuOHE4NE8vRmVSbThybUt3LzRJQkQ2OHRnb3Nmc3MvNzhPNGg5bmszOGdLenlDNWQ3T0x2WDRGOXIyQmY0K2JYMFN0ZVF1eGkzeEU2UHlhNmgxeDB1N2dpeWNYWGlpZkZGL21KU2tsODBUM1Z4R2VTK014YWZCWEU5NFNMYjh6ZnYwZS9aUmNYNHBOQVZLcGpUZ3NjVTAyd0RnbldxUVZiUWJDYndiaUVSQ0k0MUZHejZFV1NqR0xmYWNhK2FnSzBTSUJXTGNBYmpFenhLeEx2MGJmaHNFa2pVMzNNYVlGamJrUzV1bDVMdG9Ka1EvZkx3UmVBaGZYTUhrOWppKzJuS2R1clNhMUpVbXZXUXJ1QjBFYm9icnFSVmVzZUQ1bkY5dE9VN2RXRTFpYWh0V3VoM1VCb0EvbzFuUUFXSVp4dysybks5bXBDNjVEUU9yWFFLZ2p0TVJmYUhsL0QrZ0ZKTCtxL1BPWmlVaDF4bW50RU5aRjJTYVRkV3FRVlJQb3RGMmtQSjJjL0JrVVlYckFPNmpJWWcvTFdhdUp5U1Z4dUxhNEs0dG9JZ2tJWU9mUkdIem1lRC9mSThYeTRwNXJvWmlTNldTMjZHMWk4bHhxOXhGdTJlT0gyMDVUdDFZUTJKNkhOYTZIZElGWWZoWm4rSUNqWURQekk2TDdUakgzVkJPaVJBTDFZeHg0RjJnUnZHTytqUk43Z1JJUW9EeEhhSSs4L3pkbGZyWk02eng1RDI5Y2p3QTc2UnV5YkdmdG14YjVOU0FEN21CU3ZvcTFQdUxiQ25pbSthdU1LRjExYzRHOENodnJhVWl1SjJRRmxpdXo2MmVpRWU0MnUwNDd2dFpyaDNtbExQcmVWZFdvNzQxUmQ3cEU4VE81Zjk1YzNPbXNXV3lGT1d4eW5NUzVYMnNkeVBUZzJPWUpNVlFlcEgzRk5pU2dLL0pmYWV4V1FxN3JKbXFBTVJVTHZzV3p2U2p2aDY1ZCt6OWRJbzl0d210MFVUV3E3dklQNUdsbnNPbXN5Y29QeEdvN2hQSnpFc01ydVhENU94YTV6eHpnOWpUQWNHNmw4QkwvQ3NsQ3EyOHNadTQwdVkzSWpaVmdseDF5VXZKUXF0NnFiM0RIT3p5U2NJd2puc2VUUFlWK21EY054MG1DWWVXeDNmR2RYUGpNVDdTWGZhRTAwZXcrTG5MR0dCQXR3QXV2azUvaDFSc04wWllNUk9rYjZ0TnZXcDJtT2tUNjNQUFl0dGpkd2pGck8zRzNvYVk1UjhzSzYzQ05aaXZldiszZXNHdys1Ym9oZkU2UmYvMzZicHhFcUY4S0k3cFI5WVN2c3QrRmtPTXF5ODlINHVSTmVOdFV6RWQwcHBBN3IyL2M3MW9WTnJndVI5NHl4ZmJtYTBHcEJNYUI2Y0hVYW5TU2N3UWhwdFdTL0lJSW5uTmoyMGdZWDNUak45V0wvTDZ3TWE5ejlPOWFIalVndTRBUHl3MlZFR3l4VnA3cHRxNlZMNXRJTW5tdzY2N2dTbDNhQ3ZTM1htT3RxU09iZWJPck9raEs5bXk2c2lWUnNmRTNzdFNRVnBaSjN6Uzd6RzlPVTNETGdYNXFTVDV0VGM2cW5LSG1ybFJ3OW9aTFA1dkJQaVFVTXJFNVJ3bDdyN3E4SloxTzBrdlNmVStLeDlHN3grRUlXekEydXM4Uzg4dDZnZjcySS9BcnlZL1JaWG11SFdDTU52bTN3aS9EQlBOdzhLRHgzdEt2RWJ4MXZzbkgwQm1PUEUyMnEvVGY1UURtL05id2hWbkt4bUJwSzJhKzBOL3lNZjBpL09id1orWVY2K2Rqa0x4UnZzTDVjSU5mT3RZbjJHZHFVNno3RVhqdTRVUFRQVUN2NDBkOXEvOGwvS3gzL1NXZm0vYlp6Ry9lMjhIZWM0VGViNFpmUFhiYkZDSDdiR1g3c3I4TzJ0ZkczbmVGZkU0OXNzNzg2MndQZmZBbUg4TzFlTzVpakNYL1IrWi80ZStwTnFaY0h5RzZVcjFBOW54ZitrODdzWVQzOEZWYUUyVml0ZVpXSzQwWkVQdG1JUDQ0Y0thck5Mc2xQQ3VUWmxwN2ljZkFiM3ZDeURWeTRpN3JHb3EvVXU0UTQ5Zmxyamh3c3NZbWlKY3QwSzZJM1IxaVhlc1Yvck9RY3JZTzRseTdkSzVCRThLTm03N0NQSDRNenpOZ1pqL0M5YkIrMVAxS1BsL3RGYXhOaTQxSXBUZmdkY1pXMlBzR1hHUHpKODZjd2ttZUo4emZpMnM1MHlhdnd1K0pmODhobkxtRjBnRHFZZmZlSUxpcnZUcjhWd0hCaUxPVGdXTXA3QmhtSFp3SGprRVpmcHVxSExJUFYvT3I1d3dqamJrYzQxNC85Um4xeGRoNWpJZG52OTVhZFpmYXEyYmxtNTVxZGEzYSszK3o4UFdkbm0xMWJyUDJtNHpIcTFPaG5HdThyWnhzMVo5ZWNYWE4yemRsZkZHZHZKRG43M2pLMFhqTjB6ZEExUTljTS9VVXg5Q1puNk45UTYzOWo5L2lkK2FMM2xhT3RtcU5yanE0NXV1Ym9MNHFqaFJjZDRlaDd5OUJtemRBMVE5Y01YVFAwRjhuUVk0WTgzQS9rY1Y4WnVsVXpkTTNRTlVQWERIMFBHVnFoQlhYbFhjM09OMkpubWN0cWRxN1p1V1pud2M2aFpKZkJ6blhsWGMzT05Udlg3Rnl6OHpxeGMxMTVWM04yemRrMVo5ZWNmWDg0dTY2OHF4bTZadWlhb1d1R1hsZUdyaXZ2YW82dU9icm02SnFqMTVlajY4cTdtcUZyaHE0WnVtYm9kV2ZvdXZLdVp1aWFvV3VHcmhuNmJoaTZ6NDRDN1l4d2xsVGJ3ZlVwd2M3WlBDZWoxa3F3WkI3WE9Xek1kaldML1pzeGpEcEw0YnFiNk51VDJQT3FKUXgydzVEWU5YcFdkbFZnL0ZoNkMyUElFSjBNSzVQa2JaUDFwSGtyMmlZMGFEdW1RMlcxYll0clcvakxJSzlqUjkxTSs1ekViUEdYcUgzLzBOb3IwcjJzTE9HNjY5NFRybnRScnBlOTBlKzQ5a0Z0QlBNbzE2ck9XSzUwcUt1TTE4a1ROU1dmcFBaRTh6MVJRK3BYN1lsVzgwUjFxUi9yNW9rK0N2bVVNWFRrQ1cvQTBHTjJoM05rMnBxaGE0WXV3dEJHemRBMVE5ZTVBaVZEUHc3NVZKdGxjdlJXakttMnNiZjA2MDhYa1NqdVVXelYzekxqTjVsWDh0aXZ5VG5OUXpZRHptdXpmeFk3WHJDZnlUN0JiNU5DSDhSOU9zaVhIa1o5d0lGMS9MWjYvMENsTFZWMGJ3dlo3QUp0Yyt4cTJzL3dUNkdCZVRvMDFicE1DMXoyRnl6aEhDMm9oUnduZEFqeUFxQkJIdE13b2Fsd2RJZDlCODJic2VQak92UWY3RTQ5aHBXSFNCS252bWFZWFNLdkFzLy95YjVmQlRpRGR2MXZnTmdEdlBNMi9JMWQ5VHR0VmpBZnRScEo1bUVmN2NFRHpaRTA3aXVHVWxNNnhzM2haMlRXQ2xxeUdkTTVzVS9XalN5L1VCNUxlVnBrSU10MG1EWXdXU0RyZ0hhQXZsUm5vaUplVEV2Q05OL3FXeFd0ZnBxMXV3bGZycHVsVk90TlhBTWZNUzZkc2NqakUvWnlPNEtWK0pXOEhVVDBQZHMzREJEOVdJR1pRQ2NzdHQ5RC8xMUg2NmF6WjdZU3ZuMkhNNU9EVmhEczM0ejlCOTVWOTFhWTZRazc3ajNZSXZTWFhuT1p2bWJmZjllbUtSTGNrczU1dzMzcCtGbi9aTS9UbEhSOGsrMEhxYjFsZjEramxuMUtuVFhjaUIwTFR6bExPZkpoN01qZk5mRjdsOFd1RzMzTytKRlBVNTh6M25QVmt6NUxQVmZ1bitwcytjNUNLc2xudTUwWksvVzRpRFBlRE5ucVN0S0hVR3FxNTl4U25sVUVvU3dkekx1bkdsdFpHK1VJS1cyY3pET2lURFVtMldQa1VlU3NJcVB4c2VMNHZHZEpucEduV2VwZXBULzdFK1d6cDR5YlVpeTl3YmFBSEs3eCtsVjlSNU54TFhEc0ZHMzVITm14eSsxL2FQVmhQenhIQS8xTFlPZ3U1Z1ZtNkVQSzJaZlZNUFNqVURaNHRmZmFPZm9USC8zOUVRTnRmelM1WHB3TmQrSFgxbDVSNDRmYmpHYVR0c0lIWDJKTkxvMmxYbldUZEhYcDE0VDRkNW5YWEExVHFuU3pySFpIR0xheWRzZjlEeVB3UDVxMS8xSDdIL2ZPLzFDTmlkcjNxSDJQMi9jOXZvbStuYUVTTDhOZExjdzBkSGxjQ041RVM4SExqVHZsNWRXTTVEaCs1YkIvcGgyZ3QvSXZ6Y2E1cGs5NFQzZ3V5SzhzeHcrY0JYNmdzWVorNEJ2a3Y5ZGg3azA2VHoySHVzbk9JeS9Qd1RYcm44Qi9TaGs1WURXUzJCWTU4eWxtRjJsR2plZXRDcDIzR2owcm9pdmx0TzlISnRITHhCUCtTODd1TFVrUDNVQVA5YlhUd3kzVXYrZ3pGOU9zcVFLL3U5T1FjdklzcHl1YjRSYTJsL3A5b2NoaGg3T2RnTUVzb3dvaDM2N00wSzQ0M0VyQXJJZUJGWkx4SERab2xCT3JKY0NaVkt5aG5DOXhOdTFiSnBrUE9BY0xjdm9jMk56a25QcUQxS29EVmNaNlZibGpsYnppTW4vQXJnL3ZaNXBIcER6QVdKVG1aYW4rb0VxdTJNTUtqd2FURFVnQ3hydUhjMVRoVEdnRGZRS1EwTjNHYXF0Q1g0VmpIdnBQK1VnVmI4cmE1dm5KSGRhTER6RFBWRUVTQnNyQXdMSGtvQWZnc3RiQ1djU29kOWJFdVo5aUZUbjNTUkw1bU1hbDhuVXdqMDB5Q2I5WEdRVTYyK2RoaEdNRk15WWlNN2RPR1l2VllCOWlsNDN4aHZqT2VuYUVWMDlXMnBWRjIvamJvYTFDTVJ2M0oxaUpBN1A0NEdOdkIrZFh6OUNCQkV5czVTQUpHSGg5NEJvTC9iNG1XbkhBR2VUVVpQdTY2Q1dDVER5VWdYc3JFdmdlTVJWUEx1TG9TNlh2OWhYcllkeGkvNUI2OXYrdzF0RXVZaDdDVjZCdHR5RC9iR2xtYThKVGJaK2Q5UW45eFhPYzY4N1Robi9EakYvMGpDZ09BcDlQd1V6LzkwektQNk5Ia1A2djdHcXRlRWE0RVdTRXpiL0ppTStYV3JiVUgybS9hZkMrdDdkTEdQdGR2bW9KOGo2dElLNHprSDFoUmRNVUs1Z2dubXVoVHo5bDdSeTk5Qmw2SnlaNkhMY2hpNmZzR0hycXN1UCttZkxNdXh6ejZSTE1ZMzZRb2NnZDVJLzF0NUdqbzgrZVhnRldOdHByTXJRNzZIRzJVRGQrd3VNcGkyaWhIZmZRZHVob0k1cFlKVGRISFpxemZYQ0VrNGoyVnFNL3oxTFJTTmFZZFcrSitiT2tHZGVFYjNuRjJpVldmTDhMMXQzR3Q1WWYveTR5TE1SNFVIdEdFUjlWK1NjanZ2WVh5TVV5Z2tWUTMyTFhlWWQxL2JSbk82aVdVNC9ESDVHZnd1TmY0M3piUjF5M2VsVndsVUJaUDlwYVl6LzZod3c4bHVHQlpGMWZaUythdHpMYTg3U21pT1k5aW0rOVVkd0ZGYU1HL3Rmazh6OWQ5QVRhQ1gwUnRhWmYxc2hQeDFMTzl4eGpwUWZNWlFncDdLRC9zeDN1cWV4L3pSSFBCbGJ2VGpIUDVpTFNKdHBQbDN2RjhMZUphNlpFUFRCNFhYUDAzU0FtdXgzL3k4R25mczJ3RWs5ZGJEejlvRHp6RTIvbDZ1MjB1YU5WYVVHYUxPWHhTT3NPNHhYaTRyMFhCOWpqOXl0Zlp4aXZ1cTUvY1VyZ2NQOVdHc1lsV2F4R1g2NTN5RjlwS0svK1c2ZVZoaEJybFYxMUlGZXcxR3NOYjMrdFllY1dXUG5ybEZVVGFoWVc3NGM3eHV1RHI1ZWM0VncyRTh1MWZEVVQvNTJZdVB5YTd5K0xpWk5yQldzdS9sTFhmYWR4OFRmc3lTN1E5NTh4dlJBMWlkRnRWZVlDUGN3S1VyenA4aHgwTjdKV2pWYlJOaGdIM2UwcTJsWFZKRWJ4aXpNWWpNYlBpbmdKeGxRWG8wQ28xZWhLTE9rRzEwcy9zNHV6ZVdZQitUNURUYVFudU1SUkFocStmVU9wejNDK29ZMTJwb3RTYitIc1lqY205U2xtanJzeHFjTi9IaDU3T3pua1ZWVUk1cU42dDdyd1BkYkRmT2E5b3RYU245bG5pMHNEMXVMdGNSMkpXbERJYVJNYlZwK2I3cUFsbk9NSXAveDBCK2Nhb3ZucEZ0YkJtRGlmQUgvcHU0WDZkTDkxSXd2TjZqTGFrbVllSnRnYjZQZGR5WWxxQnUrdm5QSVFyUzZyRGZURkxzbUR1VVA1d0xiN0t4OFZpbkdaL0lDMVplY2E1WUp0MW9kei9nazhiSWd1b2xMNUxxd1BYTEZNMmt3U2Jhek1hV09GRHZ4dG9hMXNvbmQwZjJXU3hEQXVrWWVJL1J3cmR5RStGOVd3b2dwK2hGSFdGWExpRzQzZTdRbHgxVFdPcStpOXEzZ2xNSE0yeDlqYncwZ1g1a2ZtZUlhUWpvTythQnZIUjRPdmtqRzQ1OXBsZTZDaW9rb2RjMW8rNG12MEU5eElKQ3BuRmxaVm4xNEdhZmpmYUdkeXZlanREczhYbnVkWjhNOGYwTGNHL3MvdmpRSXBmNGZ6SHZBMlh3ZVJjSU5abG1tUVc3L0VEUDBRUitUY0gvZFBwZ3QyalozamMyenM4NFU1Ny9pOS91SDVRdmQ3UjBmbml6bHIyR2JINzlsN2VKQTl3SDMyQVg3ckRhbDVqczN1TWIvQTNnQy9qeWQ0N0tDSDN3WmpiSTVwb3oxaXg3cCtiMEk3SjNUMWlVMDNPYUxyVVhPNEE3MDhobDQxL1A2SkR0M3BueGh3bWY2SmljMkFiVFJZWTFCalF1TVBvdGg0aUUzd3hwekFKbmlKak5kcDZoNk8xNEQ2UEtDbkhFQm5EZllObjJzdzd1TWg0ekh0TzZEbURCcC9jdGE3WHRDTkg3QmdrQXpiTy8vSWZuNjllRGxpeDNRYS9nRnZKL1p2N0hwTXdwTkQ5aFNUdy83NW91M05MQS9md0RNNUd5em5RdjdlMmVoNk1UaWF3Q1BzRHNmUWpJYjRKS01kZGpqN2dyb3hnbDF3a2RHRWYyZEk2UDdPYUVpTkRRKzlzN09MMzNiNjJOZ1RVSi9Sc0E4bjdNTkZHLzR2bzEvUEYwMW9iZnA2UXMwSXp0OGZIRUx6aXczSE9LemRvNjhUdU53dmRnK0JIWTRRMFdQbzNMNDloRzFEK3hTYVBqVkRHeVd3YXgvQmFYdTdOanpNOFNzYnZnMXQvSFl3UWNVNm1CQTU5cEhVWWFEK2lTMldTdnRuQXp6MjdBajdQeG5qNWRpWjBKejFkL0RpZ3pOMkFjMC9Qckt1Rit6UCthTGxZK05SbzFQVGtCcldEdUI0cGo1Tkh4dG1KSTd0QmwzTDFubHI4TmJFZHU5NEY0NmI3T0NJbTR4ZVFuTUdENkw3dTcxVFBHYTNoMXEzMjl2QnJmMGQvTlkvdWw0TUJ4TnYwZmk1NlU5T1J2UmhmTWkzOUU3NEIzLzNEQ0gyajQ1Wjk0Nk8rM2hOZjdSL2pFSHNTSFBReEd3emszWjRoQUliSFE2cGdVUC9Dd3ZlWUltRGk0dnVwbGorMnNTWE1GSDVhMHZ6a1B3YmZDRUVUTGwyK09UNUZLZk9ZWnEyeWFURWV1d1BYekVSRDNkZU1mNTd2ZyszT1IyVHRQbENqWjVHcnl5SGhhWTBjVHJ6aDBORTU0ajA0bWdYbS80aHluNTNDR3l3QnhmZGZRN2I5NGJzTm9kSCs4R0dzNU1Cdm5LQW12Z0xDSEJVVFdsUVRXbE1kZUpEcWp0M0laTTMyV0Y5aC8rOU9HUW92cUI3KzM3cWczekwyTmhCRC9ZU29WVThncDc5Q1BuMzB2bTlOcGdWbXpPSXQ4Tjd4dTZuRjRJc2NUOS92ODk4Z3YzK0FRekovZ3M0NHNSR2lqeXhVUVg5L3dNQmZZTnFGQXJlelFBQUFMNXRhMEpUZUp4ZFRzc09nakFRN00zZjhCTUFnK0FSeXNPR3JScW9FYnlCc1FsWFRacVl6ZjY3TFNBSDV6S1RtWjNOeUNvMVdOUjhSSjlhNEJvOTZtYTZpVXhqRU83cEtKUkdQd3Fvemh1TmpwdnJhQS9TMHJiMEFvSU9ERUxTR1V5cmNyRHh0UVpIY0pKdlpCc0dyR2NmOW1RdnRtVSt5V1lLT2RnU3oxMlRWODdJUVJvVXNseU45bHhNbTJiNlczaHA3V3pQbzZNVC9ZTlVjeDh4OWtnSisxR0piTVJJSDRMWXAwV0gwZEQvZEIvczlxc080NUFvVTRsQld2QUZwNlpmV1NEdEJGZ0FBQXExYld0Q1ZQck95djRBZjFlNkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0bk8yZGpaSGJPQXhHVTBnYVNTRXBKSTJra0JTU1JsSklicENiZC9QdUMwakpXYThkMjNnem50WHFoNlFJRXFJQWtQcjVjeGlHWVJpR1lSaUdZUmlHWVhoSnZuLy8vdHZ2eDQ4Zi94MjdKMVdPZTVmaDJmbnc0Y052djY5ZnYvNnE5OXErWi8xWE9hb013L3VCdk0vaTl2Q1cvcm03dG83VmJ5ZC9ya2RYRFhzK2Z2elkxdFZLL3U3L2JILzY5T25YMzIvZnZ2Mzg4dVhMZi9xaTloZTFyL0lwS2kvTzVSam5rVTc5WEs3YXo3SGFiL21UZHAxYmFWcGYxYkZoejByT25mNHZPdmwvL3Z6NTF6YjFULzh0dVpRTWtEa3lZai9uVlA3SUZKblgvbXdYOUd2T0pUKzNFOW9DNVJ2MjdPUmZNdkw0citqa3p6SGtRbisxREpGenRSWDNXZVRITmVBK3ZqcUdQZ0RLWXoweDdObkovNnorVC9sMzd3em9lZVJlZjZzdElOZmF0aXo5ekZqSjMzb0E2UHVWbm5YRDBITk4rU1BYa2xWZDZ6NUlYL2VZd0huNFdaTEhkcm9oMjRuMWpPVmZiY1JwRFA5U2RlTCtjN1FmWGMxWW5HMGZwMTluK3lsWldkNHBEL3B0NWwzWGVTeVhzcXh0MmlCNmhqSEo2cHBoR0laaEdJWmhlRVVZeDkrVFI3RFhwLy96YnkvdldmTGQraDVjNm11Nk52V3VlSVRMNk8xcUI4L21aMGlkOEpiMnZydVc5L09kL00vWThZOThobm1lOTNXK3hDNjlsZnovaHY3ekZseis5TE5oejhPbWprMG0vWGZwMjhNWDVHdnBJNTNQa1Bva1A4NWQrUU5ONTIra2pGeVAvY2krTE5zdjdkL2FwWmZ5dHgvaVVkdEF5dDkrTmg5elB5bDlpYzRzdVNBYmJMN3M1NXowQzlobldDQWo3SFlGNTFIbnRBK1Q5bWUzSGRvTTkwS2VtUmJ5N3V6Wm1WN0szM1gwcU9PQnJ2OERkV2k5NEw1dFA0NTllMTJNMEM1K3lIM1FkbC8zLzBvNzYzam5iOHhuU3ZicjlGbGRrdDZ6NjM5QXR1a0RMdXlyS1puaGIzRi9RNWI4djVNL2ZkOCtRTWY3V0ovQXp0K1k4aWN0L0FEazA4bi9LTDFYa1QvUDl2cWJzckc4aS9URjJ4Zm4rdDdwQnZTSjJ3bTZ4Ym9ZZHY3R2xML1A2K1JQbk1xWjlGTCtuTmY1dy81MjdGdExQMXRCZmFVL0xmMTM5dTNsdGRSdDBkV1IvWDA4UjhoajVVdUVsYjh4ZllpOHAzWGw4WGptVEhyZXBoNGVWZjdETUF6RE1BekRVR05iN0p2OFBENi9aMXc5OW9BWlk3OGZ0bjN4czAyK2l3dTlGWC9EL01ObloyZlQ2dnpnMWdub0RzZUU1OXpBOUMxQ1h1dnphMTluUDh6eW9LOUdQNXlqczZzZy81WGQxM1l3Zkh6WWp0QWIySDg5eDZkSXYxREc3dHRuNTNQc3QrTXZ4MmdmMkpIeFNRM0hkUDNjZmhmWGU1SHk1L3B1WHFkOWdiYnZXdWI0RDdwNVJKN3JsL1BQN0xmek5laUk2Zi9uV01sL3BmOVhkdkQwcGFkUEhSc3A3U0w3c1dNd3poekxkbG5nazlqRkN3ei81MXJ5NzN4KzRMbGZKUy9QQlN6TzlIOXdYSURMeWJsNXpyRG5Xdkl2ME1ucE95OTRoaGZXNGM1ejlmeGY2UWEzT1QvL0hhdFF6Tnl2TmQyN1hPMWJ2ZU41Zk43WkFoakQ1L1hFalRpZDFNL2QrSjluQU9UN3Y4dktzVXg3NUQ4TXd6QU13ekFNNXhoZjRHc3p2c0RuaGo2MGt1UDRBcDhiMjl6R0YvaDY1QnFyeWZnQ1g0T2QvTWNYK1B4Y1UvN2pDM3c4cmluL1lueUJqOFhLNXplK3dHRVlobUVZaG1GNGJpNjFsWFRyaGh4aGZ4SS9iTVQzWGtQamxkOFJkbXV0ck5pOUk2N2cvZHgrWmZ1UTdpbi90RE04TTE3WEI5c2J0cm5DYS9Dc1pHejVZMy9CSnJkcVN5dWJuT1Z2ZnlKbDh2bzhMdVBLbm1DYndlcGVLRE42elBMUDl1aDFDcC9CcG16Ykt6YTcrdDkydE82YlBKbUcxeEREcjRjTnZtczNYZjh2Yk5OakcxdGcvVS9hOXZuUWJuMjkxK2Z5bW9Tcjd3dVJSOHJmNjQ2eEJwclh4SHAwa0JHNFhuYmY1RElwZno4N1YyM0djdlUxbmZ3ZGIrUmo5aCt6bi81SmV1dy8rcjZZajVGUDd2ZDZlUGVNZTdrbTJNY2grNFZsdVhvdS9xbjh1LzJkL05NWDFNVWkwYS9SN2FSLzlBMjUzVEg4Rk5iejVNSHhSMmZYLysxN0s5S1BBN2VTZjljZWJQdDNQQUg5UFgxSDNiM3Mya2JHcUpCZStpa2Y5WjJCdHV4NlNSMXc1RWUvbGZ3THIrTkw3QUNzMXB6T2U4MTcyY25mWmNqdkMvdWFSNVYva1RFeTZjZmJyYS9QY2Erbm1XbDFiV1lYbDVNK3Z5Ni8xZjdkZmF5dXpldnluSzUrbm1Ic1B3ekRNQXpETUF5d21sdDF0TCtiSy9BMytGTjJjYXpENyt6bTFxMzJlYzZGNXdvZHZUL2VncEYvajMwWXRxSGxuQnBZK2VkMzdjVzJrZHAyekQvZjViRGZxZkQzUlBEL2dZLzVXdHVUOEMxeEw1WS8zN1B4UGIvcVBCSEx6SDYyakp1SEkvM2YyZWF0LzlubXV6NjIwOWxHYS8rTTJ5Sngvdmg2c0FGeXJiOVI2RzhKT2NiRWNxWXMrSWp1cmFkdXpWbGJPeHp0cDIvbU9nRXBmMEFQdUMxZzE2Y3QyRGVML0NoN3podXgzNitiVTlMdHA5MzZ1MEN2d3JYbDMvV2ZTK1R2T1Ivbzd2eldvTC9KdUpOL1BnODZuMjdCTStrVjV3cGZXLzlmS24vcmJYU3dZMjNzdzBNKzVIR2svMVArdEkxTWsvZ1F4d2c4c2ovbkVqeHVvby9ScjI0aC84SStQZmZuM1R6eXZEYkhmenY1NDhlcjlIUDg5K2orM0dFWWhtRVlobUVZaG52Z2VNdU1tVnpGZjk2SzNmdnFjQjE0NTdZL01OZUx2QmNqL3pXZTMrRDRldWJIMFkrWmcyTy9YYWF6c3FGNERsNzY2bXlIOHJ5Z2xRL1F4eWdUMTJiNXNmODZmaCtmcHN2VDJhTmVBV3lnYVEvRmJ1YzFHam12czZrWG5sZkh6MzYzWERzVTJ6OTIvbTZPbCsyNzl1ZVNObVhNY3FYZjBmMi84MVZpVTM1MithZitvMTY1OTFVTVR6ZFBLT2w4T3l2NVU4L3BSL1Q4Tkh3LzJHYnRIN1QvMFBlMktqL0hjbzZYOTFkK3p6TFBiOFZPL3BiWm44cC9wZjlUL2puLzEzNWtqbUdyNTVqbjh1N1doOXpKMzIwVVNJczI5dXh0d0ZqL1cvL2RTdjZGL1pCK3puTXU0eExhQTNtYzBmK1FiWU0wMmJaUDNPM3ZGWHhDSHYrdFpQeWU4dmY0TCtmNDJRZVkvc0ZpTmY3YnliL0llZjdkK085VjVEOE13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekM4THNSUUZwZCtEd1FmL2lyV3pqRkFSMXppbjcvazNFdks4TjRRMzNKTFdQK1l0WE15ZitLeEtOK2w4dWU2amtycjdMY1d1amlVam93blB1S1NXRURpbHJ3T3psR3MrMUg5R21LajROcHg5STZkOG5kNGlRdnNZdmNwazcvcjdyaGZ5a3Q4bFkrUmRzNFhJTjdjTWVlTzFVMjhOaEJyQ0dXZlpTMHl4NXZ2K2pYNW56bVg4eDAvUzE2T1JicWtmb2s1OHMreFVlK3hybG11MTBhNU9KYnJmeEVQVGovbGZqczZQVW84bCsvYjMvNmhMZXgwQVBHNnhKSjVUa0hlRzhmcFo3ditRLzZPQ1Z6aCswNzk0bGpLUytxWGN5a242VjVMLzJkY2Z1TG5NbjJiTnUxOTFMTy90K0h2S2JrZTNHNWRUN3Y3Y3Q0ZFhodk05N05xaDM2R0lyZnVleDl3NXJuaStUSTVkNEEybEJ6Vkw5QXVISjk2TFhidE92c3IvY2Yvby9PeVRYdmVWNWNlL1kvN1NsbTVyMXIzcmNycXRhSmdKYmVNRGUzU3BHdzVqNFc4RXVlVjdaNjJtUnpWcjg4alQ4OVZlaXZvd1ZYL1B6dnUvUlA1YzQ3bjNHU2FmaDUyOGVCT3Q1dUhSSjNuTnlvdVdlZXJHeXQyT3RONVpUdjArRGpMZmFaKzZmL2RmSVczc2l2RGtkNkZUdjQ1ZjZQZzNjQjlsWHRDeHA0amRBYXY2WmpYZU82UTQ5V3RjNDlZeWI5cnI0eFRyQjlXN1p2OEw5WG51M1ZLUFcvcURFZjl2L0E4aTlXN1RDZi9vN0x6VEt6eU9nL2tSRjJ5TnR4cXJHYWRtZkpuVEpqckJIcWRMNjhyMkwxYmU0NlozeDI2Y3ZEZFEvUk5ybG5YY2FaKzRlaGJ1eHg3ajNtTHZLT3U4czE1R2dsakJjaDZRYituM3ZTNzlKSGVPOVB1ZCsrRXE3R0F4em1YckJONnlYTjZWNytVKzBpdW5QUHM4MWFIWVhnei93Q2dndm9nNEw4bG93QUFEdGR0YTBKVStzN0svZ0Iva29FQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSGljN1oyTmtSd3BESVVkaUJOeElBN0VpVGdRQitKRUhNaGU2ZW8rMTd0blNVRFB6LzVZcjJwcVo3dHBFQklJMElPZWw1ZkJZREFZREFhRHdXQXdHQXdHZzhIZ1AvejY5ZXZsNTgrZmYzemlPdmVxNStKenBhd0FaZmozd2Y5UjZmbUsvak44Ly83OTVkT25UMzk4NGpyM01uejU4dVhmenk2K2ZmdjJPKyt3TjJVRTlQdEhSdFQ3dEo2Vm5rLzF2d0kyMGY2dTlsLzFVZnAybGFhVDErM2YrWjFkVlBLczVBUmRHcjFlcGN1dVorMjhlejV3YXVlcmV1dnNIK1ZyMzNXNXRHOTdIcG9QZVFXcS9xOTVaZldPKzU4L2YvNzNlK2d0MHYzNDhlUDN2WGlHdXFndkMwUTZ2UjdwTTBUK25pYnlpTHk1RjJXclhrZ1gxL1Y1NnFCcEl5OVBSeDMwZXZ5Tno2ci94OSt2WDcvK2Z1NEtPdnR6VFdYUjhpTk5sTTh6V1o4alBmY3krN3NNVVo3YkNKdkgzOUNacG9udmpGdGNjejFGR3Azek9MUjlSVDZrUnhmSXFlbFU3dmlnQzlxeXloM1hWQitxWnkyZjhYM1gvdnJNRmF6OGYxWm0xdi9wZjUyOGdjeis2bStvVTFaMzdCeDZWbjNSTHVLREw5QStxSDZCUEZaeWRycEFQc29oUC9jVlZaMzkrWkRQeTk4Wi8rOHhGN2pGL3VnOCtpUDE3dVNsL3BYOWZSM2l3TGJZUGY1R1d5Qi8vdmQraHF6MFVkcUxRdk9oVHBrdThMY3VLKzJSdVY1bGYyVFU1NzM4VEc4clcxekZMZmFuSFd1NzcrUU5aUFpYZjRmdnpmb29mZDM5aitvMjduSGQvU1MrSTdNL2V0QTJsdWxDMDZuTmFSZkk3L2JIUC9KTS9PVVp6VGV1SWVNejdFOWZVWDNRbndGMTllL3FieG5mSEpvZW1lbGIrajJlcFE5MGE2WElpL3Y0VGNEL2tjYnZJU2Q5THdQMXhvZGt1dEJ5TXZuSlg4ZEQrb2YvNzdLby9EcVhxZlRwdWgwTUJvUEJZREFZRERvNDk1ZmRmODN5YjhFOXVJUXJPQzN6TkgzRjI1N0NZK1hFcFZqUFpIR0JlMkpWL3VyWkZaL1djWmlQd3FuT3J1aTQ0bTN2SWF2R3RxdG5LczZxOGg5VlhIcTMvRnY1dEVkQjVkWTlFMTZuSzNKMThmeDd0ZXRNVnVYVi9QNEo1MVdsUHluL1ZqNnQwcFB6aHM0cCtoNEY1M2lRaFh5Y0ExbnByTktCeGhXN1p4NXBmL1RqbkZ6RmVXbmNYbVBtVmZyVDhtL2gweW85RWFNTHdMUEM4eUh6eXY3RTdWUVdsYlBUV2FVRHRUOXladkpuL3YvS0hwb1QrMWVjbDNQV3lyMVdITmx1K2RUMUtwOVcyUi91V1BrajVSUTkvOHhHeU56OWY2b0R6NnVTZjVjclc2RWFxK0JHOUg3RmVRVklxMXhNbDM2My9GdjV0TTVQMG9lampHZ1A5RFdlM2JXL2pobWU5bFFIcC9hL0ZlcHY0QnFVZDY5OFUyWVhydnZjd2RPZmxIOHJuOWJwS2JPM3pqc1pGN1RzekVZQjVSYXp0RHM2ZUEzNzY5akp4L2ZpS1MrSVQxUE9DM215NjFYNmsvSnY0ZE15M3M1bEE4b3BWbVV6SjNldWxPZVJaMGRubVk0OTcwcitybDZEd1dBd0dBd0dnOEVLeEw2SStaeUNkU0JybUZVc3Frc1RjOXNkL3VjZTJKRTFnRzRlV2VhdUxQY0c1MkpZZDNzTWZ3WGlINnkvZDlZbTNmcjFtZnNaTTY1UjE1U0IrRTZzOEZGbGR0Y2ZDWTlkQjZpdnhyZTY5cTluWTBpditzdWU1eG51YWIyZDk0cDc3cGYwekVHbU01N3A5RWwvOHppR3gyaXo4bmZ5eW1UTTBuWFhkOHZJOUxpRFZSeEo5K1JYNTNHVWcvQTRyZTdWMStkSm96NEhuU3VYby9GQTVleVVEM0NaOUJ4UnhaL2g4OGhIWS81YWw2cjhuZkpjeHFyTTZ2cU92TVFiVmNZVHJPemZuYmNFWGN6UytTLzRPdTMvNk1yUE0yVG5POG1yT21kQ09jaFNuWTNJOU85OFIxZCtsWmZ1MTNjWnF6S3I2enZ5Wm5vOFFjZVBrZCtLWit6c1grbC81MndSK2Zxbnl4ZDUwUDJPejlMK25zWGlzL0k5cjUyemhGV1oxZlVkZVRNOW5pQWIvNVZiOURaZjdmdTUydjh6WFZYOVg4dnU3TzhjOUtyL2E5NWQvNi9tZjEzLzE3S3JNcXZyTy9MZWF2K0FqaTAraHVHZmRIenArQ3VYYVRYK3E5eHUvNENlNGF2T24yZTZXczFaZkR6MU1VNTV4YXg4UlRmK2EvcXF6T3I2anJ6M3NELzFydGIvZWk5cm05elhQdVE4bXMvL1BZM09rWDFPbjgzbHV4aUJ6b1g1bmdFWi9EN2xkZVZYZWExa3JNcXNycS9TWkhvY0RBYUR3V0F3R0F3cTZOeGNQMWM0d0VlamtzdlhIeDhCeitJQ1didjdIc3pWT29MOTBzOUVGV2VyOW1PK1p6eUxDOHoyTWl1eXVJRHUyZFg5L3lmclY3VVZzVGE5bm5GdTJKOTduZ2R5NkhYbkluZTRQTkpVYS9UT0xwa2U5RnlnY3FTVnZtN2xHMC9nKysvVlBsWHNqNWdUZm1PSEkxUS9vL0VycnV1ZWVmYnZlN3hSK2NJc2p5eGVuWEZHSFM5WXhmdDJPTG91MXFsbkUrSFhNMzN0eUxqaUFrOVErWC9zand4K2JpWGphRlVIM2tjMERxZm4rQ2hmKzRWemJueFhmVlJuSm5oZVkrdjBreXhHN2YyRnRzZjVGYkREMGEyNER2S3I5TFVyNDRvTFBNSEsveU1yZlMvalZYYzRRczVTYUYvUHl1L2swWHk3TXpNaEQyMldjbHczVlRtTWJlcmZLSHZGMFoxd25abStkbVhjNVFKMzBPbGIrNno2ZUsvckRrZW83N1hNK3IrTzMxMy8zN0UvWnp2MUxPZHUzOUs5QTlwdmR6aTZYYTZ6MHRlVi9xL1AzMkovOS8vSTd1TS8rc2RQVnVtOFBmbTRXdGxmODg3Ry94MzdveU8vZG1YOFArSG9kcm5PVGw5WHh2K2RzNDRWcXZXL2N0NVpUSURyMm04N2poRDVzSi9PTWJObnNqbHdWbDZWUjdWK1BwbGJYK0hvZHJoT1Q3ZFQ5eDBabnhVekdBd0dnOEZnTUJpOGY4RG42TnJ2VWJpU3Q3NWI0eDd2dnRmWXdBbDJaWDlQWEJSclhqZ0ExcFNQcUFOMlBBSHJXbUo2dXEreTJ3ZGNBWTdoRkJwUDdIQ2xqcThGWWhhK2JpUitGdkI5ckw0T3gyL29lcFV6R1BIUm1BMXRTK01MNkt2amRsWEd6djVkWHJ0cHRFNjZEOTdsdUZjZFFmYTdJN1QzZUk3cmxLdnBBcEhtYXQvS2RNVDE3QndMY1F1TnN6b0hvNy9QUlQzUURYb2wxb1hmY2ZrcFEyUHgxVmtCdFVYRjBlMmtjWm0wcnNwNVVrZjlMYUVyZFF3b0QwdGNEL3RvckZEVEVTZWwzQ3BlMktHeXYxNnY3Sy94Y2RvOWJSSTllWHhMOC9MNGRzV3JaZnlKMjF6OW1ITElpcDAwQWJXZnh4ODlqcHZ4ZTFmcXVQcmRNZEw3K3dTZE96M2R0K1h5ZUJ6YTZ4TncrenR2UUQ3Nm01VEltT2tHVkZ6VWp2MHJIa094a3dZOUt1K1p5YXQ4bUw5SDhFb2RUN2hEeXVVRFYxMzVsaFY0ampFdXM1bnZ0YUFQT1Y5Rm45Q3hxZUlOdmYxVy9YSEgvZ0gxZjhyaktYYlNLT2VvNDZES2tYM1A3TDliUitVRThma2RkNmljbis3SHVnSWQyL1RqZXkzaWcyLzB2UnpjVXgxazE1VmZ5NTd2enRlRHl2NzRNdVhVSFR0cFZDYWZkeXJmem5mNmg3ZVprem9HMUFhNnA4ZkhaOWV0dHBOVC9rK2g0d2R6ek96ZWFvL2Q2cnJ2SlZxTlczNWZ5NjlrNmRhdXQ2VHhzaXVkbk5ieDlMbk1kMTNaL3pjWURBYUR3V0F3K0x1ZzZ4aGR6OXhySHRudFNZeDFrTDRyWmFkTVhhc1M3ODdXZ3U4QmIwRmVqK2V3N2pzOVIxS2hzeitjQU9sMjdLK3hGdFk3UFBjVzlIbUN0eUJ2Rm84a1R1NHhHK2UwaUQwNjM2VlE3bGJqRlFHZWRaK2pQTFRISUR3bXEveS82ak5McTNrVFE2bTRHQzhYK1RTV294eHl4eWxwUGJYK0tpOTh6bzVla0YzTFVibE8wSjB4Y1k1SHVRaU5wWGMrdzdsNzVaWGhDenhHcXZYejg0M093VmIrbjNLeU1yMXUyZDVzYi8vWWpkaW54M3l4YmJadm03WUNKK0p4WXV5dDdhTFRpOHZ1Y3AxZ1pYL3M2bVZtc2Y4VmorZzJDakFIcUd4NmtwOXpRZDVmc3J5ckdMRHVEOUo0TjdIVzdMZWpLdTVWZlkzdXJWS3VKZk1aSzcyNHYwT3VFNno4djl0ZjV3bTMycDkrU1Z6OVVmYlhmckZyZi93R2VhblBJMSszLzJwdkIzNUVlVlhsRDhDdVhxcjZubUExLzZPZWNJeTZCK1VXKzJ1NTdvZHZ0VDg2cEJ6Vnk2Nzl5VVBIRHJXNTduZlp5UWQvcnZ5ZnkrcytQOU5MZHMvbE9rRzIvdk45UlRxM3lNNWZxMjRjSzN2Ui9uWC93ejNzci9PLzZ0eHlvTE9iOTNITms3N01zMTArUHYvTFpORjlHQ3U5K1B6UDVScDhUTHlGOWVMZzlURDIvN3N4L1A1Z01CZ003b1ZzL2JlS1pZQzM5Szc1am1jNmhhN1h1dkcyaXAyZVlGZlg5eXd6eTAvalA2dTlrUUZkbDc0RlhEbjdVSUg0MSs1K3pWdXdvMnRQL3dqN1YvbHA3RWRqRlg3R0tlTUlIY1F0UEo0T2Q2YThMdjJQTTNITWZaVVA0NTUvSjNhcWRmQjNKRmF4a3F4dUdwUFJkdUh5S0xKeXNyckMvN2l1Tlk3dk1xbTlpRk03VjdpTHl2OXJqRi9QUzlIUGxQT3RPRUl2QjkzQm5XajU2RVhQMWFBZmx5ZUxPZXAzUDM5TE85SjRPdko0Ry9DNkJUeVc3SHhBdGcvYlk3UEV6NzJ1RlllbitWYjY0SG5peGhVSHUyTi85LzlBMjVhT1V4NTN6VGhDQnh5VjhuR3V3KzcvWGZ1akZ6MlA2VElIOUd5UFF0TmxObFo5WmZiM3VZaWVyYXZ5VXYwb3Q5anB3OHZoM2dsVy90OWx5dlphVkJ5aDY0UTAzZnNmNzJGL1pLS3RaVElIM3BMOUsyN3hXZmJQNW4vNFF2V1h1bzhDbjFSeGhLNVQvSC9YL3dPNy9nN2ZsT2s4bThQditIK3RXeWJQUGZ4L1p2K09XM3lHLy9jUDlmZHpzSHJ1VU9jcEdVZm81ZWpad2FwOWUxclhoYzR6cTdPWmJqZkZhdjRYY1B0WDg3L09kMmJsZFBidnVFVy9kOC81MzF2SHZkYzdnL2VGc2Y5Z2JEOFlEQWFEd1dBd0dBd0dnOEZnTUJnTUJvUEJZUEQzNFJGNzBkbjc5SkhCZmhQL3JQYTlzOGZTMzJrUllHOU05bm1FUG5WdnFjUGZhVnh4aWV4TDgzeDkvd2p2QU5JUCt6ZWV5Vk4yZFRuTlIvZnQ4YW5zcjc5andyNGo5dG5wUHJjc3oycHY4SzN5ZDN2MTFZYjZIaENIMWh2ZHNvZE0rd1Q1UGF0dFYranE4c2d5ZFYrazlvMnMvempZcjVibDZaOXFiNTQvdTlvYnNtdC8zc3RFK3ZqZjM3R2g5bjl0dkliOS9YY0gxRDcwd3c3c0k2NmdmYW5ieXhiWDliZEZPcXpzVDl1aFR6czgvNnovYzUzOGVaZWI3cUhVZlpzQjJwdSthNGw5ZnZxTTdySFZmTFZOa29idkp6Z1pRMVFYL3E2aHJHOHJxRnRYbnZxQ3pQYU12ZmlHVlpua3FlL3ZVWm4xL1hJbjl2ZTk3bHpuZjYwbjU1SjBuRlJadU05MzlJck1laTVFODZVOXFOeFhmTlBKZm5FOVg2RytBSG1xdmsyNzNQSG4yZGtCemNmM2xxL2t4NDlyL2dGMHArOWlVejB5NXZ0OHBkS3h6M20wVHRwZmZVK3Y3bVhYK1pUbWtiM2JqL2JnL2ZCMFRPQ2NVemFmY1dCRC8rM01haHhtL2JRemxpUEw2ZHl3c3o5NjFURUwvK250U08ydi9sMzNtcFBuaWYzMVhDTHRWOHZNM2wzbDg2eksvdnhQTzc0eUowQys3T05BZm5SSEc4NzhPcnFyL0tybmUrWGRkWUhLL3VvM0FXMHhpeFhvbVZGZDMxQlhuUjlXNXhzeSsxT3VqdVY2WGMrbGVwL1NjeCtkL1pISjI5Y3owTVZkZHVjV2tlNnEzTjE0ZDlLZTlOMDYycGMrMm5tS3dXRHdvZkVQaUNScW91dDN2UllBQUFEY2JXdENWUHJPeXY0QWY1N0NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCNG5PM1NNUXJBTUF3RVFmLy92ZTRWVWhoQ1VOd2FjbE5NbzBxd042cHFOR3JPMmQzNXY3djljdm9YenJXM2dTeGRleHZJOEd4c0ExbTZ0dHBuMkxYVlBzTlhZKzF6dkZ0cm4yYzExejZYOWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHNYUGJSYkNhRENScE5BQUFFZVcxclFsVDZ6c3IrQUgraU5nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZUp6dG1vbHQ2ekFRQlYxSUdra2hLU1NOcEpBVWtrWlNpRDgyK0dNOGJFalpzV1Q0bWdjTWRKRGlzY3RESXJYZks2V1VVa29wcFpSU1N2M1g5L2YzL3V2cmEwcUYzNE95SHBkTSt4THBYMU5WbjkxdU4rWHo4M1AvK3ZyNmMzN0xkYWNlVmRZdFZiNS9lWGs1MkdQcjlLK3Q5UC83Ky9zdlNuV3NlaitqLzJuN3orRC9tVDQrUG43YUFITUJiYU91SzR4MndYV0YxWkg0RmM2OVdacDF6RGl6dFBxemRVNFowaitrVjFBK3lqRktjNlNLVjJsVy8rZjhrZjFmZFV2d1JSLy9pYys0aUM5eW5NejVvOEtJWCtLYVowdVZWMTNYc1o2WnpVVlpIdkpqYk1yekxGdW1uMVNjV1J0SXUxUyt6K0QvRHJhYitmL3Q3ZTN3am9oOWVLYjN4MHdqZlVHYklMelM0cHoyUi95ZVZoM0xON3lYa1Y3M2ZUNlRhZEtldXJJdDV4ejQ2UDZmYWViLzdEdDlua3hLK0xEc1dPMG14MVRLVVBjei9WVGVJNi8wMzZnZFovK3U4RW9mSDliNWJBNGdIbVhrL1NmdlBZclcrRCtGelpodjZlZjVib0R0c1dIMjYreWI5TDE4TnhpTkZmayttdjAveDVEMFZaWWx5enVyN3hLUG9xMzhqeS94YmZhMW5rNS9MK2pqU1k2MTJmZG04MUhXZy94NmU4anhQTk5rek9rMjZXU1pidms3NksvYXl2K2xzbEcrQTVadCszdDc5elh0SlAzQSt3UnAwYVo0NWhUL1p6ekdKUElpelY2K0pUM3EvSytVVWtvcHBaNVRsOXJuelhUdlpTLzUxcFRySUpld1lYMGJ6YjVyK3ZmVVg3WDJlYlUvckRuVW1zbHN6WHFOMHY5OWJTTy84MGZmL0V0cklheWI5UE5yS01zNTZrZjg0ekc3djVUZTZIcVcxeXl0VWI4bTdtek5hVmJtdjRyOXN0ejdJMS9XUFBLYzlzSXp1YzZlYlNUM1hqbG5EWmQ3T1Nhd2Q3TW12TnM2eTVucmlYV1A5V2JXbXZxNlVvWDNPdGE5VEN0dFY4ZjBHWkJYWHFNZXA4UjZKZmRKbDczdXBUS2ZvKzZYYkcrai9zOWFHN1ptUDc1ck5QWlh2TnpITGVnanJQT3RDVDlXTCt5WFkxNy90eUgzSVJCN0dYWE10Y3EwVmFiWjh4clp0LzhUUVp6Ui9aSC9SMlUrUjMzK1A4WC9HWC8yL3BCMjRweTlHWTc0TS8vSldCTithcjM2bkpkN0F2aDZWS2YwUWJkUFhzL3l5ckRSUGhQM3N6OXpuWG1QeW55dXR2Qi8zMGNwbjFDbVBDOHgxakYrTXBiUm50ZUduMUl2d2hnMytJOEFHOU8rRUhOdDkzOGZjM0tQOHBqLytYOGk4eWoxKzkzL3N6S2ZxMlArejdrZE8vUitrblV0OWZFcGZZTy9pTXM4dGxYNE1idG5HTGJrL1RyblljWnc0bUxudERWN25mZ3o5eWlQbFlOL2EvRWhiU2R0eXA3WnlQK2pNcC96THNoK1c5WXBmVWZmenJwaWo5RllSZHhNcitmWC9kbjd3WnB3d3BicWxXSFVnN21rK3pmbjh0RTNHTS8zNTBaNTlURGFRTitMVEJzVFAvT2VsYm4zdFV0b2FiMUFQYjcwdjFKS0thV1VVa29wcFpSU1NsMU5PeEVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkdSTytRZmg1ZU9hdGs3anB3QUFBRlRiV3RDVlByT3l2NEFmNldGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQjRuTzNXNFdtRFlCU0dVUWR4RVFkeEVCZHhFQWR4RVFleHZJRUx0NlloLzRvSjU0RkRtMC83NjAxc3psT1NKRW1TSkVtU0pFbVNKRW1TSkVtU0pFa2YwWEVjNTc3dlQrYzV5N1YzOTcrNlQvZHZYZGR6SE1kem1xYkh6K3dZL1N6MzFMMTFGc3V5UEY3SE1BeC92b2QwNzdKamxYMnpZWGF0emZzOXRYL1ZONy8ramU1ZnR1dDdWam5ybitWNm5YMzd4dG0vdWw3VC9jdHp2dTlmLzlmbmVYN2FQOWZzLzMxbDIzcnUxKy9idHYzNnpQZm52LzIvci9vZTEvZXI5MEN1MVhmN25FWFZueDNYYTVJa1NaSWtTWklrU2ZyM0JnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBK0VBL0N2bXN1RkxhS21ZQUFDb1hiV3RDVlByT3l2NEFmOVR3QUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQjRuTzE5Szdqc0tOYjJra2dzRW9uRUlwRklKQllaaWNRaUk1RllKQklaaVkyTWpJeU5MSmwvVWZ1YzdwNmU2Zm5VLzlTSVduUHBQbFY3MXdtd0x1KzdMbFRtNTMwMm5nRGFzNUV0eHRkR1lJZWp3d0p3WGNVRmF3RGZoWDdEODJJZDRJRUtFQUcyQ2h2UW5pVEJkOTJUMmJHRXdmSE5mSFA4OFVOdkFKV2IzVUVyMVhFenRyNXNUeFVVNEhpZFFPRW82VER3WWJtdkt6LzNDUktnM0ZRc3BGK05BNjgzZ2JoelhKM2IzcytZWGtKc01TbjhReEh6bGRJUER5dlVhOXNvN2taNVRpSTQ5WlprVUVQTVh6a1d5TkkrVHdZd0pteXJOTGlQU1cwci91N3JicEIzN3R0SEY0OXl4YkQ0alpuZ0FUeFJxb054Q1EvUkZBa3JyNWV5aFVpVGZRejZvYTdCWmFHM0hYOXhqN211Zm42Q1d5a3VvelZqZzRrMkxOYjZ1TVhBd1lKdERwNGRCSFZQb1BqdnFEbHdYUGpUL1R3dkd3OHZQN3o4dDdoT3hEb1NucE5Od3BzRmNDbTJGU0FWOXNTY0xSelZIakp3d0NjUGgzVkxjV0FDdnJUTlg3ZmcydWJBSDlVdnVKbjdOdncwSFR4K0FJVUx0QjQzTjFQcUc0SEg0VTdkMVVKUjErSFc3ZlBycDZpVWRVM2c5M3VQanZzMXlDVXVRcVpPeVlvTEdHczZHQWxybTA3QXZHMkJPZGdQL09jQ0txZDFnVlhGZkRLb2h0a2xPOUh2RVlHYnF4MjRYVWJoWWRlU0tjOExxbEpGSlVoWFl6Qk5ad1BHUHJ2NEtTOTBhV2lUWnBqMTFRblJ1RmlHUHNyS0hLZ1N5MFhMeGZMaktSV1cxRHdQTE9rMjluTTB4ZUhBZjlZMW0zcmdZdkEvcEtKS0gvRGc5bHdiUEJsUEhFMGxUeU1vTitRMjREcW5GajBKbmFycS9kT0xCMWxCby9mQ2cwZ050cXNJa0V5Z2N6YWJ6Z05OZzFqcXlQbENZMWlkSnNlWVNyMFRkQVJsdXk3SzloTDhxTThKTXk0WWFtVW9sTTgvMUR3L25TMHg2U1J3blU4QlBRRDlmM2dVR2hLTUMvL2EvUWtmWFR4S2RNS2h0MVpubTVwZ2ZFa3NQT1M0bFgzZ1J2TU9VV3BkMEc4bFcxQmgwZjBCaURiOUdGZ1NXYi9OUE9FWHFqOFFxRmx2YUFDQVJwNFgvREEyTitHQnJSODJTa2J4bDBkYjhJVUZkM1lwbXM4M1B5d2M1RUIzamdxTkJtNU40TWVtM1JOdHpBWEthejQvOWVqSlROcHE3dyt6RlQyQTNRL2FKWGVEV29ocGVrWlVlQWFCRVBTRUpCR0JyMnRROWppYlJiZVFiZkw0Q1dwQlQ1bngxTmY2M29Dcm5odytmdjZTaHVYYzROaUdrYm9HNlVJNStyWGlDWVlMMXFRQ09GV3RxMHNjRGtQRGRyUnFZdXNQVEF2bzVlZER2QUx2Z0htdkJhRUw1eDZOTzZSdEYyb0xVQzdVQlNDWCtPUHZSR3Z4RmNMcWQvNmhWZjlGd3NLQU0vVGNxTUdVa1pXU09IanJWY0NGU3NyOHVYTVNqNk1TaVo1Y2hMTUlEdWpKbjQ0ck93WjlCd1J6clJoR0VPTWRVU2dlUzBtdDd2ZW1XTjJiaE1hb0Nya3hDOHY2L2l0TGovcW82R1JZakI5ZE8wckVvNDd2WXdpSWVDU2RwMFRSMTdmZUR4Q2VvaE5ZWUduWEhpRHNxT3ZSRUVCc3pJLzdjbTZ3YlNTQnFNWmUxem5PaE85NlFrZlBucUJSUFJYR2JtWVE1R3VFUk9yMnJHVTdDanlvL2ZnV1lkUDhQaXkxNHFLZW0yckc3MnVITUVLZlczQW85ZUlrdngwQXVvZkhvSkhiOXN4dy9UUU1ic3NaeTNGZ2xGakdrL2tKK25iUHRmYm9HTmt1ZVBWSWJvejdqVzl5bjBxK2dNODFyUEhCNFA5STRCeDFxWW54NnV1SGw0OExadUNuRmd6dDE5ZGg3QmlWaG9sYldoY1pPajQ4eDAxQVNxTTU4d0w5QXF6aUpOTnhYUlVCb1FCOVBVaUZGZ3hyQk5EK004YktHTHJqci9ucHNycDB2MUdUUFgrQ0FTd0pOOGJIQnJYZnUvM3M2dWR6RGNRK2tPT2lNL2kyNzk3Y05sdW0wV2VWcUpjTVVreU4ySTJxcVBrUnJUOFh0eWdNalNaMzNTNDNReU4rUW5zSWdsMnYwd3JYNHBkVjFGY0NzZ3czbWRJeGYycHJmb0psbEdOSHU3OXlGc3ZIK1IvUTQwVFlMaHNTUGZUTFM3VGM3dXNJeFVEZFY5M0hzVTBTQS9zdzVZQ1FBK1A3N2Vqa3ZERE9YQWJhOG5oL2tQT3Vkczl4MzA1YW9ncytJd1RHRFlPRWpPQkNSWmNKbWFVcGxZSzZKbm5ZUVgxMDVUOUMrK29MV2V4dEtNSlhTWERoZ2NteDhvRHhDN2g4dlRLWEsrajk0Rnd5dC9ZZzdkNHBrR3pjT0xmV2RHd1lCUnpCUUZvdVFyMkFvKzhZQkpWbDhZV0xqWU5TVTkvMGdjYURiVDVrbUVtQjZmNXMvdlR5SjA0TllZWmt4S0pITTdrbGpZYThJNnNwUCtpOHp5UUZBWE1mSE44SkExODFQUk95N1ZrY3gwSlNJeTFySW5GSFVDM1FaUkwrSXVkbXJjRUl3dUVsMXFrdHo1TXpIamZxME9UTXlEalVUVG1aR1lIUGlobUtMQnVzNk9SZkttNDdTSUxCK3NaRkZrTEdzWVlkMW1Oc3YzNzR6dTZ4NXczTG5WdURqaTl6WVo5bnVFa1ZGMFVJTXVVc2VnUFNNZG9YZElFYk9wSnJUTWJUNTg3QkJxSE43UnpJbVFnUDVhT0xSeW5tSE5SN0VqZktiL0RMeFc1a3FQaWs2TGZ3NFpWN1FITDFVSmcrRU1acnduZU1hOWU5dnFFTEk3Z1BhMWdYWm5tUkV0WkZ4L2VheUVHcHpVTENPY0oxVFJDdzI5NDBVRDI1WHdUVGJKS1F4bWRYajY3WWg5MU9sUlRWSTVaZmJwbUhSKytrY0FOd0N5eGFoUjRTLzFWMW16YklrL2ZEVnFhYjA3QzQ1VEJGUzVFM0tueTMvUmhkcjN1ZC9EYzFSbHpwMUxhNytucFIyQldnZWlIaGdzY0hDWFVWU0lBKzd2L3pwblZ3bXJMYTl2VlUyYU83YnpOUUtZajR0RnZnWHRVMjQ5YmE4K05nSUMyYVpDWVM0U285dGlYRXdNcG1XWkk4djE2U2c5aTNZRjgybmFqZnlIeG9IYmpNNndVejJLRStnSVF5SUJsUXVoRDZjZi9YTndjVno0NnpDLzNWRHZ3c1RuTythcnRHbVQxQ3RZcjhZQXVvN1lHemxVT244dllFYVk1Vmtpa0JVdW1RajBCTXhkOEcwcTZFaS8rSkhRSzN4NmR0WWp3eUUwWklrMUp4c0xJY3c3bEd2UjdsNC9qM1dCeTZhWTNranJMMVQyMnNSMEg5M1JDMzlOSjlPcllxR3I3TEUzVU14R1lGMkRvZFFNcXJVa2laTGdQeTJlK0tzRGJDOGJ5eHd6YU9hcERsQWFkajVrZFBjRTh0RFJENnJUWWRTQmZTL2ZyY3luOUxuY2xLNXR0VndNN3NGanE2U3NlRHZwMksvY2wyUEdkNmp1T002QVR4SVBIL0NERkdLbkZ0bVMwN2t3MUo4bzBVQURjTlB3UGVIdUpQN0NoWmNnM1paR1hIQ3MvSlJnYktGdzNsbVFuUyt0R2wvNVp5eGRoSWxoQWZ5OEZoN01mSDI2SG9wVDRZeGhBQUxLR1Z1Szh6LzRzYlJPeGFDSXU1UmZIS3hxNEIwbkZ4OE96WU4zQWJnVCs0ZzhpTTNrdXNCcEQzeFNVT3lLY2tnVHNQNHJ3L0h2MVJySElZalRhemNGQUROMkM4WVptR3VPbGVQWVFIaFAzSlV1ZTJYeGVHOVptektXMmpoTWMrd0VRekl4N0Nvd3k4WHljTjUwbit3aDNKclhVUHpZdER3Y290VW8xdUVHWGpyNFN6c3MvekgzTnpsY0R1VE0vTVBNaXRMeE8xNEJ0U0tYeE1kRjh4dStueXdUeDE5WDFGQ2tUSWVtekM4U1FVU05NUkRpdnZUZ2dkWHhVeTdMOXpCMk1CMjY4dDhuSklrVll1b0JtenBZajBHdi9PMU5hUEo0Q1I3NHlaaFNoOUMrQnZDYkx0T2wzb3JLZmJOcWRHYUd4M3NZYThRSXpTZXNaN05ycFFYNWsvREFHMkRVWHJHOUxkR05Cb3M2TDIzN21qZzhOMm91Wkxxd3d2KzBMcElrM1MvckpvTzhEWDhmSDZGK2NFMExHaGI3L3JLV2RTQW0wZ3d5U3NOYjhzSUpSRmczajhLRCtxT2hPMlo4QlY2N1dGRjBhOE5KNlo2c0FnQ2VqZ0Znanp0ZCs1dzBVMGpJRUdJWmF6Y1Q4UWJPU1lCNUQxUWE3MURvaWZGbGwydE81ek9tMVNIcW9vUndmL3NGcmZlZHBIY1lRcmR6QVJLVTU2Ky9ibjRYV0lXZlF0eFNhVnA0L293Q0tpV1JBSlBTZEpodjNPSFlNNDhMZm9HSHU3bVcySUcwd3Zmb1M1anhtRHdpSCtqOGY3L3k3alF1K3U0TmpSekVFOXFKNzQ1N3l4V1puTERIeDZCUFR3T21hSkd5UENySDl2YUxreVdHcUIrTWU4U1h3eDF0aHBNeE5CS0h6NXAzWVFaakhGQXhPbDFnMU9TNENJbWt6QXphc2EyaTZmNjlQclA5SnkyVjNEY1VKVG9GNGpieGJ5L2k1c2dDVUVlZ0xpNG9HTERhL0U5MW5TNDM1cGlPU1VnMUN1QUloeEVCN3JkU1kzS0lRRkhQbFZPMElDb1pKc0lIcEc2M2pYamdhemdhS0xUWnYzeS9JTExIeFFaZ3hXOWRhZzltdUNrU2ViVHJyMFlzeVVMNkVrUlU2VnVhb0tTQU5CMTJuZSsxRUxQWUoxTFI4dlZPWlJRVVE1azZPbzBtZlY3RmZ0OE9BbFdWcnZybHlBbjlwaDFLV2s0eldRVDYxcWNxZ1B5OUh4cWZoMUlqbmoxa0xZZW5DRHpLeldkbXlscld3OUM0TVFqeDRWeWJoWjdPakhlWjhWM0w0MWRBUDloYWJTRVF2WGJVV0RnWHFlSy95cUhlOU5HN0craXo2b1RMOXJ4ejJMY25JTU5JMEQrZXpxcC93VUwyZjlENXBGd0hJUy9zQitVSVlZcG01QzMxdWdybHhuV3hWN29hdUhrbWNhbytOWjJ3TjJVcDlYSnh1R2h3cDdSbVd3YlRIdjNnR01ld3NDM1hlK0J3Tk0vOVU3a0IwM3FDWWtrZWYrZVBwajJ2akQwRENmQzRHT25tN2Q5b256N1NZUit0cDF4VUExYzBQb0ZFUFZzVzJjOFI4NFNCaUQ0MlZtOGUrNXhuUU1rczQ4VUVwYS8vU09zRUNEaisrUStjamMvK2dkb2JzV05KMUxmSzZQSTJBT0YzMFhZWjlyRVZKTzR2K2dKNWQrU1ZVaHdtdnlWd0dBZ1V5TW0xclg5VVNZQkU1TGxjR2xCZmZNb1ZYakJneWpuTS9FOS8zZE83U2FaOHdTNzB4K1lTaGQ1YS9lSVVKcWR1Z28wV2J5eC9VZm83KzU5RnkzODBMbEJYMlNRWFZJOTFLaHBLQVJCczRDQU5WbjYvZVk3aHBOSCs0THFEdzNod3hQaTdjNnlPM0tXL2R0Tm5YdGR2YU8zY2M3TTQ3bXRUM0kvTzUzSGVtbmQ0eHVIdWo3ci8vNCtvK1hCS1NrTTNCTC9zNU5vcVMycFlPb3EzdnpMZ0IwQzY0aW9RUHpiblNhR2o4VDRPdU5aR254c0dMTVF6YXo4ejJ3eWtVSnN4bWdIcTBlMVE2RkxJQ2xHOUd1VDhnS3NwejFNTGxvL25hSHkwY1hqNUk3SGoyNjcvVk5WaVdsRS9iM204cXFpSEw4cHdEQTVNSTBuVWdZRFIwNGN1VFoxQVpMN0kyQXlYaTY3VUVjOURyS01nM2FFV1hBTHFtc0FkZmRuekJPUEdlZDYrU0QrSmtuaUtiSzdzMDJvK21ISmNIRFI4d3gxdGEzYlgzdW9WNXFybTd0MHIzVFUvMHdERU42QVl2SDdVeFloalA5bk1oVmcvYUVUVHRlQmVMK1hoVitXR093dlk2QUFXRUJHdWgyQTBkSUJYVWk0ZWNOTVlyemEwN1hTLzFVZ2o4c2lObm5jb005N3R5T2hsaDlOa05DRUZjMjI3c0FrRWJmRjZoYzdqT1diWHMwSVYwNS8rRzdyZGZjU2pSdTZSVFlFelZLMDNPRWQ0TGNYZ3lxUkovM2FLZ1BnbzMwakhyMmdydTJvOS85T1ArVjRCeFE2NVJkbDNxZEYvRHp1akcyRzNpbDRuNFhBUHkxU2pnalk3NGxnYysrRTY2M1kwWjdaUE9YRzkzZkF4MjZ2VzhkOTRoQWQ4VXdpVkZ6VUsvanVSS2FYeFhNZ2M0Z1B3Z3plVUl5eEpCN2ZMNy9CVFd6cDdpSGZjcytlSHR4S0dHL3N0dlJnbUdoUHdXQWp0RCtVWk1sOHFmTWJNR3M5alQwZ3FUUGduaHRWMG5YaG9CSDdhK21RK2dhMHZUc01STHFFcElJMnhKcjExSFcvWXd6YVVwb0c5d3N4LytBK3VQNmlScEx1cHBTaVBmRnhQQ2lGY1RDeVBiSVR3Rmcrc2puaGNxeXU0YVBQQ0h6alZzUW5yaE9kOW4wdG1IRTNQaTJvbHFBanNCNGlWeFNkSGFhQWRKZVdrcnQzV0ZjS0FIS0hzaGFtVkJGbG8vci8rNGdNWXFhM3FNRm9XaU80UGVkN0hrR01QZFRBSkJNSWNoNURzMVJBMUFQeko0UTdTTlNRTk94SmpTdllaODVFQUluTXNrQm5zU0w0TFpKRmF4Rnh6aFl5ZmhKY3RYRUNqU29FNVlxZVo3OVloL1BmNHZMdk5NYUx5T0pEWGl3M2RIY084WXlVbjRYQUtxTEFmWGlHZGJoVHpmUDdhSm83NVBWbUZXTzgxNElwMnNFOUEyN21xWGpweWprdnFBc3BZaWZNaGlIL05jcHowTUg5em9vMlpBN2x4eFJNejY5L2pUaEtmb2xpUG5VWWpidUYwSTRBZjFjb0JRZnN3Qnd0ZldheWV5clpUenF1dTFUNmJrUWtJTFk3Tm9yMDJwejhNUndqSVM0Q044bFBDWVpkSHN6UDR5akNLeDhUZ1lwY0RjUllwblVBbi91NCtrLzFHR2thZVJFRTdWWGJBaC9raFlCb2Izd2lGaVhud0xBV3RvK08zWDRuU21rYTI4REtTTlg0Y2pOVTVwdXJtTlN2WGowbEh0YndITllkakdrckRrMWlSRmZyQnFzTUV2cEdQWEJHSW9SdHRXWk45bytuZ0JVY0tFMWg0dTQyYlNrYkJvenBWUDhJdGlkNmt6dXZZaFlrT3FGNTUyclcrRTFiZmFoK0E0TXVyOVJBRDBpZFgzMmtjWnd6NWdxZUkxaTl0V0p1dTdqbCtNamFVMHJzL2xBdTFvaGtBbit0OCt1Zm1yZzBsbVUzYXdWR0pHaHROSWtIajgxaXBXZ2JRWjA2bldJWFNDSEpZNUFqdmZkaFRvT05HZzQyNE80bUtHN2RIWHNGelBBTy9vS3pwRlBwREZCTDNLTHZ3UyttUVVLRzhZUnoxSXFOY0RIKy8vTDdHbmNKbW9qQkZrZU1qcTZKRm9JS0dHdFpPWkEzejRuZWdxZUZBYUUxMHdRcksrenJOc0NGK3VIdHFtOU5scVEwY0E0ZkdBYnhqYmRJZ0xsakZnQk1kOWZnQTk2QlNjUURlNUdMYW4zdTlHUCt6K3crbGhlQXZJTFFUby9NUWlpQnp2WXpHZ3ZTeGllVmtJbjlRY00vSFpQYmhJZkdjOEVSbFB5Z3J6SkRQVUd4cVRxc08vTTNsRjdQV3RvTjVuQUYwM2xyOEIzV0ZINWNQeGNkdS9Oazg1UEwvKzJMc1gyMnZHNUN2U05Uak8zelVoTFV2REpiSXBMbGlLYmNSMFA4cFFlaVY1WDNBU3phSUc4TVhkMCtSN2pvQXRvUUFjQ3A2elJNL0JsRWg4Mi9rNThscElYdHNHcGkwazdlZTZQOHo4ZkF6aDBXd2FEVytraGtRdjZwYlVrTEIvT3JreXR0MldXSW84RmVxYmxKVW5laGtIcWE5ek1GeEZTNUd3aE0zWDZPT0RhZ1hrVDMrcy9FMStlVjhYcHZTbURRV0pEMHZYcDlVLzVJWEo2djRSaG9xUTFVN0hOYnRhWG83T0lFU1BDRkR6OU5ETjVqOXcySXFvVm9OSlMvZXJSOU4rRFE0R0NVUVRsdnlZK3VGdVB2Q01LUWdCSXpjZTkzM3Qyb1dYZ0JkZHJUOFBYVk1sc2NTaVBWVWdEOE0yMWFJOFBETHZkbERnUXVpeEFkTEMxOXNqRDFZSk0yM3R3Q0xRWmxmd2ZpUy9ZS3N0TUlvMFVaRjk1REIvdmY1OXJMRFR1QzBmTWx2M1JZa1ErTE1IUExtOXJFaUw5UkR1R2ZEZVdXeTRWSExWRTFrUHRGMEdjbnhIa0k0bHB4K2JwYlAvOHI0blBuNkZKMXF6UUZ2SUk0dlBlSDBTL2NiMWRLOTRZWlVVSmxmS1dYNnN0TGFDWmc2WUwyckJqcVJ5YnMram5nRjc0djZWTTlCS1ljYkV4ZmhIckVFT1EzME9ULzVUNG5rT1RPYUdPQ0dkT2pSSGs4LzMvK3hxVDlVaklCRGhDRm10bzZ1ZXJTc0dPSTFxa0xXRDZWb0Z2cDVsTnkyRWdPWElZRVJja0FCUHUxYm9VQTFvdHZHanphMmp5SHdvZlAwT1RKTGNKKzE2VzhYVEVqL2UvT1dRb2tUZ1dVTjJGWGRxMm1xUFhkMXNTb2dGM2JCanB6enUxakdTVjFHNlgxNGIwYjg1THEraU5aUGtNU0JxbTNvUW9SUHF2aGErZm9VbHUvRW5NSUUzdjQveGZLQUQ1Z2J3T0dmQWFuSklZN3ZBMUtUWVNTQy8yOWN4WnpUR0h1Q0N4VVZMbWpHc2ZMRzdMMXZ0WVNMMnRCc3FKOEE2Umc4ckxQeFErL3hpYVpHYVRCQUhuSmphemYvejh2VjVGZnhWS2xtMkxFaFNxNlhUZXlIdWxRNWUxbTczTVE2d0NZMkM5N3Rrd3lvVjJIalVkdzhKNFBPU0Q4MXc1V1FLMzNmOWo0ZnZYME9SOU1kb3dOaUxYdENIV2ovT2Y2em5xWkd3Nko1WU0rekZJSXNFOFNFNjJBaVpkQzhRMXovYVBOclk1eHlFV1NlMHhPeUtReVI3NDdsbDRRYy9YU3kyWGVmVi9iWHhvZngrYURHUWNEYUlpWGZEUDEvL2I2N2tJVmJrdVlXdXJaMkppZHpJMHJJMm0vWmlEd0dvdHVTQlJEcXJNd2dCUFpKWXQxZ1RXd1RwT2loUUpaRWVubDh1bFRkbitwZkhsK1BlaFNRbFcrRWM5czFmNGZ5RUJjamJwbTNmUlNEUHpzUmk3RnZ2U2NDTHhIZGZiaXhjTUFibWhncU1qWnpZcWVLVTVIL0N1aE85cmUwaVFyanhYa0tqMkNPM2NRaFpSMzQxUDU3OFBUVllFRWZtRmUwdG85WjllUE14R2Z4V0pWdzBkUE9TMVRNQ0d4LzA2ZHlSOHNHOVpnSnd0VVYwOEU4cXJ6ZG9oNFNIbG5ybjc4RWJQSG5GQUVIMHpacUZTK0NVZHU1aU5ieFhFdnc5TmpxUFFCbkt2UlBYeThmNFBLOHRPZk94WnpWbjhtWTQyL1dvYmwzSURNZEV4RldzMCtQcHBKMWpKR2Z4bWcxdzYzR1d1M3J6M0lOeCt1VkE1bXVYU01lM2ZqWSt6Q3ZZZmhpWTNqamhSb1dGd1pmWEg4ZStHNlBhSU5TQTViM09tVGRwNWx3bjFTd1F0MGR0MWlxUjFGam5tM0FkQ1pIZzNTSWRXbWI3VzJDYW1YdytvcjUwaFEvS2piQUVZWjB3T0lQOHdOSW14ZjdkNVUvY0NwWDE4L25IWnM5NXIwUERzQWRuNnpHS3Vjem9CWnJvbkw5RDhnc0FPSGVPOHMwQWgvbDBsdVlQY2VpUFhQY1JLcEhQSFlET1hmMWNnWlhvOGpWQkpSL0lQUTVPQ3J2c3dxRURvTk8zSCs3OExBOVhlSHZzMXVBSTFaN1dWZVA5amp1MVV2MGYwM1B0VkdmUWpyMUxVRzBORHhqOTBaSGpISFBTRytFeGdqTWFCT0tmMTYrbGtaM05VNGo4UFRUWjlMQXdDWDUyYWt5QWZsbHlDYTltc0JONzRubXgwem9Sc3IzT2dpenB0SWpMWDR6VzNZZ0ZsWEYwSVhQSU15NXZjNUh0NFlkOU1iN21MVWROL2JGQjNTemVON09rL0QwM3VwWWtBWG1FczFSOWYvbXhpS05UQU1ZYy84Yi9yZ3didDh3N1BNNU1kaE4yTVhqZWkyL1k2OEJDRnk5NkR3OE5ldW5WenJNK2FjVUs1T0NyQmplaG9nRWQ0akIrd1dmNFBRNU50TlFLRFRYN3RlMU1mWjhBNWJ1aVJVbGlXSFVOOVcvbXJpeGVmYUFkUHpuUkRtNWN4STFjejZBY3FtdnM2TzcwbVh4aUhSeFRiMjRLMEpweElmSW5kME9EQjZEV0NUSkdKL3p3MHlZUHY4bHhpQmFiN3gvdS9oaEdYUkQ5ZFprMTdWallxZ2xQa1BJZWIyZHRsbVkwd0xLQWhxOWdOUWJUTDJMNjg1L2FGNUtIMmpFdTRDSjl0cEp4dG5jSEczNDNEY291ZHZVLzNiME9UcmFTYS9Md3lpUW9JSC9kLzF1RWpnOE53SnlTMFJwREx2MEFoMG5zd25oZFdoQkdtV1ZlcDJNSnZaYTBzcVlvbnFvdElKN3EvOTJEbmN2MHh6dUxhNkJXREk1ck52dzlOVWxPV0d0MFFFMW02ajk5L2tscENIZEJveEh5V2VMSzNTUE5BRFRiYldYcHBWeDlzaEhkUkU4RU1FUnpoZllKNWNROFhjK0N0N0xNaFlLdXpIMzU1STZJdFR4amRDOVdScXZhM29VbWlXSlgza0czV3l4RVVmN3orQi9Hb3pIblA4WUhSOVo5ODcvd3FNRzlBb29FYlhkdVRpVjRvWUZBUEVjcHg3YXZDZzNhMnJXVm10d0hwejNidUo1cFBRVDFDZ1BzZWpJUGRnbkRrNzBPVFNpTUt2S2dRRE5hZW5vK24vM0dWNWpXeERWTFJ3KzRYdW9EcmdYZFdKdTJGS1F6VXFZUFpia0J3YisrTjU3SmQzY3g3TTZ4MnRqb0wrZzRZeC9xMWh0N0RXWkhveldZcVlWZnYwbCtISmljS1Ntc3dicVdKb3E5RXVIam9qL3QvQzVSY0wwaVQzTXpKUkF6aGRRUE9jUTlhbGx6YWpFY3I1WlcxV0F0LzdGcWxWRDU2SnhFMytWR0hnWEVSbTRTNWpyNjV5WXp0QWlOTDRsSXU4aTlEazdzSFZ0YmNaOGRSMThpc3FPWHA0L01mWEF2aUVPeGd1TGMvWk56YkZ6RjVzNVRsZFUzYk5zYTFPRnBZWFRqRCtGNXdoYXAzVWVzV1JiN25EU1lJNzR5SHJURVdabklUVXBvRHdVdHArL0huMENRUVI2UVd6aFBUOE5UZG5KMlAyOGNCMEpVWUhveXY4R2d6SjRIQXJzTDRsTGVUQnNkN3ZCd1VBYkdhSGg0N085WitScUQyUys0ek45QnJtaFNXekhVOENIRDJ0V1RLanVYb2lDdERxSDhabXFRSW1ReU5VdUVQa2ZkTmVybkdqK2UvTnhzcGJnRFNnQWlwNWdUMjFDQnNSUU1PUngwYmVjMXN2WWM2RXN5Ui8wbU4zdTJTYngreFF1dzhRVnlPakpwY05vOWs4T2o5UnFiZ2NSL2d6NkhKaFZHSlcrSzFNVHhycU83ZFRzTSszditYVXlWODY0TE8wSlh2Y3dGVWRjWnNaY0gxa21LYVFYMUJ1T3ZtN1JhZXpiVCtNZVA5R3pEQVFYc2Z5VXY1azhxWUd4VFR1cngwYXRFSDhzZlFaQlpNU1QxeW5na1JENkpRVW1meis4ZnpYMHhpdUZLem8ra054WjdyRUd3L3ErS1FsSjRwSWJEV1c2dUpSc0xtQ0cvVzV3dDNhU1lDYTE2VVExWW9kRUJ3L0ZjeTAvZXlEdk43YU5KNGdVaVhSMUp1c2dUTmlZeGxFUVJEWXZwNEJkU0pzSUdxNlRaSHdiT3A5eDJSckkxUmhkWmtNamRjek5pclpKeFRrUnZKUFZ5N1JnS25aaXE4TU9tUkhRUGJvd0RjRGs5UUE1RDZ4elVvY29SYTM1a1RlRkdSRUZvV1BnaWxma2VnUVdVZVRpMzE0L24vYWxuMDNEZVgwcjV1Ty9wdVA5TzVJbEMzcjNqU2ZSYUh0NVVhRmhBZEwrQk81UFlZQU41WE90MktKclNYMTc2RzJUcDRJZ3pxcmFYUmd4QTdoc1JTNXhUdGpwUzVGd3lCcm1Qa200WFJtZld4OGR3Vi9mejlGMFZzYlVmQ3AyRTlqd3NYYUFqeUZzS29Ra2RmNW5XRnM5ZFpibHJzcTYxR1dYTWc5RlhwdFNJVmVrMGJKc3M2eTkxSGJyZ0J6M1h0THZWRVdJa2FnOGsxV0c0VUhKckJvZllDbXp2ZWZiYlVxeVZZVHorOWZqSW0rZDNZSE82NEIwWnlhbXFpRVJpaUhZVTRpSnNMZVVIS3h1UVhLckZYRUFrUm9iTVRpWUNwMGhCSmtOSVJtUGNFa3prdnVhZDFnbUlwOVlGYXMyd1lPdXNNYytHOERya2dPTElJTmNEQVN2V2FQbjcvYWJTQm5JR1EwUE9ZU1R5UWE1M3REc0syRFlqWnBPTmVvbFBYZUpwYmkrZ0hzdFp6RG9DdFIwUVh1T0VXd09Nb2hnQXJpWmNpUmFPNXMwaHUxb1pCWDV2aFhFYXdDMXI1dmRrWkpkTE1HNHVTeE5JLzN2ODBZTFVFckt4M25kY2VYM3ZaTjZFY0hCSzVFQ0wwM1RDcldlMEc4YTVBazJaOW1LVzJ5Zi9ueFZCRmFxOXR5TnAyT3U5UnlCNGRpTDhFNzlMZWNrNityMXQzelBTZGV1QXE5ckdLTlJ3SWkyTS9vbW9mbi8vbEdKU3NsR2FkTjdXMWx6OUxYOUVhVUozUkp5d2djMW9vYjFRTmZKSHF3NU5jTFNYcTZKU1MrMmlFa3V4NWc4SDR4ZlBLWEFsalN5OFhDY3VuV1VmVXU5cVEvb2FORXRGNkptTWlEQ3JIS0N6ZjBYL2MvN2Q1N1VXZmNTaWFlUWVZVy9XOHNoeHhZT1Zob0RkWXhMemQ0SDRRLzhIK3BMNVNycVhRTCtiSmUyaVNhSVh4ekNLbVovakRHaEU5ZHdpWWp2ZmRvUHZWbDRpS2hELzYwK24vekxhUmRSSk9IV2g3M0djWEQvUDZQM1J4cXA2SWJlMHM1YUoxb2x2M1djTHoybTkwL3dhaEsvU0FGQ0dyYUdiYTV5NHlYZXpkdVQrSEpwV2NkMEhoVW9pMHZrYkR4TDdydHI0UlZXV3RncXNISmYyZFpNL0xiQUliczJuNGdZdmEvbkgrbDAxekp1YzJtVmliZHhZdEpzNGVGbG50dm9VektLV3RtVWM1a2F4N1k5ZUJ6TmFzeDc4UFRlYmRPNk9pcmVrY2R0N3crb0J1Z1NLWHpnZ0I3V0sxSGJrcEJMMDhnOWUremR6eGgyVmY4REcyRlIzOG5IRG82UGZuZmZlck1USDAzVVlqa2Q5WldJT0JjQldrY1JRYVhaZmNjNDUvSDVvc1c4SWxLaVljb1FheFFJTWRSTHhtODhQU3VVR0gyWmxtYzVRTXZjc3NxSVBlUHIvK00xblBITlNWRndnNzV6b2phRVZNck5lZFd3RlNUMlNMeWhGZVIrbWFRWTNMcVdiZmZsa2gvY3ZRNUVYbDZoanhDRzRYdHc3MC9EQ3Zmc1hnTDZ0QkR0M3lnUXFXUytWdDk0SUJzUkErWHYvZFYxbWljWVlpdFFFU0U2WGlQQmdJMFlaR2lyTE82eXBqQjdtOU9ocDQyM2VFZktUTm5uZXRseVg5WldoU1o3RGwyUG9CNXR6bVpMODU1N1Q4ekpXcXk4TjJualBBZGcxRVo1bU5hT2MrUGovLzhqUHBpV2lmV1VScmtHZEQ0eWdEeXJrUXdvT3ExSldOOU5kVHlRRzNocXpVbkh6b0RSRXlVY0g4T1RTcEtQRzlQMDlIRkpWUk16U0ZEV2JyWTJPenRsQnZjQU5VZ0ZsaGc1WlhLS00rSDhmL1FLMTA0MWcwaUdEd1RFZW0yWjV3bFFpTHlZVGpZZS9qbXNXd2JCNWNwRnM1Z21QN01qYno0bFVPZnd4Tk5tWXN1b3J5dk1zQUo1c1hwQkdGQnA1RDBOYnhOUGhwUEVUM2JnU3k3NkVqK0hqOGw5Q3pEVWg2TmVlK0QxdXFDckpmcWMvQnQrZ2J0RkYwbk1GdGlYWk95ME5melBGZ29JZDQ2Tkg4NG40TlRXSUlEWE1BRnRjVVVFVjR1NGJIMkljNzRzRDNZMWZCRjR3cWJsd0NtTlkvbWYrUDE3OTJnenBQQ1BXeE0wQm12aCtEd3RKU3p5YkdaZHZ5OWZNZEZlL0hiUVdXVzIzWm5FTUhoSWZxTldZWEtQd01UZGJrMXRsT2FRTy9qbGxZMEhqUXFCT2w1dFU5cHpRS2VjUklHRStSUE9TZU1IeWFqK2QvSEJNejlLWE1FQWpNVy8vMlFnazZmMlF4a1NKYTJVOGtLMHQ0OTJuTWtqM3ZjNWpsU3JqK2dOUm5wb2pJREFWKzMybGJVbm9uaGhpOG1nZkdSeFdlSTY5MmtaZDkyajZsUDFkK2NCK3ZjOCtnUDU3L2E3UGVRZmZYUzhOeXhiWEV4YzVyUUpaSjhIdytYbmp3YzdnLy9WelY4R0FzUkJ2bzVQWE1rZ0dwakxDTyt6V3ZCK21kVndNWGo5djh5VjZqRStqNDUzY0xnRVRUR2JWTkI0amhGdmhZWmw4NFBDVjhIZ0FUT0Yvc21ZbHdFbER6TVlhRjQrNkVWLzdBYkczZmc1aVRpbVkvTko3OXZMczZ2ZkxNZ1ErVFg2UFVsSFlnKzQ4ZCswM2dPMnVlT25ETjFuK3lIdzdpSEkxZjF2bmhjMnJZam5GM1hTUkdoNk45SFAraUZidDVxdzNYMS9zc1loZ24xZWl3VG9mTy9qM1ViN24yMXZUVU1Dd0s5YWpILzdxNzRuNld4azJMSG9QRSt3cFpsVkswaWFVMDRqWXJJWStVZlVCK2RZZHFzR04wblVQVSt1RDFVQzdGV1NqOWVQL1hqbytndmRkNnRUODNFakRHVjFoRzNLTytieHNEakJ1OXQ2K0xNM29PaTRHS2dEQUlmN0FXcmhEQll6aW9VcVBxUjdHaVp4K2JNT0QyRXd3Q3BsU1hWZXNhK1BLRXZic0VpNTEzclNJdk5MUGUxbytQOTcrKzdrTytVV0JiQlh0UHM1TUV1bVBJYnE5ZGxRTzJLNVY3MjN1dDU3emUxYzRMVGhFaGdUT1ZnVHl1M3NkVzdZTHNlWGpwTENGREN1YVpZckl1b09vSWJHYlcxK1hCK0NjT2hOTEJYQ0RYbjg3UDdlUHJaM1VzRU02OHQ3aWFkeTB2RnZUZk05dWwrYnJ4N1U2dzdlSllLSnRqRFlPTzArSnY5VTBSUlBDUmM4b1pvbUczSS93ak1IdGpEY0hJd1BBbHRYVkVWME5DQVJPbFdvQkI2YzFhTnJzczJJL24rM2o5Q3loYUpZZXh0ZGpuZDREUndPR0tTR0lHYUZSaU12bitQQ1QzeGlwandMem1DRzVyOTdPVVgvZlhrSlh3cTlEM3Z5TjdSQ3RDRUR5WkllTEgvRk12dkdmL0E4T1BZUGc1bEswdVhnZGRuNC9EbjVuR1ErM01LejZaN0RQdmd5dVZCZjAxeHV0ZHBBWnhuWWVFeEhDbWFpY0tjcTg1dGJ4R1JNaXNLWDQ2RE9Qb0U3cWZsemxIYmR6c2szZ3lrcVg1TFQ5ekJwWnlZVWNpZVhaVnM0RndZVHRTRHc4Q3ErZmorUGZFZzV3WElNeEJuMXdtRi9xNWt3ci9QNDBqeEFmc2JnbmI3VERhWldXTnZiU1RaSDV2a25IbHRxMnZJUUFoeDdKUVhrZ3BQcjV2dGV2SWtTNnV4THdJa2RTMlBVaDV1eGszdEZPMExVMEN2UXJoUDk3LzlEaDVvMk8yemhHWjM2ZHhFNFI4M0NNSTNqVWkrVExRa1F1SGJMVnRJNWY5VlluUnlnNjc3UDFsL002a3psYUd6c2hpRjAyUUZJT2t6WmdGOTJwQnpHTTNCcjVhSHdya1hUNExOTDFuWXZZS3hCWDk4ZlZ6Q1RKWFVuTVZTMmNEN1RiZUNPYm5EU2R6T0hFZkczcnhWRlJibEZLYlczZkVBTTBwU1l1WE9mZzFlS1dPM0ZkcS9kb05JNVFoYms0cmVsQ1N4TnFVRStJSndVc1FaK0t5d2Q1VVJZd3NCOElCd2ZuSDZ6K3pwWHZwWGxKL3FFVGRwVDIwQkZLbGRWNTZ3NjVqcjVLbnM4d0hwU1pFRHJ3RWlTZHBOelQ0VXhYTFNyMGMzNVNQN1NaSXBlWlZxUnRINExzY1d4SDdndUZqY2dqRHphYUJpano2a291aEh0ZS9maDcraVRSOTJvVVludTFvb3JET082Lzg4bXh3UVZyd3RDV1NXTlJhRmp0MHJsRS9oQk94OS9jZERwN3plWm52YXpFcnhyTjFOc0lkVzZ1cHpOYm9oZ3poUlBXWll6Uy94cHphODlEZEttU0VsVUlqSVgzZS8yVSt4M05oYldpaHVmL3FSek5qWHVjZTVwYzRkVG56dkxXVkcrSzRpTitDejFYcGVZZUhRanRtQ3lKWmtHazkxa1NuQ3ozSzRoeUN3VFNSN1lvbW9ZNlMzdGQ4dmtQOWs5SXp1OFQzbW1kZDJINzgvcHRYWjJvR2FGTkpXRlVPazVFaU1VRTFSaDUvY2pRRzF4SjcvT0hjNjBIa2wrbHNhcDkzdUZUd3p1R1czWFEyUEIzdkwwN0JvQ0NOWFB1azlmT3JVcVYweC9zT21HRjhETVpwcU16TlBvbFVMcHBYYno0Ky8zaU1sYyt2dkZtODVzaDc1N2UzQUcwc0IwcXllMmRuZmNsMmZpbnFYUThYMGVaeklUOTMrT2ozV0p1SmdlYm9tQjVIbDBhd3BXd2hONDZHVlp6V2ZFTnU0UlptNzdPRk9pNUFiWEVscnNIb2g1U3hmOXovMDFJR0YzVS9CeTZXanpxdjZHRkM2N3pXdXN6TUQwVWpSeHlEWnlkNVdLdEU1ZjkxaDFOWHV1U1p4NHBFS1l5WU1qSFgwYlVaaVZhMWlHRm5WNnpnVUk2enNuR052ZWVyejhpU3p3c0R6Ulp6bEI4L2Y4SzJsVURsWnlJcHF1MnE1Nmx6WE5aVTh1TDBlOTRCNnF0bU0yZjNpVzhDMGY3UEhWNFFkenBlNjd3aUFKWGRlN2tZcW1RanN4VVlJYytHZE9COXFTeHV4bmxYUmt0MkNJL0NoRmlVRWpTV2czdzgrNDFDS3dTZzZLN0NPSWhwUFk4dE83UUlzMWdKTlJ4c1BTOTRiT3J6am5lVmx1WDNIVzZ6WGV3Z0NobmdLMVBiMDd3c2U5V2VBSzh2MEpUaVZnQ2grN3NyUER3TjJNd0lwSzdBYnlBZW4rTGU1K2pVaDJWT2NQbGVULy8rRnJ6WitZNVBkZ3R4VXJZZ294TjNTQUZHTS92ZGdkODliLzJQTy94Z2ZtdVNVczhEZDBQZnorMnlsSFhDcHVNWmE2RnFSWmdUZlB1SmNjK3BqdFFVQklKTFZpelBDK0RQS2ovZS8vNTRhK0hjZlZHUWVNRlZ1ZWtUQnB3dlRkdjgzZ1BFd3VHQlBaMExwTld3Y1AyK3l1WTk1NHFRQ0I3T1huajZRaGJMai9jWDN0cExlS3VuMDBEd1c1RHl6a21adnRSWlFsMFdWS3FtNHA2UUI1bVA1Ly82MFV0eEJja3VBdUc5Z0ZEVzIzY2IvN3pEMDBGSFhQU2FWOExQaTRIWTRqbjU0dzdQTWxNZXM1ZmxRVnpvazFsY25OOTVQY2VvOEVkcTk3N002Y2YxMWFMQ1RlNUFHdUtNZE5TQ3RvUjJBMFIvdnZ5RERuck9LN0xaekVJT3hMcGN0NStzL0x6RDFheUY5OW5yTnN2YmE1azJUUDY0eXFiYVV0OWZjdjF1bld4OFZVSFByeEE4RVFxaXVjdDhwckloZ3JnN3VoTEJPSmxmTWR4bjZYUGVqZm5HUTUrSC83L2tJQXMrNmxaQ2lYN21MTGE1cmhtZ3k1aGYveVptbWVUVmFuRHhMMWZaMUkzS2QyRUErVThndkpxd1NBd1NNOG5iKy82K0FVbGdtTWp5ZGRqNUZidjF1REhxemFUSis3Y0l5TS8zLzMvbEsxLzV5bGUrOHBXdmZPVXJYL25LVjc3eWxhOTg1U3RmK2NwWHZ2S1ZyM3psSzEvNXlsZSs4cFd2Zk9VclgvbktWNzd5bGE5ODVTdGYrY3BYdnZLVnIzemxLMS81eWxlKzhwV3ZmT1VyWC9uS1Y3N3lsYTk4NVN0ZitjcFh2dktWcjN6bEsxLzV5bGUrOHBXdmZPVXJYL25LVjc3eWxhOTg1U3RmK2NwWHZ2S1ZyM3psSzEvNXlsZSs4cFd2Zk9VclgvbktWNzd5bGE5ODVTdGYrY3BYdnZLVnIzemxLMS81eWxlKzhoV0Evd2ZkbWhtWmR5bW05d0FBTWlGcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrQ2p4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TUMxak1EWXdJRFl4TGpFek5EYzNOeXdnTWpBeE1DOHdNaTh4TWkweE56b3pNam93TUNBZ0lDQWdJQ0FnSWo0S0lDQWdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBZ0lDQWdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQkdhWEpsZDI5eWEzTWdRMU0xSURFeExqQXVNQzQwT0RRZ1YybHVaRzkzY3p3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5DMHdPQzB3TkZReE9EbzFORG8wTkZvOEwzaHRjRHBEY21WaGRHVkVZWFJsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPazF2WkdsbWVVUmhkR1UrTWpBeE5DMHdPQzB3TkZReE9Ub3dNVG93TWxvOEwzaHRjRHBOYjJScFpubEVZWFJsUGdvZ0lDQWdJQ0E4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRLSUNBZ0lDQWdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWo0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6N0JGZ0ZLQUFBQVZrbEVRVlFZbFkyUndRN0FJQWhESzFmKy8wL2hYRTh1akJVekVxSThDZ1lFU1NpUENIWm1FSmFack9leGo3Z0xhbXczWWVlTDVBUGNmZDJLckFzQm9ONWZURTFkTjFMejQ1b1VIeE9xZ2V3MHZmVHI1NDV2NmNuMUlTSXBCOW9BQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleXY", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFUZ0FBQUU0QnNjMGZNd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQlBTVVJCVkJpVmxZOUJFb0F3Q0FNM0hmLy81WGdRMndyMFlJNndKRUcyelNaSkFraGpSZ2QxR3FkRkN5cjAxc2l4QUNVcVlJWEJBcnRyd0xudlZTS2V2WFpud0FWTXRXYmN2NjhQK3BTL0FmNTJIUmZ1cmtCMkFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicDrawDebug", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUU5SlJFRlVlTnEwa01zTkFDQUlRNnRic3FCcjF2Z25haFFQTnVrRlhna3BTS0phZUZhWVFWSGg1WWdWbEFiZjFJN1E1UVRnc0pmZTBlTkJYMkFwajR4V2RxWnV4QUwzUnRJZ0dLdERGR0FBNGg0Vk01NWl5QnNBQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicArrowRight", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUQ1SlJFRlVlTnBpK1AvLy96SWdqZ1JpQmtJWVJNQUFRVTNJaWdscXdxWVlweVo4aWpFME1mNEhheUVLTENmSlpJcmRURlJvRUJYT1JNY2dRSUFCQU1xdGZ6aUhGZ2JoQUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicWatch", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFEY1NVUkJWSGphakpBaFM4TmhHTVIvZTFGWkdNSmd3U2FyVnNPS1dSSGJtcGo4Qkg0Q205L0JabDJ3R3NSZ0U5Um1GbHcwQ0NKWUxIZG44UDF2KzZ1SUIwOTU3cmk3NStrazRiOG9BTmdGZXhmN0d2c0ZlNHA5Z2oxb3FaTVFhVDlTSXQxSE9vNTBGdWs5MG1Xa2ZoS1N6TVRUU0xlUnVnMFI2VENTSXgwMHUxSUQxb0VIU3ZsWUNMMEJYb0ZodS9NWHNZYzlxamVzQWtkQXQzS3R6cHVSSGlPOVJicUtkRmR2T0krMDFOVG96RjVuYndEakd0c0hkb0JuWUp0U251Yk9peU90Uk9wRk9xM3VGeitkdjhOZUF5YkFNcVZzQVgrSWY4SG5BTlI0d3BRazlwRnhBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicInteractive", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQndTVVJCVkJpVmpaR3hEWUF3REFSZnpNSTYyU0JTT3RaZ0tBWmdBYW9NUVU5SmRSUUprUXVjOE5MTHNuVitGeGFnanFQdEovbUtrdVphaXpxSkFiaXJvNWNjSlYyU1ZqTXJGNXpFQXpockRXL3liOURDeXdpMDhFNlJDelk0NTR4WitBUWJuRkxDTEN6ZWt3UnNneTgyUDZENlFrZUFUREtHQUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicCursorCross", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJaMFJWaDBRM0psWVhScGIyNGdWR2x0WlFBd05TOHlPUzh4TnJ0VlFGa0FBQUFjZEVWWWRGTnZablIzWVhKbEFFRmtiMkpsSUVacGNtVjNiM0pyY3lCRFV6Ym92TEtNQUFBQUxrbEVRVlFZbFdQOC8vOC9BeGJ3bjRHQmdSRmRrQW1iU2x4Z2tDaG1ZWUI0Qmh2QUVHZGh3T0pyaG1FVUdnQjN1Z2NXZXB2bWtRQUFBQUJKUlU1RXJrSmdnZz09"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleY", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUFUZ0FBQUU0QnNjMGZNd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQkdTVVJCVkJpVmZaQkpEZ0F3Q0FLbDZmKy9iRTl0RVlPY3pFaHdRV2FHNkFJd1hNYWtkVEcyYUdhYklLUTVqcllhamNBUEhZMzhFZDVSanltN2NpS2k2ekVkRFZQSEFlQm5EaFZYand5eEFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_flixel_system_GraphicVirtualInput", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVk4QUFBQzNDQVlBQUFEcXhOS1RBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFJLzRTVVJCVkhoZTdWMEhlQlRWMm9aQVFocEo2RFVKRUZJZ0NUV0IwRU12Z3ZUUWV4VlJxaUJGQVJYcjlkcTc2RlV2WEFWQkZPV2lRRUxvSllRV0NFMUV4UUplRkZFUkNQRDkzM3QyWmptemV6YVp0TjBOZjg3enZNOU9kcy9NZWVma20vZWRjNzRwSllqSUZpV3RlT1MxYUVhY2t4Rmw0R0RQenhaRmw2OTd3TUFQeGZZN2hyVithbXBxOUpZdFcrS2NDVzR6ejMxODh1VEphRWFjay9IL0tpWWVlWXFpSDNtUzRweUtweWpQZlZ6VStMb0pEUHhFMmVBWEthQlZBRHhvMFN1ejZPR1hMOURDNTRubVA4ZjRwNVBBYlMxOGdVVGJpMTZaSkxob3ZDU2VPdXo1TG5tRkJCWTdDWHA3S3I3TmU1WUFlTm1lcndXbE5KUjJNdlIyZFI0V3Zsci9va3lkT2xWQS93MzFVbEpTWmlVbkoxOUlUdDVNeWNtYm5BeTBtWHlCT1JqNldPSnAxOGZIangrZnhiaVFtWG1NamgwNzZsU2dUYlROTVBCZHVuUnBDWUNYN2ZocWNLdVkwUHNYcFZiNEV3TDZiNmkzNkhHYTlmQlN1c0NmeEovMDhHTk9BcmVsdFltMkRYMnM4MndZWjRIK1Blcm9mQjk5aWdoZ1FYY0s5TFpVZkJuV3ZyWHRYdzF1RlJNNlQxRWs0N0FRZmZpbGoyZ0cvMmNTeHhIVjcwOFUxYys1UUp1ZEpoRE5RblF3bDlzN0lBU09QKzM1TG42WmFESkgxTkNIaUlZc2RDN1E1aFRtdW9RNTJQSzliUjYzK1ZyK01aNE1MdzFsbkF5OVhYRFFnOFRhdnlpU2NRak9MTm9mYmRyMEpYMzAwVWYwM252djBiLys5UytuQW0ydVdyV1NObTM2aXNBRm5EUnVRdUQ0MDhDWFJmdWpJMGNPMGJadHFiUng0MWYwMVZmT0JkcmN2bjBiWldRY2hva1krRXJtVVNSaVFqWVAvSzE5WDRxRjhLUDVTNGlTUmhGMXZwc1AyVjdPQmRvY01wWm93U05DbEExOURLNlNjVmo1TG4yR1pXVStTOFUwb2tuM094ZG9jemEzRFE0cXZyYjl5M0RibUxDYUIvN1F2aXhGaTE0ZVRiT2ZKR3FZcEJaMlp3SWN3QVdjSk9JYWJ2T0ZjWXg0bUdqd0F0Y0NITUFsTzc2V2Z3VCtNZDVkdW5TcEhSRVIwZHJaQ0FzTGE5V3paODhRY05DNGdKT1ZyMjFNc0ZpUDNyejVLL3JnZy9lVnd1NU1nQU80Z0JPNGFSd05mY3hpUFJxaXZXblRKcVd3T3hQZ29CbUlMVjk4Q3I2TUloY1RpNStnMFF0WnRIdmdQRThoN000RU9DeDhsQTg5NWdSdUdrZERUT0MzeDFpMDc1MUpOUEUrMXdJY1lDRFo4V1VVaVpoQVVPaUV2V2orODRlb3h6MUVrWDNkQTcybThLbkY4enNFTnd0SEdSYStVNTlRaTdrcmNEK2JuWm92bkJ2ZmVWZXJWcTFQNmRLbDk2RHJPMVlPb2I0MTZqb1Y3U3JWeElRbE1ZZHR3Y0hCWGNGSjR3YWVIcll4a1p5Y2ZHajE2bytWWXU0S3JGbXpHbE5ZRG1QaTJMRmpoM2J1M0s0VWMxZGcxNjRkeEp4a3ZySkEyTVZFZ3dZTktDRWh3YW1JaVluSlZVeXdjUndhTVpHb0k0dTNPMkEwUzlaRGo1RERtQURmT1F2Vll1NEtQTWpubVE3NEtuV2lXdlhXRkJMYXphbW9VaTBoeDVoQVVJZ09admhjZitEcExISEdyeEp5VnlCdUtQMDE2OG0vbVp0T0hBY2NPaGhPYU9FNzRpRVdiaDRQdWdQR0xITElsOCtXL2IyOXZkOUNsNy9icWlkZG5jMm5Id3VlSjVyM0hPT2ZUZ0szdGVBRjBmYUxjWjFGY1BqNStURUp3VmVjV2RqR3hJWU5HN0krK09BRHBaQzdBaXRXTEtjdnZ2akNZVXdjUG53NGEvTm0xNDg2ZEtTa0pGTjZlcnJPVitlS1QwTk1USnMyamY3NzMvOXErUjFWM3Fjd3NWbTBQWEhpUkZNeE1mZmg2MW5kKzdGdzkzUVA5R0xKZW1EQlh3NWpBbnp2bmM3Q1BkVTljTjhzeDN6bG1Halg4VVdhL2VEdjlOQ1NHN1J3eVUxYXVOaEo0TFllZXVTR2FMdEY2NlVPWXdKQmdUKzhmWHg4bnFMWi95Q0tnbkQzY1E4MFNxSkw5ejFHL3Y3K2p6RkhId2FDUVFTRWxTOUVlNUNiWVBoRDJmRjlFZDE5cUQrUHBxYTdPcWZFcDQwem5oQmN3RW5qS3dMRE5pWTJidHlvRkhGWEFVYTJkdTFhaHpGeDlPaFJwWWk3Q3BzM2I2YmR1M2ZiOGtWZlcyUGlsVmRlb1kwYmtWUDYwTVU1cFM4Rmw1eGlZaTZmT1dQS1NDWGtyZ0NtcnFiUHZlUXdKc0FYWi93VFdMamRBVlBZeUxMaEsySmk4UEFkTk8vaFc1UTAwb1U1cFRGOHZybm9sdUNpaWdrRWhWZEVSRVE4TDk2Z21VK3JSZHhWNEZIUW4xTWZCZkViVFpzMmpVWG5BdlhyMTI5bTVUdG9udnRnMkVMbSs1Z2QzOGpJeUJibzZpY2J0aVdhNlVZNXBWbFBDazRTWHk5ZU5zUUVCRkFsT0s0QzhoNmZmdnFwdzVqSXlNaFFpcmlyZ0x6SDNyMTdaYjQ0K0h4alltSmFsaXhaa2thT0hDbnlPTzZVVXdJbmlhOWRUTXpod1g2SHU5d0hHQVZObi9PSDRKeVFrTkFBOFFEb01RRytFKzUxSDl3ekRlWmh6emNxS2tyb1JGeXpCVFNmUmR0ZGNrcmdBazdnSzhjRWdvSkhTWlpoRWsxallWT0p1S3ZBQW5mMW5rZEFtbng5ZmQ5Z3JuNE1meDVDdlkwRFQvQlZpYmlyd09aeDlWNWhkZ2ErZkRheEVueC9HYnVBSTkyTmNrbzk3NlZ6SXg0UWZEa0dYbWV1WlhqWkVCTmZmdm1sVW1qeUFwelZBcXJmekFJQ3QyN2RPb2N4Y2VUSUVhV0k1d1ZmZlBHRmdPbzNzNEI1N04rL1grYnJ5eWlyeHdTdVlITzNuQkpHZCtEcktDWm1jeGlyUk54VmdIbE1lK0FLb1Q4NURxd3h3ZjM5dHM1M1BJdTJ1d0JYWGsyYlk4KzNUSmt5SzhGMzRwVHZhTVFFSGxXeGVMc0RSazhpR2pQaHBGMU1JQ2g4UER3OHpvckYrNWF5cVBUT0YwN1g2VVI3UTl0WmNhUldlMlU5VTJnNGtLNVBXaVJJTThkTTVob0FsQzVkK2l3Nlh2Qk5lakJmT04xak11M3ROTXFLSTEzSEtldVp3dEFGZEgzS0VoWGZuOEQzeGd3ZUtibFpUdW5hZlU4SXZxVktsVHFCV09CbFEweHMyTEJCS1RLNXhUUFBQRVB6NTgrbkJRc1c1TXRBWlBOUXhjVGh3NGVWSXA1YnJGbXpodDUvLzMyQi9CaUliQjRhMzdMZzYrbnBLV0lDL2V1R09hVnNZMkltbnllcFJOd1JFdHBsVWx5cnZWYTA2bmhPV2E5bGg3T202dG1pTzRmeWZiUC9GbUxNY1dDTkNabXZTc1FkWWNEUVRPbzljSzhWUTBhZlU5WWJQUEtzcVhxMmdIbmMvNENTNzAvZ08rdkJhOElRVlZOMHJnQnlTdE1mK05NdUpoQVV2dnh4UXl4T2VaUW9na1U3SC9qNjJiZnA0czc5VnB6NzZITzZFczRNRkhWelJBTTJqL0VQQ2RMYzBiOHgxMENBZCtBR09sN3dWWWw0THZEMXU2dm80b0dqVnB4YnY0V3U5Sit0ckpzallCNlRGaHY0Wm1Sa2xHZStOd1hmV2U2WFU3cCszK002MzB0NlVNZ3hnVVNxU21SeWc2VkxsOUtERHo0b0RBUll1SENoc3A0WndEdysrK3d6aHpGeDZOQWhwWWpuQmhnTm9DMFlDQUJ4VjlVekE1aEhXbHFhekRjZ016T3pnaDRUcUdPN2o2NEU5bFUzRDBjeE1YMHVVZnNlNXZIUjZyOXBYOXBGS3g1KzVDZ2xkczh5MUduWDlRbzkvYy9NMi9YMi8wcFAvdk9tb1k0amRPTlF2bmVtVll5dE1TSHpIVGZGUFA3NzFkOTA2UEJGSy83NXdsRWFNem5MVUdmMHhDdjArbHVadCtzZCtaWGVmdSttb1k0ajRMNlBxYk9NZktFVHpQVW0rRDR3NzZhWU1sSUp1U3ZRQTlPQ3M2L1l4WVFlRk9JSG1yUkVMZUltY1Q2c0cyWDkvZ2R2MGxqT3RSbXVySjhqWUI1akYrcWtzZUVnZ0E4ODBmR0M3MENPakR6aS9OMzNVZFlmZndxT2NqbkhiYXJxNTRnaDg5anNIamJ3WGJKa1NiQ1Y3M1QzeXlsZG55SnlOT0NIamtBc0dHSmkvZnIxU3BFeGk4Y2VlNHdlZnZoaE1kcDQ2YVdYNk9XWFg2YlhYMzlkV2RjTVlCNWF6a01aRXdjUEhyUVQ4TndBeHZIdmYvOWJDQ2hHT0o5Ly9ya3dVRlZkTTRCNTdOdTN6MkZNRk9TMFlFRUEvWXQ5MXZncVkrTCtCOVFpN2dneitOQ1F5K1hMV2RTcDV4bERuYnNIWkdpL1dzb2ZmOXlpWGdPTjIzR0VyaHpLOTB5M2lyRTFKbVMrS2hGM2hLZWZFeFNzNVk4L3MyajBoRE9HT2hQdk5mTDk2NjliNGlvcXVZNGpJSGsvWllhUjc2SkZpMEowdnJNZXZLa2NZYmtLR05uZFA4dHFIdGFZTUpvSEN4OUYzSjFuZkR2aElmU2pYVG16K0VWbC9Sd1JPNEN1ajVvbmt6YWFCL2dPbkpObmZMdjRKY0hQdHB4NTVRTmwvUnd4NUVHNlBrWWtscXg4V1NoQ3JYeHhINGhLeEYwRm1NZGtTMDVKRGdydFUzd1BFVldKakJub3hnSERnSEhBUU41ODgwMXhOcStxYndZUU4xeHRKWEUyeE1TQkF3ZVVJbTRHdW5GQVBHRWMySGRNSyszY3VWTlozd3lraExreUpncHFXaEFvNkp5U281aVl5aUxadm52dXNPcVRtN3lKMitXMU4wOVJ1eTVYeEcrdE8xMms1QzNudFY4czVhRkgxTnRSb1N1ZlowNjYzeXJHMXBpUStZNjlKM2Y0Y3BPUjd3ZkxUOUdvQ1ZmRWI4UEdYcVFkdTR4OFgzcGR2UjBWY01YVjVHbEd2b3NYTDY2bDg1MHh4LzNNWStxTW5NeGpESjl4cTBUY0JMTENlNGtwS2xXNW5IR1Nyb1F6QzhWNjJRTG1NWHl1VE5wb0h1QTdnRVU3RDhqcVA1dk9yVThSL0d6TDVaUGYwSlcrTTVYclpZdkJiQjRqaldZM2QrN2NPbGErOXo3T29zMlJuZzhVZUU1cGduV2F6Um9VMnFmNEhrS3FFcG1jb0J2SHE2KythZ1dNQTZPR0R6LzhVTG1PR1VEY1B2bmtFNGN4a1o2ZXJoVHhuQ0NQT0hSQTJIR1o3ZGF0VzVYcm1BSE1ZOCtlUFE1am9pQ21CWUdDekNsSjA0TEttSmd5Z3lpUlJUczM2RG5BTXBxUVN5OGViZUMzQ1ZPTVovRmJkOXl3V3o4N2RPRlFuampWc1htQTc5akp1Y05VWGdlakNibE11Q2REL0Radm9aSHYvdlFiZHV0bkIxeHhOZkUrSTk4NWMrYUU2WHluemM2ZGVSUjJUcWtibThlVWFUbVpCd3NmUmZUS0UzNXN4QzFJNWNiR25kcVNwWnh1UFVTNVhyYUk3VWZYaDh5V1NSdk5BM3dIOEpnMEQvZ3hpYzFCS2pkMkg5YVdMT1gwU0I1cks5YkxGb1Btc3RuTk1mQTFtTWRrTjh3cGpiWG1sS3hCb1gySzczRVdxaEtaN0lBY2g2MXh2UEhHRzJKYksxZXVGRWxvMVhwbUFISER5RVhpYklnSkpLZFZJcDRkVk1ZQlVjZUlZZHUyYlpTY25LeGN6d3hnSGpBZ21hOGNFL21kRmdRS09xY2tUUXNxWTJMU05MV0k1d1E4MGtRdW0zbTBFZC82Q0IwL2NWbjdCZ1p6a3dhUFZxL3ZDRENQY2ZjNk5nL3dIY09pblZ1ODlKcWdaQzBZYmZSSk9rS252NzdOOTgrL2J0SURDOVRyTzRJbGNlN1lQTzZiYVM3WG82T3djMHFZRnB4OFgwN21NWXdGazBjUWVjSFpXVStnTDI4WDNBUW5sWE52ZmFoY0wxdkVzSG13eUlPYlJ0cG9IdUNMNUhZZWNQYnB0d1F2YTdsbnFiWmdLZWRXclZldWx5MlM1dGlabmNFOEpyaFpUaW1XeldPME5hZGtEUXJ0VTN5UHMxQ1Z5RGdDaEd6Um9rVWlyd0hUZU8yMTEyalpzbVZpQktNYlIzNXVoTXZKUEpDY1ZvbTRJOEE0bGk5Zkxzd0NwZ0V4eC9leWNlQkdQOXYxekFMbXNXdlhMb2N4Z1RaVisya1doWkZUc3BrV3RJdUpDZmV4R0hYTEc5SVBHcWVEMXE0N3B5MVpDcVovVk90bEI5elFOdVlleCtZQnZyamNOQzg0ZHR6STk4dU5ScjRyVnFyWHl3N0llNHkxNFN1Yng3M1RjMmNlenNncFRidzNKL01ZekFLSXM5aGM0a3JkN25UK3Yxc0VLWlJyUjArTDcvLytjcnYyRGRHVjczNmt5eXgrdHV0bWk1aStkTDMvTkptMDBUekFWeVhpT2VCS24rbDBmdXNld1F2bDJ0ZmZpZS8vM25sUSs0YjUvblNCTHZlKzMyN2RiQUh6U0pwaDRHc3dqN0Z1bUZNYVlaaG1zeE1LQ0lsS1pGUjQ4c2tucmNZQjA4Q25iQnd3amZ5TU9nQ0kyOGNmZit3d0ppRDZLaEZYWWRXcVZWYmpnR25vaVhIZE9HQWFNQThZZ08yNlpvRjFkK3l3M0tHcmlvbThUZ3NDaFpWVHNwa1d0SXNKaUo5S3hNMWcwQ2dXTng1ZHFFcjZ3UnZLZFhJQ3pHUFVSTWZtQWI2akorWU5zK2RaUmhlcWNpenpobktkbkREdUh2NmM1Tmc4N3JtZnpZTkhWTGxCWWVlVUprekp5VHdHekZTTGVBNDQxMmFZSUtTWDY0KzlJYjYvT2NkNDJjSTMzY2ZiclpzdFlCNTk3cE5KRzgwRGZQdk55alhPalhwUThOSEw5YmZYaU85dnZyUkMrOFpTdnBtOHlHN2RiREh3QWJyZWI3cUJyOEU4UnJsaFRtbW9JYWRrSnhRUUVwWElxUERJSTQ4STA4QVVsUTZZRDg3dThidHVIUGtkZVVEMEpjNkdtRUIrUVNYaUt2em5QLyt4bW9ZT1RESEJPQ0Q2dW5Ia2QrU1JuWG5rWlZvUUtNeWNrczNJemk0bU1QV2lFbkd6ZVBjRDNwcWk1TldVWUI0anhqczJEL0FkeGFLZFYzenltYUJuVng1NlZGMC9KeUJwUG5LQ1kvT1lPUFdtM2RSY1RpanNuTkxZeVRtWlI5OXBMTm9zUXJuRW1jVXZDRkxXa2pqVzhsdlRKTzBMUzdGTVhkbXY3eERSZmVoNnIzdGwwa2J6QU45K01KRGM0Y3hMN3drKzFqTDVNY3R2SXhab1gxakt1WlZmMksyYkxRYk9wdXU5aldabk1JL2hicGhUR21TWVpyTVRpdHlleGNyR0FUejk5Tk9FMFFjTVE0WnFYVE9BdUdFVUkzRTJ4QVRFWHlYaUtrRFlaZU1BVnE5ZUxYNkRZY2l3WGRjczBNYjI3ZHNkeGtSdXB3VUJKK2VVN0dKaUpBdGcyNjU1UjhzT0Y4WFVpbHpXcnZ1Uno1Q3ZLT3ZuQk53VE1YU3NZL01BMzFFVDhvN0JJeStLeTNYbDh1WEdIMm40bUN2Sytqa0JTZk5oNHh5YngvZ3B1VGNQb0RCelNyaXZCZHprbURDYXg5MVRpZXF5YU9jQ1Y4SzY4Wmt2YmpxMGxHdEhUeGwrRjM5ckJWTlg1MnQzTnZ5ZUxlcXplZlNZTEpNMm1nZjQ0cXFvWE9ESzNmZlQ1Wk5uQkIrVWE2ZS9NL3d1L3RiS2xSL1AwM2x1WC80OVd3eGc4K2hwZWRpZ3p0ZGdIa1BjTUtmRW96ZUpyNTFRUUV4VklxTUNoQkRDaFROZ2lCaytIMy84Y1pIQWhZSG85ZDU5OTEzRGVya0J4QTBqR1lteklTYVFYMUNKdUFvWXBXQjBnYXVxWUJ6NGhQanFOd1ZDK0hYWXJtc1dXQmNqR1ptdkhCTVlLYWoyMHhHY2tWUEMvMXppYXhjVHc4ZXJSZHdNMm5USm9uR1REL0htakFWbWNsZmZROHAxY2tLbm5pendveDJiQi9pT1pOSE9DMGFNeTZJSDV0bnpoWm1NbVhoSXVVNU93RWhveUJqSDVqRjI4azNsQ01zTUNpdW5OSEo4VHVaeEY0OGJWU0tlRGM2MjRqTmVxV1F1K2lkdHFON01Ddnd0bDI4bjhObTlZanRLd0R5NldoNFRyWkUybWdmNDlwMlJLNXdkOFlEZ29aZk1GOTZoRFMzN1dZRy81Zkx0d3p5cVVteEhpZjR6N2N6T1lCNUpzMW0wYmFibVRLQlFjMHI5RERrbE82RkFma0VsTWlvZ2Y0QnBJSWpYVzIrOVpUVVE1RUllZXVnaGc0SGtGUkEzVE10SW5BMHhrWnQ3TXJaczJTSVM3QmhaNEdZOTNVQXdMWWFycjFDbklNd0RsL3JLZk9XWUtBSTVKYnVZR0RxV1JidEwzdENoMnhuNjRZY3J2RG43c2pmdElyVklQSzljTHp0MFpLbElHdW5ZUE1CM0pBd2tEeGcrNWd6OS9MT2E3OEZERnlscDJIbmxldGxoekNUa2ZoeWJ4K2dKZVRlUFFza3A4WGttUmxuZ0pzZUUwVHk2OFY3VjdaRXJuSDNXNXFxbEhNcVBtTGRYYkVlSityM3BlcWR4TW1tamVZQnZuK201d3RsM1Znb2Vac3VQWHlRcnQ2TkV2eGxzZGhNTWZBM213ZWFpRlBFY1VHZzVwV2cyRCtNMG01MVFRSlJVSXFQQ08rKzhReXRXckRBWUNNd0RlT0tKSjZ3amtQeU1QQ0NPYUVQaWJJZ0o1QmRVSXE0Q0hqZWZtcHBxTUJDWWgyNGc4Z2pFZGwyendMcG9RK1lyeDBRUnlDblp4UVFFcWcyTGRtN1Jzc05sZXVXTjJ6TVJLTGJ6OU5ObUg2TFduYk9VNnpzQzdrVVlNTXl4ZVlEdkNCNm81eGFEUjE2bTl6NHc4clc5OTJQUkk0ZFlXTE9VNnp2Q3FJbk1kN2hqOHhneEx1L21BUlI0VG9uTlk4aW9uTXlqTTR1UFNzUWQ0SEtkTHVLTU56Y2w2L2ZMZEw1MkorWDI3RkQvYnJyZVliUk0ybWdlNEtzU2NRZTQzSE9LbUlyS1RjSGpTODUzNS8rMlludDJnSGwwR212Z2F6Q1BQbTZZVStwcHlDblpDWVV1VEdZQVU0Q0I2RmN3UWN6ZWZ2dHRZU0lBRENTL0k1RDMzMzlQYkYvaWJJZ0o1QmRVSXE0Q2hCMEdvbzlBOVBzNVlDS0FQQUxKSzlBR3RpL3psV01pTjlPQ2dHd2NRR0hrbEd5bUJlMWlZdUFJdFlqbmhFRWpqSW5iSDMrNktiWWxGMHhmSlhZOXFWemZFV0FlL1lZNk5nKzBvUkx4bkRCMW1wSHZoVjl1MmwwVys4Y2ZXVFJrNUVubCtvNkF2RWQvRzc2eWVRd2JjMU01UFdjV0JaMVR3dk90Qm8zSXlUemFzeWpWN1c0YTMzVGorbmtvWDQ5L1VMazlPOVRyUmRmYmluY0w2S1NONWdHK0VHU1QrR2JpUXRGK2JzdlhELzFUdVQwNzlKdE8xeE9OWm1jd2oxNzM4WDV4cE9jQ2haNVQ2bjZQWFZCb24rTDczRnk1QS9QUW9Sc0l6dDUxQThFbmNpQ1l0MWV0YndZd0R3aTZ4TmtRRThndnFFUmNCUWk3RHBXQjRCTWpMNGlwdkY1dUFITktTVWx4R0JPNW1SWjBWazdKWmxyUUxpYjY4MEM0RFlkWmJ0Q3N6Vmt4TFNXWCsyZGJmbHYybm5HYTVmM2xaNmxGNGtXN2JUaENCejdQN0RQWXNYbUE3M0FXN2R5Zzc2Q3pZbHBLTGt1ZnR2eTJlcTJSNzhkcnpsTFM4SXQyMjNBRTVEMzZEbkZzSGtORzVkMDhDaU9uQlBOSUdwYVRlYlRsOFYwWWk3WkpmUGZtZndReGErR3pXRlU5YW9kM3ZkOHVtTC9QcXNQaklWVmRHVkZzSHEyR3k2U041Z0crdUJmREpMNzdjSjFvMzFxbVA2V3NSeE1XYXhVczVYenFic3BDY2w1VlYwYmZhWFM5amRIc0RPYlJ3dzF6U2wwTU9TVTdvY0RsckNxUlVRR2pEdmxUdjJ0Yk5oQWd2K2FCN1VtY0RUR0JLU0tWaUtzQVlkZEhIL2lFeU9NaGhyWWprUHlhQjZiRVpMNXlUR0IwbzlwUEZaeVZVOEwvWE9KckZ4TjlPU1JiczJpYlJjdU9WK2lwWjIrZkFLR2ticjloL1IyUHY3Q2RweDg3Q2ROWDl0dFNBVGV5M1ozazJEekFkemlmWjVvRnBtaGVmZDNJZDkvK0c5YmY4U3BaMjNzL1pzODlaTmhHZGtEZW8vY2d4K2FSTklMTmcwZFVlVUZoNVpUNkQ4M0pQRnJ4K0U0bDRncWNyOVZSVEVIcEpldjduNVQxZEZ5VnpwQlJmb3p0cGF4bkFNd2pZYWhNMm1nZTRLc1NjUVhPZDV0Z2VJSnUxcysvS092cHVIcjZXNjJtcGZ6WTM2UjUySmlkd1R5NnVtRk9xYU1ocDJRbkZNZ3ZxRVJHQlhua0FRT1JSeURZRGd3RXlFMGV4Ull3RDV4OVM1d05NWUVSaEVyRVZaQkhIcnFCNkNNUTJZUnlNNXF4aGI1ZG1hOGNFMFVncDJRWEU3MEhzV2gzTW84ZWZUSU0weWd3aWdFOEdwRHI0S3hlTHVkWUFPTmFuVGJVY1FUY3lOWnpnR1B6QU45aFk4eGp6UGdNTVIybGx6Ly92RW5USHpEV2VlTnQ3VWV0L1BUekZlbzk0TFNoamlOZzZxclhRTWZtTVdEWVRidXBPVE1vekp4UzM4RTVtVWNML28vaWloMFR1RFRSZUxmejllZmZWOWJUSVg2WHl1K3orYXhmVWMrQXFKNTB2ZGxnbWJUUlBNRDM3dnRNNGRLU1YwUzdlcm0rbkVWV1VVK0grRjBxdi8vakhXVTlBL3JjVDlkYkdNM09ZQjZkZUx5cUVuRUhjRXBPcWYwWXU2RFFQc1gzRUgrVnlLZ0FjZE9oR3dpQUVZaCtPU3hHSW5tNXQwRUh6QVBDS1hFMnhBUkdEeW9SVndIQ3JrTTNFQURid0RPeVlDSVlpZVRteGtOYjZOdVUrY294VVFSeVNuWXhnY2RhcUVSY2hWWWRzeWhsS3paenV5eDdUMTMzNUNuajJmd2J5eTRxNjlrQzV0R2puMlB6QUYrVmlLc3dkRlFXN2Q1ajVMdDZyYnJ1TjJlTmZQL3owVVZsUFZ2QVBPN3E3OWc4K2czSm0za1VaazZwZDFKTzVzRkNyUlJ4RlNZdklYcmhnOXRvaHlrdlJUMGQrRjJ1ai9WVjlXVEFQSm9PbEVrYnpRTjhWU0t1d3VOOEJyOWkvVzJNWDZTdXB3Ty95L1d4dnFxZURCNTlYRzgyeU1EWFlCN3VuMU95RXdvSXYwcGtWTkROQXRDRkRrS0dUd2crNXZlUklNYmZxdlhOQU9LR1Q0bXpJU2IwS1NjejBJVWQwTTFEL3g1VFRiaHlDOUMvend2MGRXVytja3dVZ1p5U1hVemMxVjh0NGlyZ1JVMHdDeG1xZWdBdVlUVmJWd2JNbzFzZngrWUJ2a05adE0wQUR5MzhtTTFDaHFvZU1JOGx3bXhkR2NoN2RPL3IyRHo2Sk4xUzVuYXlRMkhubEhxeDJZR2JIQk5HODhEVk95b1JkeFZnSG8zN3k2U041Z0crS2hGM0ZXQWVObVpuTUkrMm8zbS9PTkpOd2prNXBSRjJRYUY5aXU4aFRpcVJjUlVnYmhCUGliTWhKdkp6TjNoaEFPYUJ2SW5NVjQ2SklwQlRzb3NKdk4raEZZdTJ1MERjQlgyM1kvTUEzNkY4aUxnTGtQZm8ydHV4ZWZRYWNNdVEwOGtKenNncDlXQ3pBemM1Sm96bTBYZ0FpMHBYOTBIVVhYUzlZVitadE5FOHdCZUpiSGRCNzZsMlptY3dqMVlqZWI5c0JOd0JuSmRUR21ZWEZOcW4rQjVUSXlxUmNSVWdiaEJQaWJNaEpqQ0NVSW00cXdEendKU2R6RmVPaVNLUVU3S0xDVHdvcjFWSDkwRTdsb3JPUFIyYkIvaXFSTnhWZ0hsMDd1WFlQTzdxeCtiQnBtZ1d6c2dwZFdPekF6YzVKb3ptMGFBZlVUak9XRzFFM0ZXb3grWVIwMXNtYlRRUDhNVVpmeThXYm5kQW4vdm9lZ09qMlJuTXcvMXpTblpDZ2VrbVFDVTByZ0N1QnNySlBEWnVWQXU1SzdCcFUvYm1VUVJ5U25ZeGdjZFZ0R0ZSVVFtNUs1RElvZHp4THNmbUFiNFE3U0dqM0FNajJEdzYyWmlkYkI3ZCs1ZzNENmZrbExoL3U3RFpnWnNjRTRhZ3VGYVB6MVliY0UvWFllRjJCelRxUTFkNDlBRnVHbW1EVUZ5TDdVUFUvMzRXN252ZEE4emxTcXpSN0F6bTBXeUlXc1JWY0ZwT0tja3VLT1NZd0puczh1WG04eDZGalJVci9pMnVMcEk0RzJJQ0FwcWM3RDVUVnlrcHllTHhJVEpmT1NhS1FFN0pMaVlTdS84bG5pZWxFbkpYQUNPTGR0MStGLzJwTW8vMlBmNFNOK2FwaE53VkdETVJaL05HdnJKNWRPMXQzanlja1ZPQ09XTmtCMjV5VEJpQzR1ZGFIZGhpeGhCRjlGQ0x1VE1SY1JkSHhUajZOaVJSSm0wUWlwOWhkSU5taUROK3BaZzdFMzJadzVDWjlHMkRuZ2ErQnZOb09rZ3Q0cTZDeUNrTnNBc0tPU2FlZSs0NUZxU1AzV0wwQVE1cjFud3M3cXFXT0J0aUFsY3ZiZCsrTFY5SjdvSUNPSUNMVFFMYUVCTkZJS2RrRnhQTjI1MFF6NHZDbFRndFdieGRDZHpFTm13Y1VYenJnNkkvVmViUnV0TUptblRmTFJvKzloYUx0MnN4Z2psTW5uYUxXbll3OHBYTm8zT3ZXOHJjanF1QVI1UmdaQWR1Y2t3WWdtSnJZQXpkaUdUUjdzWTIzWXlGTG9iRnVUNlBScHdKdE5tYzIrNDJucm4wcEs4Q28yWFNCcUhZR3QrVGJtQzBOR29lMGZDNVJBUHdpQkRjNmUxRW9NM2hEd29PNFBKVmsrNEd2ck5temFwdE5ZL0dBMW0wT2RyZEJTS24xTTh1S09TWVlQN2k3SGJ0MmpYaXlpQUlJUVRQbVVDYk1BVThCd3BjcGsxei9JS3dmL3pqSDJMMHNXUEhkbkhQQmhMb21NcHlKdEJtYXVvV3dRRmNjQVdVekZlT2lTS1FVN0tMaWZENnI3Tm9YNk1SNDRsNjlyZGNqWU41Y1dmQ2NnV1E1YkxYZHQyeUtLemVTNkkvVmViUnVQbnJYT2NhM1RmckZwdklUUjZGM0tTUjQ1MEx0SW0ycHpJSDhHMFliK1E3WThhTU9qcmZUbmV4ZWJBeHVndVFVK3JRUFFmejJPQVhTZWtWbWxBV0x1UHNpWHZvcHhEZGZRLy9sNXdFdE5XSDI3eHJBbDJyMjQzMk01ZlZ2dUV5YVlOUWJHamVrOUtiOUtRc0dON1FXVVQzTENMQ0M1d21QZXdjb0szSi9EbDRKbDFqRHZ1WnkrcTRiZ2EraXhZdENyR2FSME9PZG5mTEtjWDJzUXNLT1NhbVRwMUtDeFlzRUZmeHdFRFdyZnVNUHZ2c1U4WmFKd0Z0ZmNadHJ4YlRWZUF5Y2FMakp5M2pTaU84VVE4MzB1M2N1WjEyNzk0bEh0UHVUS0JOdEkzOEE5N3loM3N2Wkw3ejU4OFA4ZkR3RUh3eG1uS0hVWjBPUlU3SkxpWnFoVDlCOVJwOXpDT1BxK0sxcXVQNWtOWGZ6KzBzb00xUjNIYnJ6bjlSdllZcktTUnNrZWhQbFhrMGpIdUM0bHAreklaM2xhWk12MFVQekw5SnN4bXo1amtIYUF1NGg5dHUyK1V2NXJLU1lob2IrUzVjdURCVTU5dWgreTIzeXlrbGRsV2Jodysrd09KSHZuV0ZnV3dKaUthdnE3YWdYME02ME8raEhaMktpeUh0UmR2Slplc0xMc3Q5dzNUU3Z6TFhBSUNGNGs5MC9FZE51Z2dEMmNJamtLOWo3NkpmbzNyUTcwN0d4WG85Uk52SnpBRmNsamZ1SlBNTlpERXB6M3l2Z2U5Vk44d3AvUlZsbldZRFh4OWVOc1RFdUhIamhJSHdtWkU0ZzM3eHhSZUZJRG9UYUJOdFQ1OCtYWEFaTThaNlk2TmRUTEF3Q3dQQjFCYW1YNUFId011Tm5BazhjZ1J0UC9YVVU0TEwzTG5XdHpYYXhRUk0yZDF5U25qc2ljVFhMaWFDNnl3VUJoSlc3MlZxMUh3SE5XLzNQU1VrL3VSVU5HLzNyV2k3VHRRTGdrdHc3WG5nQ3pHMnhvVE9ON3JSUW1FZ2padTlUTTNiN3FDV0hiOW5VZnpKcVdqWjRWdlJkcU5tTHdndTlSc1krQWJ1M0xtelBQOTlEWHpiZFA3RHZYSktMRm10TzEyeWl3a0VoVGZ2UUFZV0gvYXVJUVRibmZCQW1XcUN0S2VuSjE0NlhoYnc4dkxLUU1jL0hCRW5CTnVkOEVCWUl3UGZBd2NPQk9sOGo0VzJkYnVjMHY3Z1ZqSmZiMTQyeEVTUEhqMkVZTHNUT25mdTdEQW1oZzBiSmdUYm5UQmdnQ1d2eEJ6Qk55QXRMUzBRZlBFZFhpZnJiamtsdktWUTZsKzdtS2hjYmJnUWJIZEN4YXBKUW95OXZiMnRNY0Y4ajRKdnJiRGhRckRkQ1NHMWpYelQwOU9EZEw1TkV2YlJrTkh1azFOQ2ZxdGhNOHRyQmVTWVFGQ1U4ZlB6ZXgyTDFUMjg2QlBmY0tXSXV3S2YrVVZRVGVZRWJnRUJBZjlncm40QUw3OGgrSHI3MFNkeDNaUWk3Z3A4RnQrZGFucjdxL2lLL20zcEhVUlpmS1pQM2QwZ3A4UWNia1Qxb25iZTVRVGZzbVhMUG9WWTRHVkRUQVFHQnRLa1NaT1VJdTRLVEo0OG1jcVZzM0JXeFVTRkNoWEVDNU5VSXU0S0xGNjhtQ3BXckNqejlXZjRjbisvaHUvQ3dzTEVGVzN1bEZPS2pJek1OaVk4UFN0UVNOZ1NwWWk3QXFGMUh5RlByMHFDTThmR000Z0h3Ti9mWC9BdFU2WUN4VFpab2hSeFZ5QzJ5U05VeHRzeDM3SUJjZFM2NDFWeFA0aXJjMHJnMExyVGRRb0lhbUVYRXdnS3o5RFEwSzRlSGg3ZjQ4K0VVdjRpejZBU2MyY0NVMmpOU3ZrSnd1Qld0MjdkVHN6VkcrQURycHVWYjdrcUlzK2dFbk5uQWxOb3pZSXFxL2o2UkVSRUpQSjNGL0RiQXdHMTZIbzQvMmQ2VGlUcWU2OXJja3JjOXRYdzdqUWpJTVRLdDM3OStzMFFDL3kzWFV6VXJsMWI1QmxVWXU1TVlBcXRWcTFhT2NaRXZYcjFSSjVCSmViT0JLYlFJalVoQnJmdzhQRE9pQWZ3bFdPaWE5ZXVicEZUd25TVlBxb0QzK3hpd3Rldm5zZ3pxTVRjbWNBVW1vOWZsREltNnRTcFk0MkpnS0I2SXMrZ0VuTm5BbE5vQVlGS3ZqNGNIOWFZcUZaekNyWHM4TGQ0ZlB0NFBteHhtYTB6TVk3YkhEbmhGclZvL3dkVnJUbEpHUk1JaXRKOFFEYm5zNk5KUEl5NmhLOHFsQ3hObzd3cTByUGVJZlNTVDZoVDhZeDNzR2c3c0dRcFFaZzVYYTVjdWZJNFB0amltS3NYd0IyZVlPRHI1VTJqYWtiU3MvVmIwa3N4Ylp5S1orcTFFRzBIZWxwR1NDcStyVnExQ21PK1UvaTNLNmdUNCtsUG4xVnVST2RDRXVsOGFBZW40anR1RTIySGxmWXg4RzNkdW5VSVlvRy9VOFlFbjNWU1FrSUM5ZS9mbjVLU2tweUt2bjM3aXJaOWZJeWNzNHNKUHNzWFFnalRtekpsaWxNeGZ2eDQwVGI2VE1HM0RNTXpQajYramh3VDFhdFhGd2FKcThWd2ViUXpnZndRMnE1VXlYSTJyUFBOS1NaS2xRNmdjaFc2Q0hHcEhqTFZxYWhhYzZKb3U1UjJncWx6WnJPMnhnU2ZVQmhpd3RNcmdLclc2RUoxb3laUlJQMnBUa1ZZNUVUUmR1blNqdm0yYU5IQ29CTStmQklkR2JPY21yWThTWEd0djNVcW1yUTRMdHIyOWc1MUdCTUlDZzhPaWxvY3ZKMXIxS2lSNU9ucHVRTmZ1d05LbFNxVlVhVktsVkhneHVKUWs3bVdBb29ZMzlMcjE2OHZFeHdjM0FhZHozVk9xZFoxQlhTK0lTRWhyZFBTMGp3UkMveDljVXdVSUdTKzBkSFJ3WWdIb0RnbUNnNUZPU2FLc2s0Z0tFcnljTld6ZlBueUxiaENKeWJmaFplbjgxblRNaTh2cjFUc2hEUEJiYVp3MjIrQ0E3aUFFN2lscEtUZ29QTUFpaHBmUnFuRXhNUWcvcTBEeDNQWGN1WEt6WFlYdmxXclZrM3MzcjA3cms1QkFKY3Nqb244d3dUZmtvemltTWdIVFBSeHNVN2tBN1o4VlRFaGdnTGc0VlBab0tDZ3RoVXFWT2lFSFlNcllpWHNoQXgyeWdLRjdmYlJKdG9HQjNBQkp6NWpRNUpSOEN5cWZCa2U2SHl1MTl4ZCtISkF4QThjT0JCY2RVR3pDZ1ZRSEJQbVlMdjlIUGhhK3hyTHhURmhEcmJiejZHUHJTaldDWE93M2I3TTExRk1JQ2lzZ2NHa2NVVkZBMzkvL3c2QmdZRWRzWk02c0pIQ2hOd1cyZ1lIWDEvZnBseDhkWDRhMXlMTGx5SE9McUtpb2lxRWhvYldybG16WmdQZUZvS2tPUSt0RXdvVGVqdmNaaXpham8yTkxhZnhrY1dzT0NieUFibXQ0cGdvSE1odEZjZEV3VU52eDB4TTZLUU41SG00Rk1qT0dNbzdHc003R2g4UUVPQVVvQzF1TXhwdGc0UE9SK09tUXBIa3EwSC9oNGhBY1JMa05tVXVWbzdGTVpFLzVJR3YyNk00SnZLSHZQTFZJQit6cW1PNk1DQzNLWE94Y2l3dXhhVzRGSmZpVWx6eVZtUTMwV0IxbWh0SGwwUXo0cHlNS0prRFE4VlJScEhsNnlZdzhNc3BKbEpUVTZPM2JOa1M1MHh3bTNudTQ1TW5UMFl6NHB5TS93OHg0VXBnS2dYM0d3eGl6R0E4eG5pTzhhWUdMT003L0lZNkNReXNvOXFXUzNCSGxHOW5XOEE3cEFlT3g0Mk1oMmZkeUhqb3dvM2pDK2ptOFhsT3hZM01CU1Rhem5oNEVyam92Q1NlT3V6NW5saENOMDgrNGxTZ1RSWGZzeTkzTEFId3NoMWZEZm9RRVZkYk9CTzJRMVBCUys5ZmxLbFRwd3JvdjZGZVNrcktyT1RrNUF0NFYwWnk4aVluQTIwbVgyQU9oajZXZU5yMThmSGp4MmN4TG1SbUhxTmp4NDQ2RldnVGJUTU1mSmN1WFZvQzRHVTd2aHJjS2liMC9rWGh2L09GL0JSZUgvZEN6R1I4d3ZpV2tkZUNkYkVOYkN0TzI3eFRDcmRYWVAzaE5rVXlEaEc4TnpNZSt1alc2VmxFMy9SaEpETGFPUmxvc3orQkE3aUFrOFpOQ0J4LzJ2UDlkaW5SL3g0aSttMHVZNDZUd1czKzhoRGRPcnZVanE5a0hsYStEQnlzdUZaYTNCakV3RTFqem9UZUxqam93bUh0WHhUSk9BUm5GdTJQTm0zNlVqekN3aFhQWUVLYnExYXRwRTJiOEhLbEZFTWZTK1poNWN1aS9kR1JJNGRvMjdaVWw3eFZFRzNpUFI0WkdZZGhJZ2Era25rVWlaaHdsWG53T3YwWWVJbi9PWWFoWExwMGlmYnYzMDlyUC8yVTNucDdHVDN6ajJmcDBjZVcwcno1QytuQmVmTnA4WkpINk1tbm5xTFhYbnRkUEJoeno1NDk5TnR2djJsckd3cTJqVGI2YWMwV1d1RTI4dFVmYmxsNFIyNEw4ZEZGbzIrZG1zM2kzWkhvREF1NUs4RWNicDE2Z01BSjNEU080R3JrK3cyUFRuK2JSL1FyQzdrcndSekFKVHUrREJ5Y09GaTl1M1RwVWpzaUlxSzFzeEVXRnRhcVo4K2V1RXNVajBRQUYzQ3k4cldOQ1JicjBaczNmMFY0VkxkSzJKMEpjQUFYY0FJM2phT2hqMW1zUjBPMDhWNE5sYkE3RStDZ0dZZ3RYM3dLdm95aUVoUDVncG5DOVpveVhtVWNabGpMc1dPWjlPNi8zcU1ac3g2Z3Uvc09wR1l0MnVRYURadkVVOXZFRGpSbTdEaDY2YVdYNlBCaFF4TW8rQUp0RjhxSWhMZWI2LzV3KzhJN29nZXgxODJNK1lmbzYwRkVYN040dXdQT0RHRXhYckFEM0RTT01peDhmMzZZUngwUHVBZVlpd08rT0p2RGQ5N1ZxbFhyVTdwMDZUM28rbTVOSzFGU20ycE9SY2RHRlJDNWVCVDB0dURnNEs3Z3BIRURUK3ZkeE5yZlhzbkp5WWZ3MUZlVm1Mc0NhOWFzeGhTV3c1ZzRkdXpZSWJ4TFF5WG1yc0N1WFR0WS9JN0pmR1hUc0l1SkJnMGFpRWV4T0JNeE1URm1ZaUpmeUs3dzc0a01UQ2RaeTlHalIrbVpaNStqbnIzN0tjMGd2MmpZcEJrMVQyZ2hIcGQvNE1BQnJWVnJBWmRFalY2QkZONmU2ZjRvTW9WM1JCeDBESityQitkazBkYzg2ampkMWszUWpmNU1tLzAzYzlPREdRY2NoQmhuUnhhK0Z6QnR4TUx0RHJnd3p5RmZQbHYyOS9iMmZndGQvdEhDNW5SMTMweTZjWHcrM1R6K29GTnhJM08rYVB1dDZVMkVZUGo1K1QydjhSVm5tN1l4c1dIRGhpdzhlVlVsNUs3QWloWEw4WklsaHpIQlo1UlptemU3ZnRTaEErOHdUMDlQMS9ucVhQRnBpQW04SFZGLy83bzY3MU9ZMkN6YTFsK3k1U0FtOGdWVjRlK2JNOVl4UlBucnI3L29nMzh2cHlIRFJsSjhRbXVuSWJwQlkwcHMzMEU4NSt2UFAvR3VJMnNCdCtZYTNYd1YzazZPL1ZIa0N1OElBc1RieDhmbnFac1pjNGhPOFJuL0tSWnVkOERwVHZUcjdtbms3KytQS3lmd05GSUloQkFKSzk4THM5MEg1K2RreC9kRmRQZUo1WDNwNXVtWjVNcWMwcTB6L2VqbXFWbUNDemhwZklWWTJNWUUzc090RW5GWEFVYTJkdTFhaHpHQk0xYVZpTHNLZUNYdDd0MjdiZm1pcjYweGdUY2ZidHlJbk5LSExzNHBmU200T0lpSmZFRXUvRGRNZnhsRGxOOHZYNlkzMzFwR25idmRwUlIzWndHamtlaVlCdlRvbzQrS3ZJcFV3TlZMbzUrbnd1czc3SThpVzlBcEVSRVI4Yng0NDJZR0MrQkpGbTEzd2FsTzlNZmUrOURUTjVvMmJSckxYSEh3K2VDeHdGYSs1MmU1RDM1K2dQN1lKOTZ2YmVBYkdSblpBbDM5L09RWUlkcnVrbE82ZVdxMjRDVHhGUWNJUHZXWWdBQ3FCTWRWUU43ajAwOC9kUmdUR1JrWlNoRjNGWkQzMkx0M3I4d1hndXdiRXhQVHNtVEpralJ5NUVpUngzR25uQkk0U1h6MW1NZ1g5TUxMQXhuSEdIVDkrblg2MS9zZlVJZE8zWlJpN2lyRU5tcEtFUkZSNGduSDE2NWRBMVVVY0I2ZzdVYXVDNityN0k4aVhYaEhlT1JzR1RyZnpHQmhPOUhHZlhDeUkxM2RQeFU5VGI2K3ZtOHdWN3cweForSDFXL2p3Qk44ZjNZai9QUUFYVTBYNW1IZ3kyZVlLOEgzMHFZeDVGWTVwYStIMElYMXd3VmZqb0hYbWF2KzRoOXJUSHo1NVpkS29ja05jRFlMcUg3TExTQnc2OWF0Y3hnVFI0NGNVWXA0Ym9CM2p3T3EzM0lMbUFldURKTDQ0ckVVWmZXWXdCVnM3cFpUd3VnT2ZHMWlJbC9RdG1FZGJlemV2WWY2SncxUmlyZTdJQ3c4aWswa0FoZG9hS3hGV1NaMkpwZUYxN1ByanlKZmVFZDhQRHc4em1MeDVwRVpSTWRadEUzaTlGZnh0T0h0bUJ5eDR6OE5SZDJzbzYyVjIzR0lFeDNwK3Y0cElwQ1pZeVp6RmU4bUxsMjY5RmxoSHVENzAwelRPTDFyTEczNFQ3OGNzZU96d2FKdTF2ZlRsZHR4aUI5bjAvVUQ5NnY0L2dTK053NXdIVGZMS1YzZlorRmJxbFNwRTRnRlhqYkV4SVlORzVRaVl4WXdqUVVMRm9nWEl6M3p6RFBLT3JtQmJCNnFtTUJWTkNvUk53dVl4dnZ2dnkrQTk1R3I2dVFHc25sb2ZQR0sxQUJQVDA4UkUraGZOOHdwcVdJaVA4Qmp4Ly9MRUdmeS8vakhQNmtaQkxwNUs3ZEhYSHdMcWxxdHVzaEpYYjE2RmJ1QWduMnBpWDR4VzdpK0FYZEU0UjN4NVk4YldMeDVaSnBheEIzZzRtbmN6Smx6dWZ5L1REcTEveFhhczdwMTdneUV6U05yLzJRUnlIeWc0VUp0UEJjbWtJUDZoc1U4bU8rUEVHMXp1UGpkV3NFbnAzTDUxek4wNnZDSHRPZS9iQ0Rmc1lFb3RxWEVEN01wNjRCbHBLVHp6Y2pJS005OGJ3cStoMmFUVytXVVRuV2lySDFpV2hCOE1jbXJDNFUxSnBCSVZZbU1XU3hjdUZDWUJ2RGdndytLTit5cDZwa0Z6QU52dnRNNDI4WEVvVU9IbENKdUZoQnltQWFBOWpBeVVOVXpDNWhIV2xxYXpEY2dNek96Z2g0VHFHTzdqNjRFOWw4M0Q1dVl5Q3R3dC8xWkJuMzMzWGMwWXZRNGlvTW9GekhVREE2bHVMZzRPblBtREhZRkJUY2NScUZ2ekJTdWE4QWRVWGhISUJRaVdHNGVtVXFVeWFKdEVtYk5ReTh3a1dQL1pmRlViRXVKNHpBUHl4VWdITWgvOENhQ0FEN3c4TGVGN3c4OCtqQUpzK2FoRjVqSXNkVEp5bTJwTVl2TjR4NEQzeVZMbGdSYitSNWlnMUhsZGx3R21NZTlPbDljWm9KWU1NVEUrdlhybFNKakZxKy8vanE5L1BMTDR0cDZqRUllZnZoaGV1eXh4NVIxelFEbW9lVThsREZ4OE9CQk93SFBEV0NXbjMvK3VSamRRRVQxOTN1cjZwb0J6R1Bmdm4wT1k2SWdwZ1VMRXVoZjdML0dWNDZKdkFCWFUvM0ZvSlF0cWRTK1UxZWxNQmNWMUkyb1IwRkJRYUovdElKOU0zVTFGdGN6NEk0b3ZDT1NlVXdod3NqQUpDNmV3aFJ1N3NxUEoxbkFGZHRTNGxnSE5vL3hjaURibUFmenhkU1NTVno4Tm5mbWdmTGptV1RsdHRTWXllWmhlZCt2enBlRkl0VEs5eURYVWVWMlhBWTI1NzFXczFPYUJ3UlVKVEptZ1RQNE45OThVeGdIREFSR2toOERnYmpoYWl1SnN5RW1jTTIrU3NUTll1Zk9uV0lxQ2ZzTkE0RlE1TWRBcElTNU1pYnlPeTBJRkZaT3lTWW1jZ3MrZ0MzbGs3V2ZVdk9XYlpXQ1hOUVFGZDBBOThPSXZwSkthL1JSZG9YckdIQkhGTjRSeVR6NExEdUQvK2NtSVp2SDVmUDdsSFhvOUJpNjhlZEpyUlpSMXJYTDZub3FIRzNQNWpIV29WQUl2cGhXTWduWlBDNy83Nml5RHYzMEROMzQrM3V0RnZoeXM2cDZTc3hnODdDT2xBVGZ1WFBuMXJsdEh2ZmJUODFsZzBMUEtXRmt0OWM2TFNnTGhUVW1JSjYyQXBNYmZQamhoMktrQUFONTlkVlhyY2lyZ1VEY1B2bmtFNGN4a1o2ZXJoUnhzOWk2ZGF1NHRGWTNFQjE1TlJDWUJ4NlBJZk9WWXlLLzA0S0ZrVk9TcGdYbG1NZ05PQkF0NVYvdmZTQkV0Mm16bG5jTVlobzBvY3BWcW9tcnNhU1NyWUh3N3diY0VZVjM1TFo1SEo1SWRJVC83eVp4OGFTTmVTanFBTCtrczhqTFJWRkhpUXcyajdUUkRvVkM4UDEybW1sY1BIdjdKbFpoSG9vNndDK1pUMnUxdEtLb284WjB5a28zanBRTTVuRmdxa0xBSGFQUWMwb3dqejBHczdNekQ1eUZxa1RHTEpCNFhybHlwZGpPRzIrOFlXY2d1YzJCUU53d21wRTRHMklDeVdtVmlKdEZjbkl5YmR1MlRZd1dJT3o1TlJDWUI4eEk1aXZIUkg2bkJRc2pweVJOQzhveFlSYkljZnpPb0xlWHZhc1UzenNCc1EyYmlqNTY0b2tuc0tzbzJPZDY2Q3RWNGQ4TXVDTUs3NGhrSHVPSkRyVXlqWXNuYnB2SHBaLzIwY1d0emUxd2RrTWNIZDJ5UUt2RlovSlhmbEJ1UzRuRGlXd2U0cHB6cFZBSXZ0K3dhSnZFeFc5dW04ZWxDMGZwNG9GSmRqaTdmU3dkM2ZtU1ZvdjUvdjJMY2x0cXdEeU1JeVdEZWFSUFVlZDJIS0RRYzBxWkhTaHJ0OEhzN013RFo2RXFrVEdMOTk1N3oyb2dHTVVzVzdhTVhudnROV0VleUljc1dyUW9WNEtYazNrZ09hMFNjYlBBVFgyeWdlQTdDRHpNQTJheWZQbnlYQmtJekdQWHJsME9Zd0xiVmUybldSUkdUc2xtV2pBMzVoSE1FQTh5L0d6ZDUzZmNpTU1Xa2ZWaXhQOFFKeFZhd2I0SG83OXNDMzl2d0IxUmVFZXNRbkhyOEJpaWd5emFKaUdieCtWZk1tbnYydEYyeU56K0pHVmR2YXpWNHZMVE11VzJsRGlVU0RmU2hqa1VDc0gzelAybUladkg1WXRuYU8rR0JYYkkzUHUyWmFwS0w3K3VWMjVMaldsc0hxTWNDc1hOOUVuMmVaMXNVUGc1SlI3WjdSNmpFZ3ByVEVCSVZDS1RHOEE4WUNLeWdVRDBZQ0s2Z1R6NTVKUEtkVzBCY2NPVFVpWE9ocGpRQlQrdmdOakRQR0Fpc29IQU9HQWl1b0dzV3JYS2JsMFZzTDBkTzNZNGpJbjhUZ3NXUms3SlpsclFySG5nbVYyYkdiUnBjN0s0VDZKSmZJczdIa2lpNDMrSjBacFdraG5pZVdCeTRlOE11Q01LNzRoa0hxT0lEckJvbTRSc0htYkt6NW4vcHN2YkU1VGJVdUlnekdPSVE2RVFmTDltMFRZSjJUek1sSjlQZjBHWEQwOVdia3NObU1jSWgwSnhjLzhFKzd4T05uQktUbW1Yd2V6c3pBTkNvaElaczRCcDRCTUdnaytjdGNPUU1JV2xBeWJ5eUNPUEdOWnpCSWdiaEZ2aWJJZ0o1QmRVSW00V01BM2RRUEFKQThHMEUweERCMHprUC8vNWozSjlXK1JrSHZtZEZpeU1uSkxOeU02c2ViekxvTk5mZjAxdDIzZFdDdTJkaXBvaHRTZ3dNSkF5TTNFYmp5anZvcy9rd3Q4WmNFY1UzaEhKUEVZUXBiYzBqWXZIY1FPcStYTHgzRjdhczZvL1plMXJvZHllSFE2MFkvTVk3RkFvQk45VDk1bkd4VE5yQkErejVlSlBSMmpQdWhtVWRmeGU1ZmJzY1QrYmgzR2taRENQdEhIcTNJNERPQ1dudE5OZ2RuYm1BU0ZSaVl4WndEeGtZTlR4OU5OUEc4d0RVSzJyQXNRTkl4aUpzeUVtSVBRcUVUY0xtSWNNZkxkNjlXcURlUUF3QmR0MVZVQzk3ZHUzTzR5Si9FNExPaUduWk1ZOEJqUG83Ny8vcGdGSlE1VUNlNmNEQ2ZUNjlldlRsU3RYMEJVb1E5QnZldUcvRGJnakN1K0laQjVEaWZhemFKdUViQjQzY01aN09kMGVWMjZmRmFOZ0N1dTdMeE9WMjdORE9zeGpvRU9oRUh4UFRUVU4yVHh1WE9mTmdac3RydDYrMGdvRlUxamZiYjlIdVQxNzNNZm1ZVFE3bzNtTXRzL3JaQU9uNUpSMkRsVUpoVFVtSUp3cWtUR0xkOTk5MTdvTTQwQ0M5L0hISHhkbnloQTdmRUlBellvb3hBMmpGNG16SVNhUVgxQ0p1RmxBN0hYZ2I5dzBCM0hHMVZjd0RYeGlWR0oyaElQdFlQUWk4NVZqQXFNRzFYNmFCUXk1b0hOSytKOUxmTTJZeHlFR1BmSFVNOVE0THVIL0pSbzFiUzc2Yk1xVUtlZ0tsRVBvTjczdzN3YmNFWVYzNUxaNUhPSVRpRFFXYlpPNG1IbmJQQzcvekdmR2lqb0NlR0dUVkw3ZDk3UzZuaTMyczNuczYyODQ4QUNyZVlEdlNSWnRrN2o0OVczenVIemhxTEtPd004ZmFMVXM1ZHRELzFMWHN3T2J4LzVCQnI0Rzg5ZzMwajZ2a3cyY2tWUEsybUV3T3p2elFINUJKVEs1QlVUdG9ZY2VFcmtOM1RqZWV1c3RJWDZZQmtJZVFiV2VMU0J1bUtxUk9CdGlBdmRwcUVUY0xHVGpRQ0lVVTJTNmNlQ0dQb3hHa0pUZnNtV0wzYm9xWUZ1NC9GZm1LOGRFRWNncDVXUWU0cXFPZmR3bk9BTlhDZXYvRjRUV3JpditweGhwYXVWTjlCMEtMeHR3UnhUZUVjazhrb2oydGpDTmk4Y2s4L2hwcjdLT2prcy84dTlheWFtdUZmdmFzbmxZSGh1dUgzakFiZk5ndnBoU01vbUxwMWVMOWxFdVg4aFExdEZ4NlR6L3JwV2M2bHB4WWlxYmgzR2taRENQdmNQczh6clp3Qms1cGF3ZFNTcWhzTVlFQkVrbE1tYUJrWWMrNHNCbGpUQU9RRGFPRlN0VzBEdnZ2S05jM3hZUVN0U1hPQnRpQXZrRmxZaWJoVHppMEkwRGtJMGpOUld2dDkxb3Q2NEsyQjdxeTN6bG1DZ0NPYVhzekNPZVFWbFpXVFJveUFpbG9QNS9RNlhLVmFsaHc0YWlUN1FpM2t6SW53YmNFWVYzUkRLUC9rUjdXTFJOd3M0OEZIV0FjNTgzWlFHMkpwUG9MOHpmSytyWllXOGJObys3SFFxRjRKdUp5MS9Od2M0OEZIV0FjMXRHMGVYL2ZhM1ZaTDY0SjBSUnp3NXNJRm43K3prVWlwdDdodGpuZGJMQlJTZmtsTEsyRDFBSmhUVW1JRVlxa1RFTGZjUUI0NEJoQUcrLy9iWVFPNXpOWThRQjQ1Q250N0xEKysrL0o5YVJPQnRpQW1kOUtoSFBEZlFSQnd3RHdIZVlxdEpISERBTzNXUnlBdXBoSFptdkhCUDVuUmFFZWNoQWYrYzNwMlF6TFppZGVZam5kT0JHUUV6YkZLTTUxWXR1S1BvT0w1YlN5dWVxL3JzakN1K0laQjU5aVhhejhKaUViQjYvc25EdGZTZldEcW12UmRPUnIrWnJ0U3dsNjl4L2xOdXp3eDZZUjAvRGdRZmNOZy9tZTR4RjJ5Ums4L2oxcHlPMGQrVUFPNlMrMzRlT2JMSCs0MFhKT3I5SnVUMDdzSUZrN2U5ajRHczBEeDRwcVhJN0RpQ2JSK0hrbE5xeWVSaEdkbmJtZ1NraWxjaVlCZWJia2VPQVllakdnYk42M1RoZ0dqcFU2OXNDNWdGeGx6Z2JZZ0w1QlpXSW13V0VFNk10TEt1TUEyYWdRMTdQRVdBMGVLUzN6RmVPaWZ4T0M4cjlwby93OHB0VHNwa1dkR1FlUFJqMDIyKy9VZXQySFpWQyt2OFZWYXBXRjFkZlhieDRFVjJFZ3I0eTlOOGRVWGhISlBQb1RiUXJ3VFF1SG4yTlY3Y1VpTmJGNy9mWTRjcnY0cDRoWTBsbjBWZHN6dzU3V3JONTlIQW9GSUp2eGoybWNmSFViZk5BSXZ6aUQ0ZnRjT1h5ZWEyR1ZFNHNWRzdQRGtmdllmTXdqcFFNNXJGN2dEcTM0d0NGbjFOaTg5aldXeVVVMXBqQUpha3FrVEVMbUljODR0Q2YyZ29Ed08vNmRKWDVhYXYzeERZa3pvYVl3QlNSU3NUTkF1WmhPK0xBZ3cxaEFEQU1mZFJoZHRvSzlURGRKZk9WWXdJakhOVis1aGI2Q0s4Z2NrcjRuMHQ4SFptSGVIM3M4eSs4UkkyYU5DdUdCRHkrQkYwMmI5NDhkQkVLK3NyUWYzZEU0UjI1YlI0SGV4SHRaTkUyQ2RrOFRKZFRqeXEzcGNSdU5vKzkzUXdISG1BMUQvQTl3cUp0RWhkUDNqWVAwK1hjZThwdEtjRUdrcFZtSENrWnpHTlhQL3U4VGpZby9KeFNHOHJhMmt2bWEyY2V5QytvUk1Zc2NCWVAwd0N3TFhuRW9VOVg1WGJrZ1ROcGliTWhKc3dtc2gxQkhybkFpT1FSaDI0Y091VDFIRUZmUitZcngwUVJ5Q21wekFOUHk2VkxsMzRYb3c2OHZyVVlSaUQzZ1Nmd1NxK3pSWjlaKy9DT0tMd2prbm5jUmJTRFJkc2tycC9KeGVNemNDTmI1aHpsZGh4aUY4eWpxME9oRUh6eGNFU1R1UDZEOVM3UW5Bc2Vqdmd0bTZOaU93NlJNWm5Od3poU01wb0hqNVJVdVIwSGNFWk9LV3VyZ2ErZGVaZzlZM1VFVEpmb2ovWkE0aGtqRGdpWmJoejZzbmx4czh6dFM1d05NWUVSZ2tyRXpRS1g0R0trQWRQQWM3S3dQUmlBYmdMNk1xQmEzeFo2WFptdkhCTkZJS2VrTW8rM0dmVE91LzlTQ21jeG1sRmsvVmpSaDlMREU5Rm4xajY4SXdydmlHUWUzWWx3dFk1WjdPdkxvamtsWit6dXBGNC9KK3lFZVhRMkhIakFiZk5ndnJnRDNDeU9MeUQ2K3A4NTQrZ005Zm81Z1Ewa0s4MDRVaktZeDA0ZUthbHlPdzdnakp4U1ZxcUJyNTE1Nk5OTGVRV0VDMGxoek8xRDlQRTNCRThYTkh6cVVLMXZDNGdiUGlYT2hwakFOSk5LeE0wQ1FvOHJ0Z0JNTitrbWdjKzhtZ2MrWmI1eVRCU0JuSkt0ZWVBeEpIVHIxaTNxM1hjQU5Xd2NYd3dIOFBYenA4aklTTkZYV2tIZmlYNjhJd3J2aUZVbzZHQlhGbTBlWGJrTGRyWmk4K2pvVUNnRTMwT1QzQWVISjlHTk5PTkl5V0FlTzNpa3BNcnRPRUNoNTVSMnQ2YXNMUWErZHVZQklWS0pqS3NBY1lNUVNwd05NYUhmRmU0dWdIa2dmeUx6bFdPaUNPU1ViTTBqaVVGNzkrNmpCaXlReFhDTTZqVkRSRDlLOTMyZzcwUS8zaEdGZDBReWo4NUUyMWkwM1FVN1lCN3REUWNlY05zOG1POUJGbTEzQVJ2SWpUVGpTTWxnSHR1N0dYTTZPYURRYzBxNzJEeFNPc2w4N2N3RDB4OHFrWEVWSUc0UVFvbXpJU2JNNWlLY0JaZ0hwdXRrdm5KTUZJR2NrcTE1Zk1TZ3h4NS9naG8waWl0R05xZ1gzVUQwNDMzMzNZY3VRMEhmaVg2OEl3cnZpR1FlSFltMnNxaHNaZUYyQndqemFHYzQ4SURiNXNGOEQweG1zSEM3QXc1T1p2TXdqcFNNNXRIRm1OUEpBWVdlVTlvSjgrZ2c4N1V6RDB3MUFTcWhjUVZ3TlZCTzVyRnhvMXJJWFlGTm03STNqeUtRVTVMTnd6cGwxYUZ6ZDRwbGdTeEc5aWpqN1VQVnExZTNtN3E2SXdydmlGVW9idTV1emFMU2ppaVZoZHNkc0xNOVhkL1owcUZRM05qWFhnZzJwVTkwRHh5Nmg2N3ZNWTZVRE9heExaZTVuOExPS2UxZzgwaE9WQW1GTlNad1JydDhlZjd5SGdXSkZTditMYTRta2pnYllnSWltcHpzUGxOWEtTbko0cEVoTWw4NUpvcEFUa2syajJZTU9ucjBxRklvaTJHUGlwV3FpTDQ4ZlBnd3VnNEZmWWd1TGZxRmQ4UXFGSDk5RnNNQ09JRFArbHV3ZVBNK3VoSmJXektYZ2ZUYnFucUdBdy9RRDd5L05yV25XOGNtMHkwZWZkeGk4WFlwd09IWUZQcHR2VUdNYmN5akE0czJtNks3WUVkTE5vKzJNbDg3ODhDZHNxdFhXNFRKVm1pY0RYQllzK1pqY1FlMXhOa1FFN2g2YWZ2MmJhWVQyb1VKY0FBWG13UzBJU2FLUUU1Sk5vK1pESHJ6cmJmRm0vU0trVE5DUXV1SXZuejIyV2ZSZFNqb1EzUnAwUys4STFhaCtHR0pEOTNhMTRyRmNCRGQydEdOYm0xclI3ZTJ0bkV1MENiYVBzQWMwbHJUcVlVK2hnTVAwQSs4YzI5MzREcHQ2ZGJSbVhUekVPUEFWTVlVSjRQYlBEU0xqV01tM2RyZmxrNitZcHhtbXpWclZtMnJlV3hOVk9kMlhJWHRiQjZiVzh0ODdjeUQrWXN6MmJWcjE0Z3JneUNFRUR4bkFtM0NGUEFjS0hDWk5tMmF3NWpBcFpFWWZlellzVjNjbjRFRU9xYXluQW0wbVpxNlJYQUFGMXdOSmZPVlk2SUk1SlJrOHhCUEZwMTYvM1NLWVdFc1JzNklxQmNqK3JKLy8vN29PaFRjYklZdUxmcUZkOFFxRk4vT0xrRVhucTlBTi9lMm9GdEhodEN0UXlOWXhJY3poamtKM0JhM1NVY0cwODNkQ1hUaHVmS1VjWitGbTBvb3pyN2NrYzZ2YUU4MzA5aDBNbG5JTStlNUFBOXkyNVBweHQ0MmRINTVlenJ5ak5FOEZpMWFGR0kxajlTMlBLSkt1SjNUY1RXMnQ2S3NUWVpwUVR2em1EcDFLaTFZc0VCY3pRTURXYmZ1TS9yc3MwOFphNTBFdFBVWnQ3MWFURmVCeThTSmh2ZXVHMklDVngvaHJYcTRPVzduenUyMGUvY3U4WmgyWndKdG9tM2tJdkJtUDl5SElmT2RQMzkraUllSGgrQ0wwWlE3ak9wMEtISktzbmw4eTZET1hYdUl1NmlMWVE3NFg0ZUVoS0RyVU5DSDZOS2lYM2hIZkJBa1dFeWZZakdRY3c5NzBlOGZoTkxWcnhyUXRjMk5uSXFyWDhhS3RyOWY0Q200N0psc05ZOWZtV3NBd0VMeEp3Njg5Q2ZiQ0FQNS9zME9kR2xkTzdySzRueHRXeHVuNHU4dGJVWGIzNy9SUVhEWi9aajFUQjU4QTFsTXlqUGZhK0I3N1N2a0d0d29wN1NqUGYyOXdmSWVBbzJ2RHk4YlltTGN1SEhDUUdiTW1DSE9vRjk4OFVVaGlNNEUya1RiMDZkUEYxekdqTEcrT3RjdUpsaVloWUZnYWd2VEw4Z0Y0T1ZHemdRZU9ZSzJuM3JxS2NGbDd0eTVEbU1DcHV4dU9TVTgya1RpcThjRVRKcCsvLzEzaW1aQkxJWjUrUGo0aXY2VTdqWVBRcDhXK2NJNzRsMjZkT2tNTEw3WjIySWU3b1RuZWxqTXc5UFRjdzl6TFF0NGVYbGw0TUI3WTBJRElkanVoSCtPakRid1BYRGdRSkRPOTh5eUtMcTF0eCtmOWJ0SFR1bld2djUwOU5Wd21hODNMeHRpb2tlUEhrS3czUW1kTzFzdWgxYkZ4TEJodzRSZ3V4TUdETEE4dVpnNWdtOUFXbHBhSVBqaU83d3ExdDF5U25nRG9kUy9la3p3bVEvUnZuMXBGQjNidUJpNVFFQmdrT2hQUEwxQUs4M1FwMFcrOEk2VThmUHpleDJMdFlKSzBMRnBhaEYzQlU1TUwwRjF5bHZNSXlBZ0FQZjUrd0c4L0liZ1c4bUhqajZicUJSeFYrRDRjKzJwVGhYTFdZWU5YOUcvN2VwNVU5YW01bXdnU2E3UEtlMUxvaHViRTZoanJDV25WTFpzMmFjUUM3eHNpQWs4SFhUU3BFbEtFWGNGSmsrZVRPWEtsWE1ZRXhVcVZMQytQYzhkc0hqeFlxcFlzYUxNMTUvaHkvMzlHcjRMQ3dzVFY3UzVVMDRwTWpKU0ZSTkRHTFNhUjFiMVdSQ0xZUjdsSzFRUy9Zbi9yMVlHb1UrTGZPRWQ4UXdORGUzcTRlSHhQZjdzSEZaQzVCbFVZdTVNWUFxdFF4MkxjWUJiM2JwMU96RlhiNEFQdUc1V3ZyRVZSWjVCSmViT0JLYlFPc1JZUk1LR3IwOUVSRVFpZjNjQnZ6M1V2eHhsYll4bjhSNUV0L1lQcDF0cHd4aERuUVJ1YS84d3VzbkdjZTNMcGpTdmorV01DSHpyMTYvUHd4SHk1TC90WXFKMjdkb2l6NkFTYzJjQ1UyaTFhdFhLTVNicTFhc244Z3dxTVhjbU1JVVdxUWt4dUlXSGgzZEdQSUN2SEJOZHUzWjFpNXdTcHF2MFVSMzQyc1RFREFhOS9zYWJTb0VzaG1OVXFsSk45S24wam84WjZOTWlYM2hIU3ZNQjJaelBqaWJ4c1A4U3ZxcnFYNEptdHk1Qkh3OHBRWitQY0M0K0dtUnB1NEt2TmRkeHVYTGx5dVA0WUl0anJsNEFpMGFDZ1c5UUdacmRLNHhXeldoSzYrWTBjeW8rbXRaRXRGM2UzOHNoMzFhdFdvVXgzeW44MnhYVWFSVHFSUnNYMTZRTC82bFB2NjZLY1NwK1hsNVB0QjFSemRQQXQzWHIxc2pvbGVidmxESEJJeEZLU0VnUVY0MGtKU1U1RlgzNzloVnQrL2hZcjd6TE1TYjRMRjhJSVV3UDc1VjJKc2FQSHkvYVJwOHArSlpoZU1iSHg5ZVJZd0kza3NFZ2NiVVlSTWFaUUg0SWJWZXFaRGxEMXZuYXhJUjQ3ditUVHoxTjlXTWFGU01YcUZLdGh1aFhuTkJvNVZIMGFaRXZ2Q01lTEJTMU9IZzcxNmhSSThuVDAzTUh2bllIbENwVktxTktsU3Fqd0kzRm9TWnpMUVVVTWI2bDE2OWZYeVk0T0xnTkRraXVjMHExcml1Zzh3MEpDV21kbHBibWlWamc3NHRqb2dBaDg0Mk9qZzVHUEFCRk1DWmVaTkRDaHg2bWVpeUl4VENQcXRWcmlyN0ZKZVphZVFGOVd1UUw3MGhKSHE1NmxpOWZ2Z1VIVFNjTzZDNjhQSjNQbXBaNWVYbWxJckNkQ1c0emhkdCtFeHpBQlp6QUxTVWxCUWNkYnUzM0tHcDhHYVVTRXhPRCtMY09ySEZkeTVVck45dGQrRmF0V2pXeGUvZnV1R0lKSWx5eU9DYnlEeE44U3pLS1dreUlCNjNOZlhDZWVOVnFNY3lqcWpieXVPZWVlOUNGS01oM0ZmM0NPNEpBTGhrWkdWazJLQ2lvYllVS0ZUb2gySEdtaEVCQ1lNdmdzNzBDaGUzMjBTYmFCZ2R3QVNjK1kwT1NVZkFzcW53WkhqZ2d1VjV6ZCtITEloRS9jT0JBY05VRnpXb2VRSEZNbUlQdDluUGdhKzFyTEJlaG1CRG1NV2Z1Z3hURmdsZ004NmhjdGZvZGF4NVdzZUJBeGxVMkRmejkvVHNFQmdaMlJPRHJRR0FWSnVTMjBEWTQrUHI2TnVYaXEvUFR1Qlpadmd3Y2tLV2lvcUlxaElhRzFxNVpzMllEM2hhRW8zbU5HalVTQ2hONk85eG1MTnFPalkwdHAvR1J4YXc0SnZJQnVhMDdNQ2JFdE5XOCtRc29xbjZEWXVRQyt2T3Q3c1JwS3hraVlIZ0lIY2huUzZFYy9ERWMvUEVCQVFGT0FkcmlOcVBSTmpqb2ZEUnVLaFJKdmhyMGcxU0loNU1ndHlsenNYSXNqb244SVE5ODNSNWFUSWlFK2RLbGoxTWtDMkl4ektOY2VjdFZtSGRjd3J5NEZKZmlVbHh5S2l4NDRsTGRWMTU1bFNMcnhSWWpGeWdiRUNqTUExZTJhZVdPdVZUWEZ2cVpVc2xIemxFMEk4N0ppSkk1TUZRY1pSUlp2bTRDQTcrY1lpSTFOVFY2eTVZdGNjNEV0NW5uUGo1NThtUTBJODdKdUJOalF0d2tpSmRQcVFTeUdJN2g3VzI1eEJ4dmpkVEtFTkdwUmIzNHp0d293RHVrQjQ3SG91OXAxc1BmMDRWNVB4RE4rZEc1UUp0b216bE1BaGVkbDhSVGh4M2ZKVDhSTGZtWmFMR1RnTGJRcG9wdnc4VmZsUUI0Mlk2dkJuMHFTVnk2NlVUWVRtRUpYbnIvb2t5ZE9sVkEvdzMxVWxKU1ppVW5KMS9BdXpLU2t6YzVHV2d6K1FKek1QU3h4Tk91ajQ4ZlB6NkxjU0V6OHhnZE8zYlVxVUNiYUp0aDRMdDA2ZElTQUMvYjhkWGdWakdoOXk4Sy95MGVUN0o3OTI2S1lFRXNobmw0ZUhnSTg3ampIazhpR1ljSTNvZStwNC91WVZHcy93dFJBTVBmeVVDYkRTOFFUV0VPNEFKT0dqY2hjUHhweDNmeHIwU1RyaEVOdmNtVzdtU2d6WHV1c3Brd0IxdStrbmxZK1RKd3NPTDZlWEZ6R3dNM2pUa1RlcnZnb0F1SHRYOVJKT01RbkZtMFA5cTA2VXZ4Q0F0WFBJTUpiYTVhdFpJMmJjTExsVklNZlN5Wmg1VXZpL1pIUjQ0Y29tM2JVbDN5VmtHMGlmZDRaR1FjaG9rWStFcm1VU1JpUWpJUDhXQkVQTnl2ZGxnRVJVVEZGTU1FMEZmb1B1Qk9mRERpYlNFK1I2UHZaZEd1Q0NGbkFYY2x3R0VxRElRNWdadkdFVndOZkJmOWoyakVEYUxCTGdZNGdFdDJmQms0T0hHd2VuZnAwcVYyUkVSRWEyY2pMQ3lzVmMrZVBYSG5NQjdyQVM3Z1pPVnJHeE1zMXFNM2IvNks4S2h1bGJBN0UrQUFMdUFFYmhwSFF4K3pXSStHYU9POUdpcGhkeWJBUVRNUVc3NzRGSHdaUlNVbUFQRkk5cmhtQ1JUT3dsaU1uRkd0UnJBd2pqdjFrZXg2RUhzOStCMGRhbjZleGR0TjBKSXg3enZhQVc0YVJ4bUM3NzEvc1hoZmR3L2N4MXdjOE1YWkhMN3pybGF0V3AvU3BVdnZRZGRYanU5RU5STDdPaFdWR2x2ZWRNZ2N0Z1VIQjNjRko0MGJlRnJ2TU5mKzlrcE9UajZFcDc2cXhOd1ZXTE5tTmFhd0hNYkVzV1BIRHVGZEdpb3hkd1YyN2RwQnpFbm1LNXVHWFV3MGFOQkFQSXJGbVlpSnNieXdLSWVZQU1UTG9FYU1IRVhoa2RIRk1JR2djaFZFMzk2cEw0TVNCeDNEWithWjYxbVZJTng4eHU4T0NHWXUwMC8rOVRkejA0TVpCeHlFR0dkSGd1K0lxeXpjMTl3RG81bXBJNzU4dHV6djdlMzlGcnE4NVNQL29sa25ydExjSDRobS8raGNQTWh0b3UyNE9TK0pvUGJ6ODN0ZTR5dk9ObTFqWXNPR0RWbDQ4cXBLeUYyQkZTdVc0eVZMRG1QaThPSERXWnMzdTM3VW9RUHZNRTlQVDlmNTZsenhhWWdKM0FPZ3YzOWRuZmNwVEd3V2Jlc3YyWElRRTRCNERlM3p6ejlQZFZrWWk1RXp2TXFVRVgxNnA3NkdGZ0hpN2VQajg5UU1IbEQ1LzBUazV5YW93Z1l5SmVNUytmdjc0eHB6UEkwVUFpRkVRdWM3bU0xamtKdGdPRXRFTm54ZlJIZjNYM09ZSnZGKzFkUHlPNnE4VDJGQ3p5a2hyd1V1NEtUeEZXSmhHeE40RDdkS3hGMEZHTm5hdFdzZHhzVFJvMGVWSXU0cTRKVzBTRExiOEVWZlcyTUNiejdjdUJFNXBROWRuRlA2VW5CeEVCTUFuckpMQnc4ZXBGcDF3cWx1UlAxaVpBUDBFYm9PT0hUb0VMb09CWDJJTGkzNmhYZkVLeUlpSXA0WGI5elBZdXpIWjZmdWdzcU15Y2YrUkUvZmFOcTBhU3h6eGNIbmcwZEY2M3dIc1dDN0M0WmRZVkhPdE9jYkdSblpBbDNkNEw0bmFRcWJvcnZrbE1BRm5DUytYcnhzaUFrSW9FcHdYQVhrUFQ3OTlGT0hNWkdSa2FFVWNWY0JlWSs5ZS9mS2ZDSEl2akV4TVMxTGxpeEpJMGVPRkhrY2Q4b3BnWlBFVjQ4SkFGTnVkT3ZXTFlwdDBFZ3BtTVc0allxVnFxSWZ4Uk9UMFdkYVFSK2lTNHQrNFIzaGtiTmw2SHd2ek9PSC9NSDM2RVh5MlhuYUN0OUQ1OG52Mnl4bDNaeFFpYzFqd29tcjRoL2c2K3Y3Qm5QRmkzLzhlVmo5Tmc0ODhCM0VncDBmOVAzaEl0MlZjZHFLM3QrZXA2VExXY3E2T1dIWVgwU1RUdHJ6NVRQTWxlQTdldmYvcUptV3ozRUh0R0FNUy8xQjhPVVllSjI1NmkvK3NjYkVsMTkrcVJRYVZ3RUN0MjdkT29jeGNlVElFYVdJdXdvd2ovMzc5OHQ4OGFpU3NucE00QW8yZDhzcFlYUUh2all4b1FOWGo0bFhBb2V4UUJiRE1ieTExODlPblRvVlhZYUN2aFA5ZUVjVTNoRWZEdytQczFpY2ZKYVB4SE41ZysvdXMrVDk0U2Jxc21rdlBYcjRsQlVEVTlPcHlxcE41TFA1Q1BtZFpSTlJyT3NJbGRoQXhwNjRMdjRCekRHVHVZcjNWWmN1WGZvc0RqendUV0xCemd0NlpwNmxkbDlzb3Z0MzdLVjNqcCt5WXNHZWRPcXhmaE4xM1hlRUJ2NmVwVnpYRVliK1NUVCtwSkx2VCtCNy8ra2I1RTQ1cFpxTWU0OWZFM3hMbFNwMUFySEF5NGFZMkxCaGcxSmtYQVhaUEZReGNmandZYVdJdXdxeWVXaDg4ZHJjQUU5UFR4RVQ2RjgzekNtcFlrTEhZQVp0Mzc2ZGdrUHJVRmg0dldJb2dMNUJ0d0hidG0xRGw2RU1Zb2grdkNNSzc0Z3ZmOXpBNG5pWXgvZTVoOCttSXpRN0xaTXVYY3RDQnluTCsxK2ZveXFmN2lDL1UxZVUyMUNoRWh2SUtNMDgrRUQ3alRlRFp3VUZjbERmd0lFSHZra3MyTGxGMTcxSDZLVWptZlRIZGNkODEzOTdqbnB0M2tIOWY3bWkzSVlLUS84Z0dxT1poODQzSXlPalBQTzlDYjdUbUsrNzVaVHV1ZDIvdUFoZEZ3cHJUQ0NScWhJWlZ3SG1nVGZmYVp6dFlnSnp5eW9SZHhWZ0htbHBhVExmZ016TXpBcDZUS0NPYWo5ZEJSaVpiaDQyTWFIRE9uVVZGOStNNnJCUUZzTWVnVUhsUlI5R1JrYmFUVmtCZDBUaEhZRlFpQjBkL1EyTHluZTVnOCsyMC9UK2FWWjVFK1hzSDFjbzhzczA1WFpVcU1RR011eTRWZHhZbXNXTlNrRjg0T0Z2d1hjZ2Y1c2JkRDk4V2hpRG1mTFRYMWRvNlBZMDVYWlVHSHlaYU1SdE1lWnZLR2pKa2lYQk90K3A2Rjh0bitNT3dMVGd4TnY5eS9ZbllzRVFFK3ZYcjFlS2pLc0E4OUJ5SHNxWVFETFhWc0JkQ1pqSHZuMzdITWFFTzA0TGZ2NzU1NnFZa1BFMlE3ejFNTFIyT05XcEcxVU1DZWdUZEJtQVB0SUsrc3phaDNkRTRSMnhDc1VJaUJ0R0gyWngvQW85ZXZBVWI4SllQdUJEWkNtZlk3MzhPeHVHemNuOW9ZdVh5WGYzT2ZYMmJGQUpWMU1aeGMwZ0ZPQTdrTnN3aTM0L1g2RjNqdG56VGJsT3RQSXEwZWZYaUM3YzFMN1V5c2xMbDZsbjVqbmw5bXd4bU0vVGh0NDJEOEdYaFNKVTV6djVETytYVFY0bnR5am9uTkxZek96TkEyZWhLcEhKRFY1NDRRV2FPWE1tY1YvUSsrL25MekVNY2NQVlZoSm5RMHdjT0hCQUtlSzVBVVkyYjcvOXRuZ1dVWEp5c3JLT1dVZ0pjMlZNdVBPMG9FMU15R2pPb045Kys0MUNhOVZSQ3VqL1orajNkZ1FGQmNsM2xhUFBySDE0UnhUZUVhdFFESUc0d1VCTUltcjdhVjc5ZGpsNzdTYTFnRERaMUlPWnlHVmkraG03T2lwVVpBTVpZQlEzZzFDQTd3QTJLYk1ZZWNqSTkzeldUWnJOb3dYYmVpbHNJbko1K3RnWnV6b3FEUHFWS01uRzdPYk9uVnRINXp2aGE5NHZMWitUV3hSV1RtbjBzZXpOQTJlaEtwRXhDNXg1TFZxMGlGNSsrV1h4cnV5SEgzNDRYNWVqUXR3KytlUVRoekdSbnA2dUZIR3pXTE5tRFMxZnZsenM5K3JWcStuZi8vNjN1TnhXVmRjTVlCNTRwcEhNVjQ0Sk41OFdsR1BDRnVzWU5HL2VQQW9PRGFQYUxKckZpQko5Z2U0QzBEZGFRVjhaK3UrT0tMd2pWcUVZQ0hHRGdaakVTeWRZZ2FUU0RkTWhpbnJBMmI5dkQwRlNmN21zckdPTGltd2dmWTNpWmhBSzhCM0FnbTBXcTg0WStTNkNjU2pxQVQ5TCtadUR2MTVXMXJIRm9JdEUvVzNNVGhhS3NlaGZLYWRqRm9XWlV4cVJnM25nTEZRbE1tWUFzM2owMFVmcGpUZmVvRGZmZkZOODRnWXp2TmRBVmQ4TUlHNFFlSW16SVNhUW5GYUp1Qm5BTEQ3ODhFTWg2QmdSNEJOVFpEQVFtSUJxblp5QTlYQ2ZoOHhYamdrM254YVVZOElXUFJoMDhlSkZxbEV6aEdxSFJSYURFUkJZVHZSZFlHQ2c2QnV0b0s4TS9YZEhGTjRScTFEMGhianh5Ymtwbk1nU09ReTlwUDdHb3FXcXAySE9MMFJidWJvT1ZSMWJWR1ErdmJJeEQvRHQvejl6NlBkekZ2MzA1MjIraHk1ZlVkYlQ4UzYzbG5IOU5sUjFiSkhFKzlnN0cvTVlpZjFTNUhheVEySG5sSVljemQ0OGNCYXFFcG1jOE5SVFQxbU5RemVQMTE5L1hTeS8rT0tMZVRhUW5Nd0R5V21WaU9lRWp6LysyR29jc25rQTZJTzhHZ2pXMmJWcmw4T1lLSWhwd1lJRSt0ZG1XdENSZVFCZk1PakpKNStreWxXcUs4WDAveFBRQitncUFQR3ZsYzlWL1hkSEZONFJxMUQwZ3JpZE1vZHFCL2hVV3lxUC9jRG1vYWlYSDFSa1B0Mk40bVlRQ3ZEdHo0SnRCb05QRy9tdStCK2JoNkplZmpEd0F0RmRObVluQzhWUTdKZE5YaWRiRkhKT3FlSzN6Sm1kVWVKclp4NFFFcFhJWkFlTU9CNTc3REZoR0crOTlaYUFiaUQ2Q0VRM2tIZmZmVmU1RFVlQXVFSG9KYzZHbUVCK1FTWGkyUUVqRHR4dkFjTkFBaHZRRFVRM2tid2FDT3J2MkxIRFlVemtkMW9RS09pY2tzMjBZSGJtMFlwQlY2OWVwZkR3Y0twVkorTC9OZEJOQVBvQ2ZhS1ZscXIrdXlNSzc0aFZLTHJEUEU2YVE5ZmpsM25WMndWL3ErcmxCeFZZTnp0bll4N2cyNDhGMnd6bWZXL2tpNzlWOWZLREFlZTVIN0l4anlUc2wwMWVKenM0STZmVTkwajI1Z0VoVVltTUkrQ01DOGFobXdhQTd6RTlzMnJWS29PaHdFQ1FBN0hkUm5hQXVHRTdFbWREVENDL29CSnhSNEFSd1RoMDB3QWcrQmpCNEY0RzJWRHlZaUE1bVVkK3BnV0J3c2dwMll6c3NqTVA0QjJHdUxBQWw2ZXFSUFgvQS9UcEt2eFAwUmRhZVFkOWg4TExCdHdSaFhmRUtoU2RjV1o4M0J5Nlp0cVlCLyt0cXBjZlZEaEIxTjU0Wm13UUN2RHQ5N001elB2T3hqejRiMVc5L0dEQVQwU2RiTXhPRm9yK3ZEK3EzSTRqT0NPbjFEc0g4NENRcUVSR0JUM0hzV3paTW5HMUVvQ1JoWDdtams4SXYvNGI2dWtHWWxid0lHNTRtNTNFMlJBVHlDK29SRndGUGNjaGY2Y2JCMHhJTnhENWQ5MUF6Q2JSc1Qxc1ErWXJ4d1MycDlwUE0zQlNUaWtuODhDenVuRHpJMDJaTW9YS1Y2aWtGTmM3R2RobmRCR0FQdEFLK2tUY25ZL0N5d2JjRVlWM3hDb1U3V0Vldk10bTBQWEVYN3pxN2RMMTRDL0tldmxCQlRhUXR0bVlCL2oyWmNFMmcvbm5qSHpublBwRldTOC82TS9pbnBpTmVmU0dLV0owWndaT3lpbmRkVGg3ODREQXFrVEdGcGc2MFkwRG93cVlBNzdIaUFNSldDekRPSEFHcnh1SVh1K2xsMTZpUng1NXhMQTlSNEM0WWFRZ2NUYkVCUElMS2hHM0JVUmJOdzV3d3FkdUhMb0JRZlJ4OVpadUlIbzlqQlp3R1MrV2N3SzJpVHVNWmI1eVRPaDlrMXNVWms0Si8zT0piMDdtQVloWDFGNjVjb1hxMTY5UGxhdFdGL2M2L0g4QTloWGRBMkRmLy9yTHFqT0dWODN5M3diY0VZVjN4Q29VYlRDdGNzd2NXdkNacTF3bXBwOVQxdFBodStrcythemNhNFdxamkwcXNJRzBOSjRaRzRRQ2ZQdXlZSnZCVEJaWHVUeDk3Snl5bm82dWU4OVM0dnE5VnFqcTJLTC9EMFN0YmN4T0ZvcTdZQjR3YUJOd1JrNnBBaHRJMXh6TUE5TTZLcEdSQVJOQTBsUWZjZUFUMzJQS3gvYk1XamNRYkJmMWRNQjhYbnZ0TlVOZEZTQnVFSDJKc3lFbWR1N2NxUlJ4R2JxQnlkOUI1SEdsbHUyMGwyNGdtSHFTdjhkK3dSamw3MVRBZHJkdTNlb3dKb3BBVHNtTWVRRHZNdkRpSzNHbFVkVnFOWlZpZXljQis0aXVBYkRQbVprc1dKYnlML1NaWFBnN0ErNkl3anRpRllvV21GWTVhaDV5ZWYva2orUjNPRXRaRDVpOTl6U2wvbmpSZ2d0L0tPdllvandiU0xOc3pBTjgrN0JnbTRWY3Z2am1SK3I5YlpheUh2RGlvZE9VL3ZORmdRTVgvMURXc1VWZlJvSU5YMWtvdW1KRXBlVnpjb0t6Y2tvZEQyVnZIcGdpVW9tTURDUnBZUUR2dlBPT0FCNXhBZU53ZEZhdEd3ak9jUFYxeklvYzJscXhZb1hEbUxBVmVSWDBHLy93dUhrQWY4TTRIRTE1eVFhaXJ3TlRBRlQxWmFCT2FtcXF3NWdvQWprbHMrYUJSMjlzWm9qL2UrblNwYWxHY0cybDZONEp3TDZoV3dEOEw3SFBXa0hDUTd4QVN5NzhuUUYzUk9FZHNRcEZQTXdqd3p3KysrVnZYdDFTY0E5QzFiV0hsUFY4L251YXpsNitQUVdEOVZUMWJGR2VEYVJKTnVZQnZuM09tY2ZPMzI3ei9ZUDU5dHAwU0Ztdjg0N1Q5S04wV1MvV1U5V3pSVjlHWERibTBSRWpLaTJma3hPY2xWTktQSmk5ZVdDS1NDVXlNdlN6Y0l3SVVCL2ltdE1adFg3bWp5a2dtQTIyWVR0S1VlSDk5OThUTi9GSm5BMHhvVTh4WlFjOW40RVJBYWFVY0ZkNlRya1NiQmYxY0RVWHpBYmJNSk9jaDNsczJiTEZZVXlZblJZRW5KVlRzcGtXTkdzZVFEQ0Rqd0lTZWFHeUFVRlV2V1lvaGRTcWUwY0IrK1JmTmxEdkk3R3ZXc0crQjZPL2JBdC9iOEFkVVhoSHJFTFJtQVhGOTRoNVRCUmhjcnQ4K3MxNTh2NWdCL2xzUGtjKzJ5K1NUeXIvdlRLZEh0M0hwN2hTd1hxcTdkbWlIQnRJUStPMGlrRW93TGZQOStieG9uRW1pRksvTzA5dFA5bEIzZmFkb3g1SExsTDNBK2VwL1gvVDZlMURScjVZVDdVOVcvUmxOTGJoS3d0Rk80eW90SHhPVG5CV1RxbjFnZXpOQTRhZ0VobGI0TXdMSW9tejdOeWNUVU5nSWVBWXFhaCt0d1hNQXdlcnhOa1FFOWlXcllDckFMUEE0OXNCczNrU0FBYUNGMDZadlJrUlJwcVNrdUl3SnN4TUN3TE96Q25aVEF2bXhqeUFLTWJ2REhyaWlTZkVkakM5b3hMaG9naDVxZ3JBUG1vRisxeVB2MU1XL3MyQU82THdqbGlGSWhibWNTaDMyUHFIOVltUm9oejg1VEtOVHo1Q25UL2RTd00zcE5Pblo4NXJ2MWpLb2I5dUtyZWpRcm5EUk5IWm1BZjQ5djQyZHpoeXhjajM1TVhMOU5pT0kzVHZsM3RwYmtxNk1CUzVmSDMxcG5JN0t2Umh4R1pqSHEwd29wSnlPdG5CV1RtbGhQVHN6UU9KWVpYSXVBb3dELzE5RTZxWWdIbXBSTnhWZ0huZ3lpeVpyeHdURUhyVmZzcUFDVGd6cDRUL3VjUTN0K1lCdEdhSWd0RVM5ck5TNVdwS01TNUt3RDZnSzdTK29XZWVlVWJiUzFGYW81OGNGZjdkZ0R1aThJNVloYUllaTRudndkeWhHbzhRemw0ekNyS2pjdW5HTGFySG9xWGFqZ3JsMkVBaWpYUHlCcUVBMzk1bmM0ZWgzK0daVnViNC9ubnpGazNnVVpKcU95cjBZZFN6NFNzTFJYUHVLMVZ1eHhIa1VsZzVwYmo5MlpzSDhnc3FrWEVWWUI3SWUwaWNEVEdCMFk5S3hGMEZQVDhpODVWam9namtsUEppSG9EVlFOQTJjaUNCNVNxSVp6OFZSZWdQT3dTd0w5Z25xV1JySENoY3g0QTdvdkNPV0lVaVBBL21BY0JBdHRyY3FHWmI4SHR1akFNSVl2TUl5OFk4d1BmdWIzS1BJVHhDT0hJNy9hRXMrSDM4OStyMXMwTjROdWJSbEVkU3F0eU9JemdqcDlRNExYdnpRSDVCSlRLdUFzd0Q4L2NTWjBOTVlJcElKZUt1QXN3RGtQbktNVkVFY2twNU5RK2dCVU1FSnU2a0R3Z0lvTEpsQTZsbVNCMmxRTHNqd0JXYzBRVUE5Z0g3b2hYc1d3TDZKNmZDOVF5NEl3cnZpRlVvNmtEY0QrUWRDY2VKSHZ2SlloUTZYcnBBMVBXVXVuNU9DR0lEcVcxTTZCcUVBbnp2UHBOM1RPTlJ4WXBmTFVhaDQ5UGZpZWIvcUs1dkJtRTJmR1doYUlqcE9DMmZZd2JPeUNuRjdzdmVQSkJmVUltTXF3Qnh3NmZFMlJBVCtwVlU3Z0lJUFQ1bHZuSk1GSUdjVW43TUEwQU9oRS9YaU02Y09VTnhjWEZpMnhVcVZsR0t0VHNCSE1GVkI3aC8vZlhYMkJVVTdGTVVmMitxY0YwRDdvakNPMklWaWhDWVI3cjdJSWdOSkRnYjh3RGZ1L2wvNlRaZzh3ak54anhpdEZ4T2JsRFlPYVg2T1pnSHpscFZJdU1xUU53d1pTQnhOc1JFZmg2ZlhoaUFlV0FLU2VZcngwUVJ5Q25sMXp5QUVNWi9HZUtaVDNpbk4vWWRWeXhWclJGQ05WbW8zUW5ncEY5TnBmV0Q0Q3c5cjJvREl3VDlZclp3ZlFQdWlNSTdZaFdLR2tmNWovM3VneUEya09yR3E0RU1RZ0crZDU5Mkk3Q0IxTXpHUEtKc3B1WE1vREJ6U3BnV2pOaWJ2WGxnRGx3bE1xNEN4QTF6K0JKblEweVl1ZmZDbVlCNTRLeGY1aXZIUkJISUtSV0VlV0FUK0Z6R0VBVWpSRHhBRUYvamt0NXFNSkdRT2k0Rk9JQUxPT2tBUjB5RlNtVVpmNS9yd3V2WjlVZVJMN3dqVnFHb3ltTHNuOFpmdUFuS3NZRlV5Y1k4d1BmdVUwUzkzQVM5MlVDcVpXTWVkVEVkcHhEeG5GQ1lPYVU2ZTdJM0QrUVg4dk9ndllJR3JnYkt5VHcyYmxRTHVTdXdhVlAyNWxFRWNrb0ZaaDRvdkR5SWtjbWdhOWV1aWF1eGtFZkFULzVsQTZoSzFacEtZUzlNb0UxNXBBR0FFNjZtQWtldDhORkZnL2kzUEJWZVY5a2ZSYnJ3amxpRm91TCthMVFGVTBiNzNBUFZXR3dyN3YxYmNGTUpSWlgwYTlTWEJWc2w1SzRBdUZUWlorUXJDMFZ0OUsyV3o4a0xDaU9uVkd0Mzl1YUJTME9YTDNlZnZNZUtGZjhXZDFGTG5BMHhnUnZsa3BQZForb3FKU1ZaSkZobHZuSk1GSUdjVW9HYUJ3ci9qWWNwaXFmeG91QjF0cmlIcFVJRnl4Vk5ucDVlRkJoVW9WQkhJOWcyMmtCYmFGTUhPSUNMOVBwWUZIQzFQdVF3TDRYWGQ5Z2ZSYmJ3amxpRkl1aUw4OVNZendrQ2NPYXZFSE5uSXBBNU5HVXVnV3UrRTl4VVFsSHp5L1BVNjJ1aVBpZFp2RjJNdml6Z3ZURnQ5Wm1Scnl3VUlaaU8wL0k1N2dDUlU5cVZ2WGs4OTl4enRIcjF4MjR4K2dDSE5XcytGbWVyRW1kRFRPQnFwTzNidDFrVDFhNEVPSUNMN1UyTmNrd1VnWnhTZ1p1SFh2aDdYSTBsWGlpRjh1ZWZmNHFuQXNmR3hvcjJBWWc3UmdWSVhsZXRubmN6d2JyWUJyWmxheGdBMmtTc2c0TlV3TTNVMVZRNUZkNU9qdjFSNUFydmlGVW8vQmJ2WUVHNVFmRThRS3ZGd2xLSkJieUNrNEUyYTNQYjRCQjA2Q2I1TGpCZUl3L29CMTcwUDdaVHVZTTNhUEFab3VGODFqK0FCYndmQzdremdUYlJOamlVWTc1Ump4c3Z5NXcxYTFadG5XOE5LWi9qRGhBNXBSek1nL21MZXd6V3JsMGpyZ3lDRUVMd25BbTBDVlBBVlViZ01tM2FOSWN4Z2ZkYllQU3hZOGQyY1hVU0V1aVl5bkltMEdacTZoYkJBVndlZi94eGh6RlJCSEpLaFdZZWV1SGZFeGxyR2RhQ1o0bk5tREdEcWxXN2ZXTWVVTkxEZzd5OHlwQ1ByNStZNXNKN05QQWVFZHlIQVdBWjMrRTMxRUZkckNOdlF3ZTJqVGJRbGswQmwwU3VVMkNGdDJlNlA0cE00UjJ4Q29YdnpJM2s5L3hCQ2tqUG9vUVRSRzM0ekw4VmkzaExKd0Z0b1UxTXp3U2tYU08vNXc2UXo3MkdWMklhaEtMaDRxOG8vTTBEYkhoWjRxeC8zRGNXakhVUzlMWjZjdHZsOWwrajhEZlNLZVpCdzF2WWdoWXRXaFNpODYzS3h1aDJPYVdkMlpzSHJqSlpzR0NCdU1zWkJySnVIZTRYK0pTeDFrbEFXNTl4MjZ2RmRCVzRUSnc0MFdGTUxGMjZsRjU1NVJWeFg4VE9uZHRwOSs1ZDR2RWp6Z1RhUk50NHhTeGUwb1NuMjhwODU4K2ZIK0xCZ2dhK1JTQ25WT2ptb1JldTE1VHhLdU13UTVSYnQyNEpjWC8yMldlcGI5KytGQklTSXJqbEJWZ1gyOEFKQnJhSmJVc0ZiYUx0T0s1YjRJVzNtK3YrY1B2Q08rS0RJTUdpenowZkN3UHhYYmlWL1A1OWh2dzMvVWIrVzM1M0xqYitLdHIyblo4cXVQaE10RDRxQVUrbUNnQllLUDdFZ1JmOXdDcGhJTkZQcFZMd3FqTlVNZVUzcXJEMWQ2ZWlVdkt2b3UyWUo3WUlMdlZuV3UvT0JkOUFGcFB5elBjYStGYmNkcFdxNEt4Zk1VM25DbFRqRTY2S1c2N0lmSDE0MlJBVDQ4YU5Fd2FDTXpTY1FlTkJleEJFWndKdG91M3AwNmNMTG1QR2pIRVlFeXpNd2tBd3RZWHBGenltQXk4M2NpWndneDdheGhOd3dXWHUzTGtPWXdLbTdHNDVKVHpTWGVLcngwUytrTnZDNi9SanJHVFlGZVJJOEd3eWpJUXgxYlJ3NFVJeEdzVkpCWUJsZklmZlVBZDFzWTZEZ2piNmFjMFdXdUUyOHRVZmJsbDRSN3hMbHk2ZGdjVXlkeSsybUljYndhdWI1Y0R6OVBUY3cxekxBbDVlWGhrNDhHb05XaVFFMjUwUTBuZU9nZStCQXdlQ2RMNkJIMlJTNHlNWVZhbkYzSmtRT1NWd2VXdS96TmVibHcweDBhTkhEeUhZN29UT25UczdqSWxodzRZSndYWW5EQmd3UVBCbGp1QWJrSmFXRmdpKytBNlBWM2UzbkJLZXdpdjFyeDRUK1VKZUM2K0xSNzAzWTh4a2ZNSVFOeHptc1dCZGJHTTJvem5EN3RIcGhWVzRyUUxwRDdjcXZDTmwvUHo4WHNkaXlhRHE1SHZmWjBvUmR3bnUvNXc4eWdXTFFBNElDUGdIYy9VRGVQa05mRmVtZkhXS25mK3BVc1JkZ2RnRjY2aE1SY3RUTjIzNGl2NHRWYjhsQmUzTW9uZ1diWmZubEpoRDBLNGJWRG8yVWZBdFc3YnNVNGdGWGpiRUJGNXlNMm5TSktXSXV3S1RKMCttY3VVczc0dFd4UVN1bGxtMGFKRlN4RjJCeFlzWFU4V0tGV1crL2d4Zjd1L1g4RjFZV0ppNG9zMmRja3FSa1pHcW1IQW5sR01rTUhEWjd3ekdZNHdYR0c5cXdESyt3MitvZzdwWVI3VXRsK0NPS0x3am5xR2hvVjA5UER5K3g1K2x3bHFJUElOU3pKMElUS0dWcXROY0JERzQxYTFidHhOejlRYjRnT3VtOHcySWJDSHlEQ294ZHlZd2hSWVFvZVRyRXhFUmtjamZYY0J2WGtsektHRDdkVXJJSUdwemxNU1RkbHM2Q1dnTGJTWmd4TEgxS25uMW4ybmxXNzkrZlp6ZGVmTGZkakZSdTNadE1SMmdFbk5uQWxOb3RXclZ5akVtNnRXckovSU1LakYzSmpDRkZxa0pNYmlGaDRkM1JqeUFyeHdUWGJ0MmRZdWNFcWFyOUZFZCtNb3hVVnlLaTEzaDRDak5CMlJ6UGp1YXhNUCtTL2lxcEg5RjhtdzFocndIUFVmZXcxNTFMcEtlRlcyWDlMRytiT1Z5NWNxVngvSEJGc2RjdlFBV2pRU1pyMmRBUmFyYVlUVFZIZnRQaXBqNGlsTVJOdm9mb3UzU2ZvNzV0bXJWS296NVR1SGZycUNPUjYxWThsbTZqdnpXL0VCKzZ5NDRGNnUvRjIxN1ZBc3o4RzNkdWpVZUlWR2F2MVBHQkk5RUtDRWhnZnIzNzA5SlNVbE9CWktjYU52SHg4ZDBUUEJadmhCQ21ONlVLVk9jaXZIang0dTIwV2NLdnJqSHdUTStQcjZPSEJQVnExY1hCb2xrTHVicW5RbmtoOUIycFVxVkhNWkVBWmVTREV3WndaZ3dMWWFrZkZrYjREdjhoanFvaTNXS2l6c1ZEZzRQRm9wYUhMeWRhOVNva2VUcDZia0RYN3NEU3BVcWxWR2xTcFZSNE1iaVVKTzVsZ0tLR04vUzY5ZXZMeE1jSE53R0J5VFhPYVZhMXhYUStZYUVoTFJPUzB2elJDenc5OFV4VVlDUStVWkhSK05OZTZXQm9oWVRCVkFnL2pBaW1FSVFveFpqSUdNQjR4M0dLc2FYR3JDTTcvQWI2cUF1MXNHNjJFYXhrYmhENGVBb3ljTlZ6L0xseTdmZ29PbkVBZDJGbDZmeldkTXlMeSt2VkFTMk04RnRwbkRiYjRJRHVJQVR1S1drcE9DZ1EvTE1vNmp4WlpSS1RFd000dDg2c01aMUxWZXUzR3gzNFZ1MWF0WEU3dDI3NDRvbGlMQTRLUEZaSEJONWh3bStKUmxGS2lieVdMQXV6QWQ1RTRoL0U4YVRqQVBjNXEzSXlNaHJIVHAwK0h2dzRNRi9qeG8xK3U5Smt5WmQ0VkhiMzRNR0RmNnJWNjllZi9EbzdFODJzU3VsUzVlK2lYVzBkYkVOYkF2YkxCNlJ1TEpvZ1Z5Uy81RmxnNEtDMmxhb1VLRVRnaDFuU2dna0JMWU1QdHNyVU5odUgyMmliWEFBRjNEaU16WWtHUVhQb3NxWDRZRURrdXMxZHhlK0xCTHhBd2NPQkZkZDBLem1BUlRIaERuWWJqOEh2dGEreG5KUmlZazhGTjAweWpPR001TFpJRy8wN3QzbjZ0S2xqOTk4Ny8zM2J5MWI5ZzY5L3ZycjlOUlR6OURpeFV0b3laSWxOR2ZPWEhyZ2dibmlpcTk1OHhmUXdvVVBpL3pWMEtIRC9temNwTWtsWDEvZjY5aVd0azFzVzVoSXlaTEZIdUwwd3NGaEZRc09aRnhsMDhEZjM3OURZR0JnUndTK0RnUldZVUp1QzIyREF3ZEtVeTYrT2orTmE1SGx5OEFCV1NvcUtxcENhR2hvN1pvMWF6YmdiVUU0bXRlb1VTT2hNS0czdzIzR291M1kyRmhjZlFJK3NwZ1Z4MFErSUxkMXA4VkVMZ3BVSEhtS0FBWUVQaVU4UER4cjRjS0hycTFjdVVyY2dMajA4U2RvNnRUN2FHRFNJT3JZc1RPMWFkT1c0cHNsVUd5RHh0UzRjUk5HVTJyU05KN2F0azJrTGwyNlVzK2V2V0VlTkc3Y0JCb3pkdHl0RGgwNi9zNUdoUHVRdGpCR2FHMmh6V0lIY1daQmNFZ1FBY1AvbUVBK1d3cmw0SS9oNEk4UENBaHdDdEFXdHhtTnRzRkI1Nk54VTZGSTh0V2dINlJDUEp3RXVVMlppNVZqY1V6a0Qzbmc2L2JJUmNGb0EwbnVtb3ozS2xldWZJTkhFTmMvL25nMXZmVFN5elJqeGt6cTJldHVhdGl3Q2RXdVU1ZXFWUSttY3VVclU1V3FOUVRLVjZoS1ZhdlZGTUF5dnNOeTVTbzFLRHdpaXVMaW0xT0hEcDJwVDU5KzFMLy9RSXFQYi9hL01tWEs0SUtEOTdRMjBYWkI1V2lLUzNFcExzV2x1RGlobEdJZ29UMjBaTW1TTFBCOXJ1SWQ2cSsvL2dhUE11NFhONXZXQ1l1Z1NwV3JVVVJFQkZXb1dKVXFWcXBHOWV2WDUrK3FNMnBRVEV5TU1Bb0F5L2dPdjZFTzZnTDRIa2JTUEtFVjNYMzMzVHhxU2N5cVhLWEtUOXd1WEc2WXhnRmNpa3RoRjhXWmhuNm1WREkxTlRWNnk1WXRjYzRFdDRuWFZsbzVNRlFjWlZqcm5qeDVNcG9SNTJUa21hK2J3TUF2cDVoNGxQNFYvZ2k5RytkTW9FMlpBMFBGVVVhUjVlc21NUEF6VVNEV3VMeDJJWSs4Ymk1Y3VQRDZpaFgvb1lVUExhSzc3dXBGRVpIMTJSQ3FpMUZFOVJvaFZJbk5vV1p3YlFvT3FVMVZxZ1ZUU0dnZFJoai9IaUkramN0MVJCM1V4VHBZdDBiTlVQRjlSRVE5YXRhOEphTUZmeGY4RTV2V05YRFF1QlFiU0dHWHFWT25DbWhCQTNpa3BLVE1TazVPdm9EM0lpUW5iM0l5MEdieUJlWXdDVngwWGhKUEhWYSt4NDhmbjhXNGtKbDVqSTRkTytwVW9FMjB6VER3WGJwMGFRbUFsKzM0YXRDbmtzU2xtMDZFN1JTVzRLWDNMMHJRRkc4Qi9iZFhicTN4VzNScjJUOGZ2dlgycFFlelhxYloxNTUzS3RBbTJtWU9UNEtMemt2aWFlaGptZStpckRmb29XdXZPUlZvVThVMzR0NWFKUUNOcTVVdnd5MWpZdUxUaVNXQUhJcHVIRXZMbFN0Mzg0VVhYcnorOXR2TGFNcVVlNmxwMDNnVy9GQXhQWVVSUkkyYXRZUUo2TVlRV2d0VFY2SGlFNmhlSTVScTFRNFh3TEwrdlY1SE54VnNBOXZDUzV4cTF3bW4yQWFOZUhRU1MxV3JWci9FQnZJWGMzbGM0MVJzSUlWWkpPTVF3Y3VpL2RHbVRWK0t4eFc0NG5rN2FIUFZxcFcwYVJOZXBKUHlFVGhwM0lUQThhZUJMNHYyUjBlT0hLSnQyMUpkOGdZNXRJbDNObVJrSElhSkdQaEs1bUhseThEQml1dm54YzF0RE53MDVrem83WUtETGh6Vy9rV1JqRU53WG5qenpRMGpmMTlBRmI1cFJ5VlBOYUVTcHhvN0ZXaXpJcmM5NnZKQ1lpNWZiTDZWQnY2Q3MyUWVCcjRQL1A0czlUNXpMM1U4T1pZNk9CbG9FMjNQWVE2MmZDWHpLQkl4a1lONUlML2d4M2lvZlBueU4xNSsrWlVzM0tVK1pNZ3dpcW9YUTFGUlVjSTBJUElOR2pRUUpsQzlSaTFxMHFTSkVQOGFOV3V6d1RRVm4rYVdMZXRpRzlnV3RsbVZSeVg0UGo0K1hoaUp2My9nYnlWS0NBTjVTT05XbkFNcHJJSUEwUUlGeGpGNjgrYXZDSTlsVmdtN013RU80QUpPNEtaeEJGY3JYeGJyMFJCdHZFTkJKZXpPQkRob0JtTExGNStDTHdNSEp3NVc3eTVkdXRTT2lJaG83V3lFaFlXMTZ0bXpKKzRjeG1NOXdBV2NySHh0WStLaEcyL2VNK0h5SWlwektwNUtuR1F4ZHlIQUFWekFDZHcwam9hWXdHOXpMejlIWFU1T29QWW54cm9VNFBBZ2M4bU9MNk5JeElTaTRIc2txTWY0K1BqY2ZPYVpmMlR4cUlNR0RCaEVFVkgxcVhyTkVLck1waEVjV3B0SERXSDhkMjJxeGVKZU95eUNhZ1RYRVovNVdjYTJzRTFzTzZSV0hmNitGb1ZIUnJHUmhKQ2ZYOWxmbUJlbXNNWm9ISXV2d2lxTW9nVUlBc1VyT1RuNUVKN3dxUkp6VjJETm10V1l3dG9CYmhwSEdWN0hqaDA3aFBjbXFNVGNGZGkxYXdjeEo1bXZMQkQ0enJ0YXRXcDlTcGN1dlFkZGp6TW5QSGJEbVVEQ0VXMHpoMjNCd2NGZHdVbmpKdmhLTVlFelVLKzUxMTg1VXUrNzNsVGlCQXU0RzZEaDl3UG93ZXV2N2dZM2hoNExnSlh2a085bVUvdmpZOXdDdzcrZmt5MWZoaUVtYWphdFNSSGRJcDBLdEpsVFRDZ0tMbzBOUlhKOHpweTVmNy80NGt0aXhGRTNuQVVjcjQ5bE1jZm9BRk5RdGV0RThOOTFxRTVZcEVETjRMQUNXbVlqNFcxYnBybHE4V2NZMWEwYlNlVXJWQ0ZmUDMveDNEQUc3azRIMStKUzBFVUxFQVNLejRZTkc3THdsRTJWa0xzQ0sxWXN4d3QxL21adWVqQkRoSEhRNGV6STUvRGh3MW1iTjd0KzFLRUQ3NnRPVDAvWCtlcGN4WmtsajZEOHZiMjkzMEtYNDMwRCtydTIxWG1md3NSbTBiYitRaVUvUDcvbkpiNWlqaGlmREM5d252SFg4emU5VC9LbzQzZ2p0MEM1MDYxcDJxVm5sVEdoOCsxeVlqeTF6MlR4ZGdQY2RlcWViUGtpSnJ3RHlsRFN5aEYwMzIrUDA3MS9QazZUL25qRXFVQ2JhSHZBOHFFRUxxcVlzQ2t3bEVERys5MjZkYnVDRy8zR2pwMUE5ZW8zRUZOVnlFdEF6QnMxYWlURVBqaWtycGg2d21kaExLTU50RldqWmgzK3V3NUZSMGV6Z1ZTbVVxVktmd3VPR3RmaTZhdUNMbHFBZVBQUTh5bThjMWtsNHE0Q2pHenQyclhrNysrUHh5dmphYVF3RFdFYzRIdjA2RkdsaUxzS2VQMG9Yanhqd3hjSElmaStpTzdHVys0MmJrUk82VU1YNTVTK0ZGekFTZU1yeE1JbUpsNmMvdmR6VkNLVGhkdE40SCt5QmQxei9nbEhNU0g0Smg0YjdUYm9lbUppdG56UjNXUFRwbEhTeFJsVTRadTJWUEowRXlweG1rZFpUZ1Rhck1odEQ3bzRrOGJzdVo4OFBFdlp4WVJVTUFXRXU3cEhWYXBVNmZvTEw3eDRhK2JNMmVJbVB5U3lxMVVQNFJGQVhURWlDQTRKbzdDNlVRSWhvWFVMZFJsdG9VM2tQWkJZeDFWZDVTdFV5bUtldjRPcnhybDQrcW9nQ3dlSFYwUkVSRHd2M29BQXFnVEhWVURlNDlOUFA0WEEzZUN6akZnY2NBQWVGWTN2TWpJeWxDTHVLaUR2c1hmdlhwa3ZEajdmbUppWWxoamVqeHc1VXVSeDNDbW5CRTRTWHk5ZUZqRlJ0MjVkdlBpZjdydnlEeXB4aklYYlRlQjNJb0VtWFhqTUxpWWlJeU5iNkh3VGo3Snd1d202SEIvUGZKYzY1TnZ4MFM0MC9OY0hxTXhwSHQwcExoWndKc0JoK0s5ekJDZUpyNGdKcVdBa2dzZUNiSjA4ZWZMZmp6enlHSFh1MG8xQ2EyT0VnZHhEYmFxTmFTV0llNjF3Q2d1dkorQ01aYlNKdG1zeUQweGxWYWxXZzgrQWZNK0JxOGE1ZVBSUmtJV0RnMGZPbHVtVUw3LzhVaWswcmdJRWJ0MjZkUWhrOHZYMWZZTzU0ckpIZng1V3Z3MHhQbkxraUZMRVhRV1l4Lzc5bGpmemFYenhXSXF5ZklhNUVueHhCWnU3NVpRd3VnTmZqb0hYbVN2T3prUk1lSGw1ZllURmUvNThpa29jWmVGMkUvZ2RUNkR4RjViWXhZVGV4K0NibU1IQzdTYm9ram1lSnZ6eWlFTys0MC9QcFlodmV5b3ZFSEFGb3IvdlEyT1BXdDd6SXNlRVZNU29JelEwOU5vVFR6eUp4NFdJNlNPTU9HQWNtRDZDa0lmV2poRGY0OU9aeTJqYndxR3V1QklyT0RnWWo1ai9IM1BHWTB4czk2VzQ1S2R3Y1BoNGVIaWN4ZUtHRFJ1VUl1TXF5T2JCSERPWnEzaGZkZW5TcGMvaXdEdDgrTEJTeEYwRjJUdzB2bmhGYW9DbnB5ZHVZQkw5NjRZNUpjRzNWS2xTSnhBTHZDeGlndm4rZ01VSmx4K25FaGtzM0dieFZYMHE4ZDk2dDdHbmdib2VJTmNERGpWVTE1UGdsNWxBb3k4c3Nvc0o1djhEK2hoODJ4MFpaUnJOdit4UHpkYjNzNkwxN3FIS2VvQmNEMmg3Y0tTeW5vek94OGJSbUF1TFZURXNZbUxDYjRzdFY3S2Q0UDF6QXdTZGJrVVR6ajlrRnhOYXdiUVBubWk3WmZpSWtYL09uNytBMnJmdnlHZjZ0YWtXaXpXUzJCRHc4SWo2QXJYcVJMcGtHUnd3bFFWT2xhcFVKeDlmdi9QTU9VWGpYangxVlZDRmd3TzM4OS9BSWhLcEtwRnhGV0FlZU1zWnVQR0JoamZZNDFsQmdSelVOM0RnSFRwMFNDbmlyZ0xNSXkwdFRlWWJrSm1aV1lINTNnUmYxRkh0cDZzQUk5UE5nL2xkMG9WaSsvYnR1TUZLeE1UWVMzeldmSVJGM1NTbW4zeVNGdTE3M29wR0crNVcxaXV4UGNaUWI5R1JGeW5vV0d0MVhRbSt4NXJUaUo4WEdHSWlJeU9qdkI0VDROdnVNQXUzU1R4MzRsLzA2cjczclJqeTMvdVU5VnB0RzJ5bzkvcmg1WFRYMFh1VWRXVjBQanFPUnY2OFVNVlh4TVRZUzJ3c2lnc0RYQVcva3drMDlvS1ZyelVtdElKM2FUUXJXN2JzOWZrTEZ0NGFQWHFzdURrUEl3NFlSOTN3ZWtMRUl5S2pCV3FIUmJsa0dSekFCYWpPSTZLS2xhcmNZdDY0OTZPeHRnL0ZwU0FLQndmTVF3VEwrdlhybFNMaktzQTh0SndIQXZrUDVob0U4SUdIdituZ3dZTjJBdTVLd0R6MjdkdG40THRreVpKZ25hODdUZ3QrL3Zubk90OC90VmdvTVhyMDZLcjREaGo1SzUvbEgyYmhOb25SM3ovRW03bGRVbjdZVFNXMnhkalZTOXcwWEt0aEtTbS83N1dybzRMdjBlWTA1TWNISGZZeCtMWTd4Q01DazNqaXU3Y3NCTFN5OTRlRDFHcnJJTHQ2RXpiTjFXcFlTdnJ2UiszcXFOQTVZeXdOKzNHZVE3NmpmdVd6Zk1XRkFhNkM3NG5tTk9wbksxOXJUR2dGeTg4MGI5Nzgwb01QUGtpZE9uVVZ5V2xjL2wwTHlXb1djRXdmMWFsYlQ4Q1Z5K0NDL0FldXZNTHp0SGlrOXgxemYxcmJoK0pTRUVVTERoRXNPQXRWaVl3dDhLcE12RzRUbDV6Kzg1Ly9WTlpSQWMvbHh5V2lDeGN1VlA1dUM0Z2JycllDTnkyUURlWng0TUFCcFlqYllzMmFOZlRxcTYvU20yKytLYmFucXFQQ3YvLzliM3I1NVpmRkdicnFkMXRJQ1hNclh4YUtVSjJ2TzA4THlrTEIvNk5xK0E0WThqOCt5ei9Jd3AwTGZQUDNEN3lwMnlVeGViaXh6cDVZWVNweWFYUWl5VmpIQVh5UE5LT0I1MlliK25qcDBxVWhlaCtEYjlzREkzT0ZILysrWUNHaGxRbWI1eGwrYjcxN0dPMDlkMUQ3MVZMR0hsOW9xT01JSFErUHBhUnpjeHpHeFBDTDg1VVhCcmdLdnNlYjAvQ2ZESHgxc2RXbnJOS1RCZzM2YS9JOVU4UlRibkZsbFppcWlxeFBrZldpS1N3Y256RUNybDJPRnB6QURZOUlLVnMyQUhtUGRHMGZpcWV1Q3FKb3dTR0NCV2VoS3BHUmdmY2R6NW8xaXg1NTVCSHh3aFlZQ0w1VDFaVXhkKzVjbWoxN05qMzIyR1Awd0FNUGlFOVZQUmtRdDA4KytjUnc0QUg2Z1plZW5xNFVjUmw0c3VleVpjdm9QLy81anpBREdBaStVOVdWZ2ZheEhwTGNlQWNCUGxYMVpNQTg5dXpaWStETCsxMUg1K3ZtMDRKV29SZzNibHgxZkFjTXZEQ1hTaHhnNGM0RkVrK040MDNkTHArYytZcEs3STYxL2w1cmZRZnRGMHQ1OXdLZklFanJad2ZmdzgybzczZlREWDBzaXpINHRrMGZrU3ZjZi9KeEN4R3RiRDZ6blZydkdtcjl2ZGNYeHYxWmZ5SFZzSDUyNkhob05QWDd6cEtBVnNYRTRGOTRGR1Z6VVVDMjJGaWZTbXlvZHh0N0c2anJBWEk5QUtNM1ZUMEp2cG5OYWZBUEJuUFd6UU5YS3RYaU0vaWJiQnkzQmc0YVF2VllxTVhkM3BneWlvSnd4MUpZUkxUNGRJZGxjS3JOSTVHUVdtRlVzVkpsVE1QaTBsM2NORmg4MVZWQkZDMDRSTERnTEZRbE1qSndKdjdNTTg4SXczanFxYWVJei9wbyt2VHAyUnJJbkRsemFQNzgrYUtPanBkZWVrbFpWd2JFRGFNR2NOTVBQRUEvOEpDY1ZvbTREQmdpdGdIRCtQampqNFVKdlBYV1c5a2F5THZ2dmt2dnYvKytxS01EZmFPcUt3UG1nZnM4Wkw2eVVMajV0S0JWS0lZT0hScU03NEMrUDdPUXBMTkE1UklwbC9ieTVtNlhXbCswdC95Mkw1YmV6VnlsZldzcHRUSzYyYTN2Q0Q0SDQ2blgyZnNkOWpINHR0M1B3cDFMcEY4NmFpR2pGUmdHdm0remR6aXR6ZHlnZldzcFNVZG0ySzN2Q0IwUGpxYTd6MDV6eUhmZytRZW9SQWFMdWtsTVAvVWtMVXA3M2dxUlUxTFVLN0VqeGxCUDVKUXlXNnZyU3ZBOTFveVN2amVZblc0ZXVOOGpxV3JWcXBmSFQ1aEV2WHIxSWp3aXBGYnRTSEYxVTFoNE5OV05pQkZUUnZoMGgyVndhdHk0c2JnZnBHS2xxcmhnNFRmZWgwSGF2aFNYL0JZdE9FU3c0Q3hVSlRJeUlLeTQwUXdHZ3VrcmZEN3h4QlBDUUdBbXR2VXgybGl3WUlHb3A2L3oybXV2MmRWVElTZnpRSEphSmVJeUlPaTRlUS9iMGJGcTFTcGhJREFUMi9vWWJjQTQ1UG9RZld6SHRxNHRVR2ZYcmwwT2hjTHN0S0N6Z1A2MW1SYTBNNDllUC9KWi9uNFc3bHlpMGJHQnZMbmJCWVpSWW1jTUJhMlAxNzZ4bEhkLzRmWVY2enVDejRGNDZuNW1pc00rQnQ4MmFjTnpqYkhIRmxnSWFXWHRzUTNVYXNjUTZ2REZVTzBiUzFuL1M2cHlmVWZva0Q2SzdqcHpyME8rZlg5aW9WWmNHT0FJbzg4cGNrcmJZK3pxSlc1VzVKUnM2cWpnYzdRWjlmdldZSGE2ZWVBWlVZc2pJNk4rR3pWcURMVnNuU2h1eXNQVlRYVlpwT3ZWYnlnUUhobnJWc3ZnaGl1djhEaDRIalY5ei91d1JOdVg0cExmb2dXSENCWUlpVXBrYkxGaXhRcGF2bnc1UGZ2c3N3SXdCSXdtWnN5WVFVOCsrYVMxSHFhbmtPZlE2eUEvZ3R3RFJGdmVuaU5BM0ZBWDNQUUREOUFQUE9RWFZDSnVpOVRVVk5xeVpZdVlBZ05nQ0JoTndFQmdKSG85VEU5aGFrdXZnLzZBNE8vWXNjT3dQVWVBZWFDdXpGY1dDalBUZ29BemMwbzIwNEoyNXRIdDNGUXFrY2JDblFlOGUzNHRiL0oycWJVMmtSYnR4Wk12TE9XMzY1Y3A2RUFyNWJxTzRKTWVSNTFQV3g2dG91cGo4RzJ6ajRVN0QvamlmS3FGbUZidSttUU12YnIzUGUwdm9zdlgvNlR1NlJPVjZ6cEMrLzJqcU12WGt4enl2ZnNISGtYaEV1VmN3QzZubERMY1dHZXZJcWQwTXNsWXh3RjhqalNqM3Q4WXpFNDNEenloOWwrTkdqVytPR2p3VUlwcjFvTHExSTFrb1VadWdjVTZtc1dhRVJIVndLMld3UTAzRWVLT2N5K3ZNakNQZjJuN1VsenlXN1RnRU1FQ0lWR0pqQW9yVjY0VUJ2TGNjODlaQVFOQlB1VHh4eDhYT1E3a1JKNS8vbmtoZ1BqRU0zQWd5aEJwMVRadEFYR0R1SU9iZnVBQitvR0gvSUpLeEZYWXRtMmJNQkFZZ2c0WUNFWWEyQmUwQitQQU5BNSt3eWR5RkR0MzdpUTh0a1cxVFZ2a1pCNW1wZ1gxUG5SV1Rnbi9ENG12blhsMCtuWXlsZGpId3AwSDFEcmNUUmlFWGo3NStrdjY3ZXJ2Mmw5RWk3NS9WYmxlZHZEWkgwZnRUNDUxMk1mZzIyYnZzRHhoNEtIcHdpRDBzdm5yN1hUNUtpNlFzcFJsMzMrc1hDODd0RThiU1IxT2puZkl0OGM1Rm1ycGdnQXpTRHl0eUNudGliWCticGRUd3VoT1dqODcrQnlPNTVFUy84OXRZb0lMTHQvK21NM2pmSjkrQTZoRml4YmlpaVpNRCtFeDZaSDFHZ3BneXNpZGxzRU5DZlJxTlVMSno4OGY3ejFmcmUxTGNjbHYwWUpEQkF1RVJDVXlqZ0R4UlNJYStRc2RPR3ZHQ0dUUm9rV0c3M0dXRDBFMmF4d0F4QTNDRG03NmdRZm9CeDd5Q3lvUmR3UUlPMFloRUhFZDJHZHdneEhLMytPeVdtemZySEVBTUkvdDI3YzdGQW96MDRJdXppblptVWU3YjFqNElFeDV4S0x2WHVITjJwZmZydjlPUVdrdGxldGtCKzk5VGFuMThWRU8reGg4Y2FOZlhySHN1NDh0QkcwS1RLWGJ2dHh2TzNFdmowQ09qM2JJdDh0M0xOUUgyUmh6Q2J1YzB2cjJsdC8ySzNKS3g3clpyZThJUG9manFOdnBDWFl4d1FXQ3U2RlJveVlYNzc2N0R6VnNIQ2VtcktMcU5SQWlIUjNUV0NDcWZpTzNXZ2EzaU1nWXdsTitmWHo4Y09QckJtMWZpa3QraXhZY0lsaGdCaXFSeVE0UUg0d084SkE5VEVucG44aHI0Qk9BWVVDUWMyTWNBTVFOQ1c1dzB3ODhRRC93a0Y5UWlYaDJ3RWdDQW8vcEtCbklhK2pMTUF4TWllWEdPQUNZQjBZNE1sOVpLR0NlcXYyVTRleWNFdjduRWw4NzgyajFOUXNmcnBUS0k0TDJ0VFNNUHZRaVJoMksram5CZTI5VFNqZzJ6R0VmZ3krdWxNb3JZQkR5NkVNdkdIV282dWVFeEQzRHFlV3g0UTc1ZGpqTFFxMjRNQ0FuTk1wVTVKUjJ4VkRRZnhVNUpjWDZqdUJ6TUk0Nm5SeG5GeE5jaEhuRXhqYjRwWHVQWGhUYktJNGlvcUxGMUZCVWRHT0thZEJFb0Y2TTVkTmRsc0VOVjE0Rmg4QThmSC9FUG1qN1VsenlXN1RnRU1GaU5oZGhDeGdJZ0xlSVlXcEtCbjdIWEg5dWpRT0F1SDM0NFllR0F3L1FEendZZ1VyRWN3TFdBekF0WlFzWVFGNk1BOEM2VzdkdWRTZ1VtQTVUN2FjdFhKaFRzak9QWnFkWStCUWluaHVNL25vaGIvcDIrZWF2YzhwNlpnRHppTXNZNUxDUHdiZjFUaGJ1ZkdEcEtUelM2WGI1OGMvenlucG0wRzczY0lyUEdPeVFiOXN6WSt3dUNqQUxYT0lzbDFxZkpvcTc5ZlVpY2tvSFd5blhkUVR2QTNHVWVNSXdzcFBOWTNWNGVPU1BuYnAwRTIvdUMrY3orcWpvUm1KcXFINXNVd0ZNR2JuVE1yaEZzSG5nVFlSKy92NjR5N3g0MnFxZ2loWWNJbGowdWYrOEFPYUJuQWtNUkFmT29QTnFIQUN1ZW9LUWdwdCs0QUg2Z1djMmthMEN6QU1qRjlrNGNGVldYbzBEZ0hsZ1drem1Ld3RGRWNncDJabEhreE1zZkR0ajhnMjVMRHI2b3JLT0dYanZia3lORHZkMzJNZmdpNnVrOGd1NXZKR3hRbG5IRE5ydUdrYU5EdzkweUxmVjZaSEtDd1BNSU1lYzBqa2UzU25XeXc3ZTZYSFVKdE13VXRMTlF5VE1nNE5EZms1czM0a2FOb2tYWi9TWUdvSkl4emFNRTRodVlQbDBsMlZ3dzlSYWpacWg1RlhHRzAvWUxVNllGMVRSZ2tNRUM2YUlWQ0pqRmppTHhidytwbDR3WXNpUGNRRHZ2LytlRUZCdzB3ODhRRC93TVAya0VuR3pnUGtnNmE2UEdQSmpIQUMyZzZTOHpGY1dpdHhPQ3pvanAyUXpMV2huSGcweUI0aDdCdklMdVN6S1lQTlExREdETXJzYVU4ekJQZzc3R0h4YmJXZmh6aWZrSXN4RFVjY00ydTRjUnJFSCt6cmsyL3prVUhGMVZGNng2UHRzY2tyN1d5clh5UTdlYVUyb3hWSERTRWszRDF6ZXVxUmN1WEkvdG1qWmhwbzBUYUNvK213ZXNZMkZXRGRvWkVGTXczaTNXZ1kzM0hWZXZVWXdMdFhGdEZYeHBib0ZWYlRnRU1FQ3dWZUpURzRBTVVwSlNSSEc4ZmJiYnl2cm1BWE1BMWRBZ1p0KzRBSDZnWWY4Z2tyRWN3TnNBMC9uTlh2WmIzYUE4V0RmWmI2eVVPUmxXckN3YzBvMjA0SjI1bEV2ZzRVYTl4SGtFM0lSNXFHb1l3WmxkamFteVAwOUhmWXgrT0loaHZtRlhONDRzbHhaeHd6YTh1aWozdjVlRHZrMlBUNUllV0dBV2VDaUEyVk9DYU1PUmYyYzRMMnZDVFU3WWhncDZlWWhiaEwwOHZLNjBJaEhIWmkyUWpKYW54cUtiZFJNQUZORzdyUU1iblVqWTZoeTFScTRTUkF2aGlxK1NiQ2dpaFljSWxod2xxc1NHVmNCNXFHL2IwSS84QUQ5d01NVWtVckVYUVdZQjZhK1pMNnlVTUFFVlB1WkV3b3pwNFQvdWNUWHpqekNEN05RNDhHRytZUmNjTGV6cW80WmxOblJtT3FtZFhQWXgrRGJjdXVnZkVNdXI3TjVxT3FZUVp2dGd5azhyYnREdmcyUDhjaE9JZUs1Z1RLbnBLaG5CbVhZUEpvY01rd0w2dVloSGsvQzMyVkZSTmE3RWN0bjlGSDFHNGlrZEd6RFp0U3dzUVVOR2pWM3ErV1lCdkVVVmplU0tsV3FjcFA1RnorZXBDQ0xGaHdpV0pCZlVJbU1xd0R6UU40RDNQUUREOUFQUEV3UnFVVGNWWUI1WU9wSzVpc0xSUkhJS2RtWlIrMkRMSHhiV2JqekNia0k4MURVTVlNeTJ4dFRyYjJkSGZZeCtMWk1aZUhPSitRaXpFTlJ4d3hhOCtpajlsN3haajRsMytpTXZ1SXFxZnhDTGlLbnBLaGpCbVgyTktZR0J3elRncnA1V0IrTVdMNThwZk9SdUVTWHpTTWE1c0ZuK0EyYnNHQXpHalJPY0t2bCtyRk54TE90L01zR1hBSjNiUitLSDR4WUVFVUxEaEVzeUMrb1JNWlZnSGxBSU1GTlAvQUEvY0RERkpGS3hGMEZtQWNnODVXRm9namtsT3pNSXppZGhUbzFPdCtReTZKakxHNktPbWJndGEwaDFkemQzbUVmZzIvTExTemMrWVJjM2ppNlFsbkhERnB2SFV6QnV6czY1QnQ1dUpmeXdvRGNRaTc1dVNDaHpPN0dWTjg0TGFpYkJ3cVcvMUdtalBmWFlXRmg0bjRLVEZ2aCtWRU5tN1FRd0pTUk95M2prZXg0eTJIcDBwNC9NL2ZpUjdJWFpOR0NRd1FMOGdzcWtYRVZJRzc0QkRmOXdBUDBBeTg1T1ZrcDRxNENqQU9mTWw5WktJcEFUc25PUEtydDcwQWx0ckJ3NXhNcHYrMjFZdlR4QmNvNlp1QzF0U0ZWM2RYT1lSK0RiOHVVcEh3ai9iZWpWanlXK2FxeWpobTA1dEZIOVYySkR2bldQZGhEZVdGQWJpR1gvRjZRRUxYUE1NMG1pNjE0R1JUamo1QmE0YmR3bndjUzVwZ21hc1JuK1kyYkpsQ2pwaTNGcHpzc04yZ1VUM1hDNjFPbHlsWHhNcWkvR2NVdmd5cklvZ1dIQ0JaM2VrVXFBSEhEV1RhNDZRY2VvQjk0eUMvWUNyZ3JBZlBBbmVreVgxa29pa0JPeWM0OEt1OXJxeFJ4VndIbVVYbEhLNGQ5REw0dGtwUGNCcTIySkZHVkhhMGQ4cTJWM2xWNVlVQnVJWmY4WFpEUWlPb2FwOWxrODlDbnJyWUVCVlU0aXpmMTFZOXVTTEZzSG8yYk5xY21jUzJvY1Z3cjhla095ekZzYkRWRDZwQ3ZueCtlcGx2OEd0cUNMbHB3aUdEQkhMaEtaRndGaUJ1bVpjQk5QL0FBL2NCRGZrRWw0cTRDekFNdmZKTDV5a0pSQkhKS2R1WlJmZzhMZFFvTHQ1dkFLN1VobGQrVzRMQ1B3VmNsNHE1Q1N6YVBDdHRhT09RYnZMK1Q4c0tBM0VJdStia2d3V3RISTZxOWh6blp4SVJVeWpCR01mK0xlSHRnWlAyRzFLQkJBOHZaUG9zMnBveWF4TGNXY09WeXd5WUo0aWJHeXBVcll6K1E3eGloY1M4dUJWVzA0QkRCZ3Z3Q29CSWFWd0JYQStWa0hoczNxb1hjRmRpMEtYdnpLQUk1SlR2ekNOeVZRQjRwTEN6SkxONXVnREpiR2xGZ2FyekRQZ2JmVmhEdXpRUGRBcTFTa2lnb3RabER2dFgydGFjU1czbmY4Z201aUp5U29vNFpJS2NVdk11UVU3STFqMUtNOG95dDVjcFYrQW1qRDl4TDBhaHhNM0cyMzdSWkcyb2EzOUlDRnkzRFFEQ2RKcDVuNWV1SE53aHUxVGdYWDJWVmtFVUxEaEVzbUVOZnZ0eDk4aDRyVmxqZS9BZHUrb0VINkFjZTdncFBUbmFmcWF1VWxHU1JpNUQ1eWtKUkJISktkdWJobjl5RUFsTGpxTVJtRmhjM1FMbXR6Y2gvVTJPSGZSeVFFa2Z0dGd5aEZwdFl2TjBBN2JjT3BjQk5UUjN5cmJ5bnJmTENnTnpDTHFla3FHTUdtQmFzdm9NNTJjU0VWRER0STBZZi9QdWxrRnAxYm1EMGdXZGROWTVMb0NZUThXWThBZ0dhdDNYSmNnTWVkZFNwRzBFVktsYkc1Ymw0a3U0b2pYUHhsRlZCRmkwNFJMRGdFUmlyVjMvc0ZxTVBjRml6NW1QeFNBNXcwdzg4UUQvd2tEemV2bjJiTlZIdFNvQUR1TmplMUNnTFJSSElLZG1aaDk5L3dxbHhXaC95M055QVNteXE3MUtVU1c1RVRkUDZrdDk3WVE3N3VQeUhzZFJsM3hocXZXa3dKV3djNkZLMDNUeUV1dThiU3hYZVkyRjJ3TGZDN2xaS0VYY1Z4QVVKMncwNUpWdnpRTUVaZkNEamZhOHlaYzdVcWxXTDZzVTJvWVpJV0RkdVRIRUpiUVV3ZmVUczVjYnhyU2c4UEp5cVZLdUJPOHAvQVVlTmEvR29vNkNMRmh3aVdQRGNKTHpmWXUzYU5lTEtJQWdoQk0rWlFKc3dCZHpUQUM1NG53VzQ2UWNlb0I5NGVGUUhSaDg3ZG13WDkzd2dnWTZwTEdjQ2JhYW1iaEVjd0FYUG5aTDVjcC9XMXZrV2daeVNFSW9CQXdiVXhIZEE0TndBOGtwcFFLMzJENkd3SFYycDNKWUVDdGpTektrb245cUM2dTdzU3EzU2g1TFhsb1lVTUN2QVlSL1hubHVIdkZNYVVsTGEvZFIvKzczVWVjc282cGd5d3Fub3NtVTBEZGd4bFpMMjMwOWxtRy9vck5vTytRYnRiS0c4TU1CVlFFNnAwbFpEamtabEhpaTRTMXVjWkFTVksvOGRYcmdVelFiU1dFd2h0YUs0NXEwcHZrVTc4ZW1zNVNieExjUlRmcXZYRENWZlh6L2NUWTc5QU1maU84b0xvMmpCSVlKbDZ0U3A0dkhlZUU0U0RHVGR1cy9vczg4K1pheDFFdERXWjl6MmFqRmRCUzU0TXg2NDZRY2VvQjk0ZU5jRkh0ZUJ4Nm52M0xtZGR1L2VKUjUyNkV5Z1RiU05SN25qWFJ4NHlxM01kLzc4K1NFZUhoNkNieEhJS1FtaEdEVnFWRFY4QndSTjhTYi9wUlY1NUJGRExkT1RxT3ZCc2RUNXdCaW5vc3ZCTWRSaWZ4SjVib3dtLzhjcVVPQjRiME1mTDFxMEtFU1BpWWg3YTFITngrdVMxK1pZdW12L2VCcDdZQzZOTy9BZ2Z6b0hhR3ZNZ1RuVWJmOVlLck14bG1vdXJVdDFKNFE0NUZ0MlJ6UHkyQktqdkRqQUZTaURDeEtNT1JwSDVvRXBJRHdqYWpqamF1VXExWDZyRzFHZllodkZVK09tTFNpdVdXdHF4b0llMzd5TlFMTVdpWVc2REFPcEg5T0lhZ1RYSXYreWdYOHdwK3NNSk1uQnNYaTZxakFLQjRjUGdnU0w0OGFORXdhQ0IrL2hEUHJGRjE4VWd1aE1vRTIwamZkWGdNdVlNV1AwUVA2VnVRWUFmT0Q5aVFNUEwwQ0NnV0JxQzlNdnVJbE9mNVNIczRCSGpxQnQvY1ZOYytmT2xma0dzc0dVWjc3WHdOZnkwaW4zeWluaFRuV0pydzh2bC9qMDAwL0w4dC9YOEgzZ21ETENRQUpuK1pQUGF6WEljM1ZkOGx3YjdseDhIQ2JhRHB6aEo3Z0VqQ3Jqc0kvRHhnWUxBNmt6dXpaVmVEMkNmRmZYSTUrMTlaMEt2NC9yaWJiRFp0YTJjQmtkN0pCdnVjM3hGTEExVG5seGdDdFFibHN6cXJEUmVrR0NOU1ljRkV3RjRRbTFEekgrcUZLdHhxKzRlVEMyY1hPUis4QnpwWnExVEdTMEY5TksrQ3o0NVVScXlzWVJGUlVsTHNzTkNBekNZOWV2YXB6QXJYaTZxckFLQjRkMzZkS2xNN0RZbzBjUElkanVoTTZkTFkraThQVDAzTU5jeXdKZVhsNFpPUENHRFJzbUJOdWRNR0RBQU1HWE9ZSnZRRnBhV2lENDRqdThHdGJkY2twNHJMdlV2K0pwb3l0WHJ2VFhZOEt2bTZjUWJIZUNiMGRQUTB4czI3YXRuQjRUMWJ0WEZvTHRUcWphcWFLQjc0RURCNEowdmpYZmIwU045dlVteitRR1ZHSnpmWmVpVElvbHB4VDhWa083bU1pbTRPb3J2QjlqS2VPdlNsV3EvaElXSGlXZWVZVXJvT0lUTUVKb1M4MWJkUkNmQmJrTUEya2MxNElpNjhkUzlab1ljUVRveHZHNHhnbmNpa3RoRlE2T01uNStmcTlqTVRBd2tDWk5tcVFVY1ZkZzh1VEpWSzVjT1JISUFRRUIvMkN1ZmdBdnY0SHZLbFNvSUI1TnJoSnhWMkR4NHNWVXNhSkZLRFMrL2d6ZnNtWEx2b2J2Y0ZhR0s5cmNLYWNVR1JrcCtETEhweEFMdkZ4aTNicDF2bnBNZUFTV3BNQUphaEYzQlFJbmVwTkhVRWxEVE96WnM0Y1hMVEhoR2VoSmRTZUdLRVhjRlFpZkZFcGVRUmF6MC9rQ3ZDejZ0MnhNSVBra043YmtsSFoycFhLcENSU1Eyc3lwS0wrMUJkWGQxWlU1RENWdk5wQ0Foa0YyTVpGRDBRMWtJZU5xWUZDNTg3VnFoMVA5bU1iVXVHa3ppbXZXaXBxejBEZUgrRE1TMkFEeXU0eHROdVFSRGg1NldLVnFkZkx4OGNHTmdKaXFBb2RpNDNCRzRlRHdEQTBON2VyaDRmRTkvcXhkdTdiSU02akUzSm5BRkJxdTRnQW5jS3RidDI0bjV1b05zQWgzMC9uV3ExZFA1QmxVWXU1TVlBb3RVaE5pY0FzUEQrL01YSDNBTnlJaUlwRy91NERmdW5idDZoWTVKVXhYNmFNNjhLMWZ2MzR6eEFML2paandDZzRPN3FsejlxemxJZklNS2pGM0pqQ0Y1aG5xb1lvSkg0NlZYanBmLzlxK0lzK2dFbk5uQWxOb2ZxRStTcjV5VEZRZVhKTzhOeldrbHZ1VHFNc0I1K2VVZ0lTMEpQTGQySkFxRDZ5aGpBa1RCV0tOL0FoeUlEenlMdk5kdFdyVnFXNWtOTVUwaWhjM0VtS0tDU01IVERjbHRPNG9rTHZsRHVKcXJrWnhMU2tLaWZIcTFhbDh4Y28zU3BVdWZSRnRNcERqQUlkaTQzQkc0ZUFvelFkZWN6NWpuc1REYU55SlNYeldTUWtKQ2RTL2YzOUtTa3B5S3ZyMjdTdmE1ak1KRWNUTTZYTGx5cFhIOGNFV3gxeTlBRDRJRTJTK2ZCWW5oQkNtTjJYS0ZLZGkvUGp4b20zMG1ZSnZHUng4OGZIeGRaanZGUDd0Q3VvZzZHR1F1RnBNZmxPZ000RDhFTnF1VkttU2dXL3IxcTFERUF2OG5Sd1RWczRlZmlYSnUzbHA4dS9yUldVSE9oZitmYnhFMnlWOUxDTU9tejZXWThMS3Q3UmZLYXJZdkJ3Rjk2dEtJVW5WbllyZ3ZsVkYyNlY4U2puazI2cFZxekNacjI4ZFA2cStOSklxcklxbGNwODRGeFZYeG9xMnkxUzNYb2hnRnhNbUMvSUxtT2JDMVhydmxTaFI4bytBd01CZmdrTnFDeE5CUXJ0UjArWVV6eU1IVEdjMWI5bU9XclRwS0Q2elcyN2VxcjI0K1E4dmQ4S1RmSU5EYTFQRlNsWDAwUWFlV2NWdGlUYlJkbkdPdzFtRmc4T0RoYUlXQzFybkdqVnFKSGw2ZXU3QTErNkFVcVZLWlZTcFVtVVV1TEU0MUdTdXBZQ2l3RGM2T2pvWUJ4NndmdjM2TW53bTN3WUhKTmM1cFZyWEZkRDVob1NFdEU1TFMvTkVMUEQzaUlsU1VWRlJvby9kbGJOTlRKUXVhbnlMV2t6a291REtKb3hXQWhnWUNXeGhNL3JOUHlEZzUrbzFRMjdoOGVnUlViRlVqNDNFY21NaEhtdlNncHF3T2VBK0RYeml1eWJOV212djQyZ3EzcE5lcTA0NFZhc1J6S1pSOVphM2o4OWwzaVl1OHRtaXRZRzIwR2J4VlZYT0xCd2NKZDk0NHczUDh1WEx0K0NnNmNRQjNZV1hwL09aOURJdkw2OVVCTFl6d1cybWNOdHZnZ080Z0JPNHBhU2tRSWc5Z0NMR3R5U2pWR0ppWWhELzFvRjlyMnU1Y3VWbXV3dmZxbFdySm5idjNoMVhzVUhVeE1HSFQvUXg4MnlGL1hFM3pvNWlvaWp4WlJTcG1NaERnZWtnWDRMSGdtQXFLNWx4eGRQVDZ5Y2VqVnl2VXEzbVRWeFd5NmJLeGhCQmRlcldvOURRVU1MOUlyWHJSaEtmR0ZLTjROckU5WWg1a2E5ZjJkOUxXNmFuY0JVZ3RvVnRZdHRvbzNpMDRZcUM0QUFpSXlQTEJnVUZ0YTFRb1VJbkJEdk9sQkJJQ0d3WmZQWlVvTERkUHRwRTIrQUFMdURFWi9GSVBBdWVSWXl2Ymg1aUdRY2sxMnZ1TG54WkpPSUhEaHdJcmxhZWNrencrZ0c4UDRsRkpTWjQzU0xGbDFGa1lpS1BCZXZxSm9JbjJqWmhQTWs0d01qeThQRDRyVlRwMHVmTGVIdi96OXZIOTZLdnIvLy9HTCtWOGZiNTFhdE1tVi80dDE4eGhjWjFiMmpyWUYxc0E5dlNUU00vL0lwTGZnb0hoMVVzT0pCeDVWVURmMy8vRG9HQmdSMFIrRG9RV0lVSnVTMjBEUTYrdnI1TnVmanEvRFN1UlpZdlE1eHhSa1ZGVmVDenJObzFhOVpzd051Q2NEVG5NNjJFd29UZURyY1ppN1pqWTJQTGFYeGtnN09MQ1loZVFFQkFmRkhwNDZMR2wxRWtZcUlBQ2tRZStSTWt0Q0grZUIzc1FBYXVqbnFYOFRIakt3MVl4bmY0RFhWUUYrdGdYV3lqMkREY29TQTRKSWlBNFNGMElKOHRoWEx3eDNEd3grTmdkQWJRRnJjWmpiYkJRZWVqY1ZPaHFQRjFlemlLQ1JiRGNrVXBKb29hWHcyNmNBdERjUkxrTm1VdVZvNkZVUFFSQ2ZJVVNITERGSEI1clF4OGg5OVFwM2lFNFhhbFJJbi9BelRGVHVNU1FjMzJBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicArrowLeft", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQm1KTFIwUUFBQUFBQUFENVE3dC9BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVIM2dRWkVqQTAzU0hjY2dBQUFFQkpSRUZVR05Oai9QLy9Qd01SSUpLQmdjR1g0Zi8vLy9odzVQLy8vNWY5aHdLaUZPRlNqRlVSdW1LOGlwQVZFMVJFdHNra3U1bXMwTUNyaVpHVUdBUUFzOU5wbXo4SWloRUFBQUFBU1VWT1JLNUNZSUk9"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicLog", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFBa1NVUkJWSGphWXZ6Ly96OERzWUFGaVkxUEZ5TzZZc1pSa3dlSHlRQUFBQUQvL3dNQStmWUlMQWhqbnhZQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:bitmap_flixel_system_debug__Window_GraphicWindowHandle", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUZCSlJFRlVlTnFNandFS0FDQUlBeFgyeWg3b055MmpRa3lwUWJUMGRFU3FTblllRXZoWE5zRE1ZblhlelZHNHdBME5OVlJaSGpLUEgyaDYvNWwxVzBPaXgzTlRFbDFDSjdxS0MvNExraTdBQUQ1WWZydllMZlJQQUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoCorners", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQVlBQUFDcWFYSGVBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQlkxSlJFRlVlTnJrV3d1eW16Z1FsR1Q4d1g1Sk52ZS9UUTYwdFhrdi9tRkFDNjRaMG01TEFwejFPaENxcHJEQnh1NmVuaGtKUnRZWTg2MnhkV1A3eG40MDloM3NIem4yMGRpeHNaTlkwZGlsc2JLeENxd0c4MkQ4M3NDZVg3ZWJoWDFyRHZacVdXTUwyUzhiV3dtT1RXTnZZbDhhKzlyWVg3TC9MTWZiejJ3Yk8yZHljQ2tBQ3JtZ0FTQkZ3QzZ5Ui9BZVNJZ0Jad0lZT0pPQVJDandSZUQ2K1BrTS9sc054OVlDZWlmN055VmdMeGQ5QjYrMzlyZnN2NHNLV2dXY3lmczFlVDRGT3VUOVBnSVFXRWdKQzFCQklZNjhpT20xVVNVWlhIZWhCSnprd0VHQUtoSHZRc0M3a0hRU0FpNEF1b29BcjhuTEtlQkRWR0FEUkRnaTRnSktacy9uNHZWYzNxL1VrVXFBRjVBZllrakNoNUNqM2k4SFNOMzBBQjlDZ0Uwb0FVbXdRa0JKdVVpUHJ5RG1jM205RkNJNkFpcngvZzhnUU1Hci9BdncvcEQ0N2dPYzh2eFFFcFNJQ3ZhbFhKc1Y4Q2J4bndNcFZTYmVMWUVBQkw2WDh5ZUsrMGRCRHdYK0tCRTFPQWdKVUd4YklzQm5VTmEwREI3azlSRkszeGtraGpFK3hMc2h3SDRrZUQrQUNFM0VXc1cwVkI0QW0xWUFMWmMyZzlwK0lQQUhxdmxWSk5iTlNFOC9vZ0QrYm93SXZMWVR4eDBCMTE0STJJZ3RNZ0NxSHp4Q3lWUFpsMVRxbmdteTcxcVdsR1poYjZqOEZZUnRUOGt3eXdUb2lZQVhFZkQxTDRKOGxCZzdrSFF2d0d2NDc1Y0F4b09RMEJHQTRNODB6T1doN2JNOVBsUUZzWE0xNUlRU0JrWWhFbFlaZ01haGJxeld2d0o4MzIvYWdBbzhPSzZDb1R1VFVDTUJPTkJoNzc4YThKakU2R2wwV29FS0NzQjYwaktJRTV3TGxic3hZL2ZmZ1FoV0ErYXVNa0NDeVFMU0x3Zkd2Zm5OeVdBVmxLU0VRc2NCUlVUNmZpS2VUeW1ocGx6QUpGd0pLQlAxZnFvSzRMQ3RZYUtFSkRoSDRLc1pTRDgwTnFnREpGd3R3emNrbWFtSGdROGt3NHBJV0RqeS90UVZFQ01pUmtMbElqYzFwK2oxUGdKOElDRldMbkZuMTgvTSsxWGdIdWFOQXVvQk56dW1Gdis5WWVBQ1NXL29sSGVxT2VER2hpcGc2dU9BS0JFdVVmYm1zREVKRlpQZ1RQcWh4bHhJQ0QybTZ3Z1krOGhxVHZuQXU1bDZQVFl6dkZPRCt3T2tINW9YZE9kY1l2dzg1ZEdnSHhvT3pveDdiaitYSE5BZGMyYittMDlNazQyYmFlSWJzbGtsd1A0cFlFUHZYZVFEcVMvUGFsTUZoR3lPS3Jqck8zSXpCODBLdm51czdoTGVueklwc2NmbmQ2cDNpVENZaStkakpEZ2t3TTI4SW9SYTdib2NNR2NWaE1CamE1M3JYZ1NJbUVNSkRMWGNJdVlGZGxzdUlpVE1EZnhObDZrTGdIZG1Yb21RUTBCYlp6c0N0SWRXRDA1OVlHUURCSEJ2c2JiUVpZN0FZM3hNT1JuYW52aS9VVUJHS3BoVFNXVHBZM2Q1aTNuWm5sanBtNTU4WUNlWStFS0xMQlRyQ2dsWXc0bU13c0JNWkdnY0d2bTVsUGVOdE1sZDI4YUZpQlVSNEdES1hKdGhEWXV2bnV2SEZJREFPd1VnQVdzS0IrNFB0aWJjbWhxN0RXVk11TkY1N08yc01mY2wrbGFWNE5xaXE3VUhOd0owQXlmTzhnVnNqMC9kWDdPSlAydi9ZKzhPbWVveStDVTRkdzFxdjRaQUxuOCtGK05HNlJBQi9oYzkrOHg1UG51ZFBhOXJCWElOQVNWZ0srQnpjN3MyQ0lIR1dtZTVXenNXTGo0U0Zxd2VQd0kwMzlwRHI3UGtOMkJyVkVDN3RZc0plRjBncnI3Z0xqSm53azlmWGxYdWVLaTdCTkNxN3EzNTJTNi9WUVZzNVlzS0h0dmxhMkFZMXduZVBXSXkvOCtUSkp1WTZOaEF0a2ZRT3lLZ2E1ZlBoVFgwUGk0OHhEc29xV2JLWnl1aER6eU84VlgyQ253WEljRXBBVXZ5UEpaQWpDdGRXZnFLbmlMYjQza3VkUnNCck10b1B4RUpMVzZMWlhCbjd0Y0xlQ0lnSXhYRXdpRkZRbXdNMFZmelkwdHBPZXVyOTNQQjlFbE1sYUR5YnovVExTc3pKdDR5YitCSGxrUlFUQWtwRXZ6STBoa2I0ckxzMmZ0YklPQU5iQXRWNExwZVlHZCtManIwZ2RLSGlhVnZQZEV6OGtIb2xyYUwxSHYydmtxL1hVWGVyaUQvVEdxb2NQSDB5ZHl2dXViWXFzejlpbTFWZ251Z01neXArVFl5ekkxTmNIQm1pM01aWFIxL3hLVCtyd0FEQUFKQmFpQW1tNXh3QUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileCircle", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBOE1HbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MUxXTXdNakVnTnprdU1UVTFOemN5TENBeU1ERTBMekF4THpFekxURTVPalEwT2pBd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRkpsWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sVW1WbUl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uUnBabVk5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmRHbG1aaTh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGxlR2xtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwyVjRhV1l2TVM0d0x5SStDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJ2Y2xSdmIydytRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRRZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTBMVEE0TFRBMlZERXpPalU1T2pNMkxUQTFPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRRdE1EZ3RNVFZVTVRZNk16QTZNRFF0TURVNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUwTFRBNExURTFWREUyT2pNd09qQTBMVEExT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tWmxZVEZqWlRRMkxXRmlabUl0Wm1RMFlpMDRaR1prTFRBek9EWXpaVEExWldKaU9Ud3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pSa05HUmxZakUyTFRJMFl6TXRNVEZsTkMwNU9UQmlMV0kyTkRnMk1EQTRNVEpsTXp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdQSE4wVW1WbU9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNMFpHUVRBME9URTRSVEF4TVVVME9UbEJOMEpGUlRRM09ESTVOalk0Tnp3dmMzUlNaV1k2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEb3pNMFpHUVRBMFFURTRSVEF4TVVVME9UbEJOMEpGUlRRM09ESTVOalk0Tnp3dmMzUlNaV1k2Wkc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BDOTRiWEJOVFRwRVpYSnBkbVZrUm5KdmJUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09qTXpSa1pCTURSRE1UaEZNREV4UlRRNU9VRTNRa1ZGTkRjNE1qazJOamczUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K2MyRjJaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGlOVGN3WlRoak55MHpNemhpTFRSbE5HWXRPREF5WkMwNFptSmpObVJoWkRnNFltSThMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UUXRNRGd0TVRWVU1UWTZNekE2TURRdE1EVTZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMElDaFhhVzVrYjNkektUd3ZjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbU5vWVc1blpXUStMend2YzNSRmRuUTZZMmhoYm1kbFpENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBuTmhkbVZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHBibk4wWVc1alpVbEVQbmh0Y0M1cGFXUTZabVZoTVdObE5EWXRZV0ptWWkxbVpEUmlMVGhrWm1RdE1ETTROak5sTURWbFltSTVQQzl6ZEVWMmREcHBibk4wWVc1alpVbEVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZkMmhsYmo0eU1ERTBMVEE0TFRFMVZERTJPak13T2pBMExUQTFPakF3UEM5emRFVjJkRHAzYUdWdVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5DQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBFYjJOMWJXVnVkRUZ1WTJWemRHOXljejRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBDWVdjK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG96TTBaR1FUQTBRekU0UlRBeE1VVTBPVGxCTjBKRlJUUTNPREk1TmpZNE56d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcENZV2MrQ2lBZ0lDQWdJQ0FnSUR3dmNHaHZkRzl6YUc5d09rUnZZM1Z0Wlc1MFFXNWpaWE4wYjNKelBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwUGNtbGxiblJoZEdsdmJqNHhQQzkwYVdabU9rOXlhV1Z1ZEdGMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajQzTWpBd01EQXZNVEF3TURBOEwzUnBabVk2V0ZKbGMyOXNkWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xsU1pYTnZiSFYwYVc5dVBqY3lNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTlRRMFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqTXlQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejQ0OHNzb0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBS1RTVVJCVkhqYTdOek5XdU13REFWUU5PLy96bWJCWmhiTU5HMFNYVHMrWjhsUHBBYXdidTE4MUJqakMyQVJyeGFzQ3RTOHE1ZXJGdWNLMVgyM2o2NWhWTUhhdi9XUUdzSVZyUDNUZ0FBQ0NBQUNRTk13ckhENEVBQW1Jb0FBQXNEOUE3RkNkZC9wSTdVRElRQUlJTURpZ2FDYTZnZ0F6d29BaVJCUTRmQ0JBQUxjTkJobjJYMzRwQi9QSVBUMllBY0NBUVFXRHdNelBmOXdwcWNkbjBGSUJoQUJnQzM5Y1F2Z3JjRThUbncrRVFSR29PYW4xeDVOUDhOaytFZ0dEcGlLSFJCV0RRSlh2ZHUvYzJCVW9PYVpYaHhCOVBkZ0FXWmJka0JZTFhoMDdrQ2NIVTRqVU5PN2JrQUFZWXN3Y01mUVB6dEFSNkRtNm9NL2VRUXhncTkzYkhMUFFRRGhNY0hqNk1kVEMvVlkrUDRhZUlBQXdwSmhJRG5Bbm5BRWN2WHJNUGdCQkpCSEJvK09JSkk0QW1HZVlIbFhUVWNnSUlCd1FSQklMNXJqZ2ZjM2NZM1VRNkJqa1hzS0lJQk1NaHpIUnEvVm9BTmcrd0NTMklINDEzQ2Q1ZDJyd1ErQUFBSUE4TFFBVWwvMy9mZkxWM1dQZkt5amJxSVBBTmc2Z0tURHp5NUR2NXErQndBQmhJTkR0Z0kxZHhuNkZicEdUZnBhQUFRUXBnbytIVUdvYnZwYWV1OWJUZkx6cWdsK1YveWVnZ0RDUlVGa2hnVzdBalZuKzE2RERrQUFvU24wM0JtR2Rub0dwUmE5Tm9BQVFtc1E2ZHFGU1J3QjFTVFhXRDM0dktybENBZ0VFRmdpOUh6NitlNGhVWUdhaGgyd3hvSStobitjQ1FjZC9XT3A1bnBYOW5QM2dsREIydi9yb1hzaHJHRHR2M3N3QUlpeEF3THZMZGlkT3pDSkk2RGtNeWpKbzd6Wkh1YUc1eStvZGtCZ0NlLytvVlp6dlN2N3VXdFJxbERkSTMzWWdVRUFBWllOSTlWVXArTWRmeW9BT1lMcTdjRUFFa0FBTGgrTXMrekNDRUJ6QnlBN01BSUl3T2tCV1lHYVR3dEFxU09vWkFCeUJDV0FBQWhBQWxBa0FIa0daN01BOUEwQUFQLy9Bd0FwRU5ZQU4zRnlhZ0FBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Mover_GraphicMoverTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROWEcxNHpZQUFBSnZjSEpXVjNpYzdackxqdE13RklZanNiUDZFRlpZc0NGeG5LYTNxTWtJdFJyTnBtakVWQXhpbHladUoyb1RSMGxHU2ZzMnZBTUxKQ1RZSXg2QXQ1Z1ZXOERwalU0MVlzR2lxZVR6OVdyWHgxLytFeS83N2RlWEJ5VlJrdDhWM3llTkhFL1lMSXdkOWVIelZ4V0hnYVBldGtiR0tCbXd1L0JxbGJLYjFldXh2NXI3dlVDOWNGRy90TXNvaVZqdTRUSmF4SmxkT3FvWDhBbXp4ZmRxbXFoNHZTU2ZPK3FyNmdmOGJuU05CenhsdUtVYm1tKzBEZHltT20xYW5VN25KVFlOYWhEREpOVFVhTWR1bXJaaDRDMnFpOFI3UHcybTlwdmg1VlluUm81NmwrZUpUVWhSRkhyUjFIazZJN1RYNjFYYm1LWW1WbWpaTXM2OVVvdXo1NXROZHZzTVdlYW5ZWktIUE1iVjJKdncrOXhSVllRUDJPYUtrcjBvenZSMVJ0M25FU205aEZEZElQdWRxODNGYW51UU1pL242Wmp6aGJ0SmZobW1yT0RwUE1PRG14YW1va284cks2RmI4TTQ0RVhXSjhkMVQyM0podUxsaWtaWm10SFZER3RNdTdiVnRXbnovVUg5WnRGUitZZ0g0WFQ1UkhtcmFWdnRiZm5Cb2wycnlGR3YvcmVIZ2I5dllYS2ZMdFozS3ZBSlc3Q0l4WGttMmtnZnR6SHc3U2xQSXk5M3c4aWJNWkxFc3o3NU8vblA2OXZNaXBNaURpblpuMUwzMFdVZG9wd1k4TzlCa3VlWDFvOGt6dzkrOElNZi9QWDZrZVQ1cGZVanlmT0RIL3pnQjMrOWZpUjVmbW45U1BMODRBZi8yZmhSelg0TS9ucjhTUEw4MHZxUjVQbkJELzZ6OGFPYS9YWG5sOWFQSk04dnJmLzRqeGluOXRlZEgvemdQeHMva2p5L3RINGtlWDd3Z3gvODRLL1hqeVRQTDYwZjFaNGY5Uy9LeFBQbjdOUitBQUFBQUFBQUFBQUFvQjQraU9lem4wdmwwOXVQalI4di9FYmQxd01BcCtSYThaU1p3aFNzVURIYWZRS3k4QWVWbzZ2ekVKZzhjUUFBQUVodGEwSkcrdDdLL2dBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFLYVF6b1FBQU9TaHRhMVJUZUp6dGZkdHoyOGFTUGpZbmppUDVubXhsSC9aRlZidS8rajNGaDdpUUJCOUZVcFFVVXhJUFFkbHlYbHdnU01UYTJGYU9KQ3ZIeThML3Z0UGRnOXRnY0NVcFVRN0NXRU5pY0JsODNmTk5kMDhQY1BTcWU3TjRQYmJPRjdiM2VueDB2bEM5d2JnWEtjYi9PRDVmTkJ0NlIydWJEZTlzMkhNWERlOHRGVzhPKys1Q1ZiMkR3d21XNHozTFhiUTFiMnlkbnJQcTdqNDdnNHYvZWFQaDhHYlJIYkUvdmQzSjFVTDVYcGtxanZKTzZTcTJjcVdjSzQ1M2VIekV0ajltMnoreDdRZHMrNlV5VTNhVUlhdjlwTXk5Y2Y5a0NpZmRQY1p6NzdJbTYzUFQ2L1lQenhlRzF6MWliWit6QXUra2ErM2hUdFlBYnFGckhlQ3Y3cENLVjFqMGp2a0o5Z2I0ZXp6QmZRZGQvRFVZWTNGTUc2MFIyOWZ4dWhPcW5ORFpKeFpkNUlqT1I4WGhMclR5R0ZyVjhQb25LalNuZjZMQmFmb25PaFlEdGxGamhVYUZEb1ZYQUp0bkNXekd5b1h5bVcyYktYTmx0aXhDNnYxSHlOY2VpK0hpS3RmTGFJL3FHcFgxUjEwU0hYVzkraE9pczZUK2lCaVYwYUE3eHVneHgyaVg0WFBKa09peXY1OFpXdTg1VnQ5enJFSU1zOUNCZGtmZ2FSbUVEOWJuNG1NYU1Yd2FNWHgwTFk3UWJNaytwaEZDR2lGa0VFSUdJV1I0MXVoWGtxcGxzUy9PbEcwNG9kdXdyQlBjVUFiRFJ4ekRDZE91ZnpGOSs4enE4L1JNMTJTS2xnMmsydUZRYWxPbkJKU09TVkRpOXJXQnFYV0tnZm1VZzlsakN2ZUJmYzZWM3hoY3R2S0g4bDc1d2dIZGlpamxSL2I5UXJuSUJGUGx2VmJWQzlPKzJqRGszYmFSMFcyYkRVSVMrUUNRZE8zQ1BWY3pDMk9wbXhwaHFhdXowdGhsZCtqMmpLQXpIVUp1dmlLRG9wRTFYR29WeWE0WVpGVUIrZ2ZycCtld1Z3d2dvMGtBcVZOQnQxd09VWU13Y3JJNktxaEZ2bTRoSVVad0FqWUZuRkNwMWdCVVVyZUNqbHExZzQ1WjdSUTc2S2RNTlZNN3E5V3oxUTZxNjlHejd6aEdiOWhZY0MxRnB5Mm9tR0IwWk5sbGNHZ01IKzNPOGJGR1hXSi9xNXNnL1VjQlh1L1JwbmVZeGpEa0JHM3E0YmdKbFArbEVOMXp2RlROa1NJbUVIN2JLYTlTUm9zZ3N6bG0rc3dvUEhaVzc1VHNnbHJUSmlCaHFDbVA1QWpKLzVxaCthRVVrcTVSWU9SMC9aRVQ3SW1DUUFiY3hvRkVtMlQxT0FKOGxtK05BTG1SV2VKL0FXVEpMdkcvakV0RC9ERHVYSlNCRjhlTVhIY0MxYmswdm5OdW1jREJBSENudFdxQXh3eFhiVDRuek1SQkl4dXpLZ2F5bkJTMVpxYUI3R2psKzNoZ0hqYzFnbzR3TElhZE9pOU1qWUhpYVc0TXVxMEFPaGhCdnVCWVdzVTNpN3RtNkNKVWpIMFU2Y2lheWEwVWRFb0tvcVZyTXJSYWhGYUwwR3BSVnlZQ2hDOVRWK2pLTU1hTUQwcmcrREN3Vm16bDk1d1lpVWtvZGdoRk5ORWlLRGFXUmRFZ0ZFbkZwREEyYmNKUnk4Q3gyZUJoZ0E2UEEzUTRrbHp4V2x6eldrWWFtTFFsQWlZek9zc3A1WVQxZEthU3l1OWxlbkVoclN4bVBjdlZFanN6RE5UVGxmTWZEakRZaDMwZ3g5R1Joc2FlZlBYc1kyZCtqL3dYRDFkRmFncDNlbWtVWVFQQ1ZXckZjRlU2U3MrbEtQVXhzRGRsSm5oMnQ5NVVuTFJid21uQyt2RTVjMC91SzA3NnluSGFDbkM2WUJiSjlTMEdock40ck9NWUZaMDBQaVEwQ0pvR1FkTWdhQm9FVGFNZ05FK2xLc1JuWThxclQ1enJHN2MvKzVKRlJrMUNxRWtJTlplaTdBUDBYbTl5dk5kTm5XSGdLTEVSRzJGcUVreE5nc2ttbUd5Q3laYmEvZ053TjNHNlpRSmNJMUdtUzJaKzdTaEgvTnRjdVN4aWlwVXhIZFRtdk1oa1EwUHE1SmZ1Y25MRGdadXpKa0Zsa3ZGUGN3M3BnWkZzN0E0d3dQU2VCNXJlSTF2RnNRT3JFY09XNEFHaE5Cc3hRNWI4cG9RaEsrMk1xSXRGSStMMldyRXJEcFhmSTRjQlJPbUtKc2JmSEZtUGhLaDFLbTJGUG5xRllOTGE5Q3hxMTRlUkpMQlVNWkpremt2ZytUQm01bjlhN1p4N3dZa3NZV2k4aFc0YWdBVTRSc0g2am9OMUFsTUdIS0x0d0QwSDJ3ckNiWG5XbFYwMU9RRzhtVHlZZE1HMTlGMGhQOVNHQ3Axd0xOVUM0UXpZaWhZV0Iwc3p5ZmRCVDJjWEhUWlV2bGFMUEI4RFNnd241bUw0SW9JaFJJd2cyY05DTzlYbVZsbjJHR0ZMQTJ3RklJVklWc2JVakdNVHFCb0gxZEdFK05xTXg0aG80TTd4TUpucUVxd214OVVrWUIyVGdIVTRzSTRwK3V2d1pleC9pWFZ3cWdxKytBR20wWmo3cE9PeEgrSzBrdUU2bVNqOElOMnR3Sy9QQ3NFdmhPZ0M5RFBuWFZOaUpRYTMrd3pDbmhsSWlEMldPcGFJTktFb1JSb0hjUUFZRlgxTWlsOFUzdTBBM211TXFVQXl5bFVSKzhlZjFQYVRMVlI3WGdEZkl2WlBVMkNNT0xNQzMxcVlLSmNPYnNzb0I2NFBuT29HTVJJRVVNdG5paC9sTVdTZWpsR01mOXNWK2JmUU1NVkRlNjR0NUFod09JMXBqSDROR2YzNmNJbzgwZVIrWEpNN2NxeU1KMTFRRkdwTWdGcGpUczM4TndDdHVsSks5ajJjRVlQeUUvdVdWRmRWK1puVm5qUEljK2VTNHZQa2xhUFBXYjVmQ1JzZ3JxaG0xY0JCRXBuL2tDSEQxSENYYmIxbXYzOW0zOEJRQjg4d2Q1Smp0Wml0MW01YUlXYitNTjlqZy93SDlzL3Z1dEU5WmU0TXVpMnBKcVpkUHJCUXdzQXNQc1FVQWdyN0tmQmZjbXdCeXhOcUxDcUxRZW9QMS90QjRzRTVETmpyU1I5MmlwdnBwYkxOQk91VDA1OU5RTm9FcEprdzFMbnBHYzAyaXdFYUJmQUpCL0FOV2pSelBqV0pPaWhNYUJTTDNnaDVlNEZmWFN5QUExT01KYlV4c0huUVpGcHFXbEtLWkRCbkhrNjBZYXpDL3pJK2lRemJEUnBOQkNVdGpuR3hTU1BObE9rcEJZQldpTEEvWjZUNzg3N040Z0RMZlVwZE5tZUVQVHV0NzVlRHNZeFQ3bkxyMFkxYmo2NWRBTVFpN3VheUFTQzVpbW95Qk1rcmozcEJ3V1NibUNIcDgrV1lXOWdYeWtlQkwyRUkrcVM0a0pRRnc3VU1RN1ZwRUlhdE9JWjJDUWhiVWoyVUdqVTA5VnZGcXZHMU1FNllHbGRETEhVc3FmZTJlUGN0RHBxdmNEUkprdTJ1NkxKT0s2Ukp5a2VYUm5Ickd2azJpZFhVeUo4MEQzd1ZZZEljQ0JieG9pODZmU0g3MnB4eit4cStqSHdNTGQvMUcvc2NTVUdQWXBqNmVZRURjR0ZraUU2Tm1IUHRhMThaN3pwenZFWU1aY2tJY3YrUFk2ckxNSFZNdWNQUzRkRzFEay9xNkxRb1VvUnVpVDlIM2czZEZIL09YSWlPcDRNWWV0UC9aRERhYUZCbXEyZXpxdTFUWWtRaG55OFNleXVSaGNYOFE2bDZ3dllCM3o2ZzdRR1VPRnEzK1dEZEpnMzFJVVVGUFNEWHNGeG5mNHQ0Wm84dThSRzZVTjVnR1Z1U2ErWlVPaGtxZU5MUzBTVXRNSkdXSVJQUHdPU3FpQjV6eWxxUVV3YlZKeHlvUDZNQjdwdmxEemlJdXRLdmtON1dMcktPcG9oTG84ZE5uRGlBVEZVa29ZaGlZVFBObE1TQ0QyaU1Mb1BUZG9nVDh3UDMwY3o1TXhzeDZRQlRiT21SRDVtYXIzT09kSUJSNXpJeVZHOFZzc2VCQmZNZWs2UWg3REJQcE42THNMV3F6am1veFdjQkExOUZiNVZQQ3ZRTndUeXY3OEEzblErU3BuTWVkQytDTWZjRHJ2b29PODBnbnlGY1h2VXduend5ejJCTHJXbGYrWXBFWXNXUldLcDh2a1V6RGlZTGtnWk0wUTU4d3JaZlk4QXJiL25wS2pwd3MzZ0FWc0N3a3o5bytPbXBnam05b3U3cjZ5RGs1cDlqckhEdE9waklwTlNsU3RneDQ1TmRyblRVa004ZkNnbStqcHdDWmZhZ0dNWUpwN200RlJPTlk1TzZzaHRzTjJsWWJwWFQxaWVCNTN5QnJzeDdCanhmSXBHdHM2dExpTXNhcDAzcEVqbUlnMFFRMThyTXdLUnBMZGszVnRJSnpFUHdhUVRCZjJFUVp3Y2pGYVV4eE1CZ2ljV3VBWTVHdml0ZGVYNEFmT1VDZ3hBR0laeTJKQ0VkazN4d2cvL0ZuMzRaY1dNU2JwRW1aQ1BXcFRoem1DZUZuN2dVWHVPTWw0UFpyMWM0K1FBTURESGluWkJneXRNSkxhVXFxdGhTTm9rcnRtQk5ZYWd0eVNXbExGQ2R4NGgwSGxwbkpYSUpGMDkwZkJ0eDRjU0NtU2l0eUZTWkdaOHBBM3ZmR3d6N040dEI5RWtETG9yRndvRGNlU1NKMUVWeEhPT2N4a2NVMUdscURSZkhnQUFaRURjTUNJZkJIbXJ4WU56SFhjWmpxanVnNGd3S2J4RDE0cWhCL0xFUDRMRUpUWXJXbktiV1ZHdVNSazFpeFg3UW9oZXNQVTR3SHpIajJuZ2RtZks1Q3JqWTRUa2ZNUFE1eXUrTVIvelppOEgrYXdiOGNZOU9mc2krNzQvZ0NTd0Rlc1JLQS8veklsV3FYOFdmdndKMWI2R3VzZng1MUlxbjhLdlliNFRPaTRudUVSZGRENThtNExBTy9FRWl2akVITWFsUjBacHE0dE5KZkhvdHZncmllOHJGTjJZQU9leW1JWXJ5bXlERXA0R29aUHVjRnRpbm1tQnRFcXhkQzdhQ1lMZURmZ2tUQkdEZ1JKMGROeko1NE5lZFp0UlZFNkJCQWpScUFTN1JNMGtRMTJnYlhmcXdDVDFUdnM5cGdYMldvbHhWclNWYlFiS2grV1ZqaWsyNEZ0SGxzd0QrOXRPVTdkV2sxaVNwTld1aExTRzBFWnFiVHVTSlV5NlBnL2piVDFPMlZ4TmFtNFRXcm9XMmhOQUdDTXdzZ01VWFRyajlOR1Y3TmFHWkpEU3pGbG9Gb1QzaFF0dmp6Nkw1QTBrdmFyODg0V0tTN1hHYXUwYzFrWFpJcEoxYXBCVkUrcENMdEl0enNWZkJESzBiUEJEaU11aUQ0dFpxNG5KSVhFNHRyZ3JpMmdxY1F1ZzV0TXhhOU9mREd0R2ZEMnVxaVc1R29wdlZvbHRpeEh1RHlaL3p4SWdYYmo5TjJWNU5hSE1TMnJ3VzJoSysraWljT3d1Y2d1M0Fqb3pXbldiVVZST2dTd0owWXcxN0hHalRYSmtxZlpUSWU1emE4K2Z3ZmUwUjYwOXo2cXMxVXVYUll5ajdhZ1RZUVYrTC9kSmp2NHpZcndrSllCK0Q0bFcwOVNuWFZxaVpna21CazU5ZG5JeVA2bXRMcmlTNkNjb1VxWHFwbVdHdDFySGI4VnFqR2RaT1crS3hyYXhEMnhtSHFtS0x4RzV5LzVxL3V0NVpzOWdhY1hyR2NScmpzcGw5ekhhRWZaTTlTSmMxa05vUjE1U0lvc0MvMU5iTGdGelhSVFlFWlpoYnZjRGNxbXZsaEsvVi9DMWZJN1ZPdzI1MlVqU3A3ZkFHNW10a3NmTnNTTThOK212WWgvTnc4cnRWZHVQeWNTcDJuanZHNlhtRTRWaFA1VDM0TGVidVVjcGpUdDl0ZEJpVGF5bmRLdG5ub3VRbFZibDFYZVNPY1g0aDRCeEJPSThsWDRadG1UWTAyMDZEWWVheTZuaGxSend5RSswVlgyaEROSHNQTTFFeFJ3WFRLb1BSeWN1eDY3U0c3b2dEUm1nWXFkTk9XNTJtR1VicTNIRFpyMWh0WUJpMTdMblRVTk1NbytTSlZiRkZvaFR2WC9QdldEY2VjZDJBOUVhYTNZWVhKbnpNMHdpWkNhRkZLMFZiMkFqYnJka1pockpvZkRSZW11RnBVeTBUdnptRjFHRnoyMzdIdXJETmRTSHlTR3BXbDZzSnJSWmtlTW83bDlrd2szQUdQYVRWRXUyQ0NKNXdZTnRONjF4MDRUVFRpLzFmV0JrMnVQbDNyQTlia1ZqQUg4Z1BseEZ0TUdTTjZyU05saW9NbDNwd1o5T1o2UWhjYWdhMUxVZWJxM0pJNXU1czZzeVNFcjJiSm15SVZDeDhKY2FOSUJXcGtuZjBEck1iMDVUYzBPQ1RwdVRUNWxTZnFpbEszbW9sZTArbzVMTTVmS1JZUU1jeWl4TDJSamQvUXppYnZKV2svWnppajZVM2kvc1hvbUNXT004SzQ4cDdnLzdOWW04UW1VNmRJMDZIbUlNTnRtMlgvYjNCQitENDgzRHpZRG1SclZ4N2V5UHJadEh2N2NHZlY0aWZ4ZnhpOEQxT2xLbnlQMlFEZWYzZWExd2c2S0t0Zk1VUTlTTEhiUG1MNEpoUERRdVVycFgzL0loL1V4cXhQYmZEOWlUMi9VWlJoYjIzV0ZzK0lOZk9sWW55QmNxVTh6N0NWdHU0SnZUUFVDdjQzZytWLzFJYTRVYzRjby9kbGN0dHZTTjhrdHVoMHVkSC9qOWxvYlN4dHNWYXg5cW5hTXJQN0x2RHRzQTMyRGJEeCttWWJGdWIxZEExbXJobm0vMVZXUTM4OGdRY3dvYzk3bUtNNWtOd2IzOWp4K2hLVTJqbEFiSWJ4U3RrOStlR0grSElMcTV5dXNhTU1BdXpOYTlUY2R5S3lDY2I4U2VSUGYxc3MwdXlrd0o1dG9XN2VNS3dua0U4Q3A4Q2dldWVVZGVZOTVWNmxSQ25QbjlTbG8wcE5sRzBSSmsraStqTkVlYWxYdk1uU0ovajZPQmZTeFd1RlVnaWVQM2VKMnpqVlhDRUhqdmlNVDZtODByNVBYVi9zVjIwNGl6V0w2WFNuTEd6eWJUMUtUN080RThlUDRXZVBFc2N2eFhYZHFaTHJ0Q0txTVlmc3ZiU2lveHovaXh5T3N1MzNQT1pDeGdkb0E1bVh6MmlpOUtyMDN2UkdFNk1oV3pzUzNuM0lPTHdJbUFjMHVqTFZQMFFaZkQvMmRWL1o5Y2ZZSCthWXh6d2t2ZXJFM2JrQjZiMTlLUzJqMHhqTGxDbkw5bTJLR2FuYlA5aldzZktyL0lvd3JnN0VjNUZpcTdBem1OTUpQdnQzckt6eUY0MU85ZnNYTE56emM3M201MS80T3hzc1hQN2EzRnBmL1E2RlhvVHczM2xiSzNtN0pxemE4NnVPZnVyNHV5dEpHZmZXNFpXYTRhdUdicG02SnFodnlxRzN1WU0vU3RxL2Evc0dyOHhXL1MrY3JSUmMzVE4wVFZIMXh6OVZYRzBiMFZIT1ByZU1yUmVNM1ROMERWRDF3ejlWVEwwbUNFUDF3TjUzRmVHYnRVTVhUTjB6ZEExUTk5RGhwWm9RWjE1VjdQelV1d3NjbG5OempVNzErenNzM01vMlZXd2M1MTVWN056emM0MU85ZnN2RW5zWEdmZTFaeGRjM2JOMlRWbjN4L09yalB2YW9hdUdicG02SnFoTjVXaDY4eTdtcU5yanE0NXV1Ym96ZVhvT3ZPdVp1aWFvV3VHcmhsNjB4bTZ6cnlyR2JwbTZKcWhhNGErRzRidXM3MUFPeU9jSmVSMmNIMUtzSE0yejRtb3RSSXNtY2QxTnV1ekhjVmdueG5EeUZ3SjF5MmpiMDlqOXl1WE1Jd2Jtc0N1MGFPeXN3TGorOUpUR0VPR01ETkdtU1J2NjZ3bHpWdlJObCtEZG1JNlZGYmJubkZ0Qzk4TThpNjIxM0xhWnlkbWk3OUc3ZnMzcGIwbTNjdUtFbTY2N2ozbHVoZmxldEVhL1o1ckgrUkdNSXR5by9LTXhVeUhPc3Q0a3l4UlhiQkpha3MwM3hMVmhIYlZsbWcxUzFRVjJyRnBsdWpqa0U4WlEwZnVjQW1HSHJNcm5DUFQxZ3hkTTNRUmh0WnFocTRadW80VlNCbjZTY2lueWl5VG81L0ZtR29IVzB0dmYvb1E4ZUlleDFiOXJkSi9FM2tsai8yYW5OTmNaRFBndkRiN0dHeC9uLzEwOWczZVRRcHQ4SzlqSWwrNjZQVUJCOWIrMi9ydEE1bTJWTkc5WjhobUgzQnNqcDFOZVFrZmlRYm02ZEJVNlRBdGNOaGZHQW5uT0lJYXlIRytEa0ZjQURUSVpScm1heXJzYmJMZm9Ia3p0bjljaC82VFhhbkxzSElSU2VMVWR3eXpTK1JWNFBrLzJlL3JBR2ZRcnY4TkVIdUFWOTZCdjdHemZxL01Dc2FqMWlQSlBPeWpMWGlnMklMR2ZjTlFhZ3I3T0RuOGpNeGFRVXUyWXpybjE0bTZrV1VYaW4wcFQ0czBaQm1UYVFPVEJiSU9hQWZvUzNVbUttTEZ0QVJNODBkOW8rS29uemJhTGNPWG16WlN5dlVtcm9HUEdaZk9tT2Z4R1Z1NUU4SEtmMHZlTGlKNndlcUdBYUpYRlpnSmRNSmc5UzdhN3lxT2JpcTdaeU5oMjV1Y21Xd2NCV0g4bTdGL1lGMTFib1dabnJMOUxtQXNRbnZwSFpmcE8vYjdOMldhSXNGbndqSHZ1UzBkUCtwdjdINmFnbzV2czNxUTJrZjI5eDFxMmVmVVdjT3QyTDV3bDdPVVBSL0Y5dnhOOGQ5M1dleTgwZnVNNy9rODlUN2pMWmZkNll2VVk4WDJ5WTRXcit4TEpYbHZ0ek5qSmU4WGNjYWJJVnRkQy9vUVNrMTJuOCtrUnhWQktFc0g4NjRweDFiVVJ0RkRTdXNuOHd3dlU0NUpkaDk1SERtcVNHOThJdGsvNzE2U1IrUnBscnhWNmZmK1ZIcnZLZjJtRkV0dnNTMGdoeHM4ZjFYYlVXZGNDeHc3eGJGOGp1elk0ZU4vT09wRFBkeEhBKzFMWU9nT3hnVm1hRU9LMFpmMU1QVGpVRFo0dGd2bEhPMkpLMjkveEVEYkgwMXVGbWZESHJ4dDdTMFZYcmhOYXpacEszenhCTmJrMGxqcFdiZEpWMWQrVHZCL1Yzbk85VENsVERmTGFuZUVZU3RyZDl6KzBBTDdvMW5iSDdYOWNlL3NEMW1mcUcyUDJ2YTRmZHZqdStqVEdTcnhNbHpWd0VoRGgvdUZZRTIwSkx6Y3VGTmVYazlQanVOWER2c1h5Z0ZhSzM5WExKeHIrb3pYaFB1QytNcHE3TUJaWUFkcUcyZ0h2a2YrZXhmRzNvVGo1SE9vMit3NHN2SnNYTFArR2V5bmxKNERvMFlTMnlKSFBzZm9JczJvOGJoVm9lUFdvMmRGZEtXYzl2M0VKSHFadU1PL2k5RzlGZW1oRStpaHVuRjYrQXoxTDNyUHhUUnJLc0h2N2pTa25Eekw2Y3AydUlYVlVycy9TR0xZNFd3bllEREx5RUxJSDFkbU9LN1lmSlNBV1E4Tk15VGpNV3pRS0R1V1M0QXpxWmhET1YvaGJOcERKcGsvY0E0VzVQUWxHSE9UYytvUFVyTU9aQkhyZGNXT1pmS0t5L3dCT3o4OG4ya2VrZklBZlZHYWw2WDhneXF4WWhjelBCcE1OaUFKNk84dXpsR0ZNNkVOdEFsQVFuZnJxNjBMZlJtT2VlZy81ejNWZjFMV0RvOVA3ckpXL0FIelRCVWtvYUVNTk94TE5sb0FEaXNObkVXTVdtZE5uUHNwbHBGem55U1JqMmxjS3Q4Rzg5Z2trL0IzbFY2Z3Nqb1hQUndqbURIeEkzT2JGTEZZRC9ZaGR0a1liL20vV2N1TzhPekpUTHV5YUd0L09iUmxLR2JqL2hRemNXQVdIMnpzbmVENDZoRTZrSUNPdVJ3a0FRM1BEMXhqb04zWHhGRWNjQVk1TlZsZEI2MUVrSW1MTW5CdVJRSS9JS2IrbmZ0KzlLWFVkdnVHdFRBK1l2K1lldlEvV1drckgySVd3amVnYmJjZy8yeHBabXZDYzJXZkhmVVo3Y1Z6bk92TzA0Wi94NGhmOUlnb0RqNCtuNE9aL2grWWxGK2lSWkQrS2J0YUt4NFJiZ1FSWWYwdjB1UHpwWll0OWNmS3J3bzg3KzNqQ3ZwK2g2OWFncmhQSy9Eck5HUmZXTkUweFF3bThPZGFhTk5QV1RsSEszMkcxb21PRnNkdHlPSTUyNGZ1dW15L2Z5RTk4aTc3ZkxvRTg1Z2ZaT2pIRHZMNytzZkkzdEY3VDg4QUsrdnROUm5hSmxxY0xkU05uM0YvaWlJYU9JNjdPSGFvT0VZME1VdHVqam8wWjNXd2g1M3c5dGFqUHk5UzBVam1tSFZ1aWZtenBCblhoSWM4WSswU003NC9CZXR1NDF2TDkzOEhHUlo4UE1nOUk0K1BzdnlUSGwvN0srUmlFY0VpcUQ5ajUvbUVlZjFVc3hOa3k4bjc0VS9JVCtIKzczQys3UXJYclY0WFhDVlExbzQyTnRpTy9qRURqMVZZSUZubmw0MFh6VnZwN1hsYVUwVHpIc2UzTHVWM1FjYW9odithZlA2bmc1WkFPNkV2ZnE3cDE5WHowN0VVNHozSG1Pa0JjeG0rRkhiUi90a0pheXJiWDNQRXM0SFp1MU9Nc3ptSXRJN2pwOE90WXZqYnhEVlRmajR3V0YxenROM0FKN3NkKzh2R3UzN0hzUEx2dWxoLytsRjY1R2RlaXRuYmFYTkg2OUtDTkZtSy9aSFdIY1l6eFAzblhoeGdpeS9XdnM0d25uVmR2M0hLeCtIK3JUU01TN0pZanI2WTc1Qy8wbEJjL2JkSkt3M0IxeXE3NmtETVlLblhHdDcrV2tQekZsajUyNVJWRTNJVzlwOFBkNHpuQjFzdk9jTzVhaVlXYy9scUp2NHJNWEg1TmQ5ZkZ4TW4xd3JXWFB5MXJ2dE80K0x2MkoxOVFOdC94dlRDejBtTWJxc3lGK2hpVkpEOFRZZkhvRHVSdFdxMGlyYkJPT2h1VjlHdUt5Y3hpbCtjd2FBM2ZwSDRTOUNuT3VnRlFxNUdSMkJKSnpoZitwRWRuTTNUQzhqM0JXb2kzY0VsOWhMUThKMGxwVDdEK1lZMmpqTWRsSG9MWnhjN01hbFBNWExjaVVrZC9ybTQ3KzNFa05lVklaaVA2dDNxd2crWUQvT0Z0NHBXUzM5aDN3MHVEVmlMdDhkMUpEcUNRa3liMkxENjNMU0pJK0VjZXpqRnAwMmNhNGpHcDF1WUI2UGpmQUw4cGQ4RzZ0UDkxbzBzTkt2TDZKa3c4ekRCMWtDNzcwcE9sRE40ZitXVWgyaDFXVzJoTFhaSkZzd2R5Z2UyM1YvNXlGQ015K1JIekMwN1Z5Z1diTEUyblBOdllHR0RkeEdWeXZkaGZ1Q2FaZEpta21oalprNGJNM1RnYnd2SHlpWmFSL2RYSmtrTTR4SjVoTmpQTVhNWC9ITS9HOWJQZ2graGwzV05uUGhlb1dkN2dsOTFnLzBxZXUwcVZnbk1uTTNSOTNiUjA0WDVrVGtlNFV2SFJsdTBqZjJqd1ZmSmFOeHk3YkFheUtpb2tzZWNGby80RnUwRUorS0ppcEdGZGVXbmwwRWEvanV5bUJDOVgvSHZhSGR5cytqMmh1Y0wxM1VOK0hnRCt0WEEvN3p1S0pENDl6Z0hBay8ydFJFVko1aHhtUVp4OWt1TTFnK3hkODY5Y2Y5a3VtRG4yRDAreDhJNlgraHowK3YyRDg4WHF0YzlPanBmekZuQk50dGUxOXJEbmF3QjFsa0grS3M3cE9JVkZyMWpmb0s5QWY0ZVQzRGZRUmQvRGNaWUhOTkdhOFQyZGJ6dWhDb25kUGFKUlJjNW92TlJjYmdMclR5R1ZqVzgvb2tLemVtZmFIQ2Evb21PeFlCdDFGaWhVYUZENFEyaTJMaUlUZkQwbkdCOGNCUFJyOVBVR283WGdObzhvTHNjUUdNMTlndnZhekR1NHk3ak1kVWRVSEVHaFRjNTY5NHM2TUlQbUdOSWc5d25KdkJYTjRzM0k3YVAyZkFPZURteGZtWG5ZeEtlSExLN21CejJ6eGR0ZDJhNCtEU2V5ZGxnTlNmeTlzNUdONHZCMFFSdW9UY2NRekVhNHAyTWRsRUJoNmdiSTZpQ2s0d20vRGREUXZWMlIwTXFMTGpwM2QwZS90cnRZMkZOUUgxR3d6NGNzQThuYlhpL2pQNXh2bWhDYWRIUEV5cEdjUHorNEJDS1h5ell4MmJsSHYyY3dPbCtzYm9JN0hDRWlCNUQ0L2F0SVd3YldxZFE5S2tZV2lpQm5uVUVoKzMxTExpWjQ3Y1cvQnBhK090Z2dvcDFNQ0dpN0NQQlE2ZjlFMHRNbS9iT0JyanYyUkcyZnpMRzA3RWpvVGpyNytMSkIyZnNCSXAzZkdUY0xOaWY4MFhMdzhLbFFxV2lJUlNzSE1EK1RIMmFIaFpzd0RpMkduUXVTK1dseGtzZHk3M2pIdXczMmNVZU54bTlnZUlNYmtUMWV0MVQzS2ZYUmEzcmRYZHhhMzhYZi9XUGJoYkR3Y1JkTkY0MnZjbkppTDZNRC9tVzdnbi80dlhPRUdMdjZKZzE3K2k0aitmMFJ2dkg2TkNPRkJ1SG14MDJ2QjBlb2NCR2gwTXFZTmYvNWxQZEhUUjNpT3BibVA1cTgrbFkyRXFwc0JxZktJZGdCRXlIcXpoMWJ1T3lsaG1URW11eGR6Z2s0YjVsa2g3dXZtVTArR29mTnB5T1VlZUd2SmUrWVJlYUlxZlphQk5lZXNNaFFuUms0WDVIUFR4Ti94QVZvRGNFU3RpRFUvWmV3ZmE5SVZ6TDgxNGZzbnQrVFR0NVh1SjZEWDY5YldSWGVHbzZySFdsdWR0WjdJcU5RbGM4UE5vUE5weWREUENwQjFURW40R0FuWGxLZlhsS1hkbU05K1NwYWtNUWRyS0x0MUg0Umg2R2dLRkVKYmVnbGdUTjJ4LzNieGI3SjJmUThQMlR0MWhZN0pmZVl1VmJLdjNCaXcxbkxqdWl6d3lML1Q1ZWM3Ly9LbEsxM3orQUR0NS9EUmM2c1pCd1R5eFVhRy9VNzdITGpuRlllajArSXRydFJZcnhQNDZCWmZTTzFqWVRpQjcyM1lYS2VqTG9QeXZIZTVhN2FHdmUyRHJGd1dhL2gyTXR0R0VFOTcyMkFkYTQvd05zQVd5ZUpiQVorOTFHZ1lYZlN5S2szbitFZk8zeEp3dVcwQjZWbVlkVjlVZGRFaDExdmZvVG9yT2svb2dZbGRHZ084Ym9NY2RvbCtGRHI1eTV4RVNnOTRGYlRWaUZHR2FoQSsyT3dOTXlDQitzejhYSE5HTDROR0w0NkZvY29kbVNmVXdqaERSQ3lDQ0VERUxJOEt6UnJ5UlZDMFpIWjhvMm5OQnRXTllKYmlpRDRTT09JYmg1LzFKb3dYbWVudW1hVE5HeWdWUTdIRXB0NnBTQTBqRUpTdHkrTmpDMVRqRXduM0l3ZStoeDAzTUR3QmVCTllaZkFnOHJWRXFhMzd2STlqdDVyMVgxd3JTdk5neDV0MjFrZE50bWc1QkVQZ0FrWGJ0d3o5WE13bGpxcGtaWTZ1cXNOSGJaSGJvOUkraE1oNUNicjhpZ2FHUU5sMXBGc2lzR1dWV0Evc0g2S1lXM29nQVpUUUpJblFxNjVYS0lHb1NSazlWUlFTM3lkUXNKTVlJVHNDbmdoRXExQnFDU3VoVjAxS29kZEl5Qk5PaWduekxWVE8yc1ZzOVdPNml1UjgrKzR4aUJzM2t0UmFjdHFKaGdkR1RaWlhCb0RCL3R6dkd4UmwxaWY2dWJJUDFIQVY2VUFPNWcrUGVEb0UyOUlLYnlwUkRkYzd4VXpaRWlKaEIrMnltdlVrYUxJTE01WnZyTUtEeDJWdStVN0lKYTB5WWdZYWdwaitTSUVxaGdFck1Va3E1UllPUjAvWkVUN0ltQ1FBYmN4b0ZFbTJUMU9BSjhsbStOQUxtUldlSi9BV1RKTHZHL2pFdEQvRER1WEpTQkY4ZU1YSGNDMWJrMHZuTnVtY0RCQUhDbnRXcUF4d3hYYlQ0bnpNUkJJeHV6S2dheW5CUzFacWFCN0dqbCszaGdIamMxZ280d0xJYWRPaTlNallIaWFXNE11cTBBdWt1TXJsMEVpNC9LK1daeDF3eGRoSXF4anlJZFdUTzVsWUpPU1VHMGRFMkdWb3ZRYWhGYUxlcktSSUR3WmVvS1hSbkdtUEZCQ1J3ZkJ0YUtyZnllRXlNeENjVU9vWWdtV2dURnhySW9Hb1FpcVpnVXhxWk5PR29aT0RZYlBBelE0WEdBRGtlU0sxNkxhMTdMU0FPVHRrVEFaRVpuT2FXYzROTVZIZVgzTXIyNGtGWVdzNTdsYW9tZEdRYnE2Y3I1RHdjWTdNTStrT1BvU0VOalQ3NTY5ckV6djBmK2k0ZXJJaldGTzcwMGlyQUI0U3ExWXJncUhhWG5VcFQ2R05panVmejdpSk4yU3poTk1DdmhqM3VMazc1eW5MWUNuQzV3VmNQdEJZYXplS3pqR0JXZE5ENGtOQWlhQmtIVElHZ2FCRTJqSURSUHBTckVaMlBLcTArYzZ4dTNQL3VTUlVaTlFxaEpDRFdYb3V3RG5nbVE3YjF1Nmd3RFI0bU4yQWhUazJCcUVrdzJ3V1FUVExiVTloOWd6dXcxNW1JeXJwRW8weVV6djNaNFh1RHZPTzlld0JRcll6cW96WG1SeVlhRzFNa3YzZVhraGdNM1owMkN5aVRqbitZYTBnTWoyZGdkOExWTDRWTjJSZXpBYXNTd0pYaEFLTTFHekpBbHZ5bGh5RW83SStwaTBZaTR2VmJzaWtQbDk4aHdtVmU2b29ueE4wZldJeUZxblVwYm9ZOWVJWmkwTmoyTDJ2VmhKQWtzVll3a21mTVNlRDZNbWZtZlZqdm5YbkFpU3hnYWI2R2JCbUFCamxHd3Z1TmduY0NVUWZBTVdOODl2K1NyeGZLc0s3dHFjZ0o0TTNrdzZZSnI2YnRDZnFnTkZUcmhXS29Gd2htd0ZTMHNEcFpta3UrRG5zNHVPbXlvZkswV2VUNEdsQmhPek1Yd1JRVERDMHdHaStaL0oza3VHMUhITEF3cFJMSXlwbVljbTBEVk9LaU9Kc1RYWmp4R1JBTjNqb2ZKVkpkZ05UbXVKZ0hybUFTc3c0RjFUTkZmaHk5ai8wdXNnMU5WOE1VUE1JM0czQ2VGWkZJS2NWckpjSjFNRkg2UTdsYmcxMmVGNEJkQ2RBSDZtZk91S2JFU2c5dDlCbUhQRENURUhrc2RTMFNhVUpRaWpZTTRBSXlLUGliRkx3cnZkZ0F2clcvK2hLdk1DdGcvL3FTMm4yeWgydk1DK0JheGY1b0NZOFNaRmZqV3drUzVkSEJiUmpsd2ZlQlVONGlSSUlCYVBsUDhLSThoODNTTVl2emJyc2kvaFlZcEh0cHpiU0ZIZ01OcFRHUDBhOGpvMTRkVDVJa205K09hM0pGalpUenBncUpRWXdMVUduTnE1cjhCYU5XVlVyTHY0WXo0SXNpa3VzSWltUkhiL3EvOHVhVDRQSG5sNkhPVzcxZkNCb2dycWxrMWNKQkU1ajlreU9DRHNqL2hNcCtmK2JJbUd4OXRsRFBKc1ZyTVZtczNyUkF6ZjVnUEg3VlBYVGU2cDh5ZFFiY2wxY1MweXdjV1NoaVl4WWVZUWtCaFB3WCtTNDR0WUhsQ2pVVmxNVWo5NFhvL1NEekFWVWZyU1I5MmlwdnBwYkxOQk91VDA1OU5RTm9FcEprdzFMbnBHYzAyaXdFYUJmQUpCL0FOUGE2RVQwMUdYOWp4ZmVCa0Y0bmVDSGw3Z1Y5ZExJQURVNHdsdFRHd2VkQmtXbXBhVW9wa01HY2VUclJock1ML01qNkpETnNOR2swRUpTMk9jYkZKSTgyVTZTa0ZnRmFJc0Q5bnBQdnp2czNpQU10OVNsMDJaNFE5TzYzdmw0T3hqRlB1Y3V2UmpWdVBybDBBeENMdTVySUJJTG1LYWpJRXlTdVBla0hCWkp1WUllbno1WmhiMkJmS1I0RXY2UmxEc05RSUhKeHpHWVpxMHlBTVczRU03UklRdHFSNktEVnFhT3EzaWxYamEyR2NNRFd1aGxqcVdGTHZiZkh1V3h3MFgrRm9raVRiWGRGbG5WWklrNVNQTG8zaTFqWHliUktycVpFL2FSNzRLc0trT1JBczRrVmZkUHBDOXJVNTUvWTFmQm41R0ZxKzZ6ZjJPWktDSHNVdzlmTUNCL2lZY1FtaVV5UG1YUHZhVjhhN3poeXZFVU5aTW9MYy8rT1k2akpNSFZQdXNIUjRkSzNEa3pvNkxZb1VvVnZpejVGM1F6ZkZuek1Yb3VQcElJYmVORDFWSHA4QmxxbWV6YXEyVDRrUmhYeStTT3l0UkJZVzh3K2w2Z25iQjN6N2dMWUhVT0pvM2VhRGRaczAxSWNVRmZTQVhNTnluZjB0NHBrOXVzUkg2RUo1ZzJWc1NhNlpVK2xrcU9CSlMwZVh0TUJFV29aTVBBT1RxeUo2ekNsclFlRFIwcCtVOFBXQ3ZsbitnSU9vSy8wSzZXM3RJdXRvaXJnMGV0ekVpUVBJVkVVU2lpZ1dOdE5NU1N6NGdNYm9Namh0aHpneFA5Qi80RmttWXRJQnB0alNJeDh5TlYvbkhPa0FvODVsWktqZUttU1BBd3ZtUFQwdEFwODRJYWJlaTdDMXFzNDVxTVZuQVFOZlJXK1ZUd3IwRGNFOHIrL0FONTBQa3FaekhuUXZnakgzQTY3NktEdk5JSjhoWEY3MU1KODhNczlnUzYxcFgvbUtSR0xGa1ZpcWZMNUZNdzRtQzVJR1RORU9URStoL0ZEazZTQXI2TURONGdGWUFjTk8vcURocDZjSzV2U0t1cSt2Z3lONjhBYk91SzVaQnhPWmxMcFVDVHRtZkxMTGxZNGE4dmxESWNIWGtWT2d6QjRVd3pqaE5CZTNZcUp4YkZKWGRvUHRKZzNMclhMYStpVHduQy9RbFhtUGJ5aTl5bzJZcWF0TGlNc2FwMDNwRWptSWcwUVExOHJNd0tScExkazNWdElKekVQd2FRVEJmMkVRWndjakZhVXh4TUJnaWNXdUFZNUd2aXRkZVg0QWZPVUNneEFHSVp5MkpDRWRrM3h3Zy8vRm4zNFpjV01TYnBFbVpDUFdwVGh6bUNlRm43Z1U2Q2xXRG1hL1h2RzNkUHBQVWdzSXBqeWQwRktxb29vdFpaTzRZZ3ZXRkliYWtseFN5Z0xWZVl4STU2RjFWaUtYY1BGRXg3Y1JGMDRzbUluU2lreVZtZkdaTXJEM3ZjR3dmN1BZdUVkQkRhSmVIRFdJUC9ZQlBEYWhTZEdhMDlTYWFrM1NxRW1zMkE5YTlJSzF4d25tSTJaY0c2OGpVejVYQVJjN1BPZmpBMzh1enB0ZzltS3cvNW9CRDQ4dGdwTWZzdS83OE93aDlyMFhlWUJacEVyMXEvanpWNkR1TGRRMWxqK1BXdkVVZmhYN2pkQjVNZEU5NHFMcjRkTUVISHlzZUZKOGtWZFVDdUtMMWxRVG4wN2kwMnZ4VlJEZlV5NitNWC8rSHIzTExpN0VwNEdvWlB1Y0Z0aW5tbUJ0RXF4ZEM3YUNZTGVEZmdrVEJHRGdSSjBkTnpKNTROZWRadFJWRTZCQkFqUnFBUzdSTS8yM1NGeWc3Y1JoRTNxbWZKL1RBdnNzUmJtcVdrdTJnbVJEODh2R0ZKdHdMYUxMWndIODdhY3AyNnRKclVsU2E5WkNXMEpvSXpRM25jZ1RwMXdlQi9HM242WnNyeWEwTmdtdFhRdHRDYUVONkcwNkFTeStjTUx0cHluYnF3bk5KS0dadGRBcUNPMEpGOW9lZnhiTkgwaDZVZnZsQ1JlVGJJL1QzRDJxaWJSREl1M1VJcTBnMG9kY3BGMmNpNzBLWm1qZDRJRVFsMEVmRkxkV0U1ZEQ0bkpxY1ZVUTExYmdGRUxQb1dYV29qOGYxb2orZkZoVFRYUXpFdDJzRnQwU0k5NGJoUjdpTFk1NDRmYlRsTzNWaERZbm9jMXJvUzNocTQvQ3ViUEFLZGdPN01obzNXbEdYVFVCdWlSQU45YXd4NEUyd1JQRyt5aVI5emkxNTgvaCs5b2oxcC9tMUZkcnBNcWp4MUQyMVFpd2c3NFcrNlhIZmhteFh4TVN3RDRHeGF0bzYxT3VyVkF6QlpNQ0p6KzdPQmtmMWRlV1hFbDBFNVFwVXZWU004TmFyV08zNDdWR002eWR0c1JqVzFtSHRqTU9WY1VXaWQzay9qVi9kYjJ6WnJFMTR2U000elRHWlRQN21PMEkreVo3a0M1cklMVWpyaWtSUllGL3FhMlhBYm11aTJ3SXlqQzNlb0c1VmRmS0NWK3IrVnUrUm1xZGh0M3NwR2hTMitFTnpOZklZdWZaa0o0YjlOZXdEK2ZoNUhlcjdNYmw0MVRzUEhlTTAvTUl3N0dleW52d1c4emRvNVRIbkw3YjZEQW0xMUs2VmJMUFJjbExxbkxydXNnZDQveEN3RG1DY0I1THZnemJNbTFvdHAwR3c4eGwxZkhLam5oa0p0b3J2dENHYVBZZVpxSmlqZ3FtVlFhams1ZGoxMmtOM1JFSGpOQXdVcWVkdGpwTk00elV1ZUd5WDdIYXdEQnEyWE9ub2FZWlJza1RxMktMUkNuZXYrYmZzVzQ4NHJyaHYwMlEzdjc5TVU4alpDYUVGcTBVYldFamJMZG1aeGpLb3ZIUmVHbUdwMDIxVFB6bUZGS0h6VzM3SGV2Q050ZUZ5Q09wV1YydUpyUmFrT0VwNzF4bXcwekNHZlNRVmt1MEN5SjR3b0Z0TjYxejBZWFRUQy8yZjJGbDJPRG0zN0UrYkVWaUFYOGdQMXhHdE1HUU5hclRObHFxTUZ6cXdaMU5aNllqY0trWjFMWWNiYTdLSVptN3M2a3pTMHIwYnBxd0lWS3g4SlVZTjRKVXBFcmUwVHZNYmt4VGNrT0RUNXFTVDV0VGZhcW1LSG1ybGV3OW9aTFA1dkNSWWdFZHl5eEsyQnZkL0EzaGJQSldrdlp6aWorVzNpenVYNGlDV2VJOEs0d3I3dzM2TjR2SVc1Q2ZvTTN5VGpuRUhHeXdiWU0zd2dmemNQTmdPWkd0WENmZWRiek4rdEY3OUQxT2xLbnlQMlFENWJ4cmVNdGZCTWQ4YWxpZ2RLMjg1MGY4bS9ETzRlM0lHK3JGZlpOdktONWliZm1BWER0WEpzb1hLRlBPK3doYmJlT2EwRDlEcmVCN1AxVCtpNzhySFQvQ2tYbnZkbTVqYlF2ZjR3enZiSWJYZkRwc2l4YTgyeGtlcDJPeWJXMTh0ek44bXJobm0vMVZXUTM4OGdRY3dvYzk3bUtNSm55ajg5L3dmZXBOb1pVSHlHNFVyNURkbnh0K2hDTzd1TXJwR2pQQ0xNeld2RTdGY1NzaW4yekVuMFQyOUxQTkxzbE9DdVRaRnU3aVNmQU9iM2dLQks1N1JsMWozbGZxVlVLYyt2eEpXVGFtMkVUUkVtWDZMS0kzUjVpWGVzMmZJSDJPbzROL0xWVzRWaUNKNFBWN243Q05WOEVSZXV5SXgvaVl6aXZsOTlUOXhYYlJpck5ZdjVSS0U5NGpMdFBXcC9nNGd6OTUvQlI2OGl4eC9GWmMyNWt1dVJYZUsvNHQ5M3ptQWtZSHFJUFpWNC9vb3ZUcTlGNDBoaE5qSVJ2N1V0NDlpRGk4Q0JpSE5Qb3lWVDlFR2F6bnJlZVBJb3k3RStGY0wvYU8rbngyM3VMcy9DdHEvYS9zR3IvZFc0YldhNGF1R2JwbTZKcWh2eXFHM2s0eXRLTGRXNDQyYW82dU9icm02SnFqdnlxTzltTWNZMXlPY1g4dGFKRzlhbmF1MmJsbTU1cWQ3emM3K3pHT01VTWVyZ2Z5dUs4TTNhb1p1bWJvbXFGcmh2NnFHUG9IenRBV083Zi96REhhSDJmWEZYcmo1SDNsYkszbTdKcXphODZ1T2Z1cjRtemZxbzV3OXIxbGFMVm02SnFoYTRhdUdmb2VNclJFQytyTXU1cWRsMkpua2N0cWRxN1p1V1pubjUxRHlTN0R6blhtWGMzUU5VUFhERjB6OUtZeWRKMTVWM04wemRFMVI5Y2N2YmtjWFdmZTFleGNzM1BOempVN2J5STcxNWwzTlVQWERGMHpkTTNRbThyUWRlWmR6ZGsxWjllY1hYUDIvZUhzT3ZPdVp1aWFvV3VHcmhuNmJobTZ6L1lDN1l4d1Z2QjBmR0xvOEYwTjcySjdpV3lkelhzaWluYkNyczNqUHB2MTRZNWlzTStNWVdhdWhQdVcwYituc2Z0TmszaGI0TnJvTWRrNWd2Rjk2Wm1NSVY5a3pZUW1XVnhuOTkrOEZkM3o5V2tucGl0bGRjK2ZFZUZjdHFTdXRSSnhyNjlSMThCbTBkYWtiZVk5MXJhblhOdWlYQzlhbzk5emZZT1lBYk1vTnlyUFdJd0ExRm5HbTJTSjZvSk5VbHVpK1phb0pyU3J0a1NyV2FLcTBJNU5zMFFmaDN6S0dEcHloMHN3OUpoZDRSeVp0bWJvbXFHTE1MUldNM1ROMEhXc1FNclFUMEkrVldhWkhQMHN4bFE3MkZwNis5T0hpTisySFZ2MTU5ZUpUSjNGdXFKZm04ZHlHcjVmMUdSOWxuay9UR3JBYUJyN05BS1dnMjJ3RDdUZGw0cUp2T2lpZndkYzU1WG1pSmJBRWZsOXlxallwOUowYVpuK3NHbDZLTmViS2hyNE9IYW1WY2FyeEpFdFR6T2JmRlIxY1R5RlViZk5QZ2JidjdwbTF2R3FkVmlvTW0ycG9udlBzTzkvUUU2TG5VMTVDUitKQnVicDBGVHBNQzF3MkYrd3hlWm93eGs0eXZvNkJMRXAwQ0FYT1k4MEZmWUdGZ1RObTdIOTR6cjBuK3hLWFlhVmkwZ1NBNzFqbUYwaUM0R2w4U2Y3ZlIzZ0ROcjF2d0ZpRC9ES08vQTNkdGJ2bFZuQnFOUjZKSm1IZmJRRkR4UmIwTGh2R0VwTllSOG54MEpBUG81cHlXT215VFBtZVh4R0hIWWluT0svSlc4WE9mK0MxUTBEenIrcW9CZkFEUWFyZDlGK1Y1RmJWSWFwa2JEdFRhNFhObklRc00rTS9RUHJxbk1yZXZHVTdYY0JUSUQyMGpzKzZyeGp2MzlUcGlsTThrdzQ1ajIzcGVOSC9ZM2RUMU9RMmphckI2MzR5UDYrUTA3OG5EcHJ1QlhiRis1eWxyTG5vOWlldnluKyt5NkxuVGQ2bi9FOW42ZmVaN3psc2p0OWtYcXMyRDdaMGVLVmZha2s3KzEyWnF6ay9TSnVrODNRbnJvVzlDR1VtdXcrbjBtUEtvSlFsZzdtWFZPT3JhaU5vb2VVMWsvbUdWNm1ISlBzUHZJNGNsU1IzdmhFc24vZXZTU1B5Tk1zZWF2UzcvMnA5TjVUK2swcGx2NkpzZUJsNEwxeksxNzV1K2dKVkI3VGRjYkN3TDVUdFBiSUd1eXdscW94dXhEcTRRNGJPTzREZDNjd1lqRERzVjJNeTZ5SHU1L2hHQmk5NTNmWWIwRlBQd1cra0NpWkY2emxTZnlLSExrZWRpa256M0s2c2gxNWw5NE9iL2NIaWI4YnhoMEFnMWxHUERCLzVBY05NTkM2Y2RETHRURmkxeEc4Q3RBb094YlZ3NWdHem1mT1YraFZQR1NTK1FPaklTQ25MeG5SclFlcDhUK1pkN3N1UDFNbXIzSXkzMkpiZ0tkdlVKTld3d0x6Z0FYMGpXT0J4eUYzNDlrdWxIUHNOMWZlL29pQnRqK2EzQ3pPaGoxNEcrTmJLcnh3bTlaczBsYjQ0Z202enRsNnBXZmRwckZzNWVlRStOZ3F6N2tlL1picFpqbnRmcUVjb0V6K3pud29pTGgveGl1RHpnQmJya2JiWjRHMmF4dW83ZTl4bnVoZDZQOEp4OGxua3JiWmNhVExSVWJJS3dtMlJZNThqaDd1cG95c1JYU2xuUFo5RjEyMVVja3YxbkIwVkxudS9JeXh0NW5Ta3ZqRmZyVGtidnppOVVna2psL1pjUzNpZTFYdTZmSEloQlpFSnBwMVpLS09UTnk3eUlTc1Q5UlJpVG9xc2Zxb3hBT21wYkJ1Y1I3dzhYUHVvZnByR0hkNGhHeVhuZTBQaUc5WFlHY1lGWFgyRnl3cUc5blpZYVdCc3doUmRtN2lMRlN4bkpEN05EN21ZNW9ubFcxczBTYytXMDVaSVZVaStDN20zVFJRSGk2aTd1SzhUVGc3MkVCSmdMZCt0K1BrdWp4eEdZNXg5TDhOWmhFSisvQjNGYnhWVnVjaWp4bkJqSW52ZVcrU1hiSWV2RVBzc2pIZThuK3psaDNoMlpPWmRtWFIxdjV5YU10UXpNYjl1YkxQenZBWlBicHpuSi9jQ2M0aHQ4WC9IYTI1NkJIK1NIT0pvNVNOTTdLZmd3eVVIeGk2TDVGeDBqOWwxMG5FcmYxR1lPM3JmeEU1NTBzdFcrcFBFVlhmWTg2WCtNZkkzbEZwcDgrOWw0MHZONWxFVEJ6clcrejhMUnlYWE81Qkc5aUhYWXc1cTVpWDBNVDhCTWd5QlN2S3hEMXNSWXd2cjBlaUwxTFJTTTd1ZDI3Rlc4aVdacDRtakhtUGhlaFNuaVlVNlpuQXdEcG0waEFEYTNoK0UrVUlzMDFObENQMFB4Y2xPVU5ieE1DKzZtTGZkRzVGamo4RVhBVjNIcGVqR05mNmhyVXdMc2tmVTQvK0p5dHQ1VU5zWHVJYllLRmIwWVFzYVdacndtUGxWd1ZXeEg5Y2dSWjArQW8yNkwrdElNYXE0VGdNcTl1bTJKdWh2N2R3VG1tS1BkbkZXU1lObzdKZytkK0dGanhuKzlCZGw5V0FGOUlqNzFMNjZSS01TLzRoejFPNnhJenZUOEhheC9qVzhsSjNjS3dGYndLeVk4bTNvQ3ovcEcvUi9ncEhaUkhCSXFnL2ptOWR5dnBWTVJ2UFJUK2ZvdEFkN0lYdGhGWGtaMzUrWGZpblkxbEVFcy9ZR1QvaENndXEyUWt5cStVcytCUHlRN2ovTzR4dlh1RjY5ZXVDNnpYS2VqVEdCbnMwUDJiZ3NRcXZJT3Y4TXI1dTNncm41bW1OR05jNXhwbGNtTVh6Ky84dWpubzdZVTNsVVhlT1VvZk1ieGhoSFl5eU5kRFcraGxycGp4SFEyZllxR2h2MDRvRkdHdm5PR0tEVFhZN282Nk5kLzJPWWVmZmRURXAvaWc5OGpNdnhkelp0Rm5UZGZGUG1pempXdkNkMHNOV2ZtYjdYZ1V6a05GdFZTSWZMdnBCeE9zT3Q3TTZrY3hjeXRodU1GbmZiY2IydW1ZZ28vakZaNStnTjM2UmFBZmtBWFZRNXlFRzJoR1kyUW5PbDM1a0IzMFh2WUI4WCtES0I3cURTeHlkZ05GM2xwVDZERzNxTnRwWUhaUjZDMzJwVGt6cVUvU1ZPekdwd3o4WDk3MGRyM2xkbVFENXFONnRMdnlBY2VZdnZGVzBmdU1MKzI1d2FVRG04UjdYa2VqNkw3RGdhYzFmZFUvY3hHakpISHM0V2VNbVJsZWkxbmdMNTF4MGpLREFYL3B0b0Q3ZGI5M0lRck82akxad2ZMK2tETVU3azgwTXQ5MWYyY2hRckM2VFowTDhhNEt0Z1BiZW5YeWE5M28welVNMExxc2ZjUjd6blB0Y0ZtdlBPZjhHYThodG5POE1wZlY5T08rMlp2bTBtVlRhR0lkc1l6d1Mvclp3ckd5aWRYUi81WlBFTUM2UlI0ajlITE9qd2Y3MU00NzlsUVlqOUV1dmtSUGgyeDhvb1hOa3k1M1l0YXRZSmVDZHp0Rk9kM0hlSHVJUWN6ekNsNDZOdG1nYiswcUQ1OFJwM0hMdHNCcUlHbGJKRlUrejk3OUZPOEdKK0JYaURNVzYxZ0NVUVZxTVV0RFRTZUpyUGYzbmx4NWpHOEFEVHViOXIvcUpKR0pHV2YxdVdzTGgvajJUSkw0YXVzcnpCb284azBSOFRzZ21QWk1FWXZIbG5xQ1FYRWxjUDVma2EzMHV5YmNwejRDUWM3SC90TWdEWk5TTHRmT3dVZlB3WDVpSHhUelV2eG9QaTNaSXpjSjN3Y0xtYmJPd045cWQzQ3k2dmVINXduVmRBejdlZ0g0MThEK3ZPd3A0K251Yzk0Qm5SOXNvQXllWVpaa0dUSDJKRWZvaCtxaHpiOXcvbVM3WU9YYVB6N0d3emhmNjNQUzYvY1B6aGVwMWo0N09GM05Xc00yMjE3WDJjQ2RyZ0hYV0FmN3FEcWw0aFVYdm1KOWdiNEMveHhQY2Q5REZYNE14RnNlMDBScXhmUjJ2TzZIS0NaMTlZdEZGanVoOFZCenVRaXVQb1ZVTnIzK2lRblA2SnhxY3BuK2lZekZnR3pWV2FGVG9VSGlES0RZdVloTThyeVR3S055RVIzR2FXc1B4R2xDYkIzU1hBMmlzeG43aGZRM0dmZHhsUEthNkF5ck9vUEFtWjkyYkJWMzRBUk16aFJVK2VVZldxNXZGbXhIYngyeDRCN3ljV0wreTh6RUpUdzdaWFV3TysrZUx0anN6WEh6K3llUnNzSm9UZVh0bm81dkY0R2dDdDlBYmpxRVlEZkZPUnJ0c2QvWURkV01FVlhDUzBZVC9aa2lvM3U1b1NJVUZONzI3MjhOZnUzMHNyQW1vejJqWWh3UDI0YVFONzVmUlA4NFhUU2d0K25sQ3hRaU8zeDhjUXZHTEJmdllyTnlqbnhNNDNTOVdGNEVkamhEUlkyamN2aldFYlVQckZJbytGVU1MSmRDemp1Q3d2WjRGTjNQODFvSmZRd3QvSFV4UXNRNG1GQzdvNHhBQ25mQlBMREZSM1RzYjRMNW5SOWoreVJoUHg0NkU0cXkvaXljZm5MRVRLTjd4a1hHellIL09GeTBQQzVjS2xZcUdVTEJ5QVBzejlXbDZXTEFCNU5ocTBMa3NsWmNhTDNVczk0NTdzTjlrRjN2Y1pQUUdpak80RWRYcmRVOXhuMTRYdGE3WDNjV3QvVjM4MVQrNldRd0hFM2ZSZU5uMEppY2orakkrNUZ1NkoveUwxenREaUwyalk5YThvK00rbnRNYjdSOWZ3YlRPU0xGeHlOMWh3OTNoRVFwc2REaWtBbmI5YjBiUU5vWUVHeGh3Z2pCSEU0MmVCazdJelRFSUJhRVBNUDQwckhYWWRoZU5IUXFHUU9nUXBNUmE3QTNmTWhFUGQ5OHkvbnUxRDVjNUhaTzArWktBcmtJUHlJZmxKRFJ4T3ZPR1EwVG5pUFRpcUlkRi94QmwzeHNDRyt6QlNYdXZZUHZla0YzbThHZy8ySEIyTXNBbHhWVEVGeGhqcjVwU3A1cFNuekxqWFdxcTJtRFpUSFpaMitHLzE0Y014ZGQwYmM5THZaR0hqSTF0alBWZUlyU1NXMUN6YnlIL1dpcS8xaFlib2Vac05OZ0pyeG03bmxvSXNzVDF2UDArcy8zMyt3ZlFKZnV2WVk4VEN5bnl4RUlWOVA0UG41dUJOVm8vYlQ0QUFBQytiV3RDVTNpY1hVN0xEb0l3RU96TjMvQVRBSVBnRWNyRGhxMGFxQkc4Z2JFSlYwMmFtTTMrdXkwZ0IrY3lrNW1kemNncU5WalVmRVNmV3VBYVBlcG11b2xNWXhEdTZTaVVSajhLcU00YmpZNmI2MmdQMHRLMjlBS0NEZ3hDMGhsTXEzS3c4YlVHUjNDU2IyUWJCcXhuSC9aa0w3WmxQc2xtQ2puWUVzOWRrMWZPeUVFYUZMSmNqZlpjVEp0bStsdDRhZTFzejZPakUvMkRWSE1mTWZaSUNmdFJpV3pFU0IrQzJLZEZoOUhRLzNRZjdQYXJEdU9RS0ZPSlFWcndCYWVtWDFrZzdRUllBQUFLdFcxclFsVDZ6c3IrQUg5WHVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZUp6dG5ZMlIyemdNUmxOSUdra2hLU1NOcEpBVWtrWlNTRzZRbTNmejdndEl5Vm12SGR0NE01N1Y2b2VrQ0JLaUFKRDYrWE1ZaG1FWWhtRVlobUVZaG1GNFNiNS8vLzdiNzhlUEgvOGR1eWRWam51WDRkbjU4T0hEYjcrdlg3LytxdmZhdm1mOVZ6bXFETVA3Z2J6UDR2YndsdjY1dTdhTzFXOG5mNjVIVncxN1BuNzgyTmJWU3Y3dS8yeC8rdlRwMTk5djM3NzkvUExseTMvNm92WVh0YS95S1Nvdnp1VVk1NUZPL1Z5dTJzK3gybS81azNhZFcybGFYOVd4WWM5S3pwMytMenI1Zi83OCtkYzI5VS8vTGJtVURKQTVNbUkvNTFUK3lCU1oxLzVzRi9ScnppVS90eFBhQXVVYjl1emtYekx5K0svbzVNOHg1RUovdFF5UmM3VVY5MW5reHpYZ1ByNDZoajRBeW1NOU1lelp5ZitzL2svNWQrOE02SG5rWG4rckxTRFgycllzL2N4WXlkOTZBT2o3bFo1MXc5QnpUZmtqMTVKVlhlcytTRi8zbU1CNStGbVN4M2E2SWR1SjlZemxYMjNFYVF6L1VuWGkvbk8wSDEzTldKeHRINmRmWi9zcFdWbmVLUS82YmVaZDEza3NsN0tzYmRvZ2VvWXh5ZXFhWVJpR1lSaUdZWGhGR01mZmswZXcxNmYvODI4djcxbnkzZm9lWE9wcnVqYjFybmlFeStqdGFnZlA1bWRJbmZDVzlyNjdsdmZ6bmZ6UDJQR1BmSVo1bnZkMXZzUXV2Wlg4LzRiKzh4WmMvdlN6WWMvRHBvNU5KdjEzNmR2REYrUnI2U09kejVENkpEL09YZmtEVGVkdnBJeGNqLzNJdml6YkwrM2YycVdYOHJjZjRsSGJRTXJmZmpZZmN6OHBmWW5PTExrZ0cyeSs3T2VjOUF2WVoxZ2dJK3gyQmVkUjU3UVBrL1pudHgzYURQZENucGtXOHU3czJabGV5dDkxOUtqamdhNy9BM1ZvdmVDK2JUK09mWHRkak5BdWZzaDkwSFpmOS85S08rdDQ1Mi9NWjByMjYvUlpYWkxlcyt0L1FMYnBBeTdzcXltWjRXOXhmME9XL0wrVFAzM2ZQa0RIKzFpZndNN2ZtUEluTGZ3QTVOUEoveWk5VjVFL3ovYjZtN0t4dkl2MHhkc1g1L3JlNlFiMGlkc0p1c1c2R0hiK3hwUy96K3ZrVDV6S21mUlMvcHpYK2NQK2R1eGJTejliUVgybFB5MzlkL2J0NWJYVWJkSFZrZjE5UEVmSVkrVkxoSlcvTVgySXZLZDE1ZkY0NWt4NjNxWWVIbFgrd3pBTXd6QU13MUJqVyt5Yi9Edyt2MmRjUGZhQUdXTy9IN1o5OGJOTnZvc0x2UlYvdy96RFoyZG4wK3I4NE5ZSjZBN0hoT2Zjd1BRdFFsN3I4MnRmWnovTThxQ3ZSaitjbzdPcklQK1YzZGQyTUh4ODJJN1FHOWgvUGNlblNMOVF4dTdiWitkejdMZmpMOGRvSDlpUjhVa054M1Q5M0g0WDEzdVI4dWY2Ymw2bmZZRzI3MXJtK0ErNmVVU2U2NWZ6eit5Mzh6WG9pT24vNTFqSmY2WC9WM2J3OUtXblR4MGJLZTBpKzdGak1NNGN5M1paNEpQWXhRc00vK2RhOHU5OGZ1QzVYeVV2endVc3p2Ui9jRnlBeThtNWVjNnc1MXJ5TDlESjZUc3ZlSVlYMXVIT2MvWDhYK2tHdHprLy94MnJVTXpjcnpYZHUxenRXNzNqZVh6ZTJRSVl3K2YxeEkwNG5kVFAzZmlmWndEays3L0x5ckZNZStRL0RNTXdETU13RE9jWVgrQnJNNzdBNTRZK3RKTGorQUtmRzl2Y3hoZjRldVFhcThuNEFsK0RuZnpIRi9qOFhGUCs0d3Q4UEs0cC8ySjhnWS9GeXVjM3ZzQmhHSVpoR0laaGVHNHV0WlYwNjRZY1lYOFNQMnpFOTE1RDQ1WGZFWFpycmF6WXZTT3U0UDNjZm1YN2tPNHAvN1F6UEROZTF3ZmJHN2E1d212d3JHUnMrV04vd1NhM2Frc3JtNXpsYjM4aVpmTDZQQzdqeXA1Z204SHFYaWd6ZXN6eXovYm9kUXFmd2FaczJ5czJ1L3JmZHJUdW16eVpodGNRdzYrSERiNXJOMTMvTDJ6VFl4dGJZUDFQMnZiNTBHNTl2ZGZuOHBxRXErOExrVWZLMyt1T3NRYWExOFI2ZEpBUnVGNTIzK1F5S1g4L08xZHR4bkwxTlozOEhXL2tZL1lmczUvK1NYcnNQL3ErbUkrUlQrNzNlbmozakh1NUp0akhJZnVGWmJsNkx2NnAvTHY5bmZ6VEY5VEZJdEd2MGUya2YvUU51ZDB4L0JUVzgrVEI4VWRuMS8vdGV5dlNqd08za24vWEhtejdkendCL1QxOVI5Mjk3TnBHeHFpUVh2b3BIL1dkZ2Jic2Vra2RjT1JIdjVYOEM2L2pTK3dBck5hY3pudk5lOW5KMzJYSTd3djdta2VWZjVFeE11bkgyNjJ2ejNHdnA1bHBkVzFtRjVlVFByOHV2OVgrM1gyc3JzM3I4cHl1ZnA1aDdEOE13ekFNd3pBTXNKcGJkYlMvbXl2d04vaFRkbkdzdysvczV0YXQ5bm5PaGVjS0hiMC8zb0tSZjQ5OUdMYWg1WndhV1BubmQrM0Z0cEhhZHN3LzMrV3czNm53OTBUdy80R1ArVnJiay9BdGNTK1dQOSt6OFQyLzZqd1J5OHgrdG95Ymh5UDkzOW5tcmYvWjVycyt0dFBaUm12L2pOc2ljZjc0ZXJBQmNxMi9VZWh2Q1RuR3hIS21MUGlJN3EybmJzMVpXenNjN2FkdjVqb0JLWDlBRDdndFlOZW5MZGczaS93b2U4NGJzZCt2bTFQUzdhZmQrcnRBcjhLMTVkLzFuMHZrN3prZjZPNzgxcUMveWJpVGZ6NFBPcDl1d1RQcEZlY0tYMXYvWHlwLzYyMTBzR050N01ORFB1UnhwUDlUL3JTTlRKUDRFTWNJUExJLzV4SThicUtQMGE5dUlmL0NQajMzNTkwODhydzJ4Mzg3K2VQSHEvUnovUGZvL3R4aEdJWmhHSVpoR0laNzRIakxqSmxjeFgvZWl0Mzc2bkFkZU9lMlB6RFhpN3dYSS84MW50L2crSHJteDlHUG1ZTmp2MTJtczdLaGVBNWUrdXBzaC9LOG9KVVAwTWNvRTlkbStiSC9PbjRmbjZiTDA5bWpYZ0Zzb0drUHhXN25OUm81cjdPcEY1NVh4ODkrdDF3N0ZOcy9kdjV1anBmdHUvYm5ralpsekhLbDM5SDl2L05WWWxOK2R2bW4vcU5ldWZkVkRFODNUeWpwZkRzcitWUFA2VWYwL0RSOFA5aG03UiswLzlEM3Rpby94M0tPbC9kWGZzOHl6Mi9GVHY2VzJaL0tmNlgvVS80NS85ZCtaSTVocStlWTUvTHUxb2ZjeWQ5dEZFaUxOdmJzYmNCWS8xdi8zVXIraGYyUWZzNXpMdU1TMmdONW5OSC9rRzJETk5tMlQ5enQ3eFY4UWg3L3JXVDhudkwzK0MvbitOa0htUDdCWWpYKzI4bS95SG4rM2ZqdlZlUS9ETU13RE1Nd0RNTXdETU13RE1Nd0RNTXdETU13dkM3RVVCYVhmZzhFSC80cTFzNHhRRWRjNHArLzVOeEx5dkRlRU45eVMxai9tTFZ6TW4vaXNTamZwZkxudW81SzYreTNGcm80bEk2TUp6N2lrbGhBNHBhOERzNVJyUHRSL1JwaW8rRGFjZlNPbmZKM2VJa0w3R0wzS1pPLzYrNjRYOHBMZkpXUGtYYk9GeURlM0RIbmp0Vk52RFlRYXdobG4yVXRNc2ViNy9vMStaODVsL01kUDB0ZWprVzZwSDZKT2ZMUHNWSHZzYTVacnRkR3VUaVc2MzhSRDA0LzVYNDdPajFLUEpmdjI5LytvUzNzZEFEeHVzU1NlVTVCM2h2SDZXZTcva1AramdsYzRmdE8vZUpZeWt2cWwzTXBKK2xlUy85blhIN2k1eko5bXpidGZkU3p2N2ZoN3ltNUh0eHVYVSs3KzNMZUhWNGJ6UGV6YW9kK2hpSzM3bnNmY09hNTR2a3lPWGVBTnBRYzFTL1FMaHlmZWkxMjdUcjdLLzNILzZQenNrMTczbGVYSHYyUCswcFp1YTlhOTYzSzZyV2lZQ1czakEzdDBxUnNPWStGdkJMbmxlMmV0cGtjMWEvUEkwL1BWWG9yNk1GVi96ODc3djBUK1hPTzU5eGttbjRlZHZIZ1RyZWJoMFNkNXpjcUxsbm5xeHNyZGpyVGVXVTc5UGc0eTMybWZ1bi8zWHlGdDdJcnc1SGVoVTcrT1grajROM0FmWlY3UXNhZUkzUUdyK21ZMTNqdWtPUFZyWE9QV01tL2E2K01VNndmVnUyYi9DL1Y1N3QxU2oxdjZneEgvYi93UEl2VnUwd24vNk95ODB5czhqb1A1RVJkc2piY2FxeG1uWm55WjB5WTZ3UjZuUyt2SzlpOVczdU9tZDhkdW5MdzNVUDBUYTVaMTNHbWZ1SG9XN3NjZTQ5NWk3eWpydkxOZVJvSll3WElla0cvcDk3MHUvU1IzanZUN25mdmhLdXhnTWM1bDZ3VGVzbHplbGUvbFB0SXJweno3UE5XaDJGNE0vOEFvSUw2SU9DL0phTUFBQTdYYld0Q1ZQck95djRBZjVLQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0bk8yZGpaRWNLUXlGSFlnVGNTQU94SWs0RUFmaVJCeklYdW5xUHRlN1owbEF6OC8rV0s5cWFtZTdhUkFTQ05DRG5wZVh3V0F3R0F3R2c4RmdNQmdNQm9QQjRELzgrdlhyNWVmUG4zOTg0anIzcXVmaWM2V3NBR1g0OThIL1VlbjVpdjR6ZlAvKy9lWFRwMDkvZk9JNjl6SjgrZkxsMzg4dXZuMzc5anZ2c0RkbEJQVDdSMGJVKzdTZWxaNVA5YjhDTnRIK3J2WmY5Vkg2ZHBXbWs5ZnQzL21kWFZUeXJPUUVYUnE5WHFYTHJtZnR2SHMrY0dybnEzcnI3Qi9sYTk5MXViUnZleDZhRDNrRnF2NnZlV1gxanZ1ZlAzLys5M3ZvTGRMOStQSGo5NzE0aHJxb0x3dEVPcjBlNlRORS9wNG04b2k4dVJkbHExNUlGOWYxZWVxZ2FTTXZUMGNkOUhyOGpjK3EvOGZmcjErLy9uN3VDanI3YzAxbDBmSWpUWlRQTTFtZkl6MzNNdnU3REZHZTJ3aWJ4OS9RbWFhSjc0eGJYSE05UlJxZDh6aTBmVVUrcEVjWHlLbnBWTzc0b0F2YXNzb2QxMVFmcW1jdG4vRjkxLzc2ekJXcy9IOVdadGIvNlgrZHZJSE0vdXB2cUZOV2Qrd2NlbFo5MFM3aWd5L1FQcWgrZ1R4V2NuYTZRRDdLSVQvM0ZWV2QvZm1Rejh2ZkdmL3ZNUmU0eGY3b1BQb2o5ZTdrcGY2Vi9YMGQ0c0MyMkQzK1Jsc2dmLzczZm9hczlGSGFpMEx6b1U2Wkx2QzNMaXZ0a2JsZVpYOWsxT2U5L0V4dksxdGN4UzMycHgxcnUrL2tEV1QyVjMrSDc4MzZLSDNkL1kvcU51NXgzZjBrdmlPelAzclFOcGJwUXRPcHpXa1h5Ty8yeHoveVRQemxHYzAzcmlIak0reFBYMUY5MEo4QmRmWHY2bThaM3h5YUhwbnBXL285bnFVUGRHdWx5SXY3K0UzQS81SEc3eUVuZlM4RDljYUhaTHJRY2pMNXlWL0hRL3FILysreXFQdzZsNm4wNmJvZERBYUR3V0F3R0F3Nk9QZVgzWC9OOG0vQlBiaUVLemd0OHpSOXhkdWV3bVBseEtWWXoyUnhnWHRpVmY3cTJSV2YxbkdZajhLcHpxN291T0p0N3lHcnhyYXJaeXJPcXZJZlZWeDZ0L3hiK2JSSFFlWFdQUk5lcHl0eWRmSDhlN1hyVEZibDFmeitDZWRWcFQ4cC8xWStyZEtUODRiT0tmb2VCZWQ0a0lWOG5BTlo2YXpTZ2NZVnUyY2VhWC8wNDV4Y3hYbHAzRjVqNWxYNjAvSnY0ZE1xUFJHakM4Q3p3dk1oODhyK3hPMVVGcFd6MDFtbEE3VS9jbWJ5Wi83L3loNmFFL3RYbkpkejFzcTlWaHpaYnZuVTlTcWZWdGtmN2xqNUkrVVVQZi9NUnNqYy9YK3FBOCtya24rWEsxdWhHcXZnUnZSK3hYa0ZTS3RjVEpkK3QveGIrYlRPVDlLSG80eG9EL1ExbnQyMXY0NFpudlpVQjZmMnZ4WHFiK0FhbEhldmZGTm1GNjc3M01IVG41Ui9LNS9XNlNtenQ4NDdHUmUwN014R0FlVVdzN1E3T25nTisrdll5Y2YzNGlrdmlFOVR6Z3Q1c3V0VitwUHliK0hUTXQ3T1pRUEtLVlpsTXlkM3JwVG5rV2RIWjVtT1BlOUsvcTVlZzhGZ01CZ01Cb1BCQ3NTK2lQbWNnblVnYTVoVkxLcExFM1BiSGY3bkh0aVJOWUJ1SGxubXJpejNCdWRpV0hkN0RIOEY0aCtzdjNmV0p0MzY5Wm43R1RPdVVkZVVnZmhPclBCUlpYYlhId21QWFFlb3I4YTN1dmF2WjJOSXIvckxudWNaN21tOW5mZUtlKzZYOU14QnBqT2U2ZlJKZi9NNGhzZG9zL0ozOHNwa3pOSjExM2ZMeVBTNGcxVWNTZmZrVitkeGxJUHdPSzN1MWRmblNhTStCNTBybDZQeFFPWHNsQTl3bWZRY1VjV2Y0ZlBJUjJQK1dwZXEvSjN5WE1hcXpPcjZqcnpFRzFYR0U2enMzNTIzQkYzTTB2a3YrRHJ0LytqS3p6Tms1enZKcXpwblFqbklVcDJOeVBUdmZFZFhmcFdYN3RkM0dhc3lxK3M3OG1aNlBFSEhqNUhmaW1mczdGL3BmK2RzRWZuNnA4c1hlZEQ5anMvUy9wN0Y0clB5UGErZHM0UlZtZFgxSFhrelBaNGdHLytWVy9RMlgrMzd1ZHIvTTExVi9WL0w3dXp2SFBTcS8ydmVYZit2NW45ZC85ZXlxektyNnp2eTNtci9nSTR0UG9iaG4zUjg2ZmdybDJrMS9xdmNiditBbnVHcnpwOW51bHJOV1h3ODlURk9lY1dzZkVVMy9tdjZxc3pxK282ODk3QS85YTdXLzNvdmE1dmMxejdrUEpyUC96Mk56cEY5VHAvTjVic1lnYzZGK1o0Qkdmdys1WFhsVjNtdFpLektySzZ2MG1SNkhBd0dnOEZnTUJnTUt1amNYRDlYT01CSG81TEwxeDhmQWMvaUFsbTcreDdNMVRxQy9kTFBSQlZucS9aanZtYzhpd3ZNOWpJcnNyaUE3dG5WL2Y4bjYxZTFGYkUydlo1eGJ0aWZlNTRIY3VoMTV5SjN1RHpTVkd2MHppNlpIdlJjb0hLa2xiNXU1UnRQNFB2djFUNVY3SStZRTM1amh5TlVQNlB4SzY3cm5ubjI3M3U4VWZuQ0xJOHNYcDF4UmgwdldNWDdkamk2THRhcFp4UGgxek45N2NpNDRnSlBVUGwvN0k4TWZtNGw0MmhWQjk1SE5BNm41L2dvWC91RmMyNThWMzFVWnlaNFhtUHI5Sk1zUnUzOWhiYkgrUld3dzlHdHVBN3lxL1MxSytPS0N6ekJ5djhqSzMwdjQxVjNPRUxPVW1oZno4cnY1TkY4dXpNeklROXRsbkpjTjFVNWpHM3EzeWg3eGRHZGNKMlp2blpsM09VQ2Q5RHBXL3VzK25pdjZ3NUhxTysxelBxL2p0OWQvOSt4UDJjNzlTem5idC9TdlFQYWIzYzR1bDJ1czlMWGxmNnZ6OTlpZi9mL3lPN2pQL3JIVDFicHZEMzV1RnJaWC9QT3h2OGQrNk1qdjNabC9EL2g2SGE1ems1ZlY4Yi9uYk9PRmFyMXYzTGVXVXlBNjlwdk80NFErYkNmempHelo3STVjRlplbFVlMWZqNlpXMS9oNkhhNFRrKzNVL2NkR1o4Vk14Z01Cb1BCWURBWXZIL0E1K2phNzFHNGtyZStXK01lNzc3WDJNQUpkbVYvVDF3VWExNDRBTmFVajZnRGRqd0I2MXBpZXJxdnN0c0hYQUdPNFJRYVQreHdwWTZ2QldJV3ZtNGtmaGJ3ZmF5K0RzZHY2SHFWTXhqeDBaZ05iVXZqQytpcjQzWlZ4czcrWFY2N2FiUk91Zy9lNWJoWEhVSDJ1eU8wOTNpTzY1U3I2UUtSNW1yZnluVEU5ZXdjQzNFTGpiTTZCNk8vejBVOTBBMTZKZGFGMzNINUtVTmo4ZFZaQWJWRnhkSHRwSEdadEs3S2VWSkgvUzJoSzNVTUtBOUxYQS83YUt4UTB4RW5wZHdxWHRpaHNyOWVyK3l2OFhIYVBXMFNQWGw4Uy9QeStIYkZxMlg4aWR0Yy9aaHl5SXFkTkFHMW44Y2ZQWTZiOFh0WDZyajYzVEhTKy9zRW5UczkzYmZsOG5nYzJ1c1RjUHM3YjBBKytwdVV5SmpwQmxSYzFJNzlLeDVEc1pNR1BTcnZtY21yZkppL1IvQktIVSs0UThybEExZGQrWllWZUk0eExyT1o3N1dnRHpsZlJaL1FzYW5pRGIzOVZ2MXh4LzRCOVgvSzR5bDIwaWpucU9PZ3lwRjl6K3kvVzBmbEJQSDVIWGVvbkovdXg3b0NIZHYwNDNzdDRvTnY5TDBjM0ZNZFpOZVZYOHVlNzg3WGc4cisrRExsMUIwN2FWUW1uM2NxMzg1MytvZTNtWk02QnRRR3VxZkh4MmZYcmJhVFUvNVBvZU1IYzh6czNtcVAzZXE2N3lWYWpWdCtYOHV2Wk9uV3JyZWs4Yklyblp6VzhmUzV6SGRkMmY4M0dBd0dnOEZnTVBpN29Pc1lYYy9jYXg3WjdVbU1kWkMrSzJXblRGMnJFdS9PMW9MdkFXOUJYby9uc080N1BVZFNvYk0vbkFEcGR1eXZzUmJXT3p6M0Z2UjVncmNnYnhhUEpFN3VNUnZudElnOU90K2xVTzVXNHhVQm5uV2ZvenkweHlBOEpxdjh2K296UzZ0NUUwT3B1Qmd2Ri9rMGxxTWNjc2NwYVQyMS9pb3ZmTTZPWHBCZHkxRzVUdENkTVhHT1I3a0lqYVYzUHNPNWUrV1Y0UXM4UnFyMTgvT056c0ZXL3A5eXNqSzlidG5lYkcvLzJJM1lwOGQ4c1cyMmI1dTJBaWZpY1dMc3JlMmkwNHZMN25LZFlHVi83T3BsWnJIL0ZZL29OZ293QjZoc2VwS2ZjMEhlWDdLOHF4aXc3Zy9TZURleDF1eTNveXJ1VlgyTjdxMVNyaVh6R1N1OXVMOURyaE9zL0wvYlgrY0p0OXFmZmtsYy9WSDIxMzZ4YTMvOEJubXB6eU5mdC85cWJ3ZCtSSGxWNVEvQXJsNnErcDVnTmYram5uQ011Z2ZsRnZ0cnVlNkhiN1UvT3FRYzFjdXUvY2xEeHc2MXVlNTMyY2tIZjY3OG44dnJQai9UUzNiUDVUcEJ0djd6ZlVVNnQ4ak9YNnR1SEN0NzBmNTEvOE05N0svenYrcmNjcUN6bS9keHpaTyt6TE5kUGo3L3kyVFJmUmdydmZqOHorVWFmRXk4aGZYaTRQVXc5dis3TWZ6K1lEQVlETzZGYlAyM2ltV0F0L1N1K1k1bk9vV3UxN3J4dG9xZG5tQlgxL2NzTTh0UDR6K3J2WkVCWFplK0JWdzUrMUNCK05mdWZzMWJzS05yVC84SSsxZjVhZXhIWXhWK3hpbmpDQjNFTFR5ZURuZW12Qzc5anpOeHpIMlZEK09lZnlkMnFuWHdkeVJXc1pLc2JocVQwWGJoOGlpeWNySzZ3dis0cmpXTzd6S3B2WWhUTzFlNGk4ci9hNHhmejB2Uno1VHpyVGhDTHdmZHdaMW8rZWhGejlXZ0g1Y25pem5xZHo5L1N6dlNlRHJ5ZUJ2d3VnVThsdXg4UUxZUDIyT3p4TSs5cmhXSHAvbFcrdUI1NHNZVkI3dGpmL2YvUU51V2psTWVkODA0UWdjY2xmSnhyc1B1LzEzN294YzlqK2t5Qi9Sc2owTFRaVFpXZldYMjk3bUlucTJyOGxMOUtMZlk2Y1BMNGQ0SlZ2N2ZaY3IyV2xRY29ldUVOTjM3SCs5aGYyU2lyV1V5Qjk2Uy9TdHU4Vm4yeitaLytFTDFsN3FQQXA5VWNZU3VVL3gvMS84RHUvNE8zNVRwUEp2RDcvaC9yVnNtenozOGYyYi9qbHQ4aHYvM0QvWDNjN0I2N2xEbktSbEg2T1hvMmNHcWZYdGExNFhPTTZ1em1XNDN4V3IrRjNEN1YvTy96bmRtNVhUMjc3aEZ2M2ZQK2Q5Yng3M1hPNFAzaGJIL1lHdy9HQXdHZzhGZ01CZ01Cb1BCWURBWURBYUR3V0R3OStFUmU5SForL1NSd1g0VC82ejJ2YlBIMHQ5cEVXQnZUUFo1aEQ1MWI2bkQzMmxjY1luc1MvTjhmZjhJN3dEU0QvczNuc2xUZG5VNXpVZjM3ZkdwN0srL1k4SytJL2JaNlQ2M0xNOXFiL0N0OG5kNzlkV0craDRRaDlZYjNiS0hUUHNFK1QycmJWZm82dkxJTW5WZnBQYU5yUDg0MksrVzVlbWZhbStlUDd2YUc3SnJmOTdMUlByNDM5K3hvZlovYmJ5Ry9mMTNCOVErOU1NTzdDT3VvSDJwMjhzVzEvVzNSVHFzN0UvYm9VODdQUCtzLzNPZC9IbVhtKzZoMUgyYkFkcWJ2bXVKZlg3NmpPNngxWHkxVFpLRzd5YzRHVU5VRi82dW9heHZLNmhiVjU3NmdzejJqTDM0aGxXWjVLbnY3MUdaOWYxeUovYjN2ZTVjNTMrdEorZVNkSnhVV2JqUGQvU0t6SG91UlBPbFBhamNWM3pUeVg1eFBWK2h2Z0I1cXI1TnU5eng1OW5aQWMzSDk1YXY1TWVQYS80QmRLZnZZbE05TXViN2ZLWFNzYzk1dEU3YVgzMVByKzVsMS9tVTVwRzkyNC8yNFAzd2RFemduRk0ybjNGZ1EvL3R6R29jWnYyME01WWp5K25jc0xNL2V0VXhDLy9wN1VqdHIvNWQ5NXFUNTRuOTlWd2k3VmZMek41ZDVmT3N5djc4VHp1K01pZEF2dXpqUUg1MFJ4dk8vRHE2cS95cTUzdmwzWFdCeXY3cU53RnRNWXNWNkpsUlhkOVFWNTBmVnVjYk12dFRybzdsZWwzUHBYcWYwbk1mbmYyUnlkdlhNOURGWFhibkZwSHVxdHpkZUhmU252VGRPdHFYUHRwNWlzRmc4S0h4RDRna2FxTHJkNzBXQUFBRWVXMXJRbFQ2enNyK0FIK2lOZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWVKenRtb2x0NnpBUUJWMUlHa2toS1NTTnBKQVVra1pTaUQ4MitHTThiRWpac1dUNG1nY01kSkRpc2N0RElyWGZLNldVVWtvcHBaUlNTdjNYOS9mMy91dnJhMHFGMzRPeUhwZE0reExwWDFOVm45MXVOK1h6ODNQLyt2cjZjMzdMZGFjZVZkWXRWYjUvZVhrNTJHUHI5Syt0OVAvNysvc3ZTbldzZWorai8ybjd6K0QvbVQ0K1BuN2FBSE1CYmFPdUs0eDJ3WFdGMVpINEZjNjlXWnAxekRpenRQcXpkVTRaMGora1YxQSt5akZLYzZTS1YybFcvK2Y4a2YxZmRVdndSUi8vaWMrNGlDOXluTXo1bzhLSVgrS2FaMHVWVjEzWHNaNlp6VVZaSHZKamJNcnpMRnVtbjFTY1dSdEl1MVMreitEL0RyYWIrZi90N2Uzd2pvaDllS2IzeDB3amZVR2JJTHpTNHB6MlIveWVWaDNMTjd5WGtWNzNmVDZUYWRLZXVySXQ1eHo0NlA2ZmFlYi83RHQ5bmt4SytMRHNXTzBteDFUS1VQY3ovVlRlSTYvMDM2Z2RaLyt1OEVvZkg5YjViQTRnSG1Yay9TZnZQWXJXK0QrRnpaaHY2ZWY1Ym9EdHNXSDI2K3liOUwxOE54aU5GZmsrbXYwL3g1RDBWWllseXp1cjd4S1BvcTM4ankveGJmYTFuazUvTCtqalNZNjEyZmRtODFIV2cveDZlOGp4UE5Oa3pPazI2V1NaYnZrNzZLL2F5ditsc2xHK0E1WnQrM3Q3OXpYdEpQM0Erd1JwMGFaNDVoVC9aenpHSlBJaXpWNitKVDNxL0srVVVrb3BwWjVUbDlybnpYVHZaUy81MXBUcklKZXdZWDBiemI1cit2ZlVYN1gyZWJVL3JEblVtc2xzelhxTjB2OTliU08vODBmZi9FdHJJYXliOVBOcktNczU2a2Y4NHpHN3Y1VGU2SHFXMXl5dFViOG03bXpOYVZibXY0cjlzdHo3STEvV1BQS2M5c0l6dWM2ZWJTVDNYamxuRFpkN09TYXdkN01tdk5zNnk1bnJpWFdQOVdiV212cTZVb1gzT3RhOVRDdHRWOGYwR1pCWFhxTWVwOFI2SmZkSmw3M3VwVEtmbys2WGJHK2ovczlhRzdabVA3NXJOUFpYdk56SExlZ2pyUE90Q1Q5V0wreVhZMTcvdHlIM0lSQjdHWFhNdGNxMFZhYlo4eHJadC84VFFaelIvWkgvUjJVK1IzMytQOFgvR1gvMi9wQjI0cHk5R1k3NE0vL0pXQk4rYXIzNm5KZDdBdmg2VktmMFFiZFBYcy95eXJEUlBoUDNzejl6blhtUHlueXV0dkIvMzBjcG4xQ21QQzh4MWpGK01wYlJudGVHbjFJdndoZzMrSThBRzlPK0VITnQ5MzhmYzNLUDhwai8rWDhpOHlqMSs5My9zektmcTJQK3o3a2RPL1Ira25VdDlmRXBmWU8vaU1zOHRsWDRNYnRuR0xiay9Ucm5ZY1p3NG1MbnREVjduZmd6OXlpUGxZTi9hL0VoYlNkdHlwN1p5UCtqTXAvekxzaCtXOVlwZlVmZnpycGlqOUZZUmR4TXIrZlgvZG43d1pwd3dwYnFsV0hVZzdtayt6Zm44dEUzR00vMzUwWjU5VERhUU4rTFRCc1RQL09lbGJuM3RVdG9hYjFBUGI3MHYxSktLYVdVVWtvcHBaUlNTbDFOT3hFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJHUk8rUWZoNWVPYXRrN2pwd0FBQUZUYld0Q1ZQck95djRBZjZXRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0bk8zVzRXbURZQlNHVVFkeEVRZHhFQmR4RUFkeEVRZXh2SUVMdDZZaC80b0o1NEZEbTAvNzYwMXN6bE9TSkVtU0pFbVNKRW1TSkVtU0pFbVNKRWtmMFhFYzU3N3ZUK2M1eTdWMzk3KzZUL2R2WGRkekhNZHptcWJIeit3WS9TejMxTDExRnN1eVBGN0hNQXgvdm9kMDc3SmpsWDJ6WVhhdHpmczl0WC9WTjcvK2plNWZ0dXQ3Vmpucm4rVjZuWDM3eHRtL3VsN1QvY3R6dnU5Zi85Zm5lWDdhUDlmcy8zMWwyM3J1MSsvYnR2MzZ6UGZudi8yL3Ivb2UxL2VyOTBDdTFYZjduRVhWbngzWGE1SWtTWklrU1pJa1NmcjNCZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQStFQS9Ddm1zdUZMYUttWUFBQUVGYld0Q1ZQck95djRBZjdHa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI0bk8zWDBRcUNRQkFGVU11Uy92OXZJMkpxUVVrR1g0SnNsam9YRGpqcnk0V2RCeDBpWWtoaTQ0ei9zRTUxRitwMm9Mb0QzM05JYzh4bll3ZmQyTjh0elMzcm5iaDIwSkY5dkpQcXJuemVtTzcyUE0vVDB5VmVPM0xxb0N2N09LYm41YjZuamZmOHZ1aWdBelhhdDJETHZZTXUxR2pKLzRRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEwRHdBbldob051d1pVQm9BQUNvWGJXdENWUHJPeXY0QWY5VHdBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCNG5PMTlLN2pzS05iMmtrZ3NFb25FSXBGSUpCWVppY1FpSTVGWUpCSVppWTJNakl5TkxKbC9VZnVjN3A2ZTZmblUvOVNJV25QcFBsVjcxd213THUrN0xsVG01MzAybmdEYXM1RXR4dGRHWUlland3SndYY1VGYXdEZmhYN0Q4MklkNElFS0VBRzJDaHZRbmlUQmQ5MlQyYkdFd2ZITmZIUDg4VU52QUpXYjNVRXIxWEV6dHI1c1R4VVU0SGlkUU9FbzZURHdZYm12S3ovM0NSS2czRlFzcEYrTkE2ODNnYmh6WEozYjNzK1lYa0pzTVNuOFF4SHpsZElQRHl2VWE5c283a1o1VGlJNDlaWmtVRVBNWHprV3lOSStUd1l3Sm15ck5MaVBTVzByL3U3cmJwQjM3dHRIRjQ5eXhiRDRqWm5nQVR4UnFvTnhDUS9SRkFrcnI1ZXloVWlUZlF6Nm9hN0JaYUczSFg5eGo3bXVmbjZDV3lrdW96VmpnNGsyTE5iNnVNWEF3WUp0RHA0ZEJIVlBvUGp2cURsd1hQalQvVHd2R3c4dlA3ejh0N2hPeERvU25wTk53cHNGY0NtMkZTQVY5c1NjTFJ6VkhqSnd3Q2NQaDNWTGNXQUN2clROWDdmZzJ1YkFIOVV2dUpuN052dzBIVHgrQUlVTHRCNDNOMVBxRzRISDRVN2QxVUpSMStIVzdmUHJwNmlVZFUzZzkzdVBqdnMxeUNVdVFxWk95WW9MR0dzNkdBbHJtMDdBdkcyQk9kZ1AvT2NDS3FkMWdWWEZmREtvaHRrbE85SHZFWUdicXgyNFhVYmhZZGVTS2M4THFsSkZKVWhYWXpCTlp3UEdQcnY0S1M5MGFXaVRacGoxMVFuUnVGaUdQc3JLSEtnU3kwWEx4ZkxqS1JXVzFEd1BMT2syOW5NMHhlSEFmOVkxbTNyZ1l2QS9wS0pLSC9EZzlsd2JQQmxQSEUwbFR5TW9OK1EyNERxbkZqMEpuYXJxL2RPTEIxbEJvL2ZDZzBnTnRxc0lrRXlnY3phYnpnTk5nMWpxeVBsQ1kxaWRKc2VZU3IwVGRBUmx1eTdLOWhMOHFNOEpNeTRZYW1Vb2xNOC8xRHcvblMweDZTUnduVThCUFFEOWYzZ1VHaEtNQy8vYS9Ra2ZYVHhLZE1LaHQxWm5tNXBnZkVrc1BPUzRsWDNnUnZNT1VXcGQwRzhsVzFCaDBmMEJpRGI5R0ZnU1diL05QT0VYcWo4UXFGbHZhQUNBUnA0WC9EQTJOK0dCclI4MlNrYnhsMGRiOElVRmQzWXBtczgzUHl3YzVFQjNqZ3FOQm01TjRNZW0zUk50ekFYS2F6NC85ZWpKVE5wcTd3K3pGVDJBM1EvYUpYZURXb2hwZWtaVWVBYUJFUFNFSkJHQnIydFE5amliUmJlUWJmTDRDV3BCVDVueDFOZjYzb0Nybmh3K2Z2NlNodVhjNE5pR2tib0c2VUk1K3JYaUNZWUwxcVFDT0ZXdHEwc2NEa1BEZHJScVl1c1BUQXZvNWVkRHZBTHZnSG12QmFFTDV4Nk5PNlJ0RjJvTFVDN1VCU0NYK09QdlJHdnhGY0xxZC82aFZmOUZ3c0tBTS9UY3FNR1VrWldTT0hqclZjQ0ZTc3I4dVhNU2o2TVNpWjVjaExNSUR1akpuNDRyT3daOUJ3UnpyUmhHRU9NZFVTZ2VTMG10N3ZlbVdOMmJoTWFvQ3JreEM4djYvaXRMai9xbzZHUllqQjlkTzByRW80N3ZZd2lJZUNTZHAwVFIxN2ZlRHhDZW9oTllZR25YSGlEc3FPdlJFRUJzekkvN2NtNndiU1NCcU1aZTF6bk9oTzk2UWtmUG5xQlJQUlhHYm1ZUTVHdUVST3IyckdVN0NqeW8vZmdXWWRQOFBpeTE0cUtlbTJyRzcydUhNRUtmVzNBbzllSWt2eDBBdW9mSG9KSGI5c3h3L1RRTWJzc1p5M0ZnbEZqR2sva0orbmJQdGZib0dOa3VlUFZJYm96N2pXOXluMHErZ004MXJQSEI0UDlJNEJ4MXFZbng2dXVIbDQ4TFp1Q25GZ3p0MTlkaDdCaVZob2xiV2hjWk9qNDh4MDFBU3FNNTh3TDlBcXppSk5OeFhSVUJvUUI5UFVpRkZneHJCTkQrTThiS0dMcmpyL25wc3JwMHYxR1RQWCtDQVN3Sk44YkhCclhmdS8zczZ1ZHpEY1Era09PaU0vaTI3OTdjTmx1bTBXZVZxSmNNVWt5TjJJMnFxUGtSclQ4WHR5Z01qU1ozM1M0M1F5TitRbnNJZ2wydjB3clg0cGRWMUZjQ3NndzNtZEl4ZjJwcmZvSmxsR05IdTc5eUZzdkgrUi9RNDBUWUxoc1NQZlRMUzdUYzd1c0l4VURkVjkzSHNVMFNBL3N3NVlDUUErUDc3ZWprdkRET1hBYmE4bmgva1BPdWRzOXgzMDVhb2dzK0l3VEdEWU9Fak9CQ1JaY0ptYVVwbFlLNkpubllRWDEwNVQ5Qysrb0xXZXh0S01KWFNYRGhnY214OG9EeEM3aDh2VEtYSytqOTRGd3l0L1lnN2Q0cGtHemNPTGZXZEd3WUJSekJRRm91UXIyQW8rOFlCSlZsOFlXTGpZTlNVOS8wZ2NhRGJUNWttRW1CNmY1cy92VHlKMDROWVlaa3hLSkhNN2tsallhOEk2c3BQK2k4enlRRkFYTWZITjhKQTE4MVBST3k3VmtjeDBKU0l5MXJJbkZIVUMzUVpSTCtJdWRtcmNFSXd1RWwxcWt0ejVNekhqZnEwT1RNeURqVVRUbVpHWUhQaWhtS0xCdXM2T1JmS200N1NJTEIrc1pGRmtMR3NZWWQxbU5zdjM3NHp1Nng1dzNMblZ1RGppOXpZWjludUVrVkYwVUlNdVVzZWdQU01kb1hkSUViT3BKclRNYlQ1ODdCQnFITjdSekltUWdQNWFPTFJ5bm1ITlI3RWpmS2IvREx4VzVrcVBpazZMZnc0WlY3UUhMMVVKZytFTVpyd25lTWE5ZTl2cUVMSTdnUGExZ1habm1SRXRaRngvZWF5RUdwelVMQ09jSjFUUkN3Mjk0MFVEMjVYd1RUYkpLUXhtZFhqNjdZaDkxT2xSVFZJNVpmYnBtSFIrK2tjQU53Q3l4YWhSNFMvMVYxbXpiSWsvZkRWcWFiMDdDNDVUQkZTNUUzS255My9SaGRyM3VkL0RjMVJsenAxTGE3K25wUjJCV2dlaUhoZ3NjSENYVVZTSUErN3YvenBuVndtckxhOXZWVTJhTzdiek5RS1lqNHRGdmdYdFUyNDliYTgrTmdJQzJhWkNZUzRTbzl0aVhFd01wbVdaSTh2MTZTZzlpM1lGODJuYWpmeUh4b0hiak02d1V6MktFK2dJUXlJQmxRdWhENmNmL1hOd2NWejQ2ekMvM1ZEdndzVG5PK2FydEdtVDFDdFlyOFlBdW83WUd6bFVPbjh2WUVhWTVWa2lrQlV1bVFqMEJNeGQ4RzBxNkVpLytKSFFLM3g2ZHRZand5RTBaSWsxSnhzTEljdzdsR3ZSN2w0L2ozV0J5NmFZM2tqckwxVDIyc1IwSDkzUkMzOU5KOU9yWXFHcjdMRTNVTXhHWUYyRG9kUU1xclVraVpMZ1B5MmUrS3NEYkM4Ynl4d3phT2FwRGxBYWRqNWtkUGNFOHREUkQ2clRZZFNCZlMvZnJjeW45TG5jbEs1dHRWd003c0ZqcTZTc2VEdnAySy9jbDJQR2Q2anVPTTZBVHhJUEgvQ0RGR0tuRnRtUzA3a3cxSjhvMFVBRGNOUHdQZUh1SlA3Q2haY2czWlpHWEhDcy9KUmdiS0Z3M2xtUW5TK3RHbC81Wnl4ZGhJbGhBZnk4Rmg3TWZIMjZIb3BUNFl4aEFBTEtHVnVLOHovNHNiUk94YUNJdTVSZkhLeHE0QjBuRng4T3pZTjNBYmdUKzRnOGlNM2t1c0JwRDN4U1VPeUtja2dUc1A0cncvSHYxUnJISVlqVGF6Y0ZBRE4yQzhZWm1HdU9sZVBZUUhoUDNKVXVlMlh4ZUc5Wm16S1cyamhNYyt3RVF6SXg3Q293eThYeWNONTBuK3doM0pyWFVQell0RHdjb3RVbzF1RUdYanI0U3pzcy96SDNOemxjRHVUTS9NUE1pdEx4TzE0QnRTS1h4TWRGOHh1K255d1R4MTlYMUZDa1RJZW16QzhTUVVTTk1SRGl2dlRnZ2RYeFV5N0w5ekIyTUIyNjh0OG5KSWtWWXVvQm16cFlqMEd2L08xTmFQSjRDUjc0eVpoU2g5QytCdkNiTHRPbDNvcktmYk5xZEdhR3gzc1lhOFFJelNlc1o3TnJwUVg1ay9EQUcyRFVYckc5TGRHTkJvczZMMjM3bWpnOE4yb3VaTHF3d3YrMExwSWszUy9ySm9POERYOGZINkYrY0UwTEdoYjcvcktXZFNBbTBnd3lTc05iOHNJSlJGZzNqOEtEK3FPaE8yWjhCVjY3V0ZGMGE4Tko2WjZzQWdDZWpnRmdqenRkKzV3MFUwaklFR0laYXpjVDhRYk9TWUI1RDFRYTcxRG9pZkZsbDJ0TzV6T20xU0hxb29Sd2Yvc0ZyZmVkcEhjWVFyZHpBUktVNTYrL2JuNFhXSVdmUXR4U2FWcDQvb3dDS2lXUkFKUFNkSmh2M09IWU00OExmb0dIdTdtVzJJRzB3dmZvUzVqeG1Ed2lIK2o4ZjcveTdqUXUrdTROalJ6RUU5cUo3NDU3eXhXWm5MREh4NkJQVHdPbWFKR3lQQ3JIOXZhTGt5V0dxQitNZThTWHd4MXRocE14TkJLSHo1cDNZUVpqSEZBeE9sMWcxT1M0Q0lta3pBemFzYTJpNmY2OVByUDlKeTJWM0RjVUpUb0Y0amJ4YnkvaTVzZ0NVRWVnTGk0b0dMRGEvRTkxblM0MzVwaU9TVWcxQ3VBSWh4RUI3cmRTWTNLSVFGSFBsVk8wSUNvWkpzSUhwRzYzalhqZ2F6Z2FLTFRadjN5L0lMTEh4UVpneFc5ZGFnOW11Q2tTZWJUcnIwWXN5VUw2RWtSVTZWdWFvS1NBTkIxMm5lKzFFTFBZSjFMUjh2Vk9aUlFVUTVrNk9vMG1mVjdGZnQ4T0FsV1ZydnJseUFuOXBoMUtXazR6V1FUNjFxY3FnUHk5SHhxZmgxSWpuajFrTFllbkNEekt6V2RteWxyV3c5QzRNUWp4NFZ5YmhaN09qSGVaOFYzTDQxZEFQOWhhYlNFUXZYYlVXRGdYcWVLL3lxSGU5Tkc3RytpejZvVEw5cnh6MkxjbklNTkkwRCtlenFwL3dVTDJmOUQ1cEZ3SElTL3NCK1VJWVlwbTVDMzF1Z3JseG5XeFY3b2F1SGttY2FvK05aMndOMlVwOVhKeHVHaHdwN1JtV3diVEh2M2dHTWV3c0MzWGUrQndOTS85VTdrQjAzcUNZa2tlZitlUHBqMnZqRDBEQ2ZDNEdPbm03ZDlvbno3U1lSK3RwMXhVQTFjMFBvRkVQVnNXMmM4Ujg0U0JpRDQyVm04ZSs1eG5RTWtzNDhVRXBhLy9TT3NFQ0RqKytRK2NqYy8rZ2RvYnNXTkoxTGZLNlBJMkFPRjMwWFlaOXJFVkpPNHYrZ0o1ZCtTVlVod212eVZ3R0FnVXlNbTFyWDlVU1lCRTVMbGNHbEJmZk1vVlhqQmd5am5NL0U5LzNkTzdTYVo4d1M3MHgrWVNoZDVhL2VJVUpxZHVnbzBXYnl4L1VmbzcrNTlGeTM4MExsQlgyU1FYVkk5MUtocEtBUkJzNENBTlZuNi9lWTdocE5IKzRMcUR3M2h3eFBpN2M2eU8zS1cvZHROblh0ZHZhTzNjYzdNNDdtdFQzSS9PNTNIZW1uZDR4dUh1ajdyLy80K28rWEJLU2tNM0JML3M1Tm9xUzJwWU9vcTN2ekxnQjBDNjRpb1FQemJuU2FHajhUNE91TlpHbnhzR0xNUXphejh6Mnd5a1VKc3htZ0hxMGUxUTZGTElDbEc5R3VUOGdLc3B6MU1MbG8vbmFIeTBjWGo1STdIajI2Ny9WTlZpV2xFL2IzbThxcWlITDhwd0RBNU1JMG5VZ1lEUjA0Y3VUWjFBWkw3STJBeVhpNjdVRWM5RHJLTWczYUVXWEFMcW1zQWRmZG56Qk9QR2VkNitTRCtKa25pS2JLN3MwMm8rbUhKY0hEUjh3eDF0YTNiWDN1b1Y1cXJtN3QwcjNUVS8wd0RFTjZBWXZIN1V4WWhqUDluTWhWZy9hRVRUdGVCZUwrWGhWK1dHT3d2WTZBQVdFQkd1aDJBMGRJQlhVaTRlY05NWXJ6YTA3WFMvMVVnajhzaU5ubmNvTTk3dHlPaGxoOU5rTkNFRmMyMjdzQWtFYmZGNmhjN2pPV2JYczBJVjA1LytHN3JkZmNTalJ1NlJUWUV6VkswM09FZDRMY1hneXFSSi8zYUtnUGdvMzBqSHIyZ3J1Mm85LzlPUCtWNEJ4UTY1UmRsM3FkRi9EenVqRzJHM2lsNG40WEFQeTFTamdqWTc0bGdjKytFNjYzWTBaN1pQT1hHOTNmQXgyNnZXOGQ5NGhBZDhVd2lWRnpVSy9qdVJLYVh4WE1nYzRnUHdnemVVSXl4SkI3Zkw3L0JUV3pwN2lIZmNzK2VIdHhLR0cvc3R2UmdtR2hQd1dBanREK1VaTWw4cWZNYk1HczlqVDBncVRQZ25odFYwblhob0JIN2ErbVErZ2EwdlRzTVJMcUVwSUkyeEpyMTFIVy9Zd3phVXBvRzl3c3gvK0ErdVA2aVJwTHVwcFNpUGZGeFBDaUZjVEN5UGJJVHdGZytzam5oY3F5dTRhUFBDSHpqVnNRbnJoT2Q5bjB0bUhFM1BpMm9scUFqc0I0aVZ4U2RIYWFBZEplV2tydDNXRmNLQUhLSHNoYW1WQkZsby9yLys0Z01ZcWEzcU1Gb1dpTzRQZWQ3SGtHTVBkVEFKQk1JY2g1RHMxUkExQVB6SjRRN1NOU1FOT3hKalN2WVo4NUVBSW5Nc2tCbnNTTDRMWkpGYXhGeHpoWXlmaEpjdFhFQ2pTb0U1WXFlWjc5WWgvUGY0dkx2Tk1hTHlPSkRYaXczZEhjTzhZeVVuNFhBS3FMQWZYaUdkYmhUemZQN2FKbzc1UFZtRldPODE0SXAyc0U5QTI3bXFYanB5amt2cUFzcFlpZk1oaUgvTmNwejBNSDl6b28yWkE3bHh4Uk16NjkvalRoS2ZvbGlQblVZamJ1RjBJNEFmMWNvQlFmc3dCd3RmV2F5ZXlyWlR6cXV1MVQ2YmtRa0lMWTdOb3IwMnB6OE1Sd2pJUzRDTjhsUENZWmRIc3pQNHlqQ0t4OFRnWXBjRGNSWXBuVUFuL3U0K2svMUdHa2FlUkVFN1ZYYkFoL2toWUJvYjN3aUZpWG53TEFXdG8rTzNYNG5TbWthMjhES1NOWDRjak5VNXB1cm1OU3ZYajBsSHRid0hOWWRqR2tyRGsxaVJGZnJCcXNNRXZwR1BYQkdJb1J0dFdaTjlvK25nQlVjS0UxaDR1NDJiU2tiQm96cFZQOEl0aWQ2a3p1dlloWWtPcUY1NTJyVytFMWJmYWgrQTRNdXI5UkFEMGlkWDMya2Nad3o1Z3FlSTFpOXRXSnV1N2psK01qYVUwcnMvbEF1MW9oa0FuK3Q4K3VmbXJnMGxtVTNhd1ZHSkdodE5Ja0hqODFpcFdnYlFaMDZuV0lYU0NISlk1QWp2ZmRoVG9PTkdnNDI0TzRtS0c3ZEhYc0Z6UEFPL29LenBGUHBERkJMM0tMdndTK21RVUtHOFlSejFJcU5jREgrLy9MN0duY0ptb2pCRmtlTWpxNkpGb0lLR0d0Wk9aQTN6NG5lZ3FlRkFhRTEwd1FySyt6ck5zQ0YrdUh0cW05TmxxUTBjQTRmR0FieGpiZElnTGxqRmdCTWQ5ZmdBOTZCU2NRRGU1R0xhbjN1OUdQK3ordytsaGVBdklMUVRvL01RaWlCenZZekdndlN4aWVWa0luOVFjTS9IWlBiaElmR2M4RVJsUHlncnpKRFBVR3hxVHFzTy9NM2xGN1BXdG9ONW5BRjAzbHI4QjNXRkg1Y1B4Y2R1L05rODVQTC8rMkxzWDIydkc1Q3ZTTlRqTzN6VWhMVXZESmJJcExsaUtiY1IwUDhwUWVpVjVYM0FTemFJRzhNWGQwK1I3am9BdG9RQWNDcDZ6Uk0vQmxFaDgyL2s1OGxwSVh0c0dwaTBrN2VlNlA4ejhmQXpoMFd3YURXK2toa1F2NnBiVWtMQi9Pcmt5dHQyV1dJbzhGZXFibEpVbmVoa0hxYTl6TUZ4RlM1R3doTTNYNk9PRGFnWGtUMytzL0UxK2VWOFhwdlNtRFFXSkQwdlhwOVUvNUlYSjZ2NFJob3FRMVU3SE5idGFYbzdPSUVTUENGRHo5TkRONWo5dzJJcW9Wb05KUy9lclI5TitEUTRHQ1VRVGx2eVkrdUZ1UHZDTUtRZ0JJemNlOTMzdDJvV1hnQmRkclQ4UFhWTWxzY1NpUFZVZ0Q4TTIxYUk4UERMdmRsRGdRdWl4QWRMQzE5c2pEMVlKTTIzdHdDTFFabGZ3ZmlTL1lLc3RNSW8wVVpGOTVEQi92ZjU5ckxEVHVDMGZNbHYzUllrUStMTUhQTG05ckVpTDlSRHVHZkRlV1d5NFZITFZFMWtQdEYwR2NueEhrSTRscHgrYnBiUC84cjRuUG42RkoxcXpRRnZJSTR2UGVIMFMvY2IxZEs5NFlaVVVKbGZLV1g2c3RMYUNaZzZZTDJyQmpxUnlicytqbmdGNzR2NlZNOUJLWWNiRXhmaEhyRUVPUTMwT1QvNVQ0bmtPVE9hR09DR2RPalJIazgvMy8reHFUOVVqSUJEaENGbXRvNnVlclNzR09JMXFrTFdENlZvRnZwNWxOeTJFZ09YSVlFUmNrQUJQdTFib1VBMW90dkdqemEyanlId29mUDBPVEpMY0orMTZXOFhURWovZS9PV1Fva1RnV1VOMkZYZHEybXFQWGQxc1NvZ0YzYkJqcHp6dTFqR1NWMUc2WDE0YjBiODVMcStpTlpQa01TQnFtM29Rb1JQcXZoYStmb1VsdS9Fbk1JRTN2NC94ZktBRDVnYndPR2ZBYW5KSVk3dkExS1RZU1NDLzI5Y3haelRHSHVDQ3hVVkxtakdzZkxHN0wxdnRZU0wydEJzcUo4QTZSZzhyTFB4USsveGlhWkdhVEJBSG5KamF6Zi96OHZWNUZmeFZLbG0yTEVoU3E2WFRleUh1bFE1ZTFtNzNNUTZ3Q1kyQzk3dGt3eW9WMkhqVWR3OEo0UE9TRDgxdzVXUUszM2Y5ajRmdlgwT1I5TWRvd05pTFh0Q0hXai9PZjZ6bnFaR3c2SjVZTSt6RklJc0U4U0U2MkFpWmRDOFExei9hUE5yWTV4eUVXU2UweE95S1F5Ujc0N2xsNFFjL1hTeTJYZWZWL2JYeG9meCthREdRY0RhSWlYZkRQMS8vYjY3a0lWYmt1WVd1cloySmlkekkwckkybS9aaUR3R290dVNCUkRxck13Z0JQWkpZdDFnVFd3VHBPaWhRSlpFZW5sOHVsVGRuK3BmSGwrUGVoU1FsVytFYzlzMWY0ZnlFQmNqYnBtM2ZSU0RQenNSaTdGdnZTY0NMeEhkZmJpeGNNQWJtaGdxTWpaellxZUtVNUgvQ3VoTzlyZTBpUXJqeFhrS2oyQ08zY1FoWlIzNDFQNTc4UFRWWUVFZm1GZTB0bzlaOWVQTXhHZnhXSlZ3MGRQT1MxVE1DR3gvMDZkeVI4c0c5WmdKd3RVVjA4RThxcnpkb2g0U0hsbnJuNzhFYlBIbkZBRUgwelpxRlMrQ1VkdTVpTmJ4WEV2dzlOanFQUUJuS3ZSUFh5OGY0UEs4dE9mT3haelZuOG1ZNDIvV29ibDNJRE1kRXhGV3MwK1BwcEoxakpHZnhtZzF3NjNHV3UzcnozSU54K3VWQTVtdVhTTWUzZmpZK3pDdllmaGlZM2pqaFJvV0Z3WmZYSDhlK0c2UGFJTlNBNWIzT21UZHA1bHduMVN3UXQwZHQxaXFSMUZqbm0zQWRDWkhnM1NJZFdtYjdXMkNhbVh3K29yNTBoUS9LamJBRVlaMHdPSVA4d05JbXhmN2Q1VS9jQ3BYMTgvbkhaczk1cjBQRHNBZG42ekdLdWN6b0Jacm9uTDlEOGdzQU9IZU84czBBaC9sMGx1WVBjZWlQWFBjUktwSFBIWURPWGYxY2daWG84alZCSlIvSVBRNU9DcnZzd3FFRG9OTzNIKzc4TEE5WGVIdnMxdUFJMVo3V1ZlUDlqanUxVXYwZjAzUHRWR2ZRanIxTFVHME5EeGo5MFpIakhIUFNHK0V4Z2pNYUJPS2YxNitsa1ozTlU0ajhQVFRaOUxBd0NYNTJha3lBZmxseUNhOW1zQk43NG5teDB6b1JzcjNPZ2l6cHRJakxYNHpXM1lnRmxYRjBJWFBJTXk1dmM1SHQ0WWQ5TWI3bUxVZE4vYkZCM1N6ZU43T2svRDAzdXBZa0FYbUVzMVI5Zi9teGlLTlRBTVljLzhiL3Jnd2J0OHc3UE01TWRoTjJNWGplaTIvWTY4QkNGeTk2RHc4TmV1blZ6ck0rYWNVSzVPQ3JCamVob2dFZDRqQit3V2Y0UFE1TnROUUtEVFg3dGUxTWZaOEE1YnVpUlVsaVdIVU45Vy9tcml4ZWZhQWRQem5SRG01Y3hJMWN6NkFjcW12czZPNzBtWHhpSFJ4VGIyNEswSnB4SWZJbmQwT0RCNkRXQ1RKR0ovencweVlQdjhseGlCYWI3eC91L2hoR1hSRDlkWmsxN1ZqWXFnbFBrUEllYjJkdGxtWTB3TEtBaHE5Z05RYlRMMkw2ODUvYUY1S0gyakV1NENKOXRwSnh0bmNIRzM0M0Rjb3VkdlUvM2IwT1RyYVNhL0x3eWlRb0lIL2QvMXVFamc4TndKeVMwUnBETHYwQWgwbnN3bmhkV2hCR21XVmVwMk1KdlphMHNxWW9ucW90SUo3cS85MkRuY3YweHp1TGE2QldESTVyTnZ3OU5VbE9XR3QwUUUxbTZqOTkva2xwQ0hkQm94SHlXZUxLM1NQTkFEVGJiV1hwcFZ4OXNoSGRSRThFTUVSemhmWUo1Y1E4WGMrQ3Q3TE1oWUt1ekgzNTVJNkl0VHhqZEM5V1JxdmEzb1VtaVdKWDNrRzNXeXhFVWY3eitCL0dvekhuUDhZSFI5Wjk4Ny93cU1HOUFvb0ViWGR1VGlWNG9ZRkFQRWNweDdhdkNnM2EycldWbXR3SHB6M2J1SjVwUFFUMUNnUHNlaklQZGduRGs3ME9UU2lNS3ZLZ1FETmFlbm8rbi8zR1Y1ald4RFZMUncrNFh1b0RyZ1hkV0p1MkZLUXpVcVlQWmJrQndiKytONTdKZDNjeDdNNngydGpvTCtnNFl4L3ExaHQ3RFdaSG96V1lxWVZmdjBsK0hKaWNLU21zd2JxV0pvcTlFdUhqb2ovdC9DNVJjTDBpVDNNekpSQXpoZFFQT2NROWFsbHphakVjcjVaVzFXQXQvN0ZxbFZENTZKeEUzK1ZHSGdYRVJtNFM1anI2NXlZenRBaU5MNGxJdThpOURrN3NIVnRiY1o4ZFIxOGlzcU9YcDQvTWZYQXZpRU94Z3VMYy9aTnpiRnpGNXM1VGxkVTNiTnNhMU9GcFlYVGpEK0Y1d2hhcDNVZXNXUmI3bkRTWUk3NHlIclRFV1puSVRVcG9Ed1V0cCsvSG4wQ1FRUjZRV3poUFQ4TlRkbkoyUDI4Y0IwSlVZSG95djhHZ3pKNEhBcnNMNGxMZVRCc2Q3dkJ3VUFiR2FIaDQ3TzlaK1JxRDJTKzR6TjlCcm1oU1d6SFU4Q0hEMnRXVEtqdVhvaUN0RHFIOFptcVFJbVF5TlV1RVBrZmROZXJuR2orZS9OeHNwYmdEU2dBaXA1Z1QyMUNCc1JRTU9SeDBiZWMxc3ZZYzZFc3lSLzBtTjN1MlNieCt4UXV3OFFWeU9qSnBjTm85azhPajlScWJnY1IvZ3o2SEpoVkdKVytLMU1UeHJxTzdkVHNNKzN2K1hVeVY4NjRMTzBKWHZjd0ZVZGNac1pjSDFrbUthUVgxQnVPdm03UmFlemJUK01lUDlHekRBUVhzZnlVdjVrOHFZR3hUVHVyeDBhdEVIOHNmUVpCWk1TVDF5bmdrUkQ2SlFVbWZ6KzhmelgweGl1Rkt6bytrTnhaN3JFR3cvcStLUWxKNHBJYkRXVzZ1SlJzTG1DRy9XNXd0M2FTWUNhMTZVUTFZb2RFQncvRmN5MC9leUR2TjdhTko0Z1VpWFIxSnVzZ1ROaVl4bEVRUkRZdnA0QmRTSnNJR3E2VFpId2JPcDl4MlJySTFSaGRaa01qZGN6TmlyWkp4VGtSdkpQVnk3UmdLblppcThNT21SSFFQYm93RGNEazlRQTVENnh6VW9jb1JhMzVrVGVGR1JFRm9XUGdpbGZrZWdRV1VlVGkzMTQvbi9hbG4wM0RlWDByNXVPL3B1UDlPNUlsQzNyM2pTZlJhSHQ1VWFGaEFkTCtCTzVQWVlBTjVYT3QyS0pyU1gxNzZHMlRwNElnenFyYVhSZ3hBN2hzUlM1eFR0anBTNUZ3eUJybVBrbTRYUm1mV3g4ZHdWL2Z6OUYwVnNiVWZDcDJFOWp3c1hhQWp5RnNLb1FrZGY1bldGczlkWmJscnNxNjFHV1hNZzlGWHB0U0lWZWswYkpzczZ5OTFIYnJnQnozWHRMdlZFV0lrYWc4azFXRzRVSEpyQm9mWUNtenZlZmJiVXF5VllUeis5ZmpJbStkM1lITzY0QjBaeWFtcWlFUmlpSFlVNGlKc0xlVUhLeHVRWEtyRlhFQWtSb2JNVGlZQ3AwaEJKa05JUm1QY0Vremt2dWFkMWdtSXA5WUZhczJ3WU91c01jK0c4RHJrZ09MSUlOY0RBU3ZXYVBuNy9hYlNCbklHUTBQT1lTVHlRYTUzdERzSzJEWWpacE9OZW9sUFhlSnBiaStnSHN0WnpEb0N0UjBRWHVPRVd3T01vaGdBcmlaY2lSYU81czBodTFvWkJYNXZoWEVhd0MxcjV2ZGtaSmRMTUc0dVN4TkkvM3Y4MFlMVUVyS3gzbmRjZVgzdlpONkVjSEJLNUVDTDAzVENyV2UwRzhhNUFrMlo5bUtXMnlmL254VkJGYXE5dHlOcDJPdTlSeUI0ZGlMOEU3OUxlY2s2K3IxdDN6UFNkZXVBcTlyR0tOUndJaTJNL29tb2ZuLy9sR0pTc2xHYWRON1cxbHo5TFg5RWFVSjNSSnl3Z2Mxb29iMVFOZkpIcXc1TmNMU1hxNkpTUysyaUVrdXg1ZzhINHhmUEtYQWxqU3k4WENjdW5XVWZVdTlxUS9vYU5FdEY2Sm1NaURDckhLQ3pmMFgvYy83ZDU3VVdmY1NpYWVRZVlXL1c4c2h4eFlPVmhvRGRZeEx6ZDRINFEvOEgrcEw1U3JxWFFMK2JKZTJpU2FJWHh6Q0ttWi9qREdoRTlkd2lZanZmZG9QdlZsNGlLaEQvNjArbi96TGFSZFJKT0hXaDczR2NYRC9QNlAzUnhxcDZJYmUwczVhSjFvbHYzV2NMejJtOTAvd2FoSy9TQUZDR3JhR2JhNXk0eVhlemR1VCtISnBXY2QwSGhVb2kwdmtiRHhMN3J0cjRSVldXdGdxc0hKZjJkWk0vTGJBSWJzMm40Z1l2YS9uSCtsMDF6SnVjMm1WaWJkeFl0SnM0ZUZsbnR2b1V6S0tXdG1VYzVrYXg3WTllQnpOYXN4NzhQVGViZE82T2lyZWtjZHQ3dytvQnVnU0tYemdnQjdXSzFIYmtwQkwwOGc5ZSt6ZHp4aDJWZjhERzJGUjM4bkhEbzZQZm5mZmVyTVRIMDNVWWprZDlaV0lPQmNCV2tjUlFhWFpmY2M0NS9INW9zVzhJbEtpWWNvUWF4UUlNZFJMeG04OFBTdVVHSDJabG1jNVFNdmNzc3FJUGVQci8rTTFuUEhOU1ZGd2c3NXpvamFFVk1yTmVkV3dGU1QyU0x5aEZlUittYVFZM0xxV2JmZmxraC9jdlE1RVhsNmhqeENHNFh0dzcwL0RDdmZzWGdMNnRCRHQzeWdRcVdTK1Z0OTRJQnNSQStYdi9kVjFtaWNZWWl0UUVTRTZYaVBCZ0kwWVpHaXJMTzZ5cGpCN205T2hwNDIzZUVmS1RObm5ldGx5WDlaV2hTWjdEbDJQb0I1dHptWkw4NTU3VDh6SldxeThOMm5qUEFkZzFFWjVtTmFPYytQai8vOGpQcGlXaWZXVVJya0dkRDR5Z0R5cmtRd29PcTFKV045TmRUeVFHM2hxelVuSHpvRFJFeVVjSDhPVFNwS1BHOVAwOUhGSlZSTXpTRkRXYnJZMk96dGxCdmNBTlVnRmxoZzVaWEtLTStIOGYvUUsxMDQxZzBpR0R3VEVlbTJaNXdsUWlMeVlUalllL2ptc1d3YkI1Y3BGczVnbVA3TWpiejRsVU9md3hOTm1Zc3Vvcnl2TXNBSjVzWHBCR0ZCcDVEME5ieE5QaHBQRVQzYmdTeTc2RWorSGo4bDlDekRVaDZOZWUrRDF1cUNySmZxYy9CdCtnYnRGRjBuTUZ0aVhaT3kwTmZ6UEZnb0lkNDZOSDg0bjROVFdJSURYTUFGdGNVVUVWNHU0YkgySWM3NHNEM1kxZkJGNHdxYmx3Q21OWS9tZitQMTc5Mmd6cFBDUFd4TTBCbXZoK0R3dEpTenliR1pkdnk5Zk1kRmUvSGJRV1dXMjNabkVNSGhJZnFOV1lYS1B3TVRkYmsxdGxPYVFPL2psbFkwSGpRcUJPbDV0VTlwelFLZWNSSUdFK1JQT1NlTUh5YWorZC9IQk16OUtYTUVBak1XLy8yUWdrNmYyUXhrU0phMlU4a0swdDQ5Mm5Na2ozdmM1amxTcmorZ05SbnBvaklEQVYrMzJsYlVub25oaGk4bWdmR1J4V2VJNjkya1pkOTJqNmxQMWQrY0IrdmM4K2dQNTcvYTdQZVFmZlhTOE55eGJYRXhjNXJRSlpKOEh3K1huandjN2cvL1Z6VjhHQXNSQnZvNVBYTWtnR3BqTENPK3pXdkIrbWRWd01Yajl2OHlWNmpFK2o0NTNjTGdFVFRHYlZOQjRqaEZ2aFlabDg0UENWOEhnQVRPRi9zbVlsd0VsRHpNWWFGNCs2RVYvN0FiRzNmZzVpVGltWS9OSjc5dkxzNnZmTE1nUStUWDZQVWxIWWcrNDhkKzAzZ08ydWVPbkROMW4reUh3N2lISTFmMXZuaGMycllqbkYzWFNSR2g2TjlIUCtpRmJ0NXF3M1gxL3NzWWhnbjFlaXdUb2ZPL2ozVWI3bjIxdlRVTUN3SzlhakgvN3E3NG42V3hrMkxIb1BFK3dwWmxWSzBpYVUwNGpZcklZK1VmVUIrZFlkcXNHTjBuVVBVK3VEMVVDN0ZXU2o5ZVAvWGpvK2d2ZGQ2dFQ4M0VqREdWMWhHM0tPK2J4c0RqQnU5dDYrTE0zb09pNEdLZ0RBSWY3QVdyaERCWXppb1VxUHFSN0dpWngrYk1PRDJFd3dDcGxTWFZlc2ErUEtFdmJzRWk1MTNyU0l2TkxQZTFvK1A5NysrN2tPK1VXQmJCWHRQczVNRXVtUElicTlkbFFPMks1VjcyM3V0NTd6ZTFjNExUaEVoZ1RPVmdUeXUzc2RXN1lMc2VYanBMQ0ZEQ3VhWllySXVvT29JYkdiVzErWEIrQ2NPaE5MQlhDRFhuODdQN2VQclozVXNFTTY4dDdpYWR5MHZGdlRmTTl1bCticng3VTZ3N2VKWUtKdGpEWU9PMCtKdjlVMFJSUENSYzhvWm9tRzNJL3dqTUh0akRjSEl3UEFsdFhWRVYwTkNBUk9sV29CQjZjMWFOcnNzMkkvbiszajlDeWhhSllleHRkam5kNERSd09HS1NHSUdhRlJpTXZuK1BDVDN4aXBqd0x6bUNHNXI5N09VWC9mWGtKWHdxOUQzdnlON1JDdENFRHlaSWVMSC9GTXZ2R2YvQThPUFlQZzVsSzB1WGdkZG40L0RuNW5HUSszTUt6Nlo3RFB2Z3l1VkJmMDF4dXRkcEFaeG5ZZUV4SENtYWljS2NxODV0YnhHUk1pc0tYNDZET1BvRTdxZmx6bEhiZHpzazNneWtxWDVMVDl6QnBaeVlVY2llWFpWczRGd1lUdFNEdzhDcStmaitQZkVnNXdYSU14Qm4xd21GL3E1a3dyL1A0MGp4QWZzYmduYjdURGFaV1dOdmJTVFpINXZrbkhsdHEydklRQWh4N0pRWGtncFByNXZ0ZXZJa1M2dXhMd0lrZFMyUFVoNXV4azN0Rk8wTFUwQ3ZRcmhQOTcvOURoNW8yTzJ6aEdaMzZkeEU0UjgzQ01JM2pVaStUTFFrUXVIYkxWdEk1ZjlWWW5SeWc2NzdQMWwvTTZremxhR3pzaGlGMDJRRklPa3paZ0Y5MnBCekdNM0JyNWFId3JrWFQ0TE5MMW5ZdllLeEJYOThmVnpDVEpYVW5NVlMyY0Q3VGJlQ09ibkRTZHpPSEVmRzNyeFZGUmJsRktiVzNmRUFNMHBTWXVYT2ZnMWVLV08zRmRxL2RvTkk1UWhiazRyZWxDU3hOcVVFK0lKd1VzUVorS3l3ZDVVUll3c0I4SUJ3Zm5INnorenBYdnBYbEovcUVUZHBUMjBCRktsZFY1Nnc2NWpyNUtuczh3SHBTWkVEcndFaVNkcE56VDRVeFhMU3IwYzM1U1A3U1pJcGVaVnFSdEg0THNjV3hIN2d1RmpjZ2pEemFhQmlqejZrb3VoSHRlL2ZoNytpVFI5Mm9VWW51MW9vckRPTzYvODhteHdRVnJ3dENXU1dOUmFGanQwcmxFL2hCT3g5L2NkRHA3emVabnZhekVyeHJOMU5zSWRXNnVwek5ib2hnemhSUFdaWXpTL3hwemE4OURkS21TRWxVSWpJWDNlLzJVK3gzTmhiV2lodWYvcVJ6TmpYdWNlNXBjNGRUbnp2TFdWRytLNGlOK0N6MVhwZVllSFFqdG1DeUpaa0drOTFrU25DejNLNGh5Q3dUU1I3WW9tb1k2UzN0ZDh2a1A5azlJenU4VDNtbWRkMkg3OC9wdFhaMm9HYUZOSldGVU9rNUVpTVVFMVJoNS9jalFHMXhKNy9PSGM2MEhrbCtsc2FwOTN1RlR3enVHVzNYUTJQQjN2TDA3Qm9DQ05YUHVrOWZPclVxVjB4L3NPbUdGOERNWnBxTXpOUG9sVUxwcFhiejQrLzNpTWxjK3Z2Rm04NXNoNzU3ZTNBRzBzQjBxeWUyZG5mY2wyZmlucVhROFgwZVp6SVQ5MytPajNXSnVKZ2Vib21CNUhsMGF3cFd3aE40NkdWWnpXZkVOdTRSWm03N09GT2k1QWJYRWxyc0hvaDVTeGY5ei8wMUlHRjNVL0J5NldqenF2NkdGQzY3eld1c3pNRDBValJ4eURaeWQ1V0t0RTVmOTFoMU5YdXVTWng0cEVLWXlZTWpIWDBiVVppVmExaUdGblY2emdVSTZ6c25HTnZlZXJ6OGlTendzRHpSWnpsQjgvZjhLMmxVRGxaeUlwcXUycTU2bHpYTlpVOHVMMGU5NEI2cXRtTTJmM2lXOEMwZjdQSFY0UWR6cGU2N3dpQUpYZGU3a1lxbVFqc3hVWUljK0dkT0I5cVN4dXhubFhSa3QyQ0kvQ2hGaVVFalNXZzN3OCs0MUNLd1NnNks3Q09JaHBQWTh0TzdRSXMxZ0pOUnhzUFM5NGJPcnpqbmVWbHVYM0hXNnpYZXdnQ2huZ0sxUGIwN3dzZTlXZUFLOHYwSlRpVmdDaCs3c3JQRHdOMk13SXBLN0FieUFlbitMZTUralVoMlZPY1BsZVQvLytGcnpaK1k1UGRndHhVcllnb3hOM1NBRkdNL3ZkZ2Q4OWIvMlBPL3hnZm11U1VzOERkMFBmeisyeWxIWENwdU1aYTZGcVJaZ1RmUHVKY2MrcGp0UVVCSUpMVml6UEMrRFBLai9lLy81NGErSGNmVkdRZU1GVnVla1RCcHd2VGR2ODNnUEV3dUdCUFowTHBOV3djUDIreXVZOTU0cVFDQjdPWG5qNlFoYkxqL2NYM3RwTGVLdW4wMER3VzVEeXprbVp2dFJaUWwwV1ZLcW00cDZRQjVtUDUvLzYwVXR4QmNrdUF1RzlnRkRXMjNjYi83ekQwMEZIWFBTYVY4TFBpNEhZNGpuNTR3N1BNbE1lczVmbFFWem9rMWxjbk45NVBjZW84RWRxOTc3TTZjZjExYUxDVGU1QUd1S01kTlNDdG9SMkEwUi92dnlERG5yT0s3TFp6RUlPeExwY3Q1K3MvTHpEMWF5Rjk5bnJOc3ZiYTVrMlRQNjR5cWJhVXQ5ZmN2MXVuV3g4VlVIUHJ4QThFUXFpdWN0OHBySWhncmc3dWhMQk9KbGZNZHhuNlhQZWpmbkdRNStILzcva0lBcys2bFpDaVg3bUxMYTVyaG1neTVoZi95Wm1tZVRWYW5EeEwxZloxSTNLZDJFQStVOGd2SnF3U0F3U004bmIrLzYrQVVsZ21NanlkZGo1RmJ2MXVESHF6YVRKKzdjSXlNLzMvMy9sSzEvNXlsZSs4cFd2Zk9VclgvbktWNzd5bGE5ODVTdGYrY3BYdnZLVnIzemxLMS81eWxlKzhwV3ZmT1VyWC9uS1Y3N3lsYTk4NVN0ZitjcFh2dktWcjN6bEsxLzV5bGUrOHBXdmZPVXJYL25LVjc3eWxhOTg1U3RmK2NwWHZ2S1ZyM3psSzEvNXlsZSs4cFd2Zk9VclgvbktWNzd5bGE5ODVTdGYrY3BYdnZLVnIzemxLMS81eWxlKzhwV3ZmT1VyWC9uS1Y3N3lsYTk4NVN0ZitjcFh2dktWcjN6bEsxLzV5bGUrOGhXQS93ZmRtaG1aZHltbTl3QUFNaUZwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtDang0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNQzFqTURZd0lEWXhMakV6TkRjM055d2dNakF4TUM4d01pOHhNaTB4Tnpvek1qb3dNQ0FnSUNBZ0lDQWdJajRLSUNBZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0FnSUNBZ1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCR2FYSmxkMjl5YTNNZ1ExTTFJREV4TGpBdU1DNDBPRFFnVjJsdVpHOTNjend2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TkMwd09DMHdORlF4T0RvME9Eb3hNMW84TDNodGNEcERjbVZoZEdWRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMXZaR2xtZVVSaGRHVStNakF4TkMwd09DMHdORlF4T0RvMU16bzFNMW84TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNEtJQ0FnSUNBZ1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJajRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1Nm1pbURBQUFBWTBsRVFWUVlsYVdSUVE2QUlBd0VwNEFhLy85YU5WSXZhSnBTdUxpWERjdUVMU0NxU2lBRnhJZHBBRnFmd3VLOGc3dU5sdVVJUGdNWTRHNStBSWdPYmhncEFjWFVDckMyOVFic1pzU2x0Q283MjF0ZFRaYUJLbi9mK1hJTm4yWW5KOXpIUEN3UkhCUDc5aUh6QUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBQThTVVJCVkJpVlkvei8vejhEQVFCWHdJSXVnQSt3SUxFWkNabk1SSVNCTUVNWWlWRU1CNE5JTWN5M3VJSVBMcytDUXdJclFGZU1MYXpoQmdBQTR2NE1GcEVTdzlBQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:bitmap_flixel_addons_transition__TransitionFade_GraphicDiagonalGradient", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FDQUlBQUFCTVhQYWNBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBRHZzYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMalV0WXpBeU1TQTNPUzR4TlRVM056SXNJREl3TVRRdk1ERXZNVE10TVRrNk5EUTZNREFnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZlRzF3VFUwOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXRiUzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25OMFJYWjBQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2YzFSNWNHVXZVbVZ6YjNWeVkyVkZkbVZ1ZENNaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenAwYVdabVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM1JwWm1Zdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WlhocFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzlsZUdsbUx6RXVNQzhpUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMGIzSlViMjlzUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTBJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TkMwd09DMHhPVlF4TmpvME5qb3lOUzB3TlRvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBqSXdNVFF0TURndE1UbFVNVGM2TURBNk16QXRNRFU2TURBOEwzaHRjRHBOWlhSaFpHRjBZVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTBMVEE0TFRFNVZERTNPakF3T2pNd0xUQTFPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yTnpnNVlUUmlPUzAwTURJNUxUUmpOR1F0WVdJM1ppMDNZMlEwTVRSbU5HUmpabUk4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG1Ga2IySmxPbVJ2WTJsa09uQm9iM1J2YzJodmNEbzBNVFpsT0RrNU9TMHlOMlZoTFRFeFpUUXRPR00xWVMxak9XVTRZV1JoTVRKak9XUThMM2h0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEcG1NMkV3TVdKbE1pMHlZVGRoTFdGa05EY3RZV1ExWlMwM05ETTJPVGd6WWpaa1pEWThMM2h0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9raHBjM1J2Y25rK0NpQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNlUyVnhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajVqY21WaGRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwcGJuTjBZVzVqWlVsRVBuaHRjQzVwYVdRNlpqTmhNREZpWlRJdE1tRTNZUzFoWkRRM0xXRmtOV1V0TnpRek5qazRNMkkyWkdRMlBDOXpkRVYyZERwcGJuTjBZVzVqWlVsRVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmQyaGxiajR5TURFMExUQTRMVEU1VkRFMk9qUTJPakkxTFRBMU9qQXdQQzl6ZEVWMmREcDNhR1Z1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TkNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbVF5WXpCa09UZzRMVE5sTm1JdE9UVTBaaTFoWm1JNExXUXdOamMzWlRrMllUQTVNVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOQzB3T0MweE9WUXhOam8wTmpveU5TMHdOVG93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UUWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WTJoaGJtZGxaRDR2UEM5emRFVjJkRHBqYUdGdVoyVmtQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtjMkYyWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yTnpnNVlUUmlPUzAwTURJNUxUUmpOR1F0WVdJM1ppMDNZMlEwTVRSbU5HUmpabUk4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFF0TURndE1UbFVNVGM2TURBNk16QXRNRFU2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTBJQ2hYYVc1a2IzZHpLVHd2YzNSRmRuUTZjMjltZEhkaGNtVkJaMlZ1ZEQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21Ob1lXNW5aV1ErTHp3dmMzUkZkblE2WTJoaGJtZGxaRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ1BDOTRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBOFpHTTZabTl5YldGMFBtbHRZV2RsTDNCdVp6d3ZaR002Wm05eWJXRjBQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0elBDOXdhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tsRFExQnliMlpwYkdVK2MxSkhRaUJKUlVNMk1UazJOaTB5TGpFOEwzQm9iM1J2YzJodmNEcEpRME5RY205bWFXeGxQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajR4UEM5MGFXWm1Pazl5YVdWdWRHRjBhVzl1UGdvZ0lDQWdJQ0FnSUNBOGRHbG1aanBZVW1WemIyeDFkR2x2Ymo0M01qQXdNREF2TVRBd01EQThMM1JwWm1ZNldGSmxjMjlzZFhScGIyNCtDaUFnSUNBZ0lDQWdJRHgwYVdabU9sbFNaWE52YkhWMGFXOXVQamN5TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajR4TWpnOEwyVjRhV1k2VUdsNFpXeFlSR2x0Wlc1emFXOXVQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejRHbjBRVkFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBS3ZTVVJCVkhqYTdOdkpjc0pBREVWUlI4WC9mM0c3eVlLa3l3d0JUR3cvRFZlTFZJZXFMRGd2a215R3IvUDVQQld1ODIvMTY1cm5lZmx6ZWJpcDFscnZ2YlYyT1k5Znh5UGo4WEZZbmsvbzk5NXZBbGlsdnp5djFXK3RHZnBDL1htZURYMkovdmhEUTEraVgzY0V1ZEl2RjRBMy9Wbzd3SlYrdVIzZ1RiL1dDSEtyWDJJRStkU3ZNb0xjNnBmb0FQLzZtVHNnaEg3YUFLTG81eHhCSWZUVEx1RW8rams3SUp4K3FnQWk2dWNaUVVIMWszUkFSUDFSaHI1RVA4bU5XSFQ5MkIyUVFMLzNma0pmcFI4NGdCei8rMUVEU0tNZk1vQk0rdkVDU0tZZjdENGdtZjU0eE5BWDZzZm9nTVQ2QVFMSXJlOTlCQ1hXSDAvRTBKZm9lKytBSXZwT082Q0kvdVVKR3ZvcWZZOGRVRTNmVndBRjlSMk5vSnI2WGdJb3ErL2lNclN5dmo2QTR2cmlFWVQrTkUyR3ZsQmZGZ0Q2ZzhMUUYrb0xBa0QvQnNUUUYrb2ZHZ0Q2RDFrTWZhSCtRUUdnL3dUSDBCZnE3eDRBK2krSkRIMmgvbzRCb1A4bWxLRXYxTjhsQVBSWGNSbjZRdjJOQTBEL0F6UkRYNmkvV1FEb2YweG42QXYxTndnQS9YOENHdnBDL1g4RmdQNG02OVBRRitwL0dBRDZHOTQ4R2ZwQy9kVUJvTC81UzJlR3ZsQi9SUURvNy9UR2lhRXYxSDhyQVBSM2ZkdmMwQmZxdndnQS9RTStOR1hvQy9YL0RBRDl3ejR5YStnTDlSOEVnUDdCWDVndzlJWDZWd0dnUHluSzBCZnEvd1NBL3FRclEzK1NscUd2RHdCOVpRRDl1dEJYQm9DK01nRDBsUUdncnd3QWZXVUE2RHZxQVBTVkhZQytzZ1BRVjNZQStsNUdFUHJLRVlTK2NnU2g3eWdBOUpVQm9LOE1BUDNqNjNSUlJsOThGWVMrY2dTaHJ3d0FmUzlMR0gxbEFPaUxkd0Q2NGgyQXZvc1JoTDV5QktFdkcwSG82M2NBK3ZvN1lmVEZIWUMraXlXTXZuSUpveThlUWVnclJ4RDZ5aEdFdnBjZGdMN2Z5MUQwbFplaDZPOVVwM3YwNSs1RC8vNHdsRy95R0RHZy84bDl3RHY2eTY5YW9yK3F2Z2NBK3hBWW83UTYySThBQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "__ASSET__:sound_flixel_addons_text_TypeSound", data : "T2dnUwACAAAAAAAAAACBPwAAAAAAAD99658BHgF2b3JiaXMAAAAAAUSsAAAAAAAAgLsAAAAAAAC4AU9nZ1MAAAAAAAAAAAAAgT8AAAEAAAA8HKMNDy3/////////////////MgN2b3JiaXMdAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAwNzA2MjIAAAAAAQV2b3JiaXMfQkNWAQAAAQAYY1QpRplS0kqJGXOUMUaZYpJKiaWEFkJInXMUU6k515xrrLm1IIQQGlNQKQWZUo5SaRljkCkFmVIQS0kldBI6J51jEFtJwdaYa4tBthyEDZpSTCnElFKKQggZU4wpxZRSSkIHJXQOOuYcU45KKEG4nHOrtZaWY4updJJK5yRkTEJIKYWSSgelU05CSDWW1lIpHXNSUmpB6CCEEEK2IIQNgtCQVQAAAQDAQBAasgoAUAAAEIqhGIoChIasAgAyAAAEoCiO4iiOIzmSY0kWEBqyCgAAAgAQAADAcBRJkRTJsSRL0ixL00RRVX3VNlVV9nVd13Vd13UgNGQVAAABAEBIp5mlGiDCDGQYCA1ZBQAgAAAARijCEANCQ1YBAAABAABiKDmIJrTmfHOOg2Y5aCrF5nRwItXmSW4q5uacc845J5tzxjjnnHOKcmYxaCa05pxzEoNmKWgmtOacc57E5kFrqrTmnHPGOaeDcUYY55xzmrTmQWo21uaccxa0pjlqLsXmnHMi5eZJbS7V5pxzzjnnnHPOOeecc6oXp3NwTjjnnHOi9uZabkIX55xzPhmne3NCOOecc84555xzzjnnnHOC0JBVAAAQAABBGDaGcacgSJ+jgRhFiGnIpAfdo8MkaAxyCqlHo6ORUuoglFTGSSmdIDRkFQAACAAAIYQUUkghhRRSSCGFFFKIIYYYYsgpp5yCCiqppKKKMsoss8wyyyyzzDLrsLPOOuwwxBBDDK20EktNtdVYY62555xrDtJaaa211koppZRSSikIDVkFAIAAABAIGWSQQUYhhRRSiCGmnHLKKaigAkJDVgEAgAAAAgAAADzJc0RHdERHdERHdERHdETHczxHlERJlERJtEzL1ExPFVXVlV1b1mXd9m1hF3bd93Xf93Xj14VhWZZlWZZlWZZlWZZlWZZlWYLQkFUAAAgAAIAQQgghhRRSSCGlGGPMMeegk1BCIDRkFQAACAAgAAAAwFEcxXEkR3IkyZIsSZM0S7M8zdM8TfREURRN01RFV3RF3bRF2ZRN13RN2XRVWbVdWbZt2dZtX5Zt3/d93/d93/d93/d93/d1HQgNWQUASAAA6EiOpEiKpEiO4ziSJAGhIasAABkAAAEAKIqjOI7jSJIkSZakSZ7lWaJmaqZneqqoAqEhqwAAQAAAAQAAAAAAKJriKabiKaLiOaIjSqJlWqKmaq4om7Lruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7rui4QGrIKAJAAANCRHMmRHEmRFEmRHMkBQkNWAQAyAAACAHAMx5AUybEsS9M8zdM8TfRET/RMTxVd0QVCQ1YBAIAAAAIAAAAAADAkw1IsR3M0SZRUS7VUTbVUSxVVT1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTVN0zRNIDRkJQAABADAYo3B5SAhJSXl3hDCEJOeMSYhtV4hBJGS3jEGFYOeMqIMct5C4xCDHggNWREARAEAAMYgxxBzyDlHqZMSOeeodJQa5xyljlJnKcWYYs0oldhSrI1zjlJHraOUYiwtdpRSjanGAgAAAhwAAAIshEJDVgQAUQAAhDFIKaQUYow5p5xDjCnnmHOGMeYcc44556B0UirnnHROSsQYc445p5xzUjonlXNOSiehAACAAAcAgAALodCQFQFAnACAQZI8T/I0UZQ0TxRFU3RdUTRd1/I81fRMU1U90VRVU1Vt2VRVWZY8zzQ901RVzzRV1VRVWTZVVZZFVdVt03V123RV3ZZt2/ddWxZ2UVVt3VRd2zdV1/Zd2fZ9WdZ1Y/I8VfVM03U903Rl1XVtW3VdXfdMU5ZN15Vl03Vt25VlXXdl2fc103Rd01Vl2XRd2XZlV7ddWfZ903WF35VlX1dlWRh2XfeFW9eV5XRd3VdlVzdWWfZ9W9eF4dZ1YZk8T1U903RdzzRdV3VdX1dd19Y105Rl03Vt2VRdWXZl2fddV9Z1zzRl2XRd2zZdV5ZdWfZ9V5Z13XRdX1dlWfhVV/Z1WdeV4dZt4Tdd1/dVWfaFV5Z14dZ1Ybl1XRg+VfV9U3aF4XRl39eF31luXTiW0XV9YZVt4VhlWTl+4ViW3feVZXRdX1ht2RhWWRaGX/id5fZ943h1XRlu3efMuu8Mx++k+8rT1W1jmX3dWWZfd47hGDq/8OOpqq+brisMpywLv+3rxrP7vrKMruv7qiwLvyrbwrHrvvP8vrAso+z6wmrLwrDatjHcvm4sv3Acy2vryjHrvlG2dXxfeArD83R1XXlmXcf2dXTjRzh+ygAAgAEHAIAAE8pAoSErAoA4AQCPJImiZFmiKFmWKIqm6LqiaLqupGmmqWmeaVqaZ5qmaaqyKZquLGmaaVqeZpqap5mmaJqua5qmrIqmKcumasqyaZqy7LqybbuubNuiacqyaZqybJqmLLuyq9uu7Oq6pFmmqXmeaWqeZ5qmasqyaZquq3meanqeaKqeKKqqaqqqraqqLFueZ5qa6KmmJ4qqaqqmrZqqKsumqtqyaaq2bKqqbbuq7Pqybeu6aaqybaqmLZuqatuu7OqyLNu6L2maaWqeZ5qa55mmaZqybJqqK1uep5qeKKqq5ommaqqqLJumqsqW55mqJ4qq6omea5qqKsumatqqaZq2bKqqLZumKsuubfu+68qybqqqbJuqauumasqybMu+78qq7oqmKcumqtqyaaqyLduy78uyrPuiacqyaaqybaqqLsuybRuzbPu6aJqybaqmLZuqKtuyLfu6LNu678qub6uqrOuyLfu67vqucOu6MLyybPuqrPq6K9u6b+sy2/Z9RNOUZVM1bdtUVVl2Zdn2Zdv2fdE0bVtVVVs2TdW2ZVn2fVm2bWE0Tdk2VVXWTdW0bVmWbWG2ZeF2Zdm3ZVv2ddeVdV/XfePXZd3murLty7Kt+6qr+rbu+8Jw667wCgAAGHAAAAgwoQwUGrISAIgCAACMYYwxCI1SzjkHoVHKOecgZM5BCCGVzDkIIZSSOQehlJQy5yCUklIIoZSUWgshlJRSawUAABQ4AAAE2KApsThAoSErAYBUAACD41iW55miatqyY0meJ4qqqaq27UiW54miaaqqbVueJ4qmqaqu6+ua54miaaqq6+q6aJqmqaqu67q6Lpqiqaqq67qyrpumqqquK7uy7Oumqqqq68quLPvCqrquK8uybevCsKqu68qybNu2b9y6ruu+7/vCka3rui78wjEMRwEA4AkOAEAFNqyOcFI0FlhoyEoAIAMAgDAGIYMQQgYhhJBSSiGllBIAADDgAAAQYEIZKDRkRQAQJwAAGEMppJRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkgppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkqppJRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoplVJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSCgCQinAAkHowoQwUGrISAEgFAACMUUopxpyDEDHmGGPQSSgpYsw5xhyUklLlHIQQUmktt8o5CCGk1FJtmXNSWosx5hgz56SkFFvNOYdSUoux5ppr7qS0VmuuNedaWqs115xzzbm0FmuuOdecc8sx15xzzjnnGHPOOeecc84FAOA0OACAHtiwOsJJ0VhgoSErAYBUAAACGaUYc8456BBSjDnnHIQQIoUYc845CCFUjDnnHHQQQqgYc8w5CCGEkDnnHIQQQgghcw466CCEEEIHHYQQQgihlM5BCCGEEEooIYQQQgghhBA6CCGEEEIIIYQQQgghhFJKCCGEEEIJoZRQAABggQMAQIANqyOcFI0FFhqyEgAAAgCAHJagUs6EQY5Bjw1BylEzDUJMOdGZYk5qMxVTkDkQnXQSGWpB2V4yCwAAgCAAIMAEEBggKPhCCIgxAABBiMwQCYVVsMCgDBoc5gHAA0SERACQmKBIu7iALgNc0MVdB0IIQhCCWBxAAQk4OOGGJ97whBucoFNU6iAAAAAAAAwA4AEA4KAAIiKaq7C4wMjQ2ODo8AgAAAAAABYA+AAAOD6AiIjmKiwuMDI0Njg6PAIAAAAAAAAAAICAgAAAAAAAQAAAAICAT2dnUwAEywgAAAAAAACBPwAAAgAAAEvHOpMSHx4YHR4fHR0fHR8dHxscHyCMdGFB0n7LSWA/69mku4y/xyqb05UXpt9j4++xyjbkLYRlwfH9tQ5gNdXp0r2yOT3+Hhuv2pwef4+NVzZ7BlxfQeauLwBrNQ6jQerWBOSFukypael0B1RXWpH+8AY4MtNmXxdxxfojRWo/MlQvVb95OkwIhGnh8QfMV4DF/odWOzoduyueL3qxkqwGml49YQ2UfGMZgg9WPQesn1oDETuuJMVjd+XsFyvJxdhdObYzBGTlxpVd5ZcghPF+Wv3Xxz749GzkUySZA4Q8B8IPZF0RzP31GogaX1XN3v9W//0XrkgwE2tmaoaaCgCM546U++2zINrM7am6db35KeybTAFV/2hp5m2rFgkAfGO4wb5sMoGFbznG6Ourf5RO4l9nT3l7k0uPLgBMX+DhC1ETwOcXW0kSAx6bO2zKvgEzo2LmH9Tn25oBhGFR0D48ElhUc9MJlc3p99j45nRlc/x9pnqvsyR0Y8Hh/rsD2Jvq69L9PTbP98J0ZXO6sjk9/h4bfzcKTGFO0IM1HcDo4Ot04lTsa9F9zV1ktyPsSKsJRFee6KY6BbCOf1ZEQyWtq5fvw+f9pdGZkKKbD2Rh4dGDVSUQr857TZzOl1wUjd1drIzuisZSL9IjRQdUXZnAB6ucA+E+luXEabI29uJKysVKcrGS7FcSU+ulATqaPc9SVDGqU4QyxPz0GGOMdM7BnnMAYCmSxLAe/4bHSrd/y1CHsst+arXm+xkV6h2Rqd5VO8Drm/CkrBUf1tdZGlz1d9cRGajrI7y9yfr66jqvKcC6vr1x3lLW1tfX120AeHvrdRuAt7c3AdZs4Ly9vb3Fwt/hoABw8Ly9vb15AOftDQA4A+D2DgMA"},{ name : "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicFlixel", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUF3QUFBQU1DQVlBQUFCV2RWem5BQUFBQkdkQlRVRUFBTEdPZlB0Umt3QUFBQ0JqU0ZKTkFBQ0hEd0FBakE4QUFQMVNBQUNCUUFBQWZYa0FBT21MQUFBODVRQUFHY3h6UElWM0FBQUtPV2xEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBRWpIblpaM1ZGVFhGb2ZQdlhkNm9jMHdBbEtHM3J2QUFOSjdrMTVGWVpnWllDZ0REak0wc1NHaUFoRkZSSm9pU0ZERWdORlFKRlpFc1JBVVZMQUhKQWdvTVJoRlZDeHZSdGFMcnF5ODkvTHkrK09zYisyejk3bjc3TDNQV2hjQWtxY3ZsNWNHU3dHUXloUHdnenljNlJHUlVYVHNBSUFCSG1DQUtRQk1Wa2E2WDdCN0NCREp5ODJGbmlGeUFsOEVBZkI2V0x3Q2NOUFFNNEJPQi8rZnBGbnBmSUhvbUFBUm03TTVHU3dSRjRnNEpVdVFMcmJQaXBnYWx5eG1HQ1ZtdmloQkVjdUpPV0dSRFQ3N0xMS2ptTm1wUExhSXhUbW5zMVBaWXU0VjhiWk1JVWZFaUsrSUN6TzVuQ3dSM3hLeFJvb3dsU3ZpTitMWVZBNHpBd0FVU1d3WGNGaUpJallSTVlrZkV1UWk0dVVBNEVnSlgzSGNWeXpnWkF2RWwzSkpTOC9oY3hNU0JYUWRsaTdkMU5xYVFmZmtaS1Z3QkFMREFDWXJtY2xuMDEzU1V0T1p2QndBRnUvOFdUTGkydEpGUmJZMHRiYTBORFF6TXYycVVQOTE4MjlLM050RmVobjR1V2NRcmYrTDdhLzgwaG9BWU15SmFyUHppeTJ1Q29ET0xRREkzZnRpMHpnQWdLU29ieDNYdjdvUFRUd3ZpUUpCdW8yeGNWWldsaEdYd3pJU0YvUVAvVStIdjZHdnZtY2tQdTZQOHRCZE9mRk1ZWXFBTHE0Ykt5MGxUY2luWjZReldSeTY0WitIK0I4SC9uVWVCa0djZUE2Znd4TkZoSW1tak10TEVMV2J4K1lLdUdrOE9wZjNuNXI0RDhQK3BNVzVGb25TK0JGUVk0eUExSFVxUUg3dEJ5Z0tFU0RSKzhWZC82TnZ2dmd3SUg1NTRTcVRpM1AvN3pmOVo4R2w0aVdEbS9BNXppVW9oTTRTOGpNWDk4VFBFcUFCQVVnQ0twQUh5a0FkNkFCRFlBYXNnQzF3Qkc3QUcvaURFQkFKVmdNV1NBU3BnQSt5UUI3WUJBcEJNZGdKOW9CcVVBY2FRVE5vQmNkQkp6Z0Z6b05MNEJxNEFXNkQrMkFVVElCbllCYThCZ3NRQkdFaE1rU0I1Q0VWU0JQU2g4d2dCbVFQdVVHK1VCQVVDY1ZDQ1JBUEVrSjUwR2FvR0NxRHFxRjZxQm42SGpvSm5ZZXVRSVBRWFdnTW1vWitoOTdCQ0V5Q3FiQVNyQVVid3d6WUNmYUJRK0JWY0FLOEJzNkZDK0FkY0NYY0FCK0ZPK0R6OERYNE5qd0tQNFBuRUlBUUVScWlpaGdpRE1RRjhVZWlrSGlFajZ4SGlwQUtwQUZwUmJxUlB1UW1Nb3JNSUc5UkdCUUZSVWNab214Um5xaFFGQXUxQnJVZVZZS3FSaDFHZGFCNlVUZFJZNmhaMUVjMEdhMkkxa2Zib0wzUUVlZ0VkQmE2RUYyQmJrSzNveStpYjZNbjBLOHhHQXdObzQyeHduaGlJakZKbUxXWUVzdytUQnZtSEdZUU00Nlp3Mkt4OGxoOXJCM1dIOHZFQ3JDRjJDcnNVZXhaN0JCMkF2c0dSOFNwNE14dzdyZ29IQStYajZ2QUhjR2R3UTNoSm5FTGVDbThKdDRHNzQ5bjQzUHdwZmhHZkRmK09uNEN2MENRSm1nVDdBZ2hoQ1RDSmtJbG9aVndrZkNBOEpKSUpLb1JyWW1CUkM1eEk3R1NlSXg0bVRoR2ZFdVNJZW1SWEVqUkpDRnBCK2tRNlJ6cEx1a2xtVXpXSWp1U284Z0M4ZzV5TS9rQytSSDVqUVJGd2tqQ1M0SXRzVUdpUnFKRFlraml1U1JlVWxQU1NYSzFaSzVraGVRSnlldVNNMUo0S1MwcEZ5bW0xSHFwR3FtVFVpTlNjOUlVYVZOcGYrbFU2UkxwSTlKWHBLZGtzREphTW00eWJKa0NtWU15RjJUR0tRaEZuZUpDWVZFMlV4b3BGeWtUVkF4Vm0rcEZUYUlXVTcrakRsQm5aV1ZrbDhtR3lXYkwxc2llbGgybElUUXRtaGN0aFZaS08wNGJwcjFib3JURWFRbG55ZllsclV1R2xzekxMWlZ6bE9QSUZjbTF5ZDJXZXlkUGwzZVRUNWJmSmQ4cC8xQUJwYUNuRUtpUXBiQmY0YUxDekZMcVV0dWxyS1ZGUzQ4dnZhY0lLK29wQmltdVZUeW8ySzg0cDZTczVLR1VybFNsZEVGcFJwbW03S2ljcEZ5dWZFWjVXb1dpWXEvQ1ZTbFhPYXZ5bEM1TGQ2S24wQ3ZwdmZSWlZVVlZUMVdoYXIzcWdPcUNtclphcUZxK1dwdmFRM1dDT2tNOVhyMWN2VWQ5VmtORncwOGpUNk5GNDU0bVhwT2htYWk1VjdOUGMxNUxXeXRjYTZ0V3A5YVV0cHkybDNhdWRvdjJBeDJ5am9QT0dwMEduVnU2R0YyR2JyTHVQdDBiZXJDZWhWNmlYbzNlZFgxWTMxS2ZxNzlQZjlBQWJXQnR3RE5vTUJneEpCazZHV1lhdGhpT0dkR01mSTN5alRxTm5odHJHRWNaN3pMdU0vNW9ZbUdTWXRKb2N0OVV4dFRiTk4rMDIvUjNNejB6bGxtTjJTMXpzcm03K1Fiekx2TVh5L1NYY1pidFgzYkhnbUxoWjdIVm9zZmlnNldWSmQreTFYTGFTc01xMXFyV2FvUkJaUVF3U2hpWHJkSFd6dFlickU5WnY3V3h0QkhZSExmNXpkYlFOdG4yaU8zVWN1M2xuT1dOeThmdDFPeVlkdlYyby9aMCsxajdBL2FqRHFvT1RJY0doOGVPNm81c3h5YkhTU2RkcHlTbm8wN1BuVTJjK2M3dHp2TXVOaTdyWE02NUlxNGVya1d1QTI0eWJxRnUxVzZQM05YY0U5eGIzR2M5TER6V2VwenpSSHY2ZU83eUhQRlM4bUo1Tlh2TmVsdDVyL1B1OVNINUJQdFUrenoyMWZQbCszYjd3WDdlZnJ2OUhxelFYTUZiMGVrUC9MMzhkL3MvRE5BT1dCUHdZeUFtTUNDd0p2QkprR2xRWGxCZk1DVTRKdmhJOE9zUTU1RFNrUHVoT3FIQzBKNHd5YkRvc09hdytYRFg4TEx3MFFqamlIVVIxeUlWSXJtUlhWSFlxTENvcHFpNWxXNHI5NnljaUxhSUxvd2VYcVc5S252VmxkVUtxMU5XbjQ2UmpHSEduSWhGeDRiSEhvbDl6L1JuTmpEbjRyemlhdU5tV1M2c3ZheG5iRWQyT1h1YVk4Y3A0MHpHMjhXWHhVOGwyQ1hzVHBoT2RFaXNTSnpodW5DcnVTK1NQSlBxa3VhVC9aTVBKWDlLQ1U5cFM4V2x4cWFlNU1ud2tubTlhY3BwMldtRDZmcnBoZW1qYTJ6VzdGa3p5L2ZoTjJWQUdhc3l1Z1JVMGM5VXYxQkh1RVU0bG1tZldaUDVKaXNzNjBTMmREWXZ1ejlITDJkN3ptU3VlKzYzYTFGcldXdDc4bFR6TnVXTnJYTmFWNzhlV2grM3ZtZUQrb2FDRFJNYlBUWWUza1RZbEx6cHAzeVQvTEw4VjV2RE4zY1hLQlZzTEJqZjRyR2xwVkNpa0Y4NHN0VjJhOTAyMURidXRvSHQ1dHVydG44c1loZGRMVFlwcmloK1g4SXF1ZnFONlRlVjMzemFFYjlqb05TeWRQOU96RTdlenVGZERyc09sMG1YNVphTjcvYmIzVkZPTHk4cWY3VW5acytWaW1VVmRYc0plNFY3Unl0OUs3dXFOS3AyVnIydlRxeStYZU5jMDFhcldMdTlkbjRmZTkvUWZzZjlyWFZLZGNWMTd3NXdEOXlwOTZqdmFOQnFxRGlJT1poNThFbGpXR1BmdDR4dm01c1Vtb3FiUGh6aUhSbzlISFM0dDltcXVmbUk0cEhTRnJoRjJESjlOUHJvamU5Y3YrdHFOV3l0YjZPMUZSOER4NFRIbm40ZisvM3djWi9qUFNjWUoxcC8wUHlodHAzU1h0UUJkZVIwekhZbWRvNTJSWFlObnZRKzJkTnQyOTMrbzlHUGgwNnBucW81TFh1NjlBemhUTUdaVDJkeno4NmRTejgzY3o3aC9IaFBUTS85Q3hFWGJ2VUc5ZzVjOUxsNCtaTDdwUXQ5VG4xbkw5dGRQblhGNXNySnE0eXJuZGNzcjNYMFcvUzMvMlR4VS91QTVVREhkYXZyWFRlc2IzUVBMaDg4TStRd2RQNm02ODFMdDd4dVhidTk0dmJnY09qd25aSG9rZEU3N0R0VGQxUHV2cmlYZVcvaC9zWUg2QWRGRDZVZVZqeFNmTlR3cys3UGJhT1dvNmZIWE1mNkh3Yy92ai9PR24vMlM4WXY3eWNLbnBDZlZFeXFURFpQbVUyZG1uYWZ2dkYwNWRPSlorblBGbVlLZjVYK3RmYTV6dk1mZm5QOHJYODJZbmJpQmYvRnA5OUxYc3EvUFBScTJhdWV1WUM1UjY5VFh5L01GNzJSZjNQNExlTnQzN3Z3ZDVNTFdlK3g3eXMvNkg3by91ano4Y0duMUUrZi9nVURtUFA4dXNUbzB3QUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJwMFJWaDBVMjltZEhkaGNtVUFVR0ZwYm5RdVRrVlVJSFl6TGpVdU1UQXc5SEtoQUFBQkxFbEVRVlFvVTJQNGY5RG9QeEkrRG1RNy9qOWt4QUFDWDlYOVZJRjRHUkQvQStML0lNeUFwZ0drK2QvSEE0WTdqcnE1emdJcStBbFRpRlBENTRPRy94MTNxLzJYWHFuKy80S3RPOWhVWkF5eTRTck1sbzlBeFhaQXhRdzdsY0JZY3BYYS96TU9LSnErZ1RTNGdaenhBYWpZRWtreFRKUFlHclgvSjV6Y1lMYjBNL3cvWXNUdzdJREJPclBkcW5DVFlZcGh0TWhhdGYrSFhGMi9BSjBtQVE0TjQ0REhDN21XZXVEVXdMQlQ5VC9yNGFYUFdNNys1bVN3ZHZ5dkJzUy9USDFlLytkYzdveEZrOXAvNW1NYi93TVZnM0FPU01NQ0lQNFB3aVorei85enJIUkEwZ1JTdkFtbUdFUS9BbW40RGRNQTFoVHcrRC83S3R2L0RMczBnSXEzSUNzR3MwRWF3S1lqWTZPUXUyK1lqMnk0QlhVR2lpWjBEVitBR3R1QVdCQ29tQldJazRINEFiSkdBSlFUU2ZzMmF1VnlBQUFBQUVsRlRrU3VRbUND"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorDefault", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJaMFJWaDBRM0psWVhScGIyNGdWR2x0WlFBd05TOHlPUzh4TnJ0VlFGa0FBQUFjZEVWWWRGTnZablIzWVhKbEFFRmtiMkpsSUVacGNtVjNiM0pyY3lCRFV6Ym92TEtNQUFBQUxrbEVRVlFZbFdQOC8vOC9BeGJ3bjRHQmdSRmRrQW1iU2x4Z2tDaG1ZWUI0Qmh2QUVHZGh3T0pyaG1FVUdnQjN1Z2NXZXB2bWtRQUFBQUJKUlU1RXJrSmdnZz09"}];
if(ArrayBuffer.prototype.slice == null) {
ArrayBuffer.prototype.slice = js_lib__$ArrayBuffer_ArrayBufferCompat.sliceImpl;
}
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Uint32Array(256);
lime_math_RGBA.__alpha16 = this1;
var _g = 0;
while(_g < 256) {
var i = _g++;
lime_math_RGBA.__alpha16[i] = Math.ceil(i * 257.00392156862745);
}
var array = null;
var vector = null;
var view = null;
var buffer = null;
var len = null;
var this1 = new Uint8Array(511);
lime_math_RGBA.__clamp = this1;
var _g = 0;
while(_g < 255) {
var i = _g++;
lime_math_RGBA.__clamp[i] = i;
}
var _g = 255;
var _g1 = 511;
while(_g < _g1) {
var i = _g++;
lime_math_RGBA.__clamp[i] = 255;
}
lime_system_CFFI.available = false;
lime_system_CFFI.enabled = false;
lime_utils_Log.level = 3;
if(typeof console == "undefined") {
console = {}
}
if(console.log == null) {
console.log = function() {
};
}
openfl_display__$internal_CanvasGraphics.hitTestCanvas = typeof(window) != "undefined" ? window.document.createElement("canvas") : null;
openfl_display__$internal_CanvasGraphics.hitTestContext = typeof(window) != "undefined" ? openfl_display__$internal_CanvasGraphics.hitTestCanvas.getContext("2d") : null;
openfl_ui_Multitouch.maxTouchPoints = 2;
openfl_ui_Multitouch.supportedGestures = null;
openfl_ui_Multitouch.supportsGestureEvents = false;
openfl_ui_Multitouch.inputMode = 2;
APIStuff.API = "";
APIStuff.EncKey = "";
flixel_math_FlxRect._pool = new flixel_util_FlxPool_$flixel_$math_$FlxRect(flixel_math_FlxRect);
flixel_FlxObject.defaultPixelPerfectPosition = false;
flixel_FlxObject.SEPARATE_BIAS = 4;
flixel_FlxObject.LEFT = 1;
flixel_FlxObject.RIGHT = 16;
flixel_FlxObject.UP = 256;
flixel_FlxObject.DOWN = 4096;
flixel_FlxObject.NONE = 0;
flixel_FlxObject.CEILING = 256;
flixel_FlxObject.FLOOR = 4096;
flixel_FlxObject.WALL = 17;
flixel_FlxObject.ANY = 4369;
flixel_FlxObject._firstSeparateFlxRect = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
flixel_FlxObject._secondSeparateFlxRect = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
AlphaCharacter.alphabet = "abcdefghijklmnopqrstuvwxyz";
AlphaCharacter.numbers = "1234567890";
AlphaCharacter.symbols = "|~#$%()*+-:;<=>@[]^_.,'!?";
openfl_Vector.__meta__ = { statics : { toNullVector : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_DisplayObject.__meta__ = { fields : { __cairo : { SuppressWarnings : ["checkstyle:Dynamic"]}, addEventListener : { SuppressWarnings : ["checkstyle:Dynamic"]}, removeEventListener : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_DisplayObject.__broadcastEvents = new haxe_ds_StringMap();
openfl_display_DisplayObject.__instanceCount = 0;
openfl_display_DisplayObject.__tempStack = new lime_utils_ObjectPool(function() {
return openfl_Vector.toObjectVector(null);
},function(stack) {
stack.set_length(0);
});
flixel_addons_transition_FlxTransitionableState.defaultTransIn = null;
flixel_addons_transition_FlxTransitionableState.defaultTransOut = null;
flixel_addons_transition_FlxTransitionableState.skipNextTransIn = false;
flixel_addons_transition_FlxTransitionableState.skipNextTransOut = false;
flixel_addons_ui_FlxUIState.static_tongue = null;
ChartingState.lastSection = 0;
Conductor.bpm = 100;
Conductor.crochet = 60 / Conductor.bpm * 1000;
Conductor.stepCrochet = Conductor.crochet / 4;
Conductor.offset = 0;
Conductor.safeFrames = 10;
Conductor.safeZoneOffset = Conductor.safeFrames / 60 * 1000;
Conductor.bpmChangeMap = [];
Highscore.songScores = new haxe_ds_StringMap();
openfl_text_Font.__fontByName = new haxe_ds_StringMap();
openfl_text_Font.__registeredFonts = [];
NGio.isLoggedIn = false;
NGio.scoreboardsLoaded = false;
NGio.scoreboardArray = [];
NGio.ngDataLoaded = new flixel_util__$FlxSignal_FlxSignal0();
NGio.ngScoresLoaded = new flixel_util__$FlxSignal_FlxSignal0();
NGio.GAME_VER = "";
NGio.GAME_VER_NUMS = "";
NGio.gotOnlineVer = false;
Note.swagWidth = 112.;
Note.PURP_NOTE = 0;
Note.GREEN_NOTE = 2;
Note.BLUE_NOTE = 1;
Note.RED_NOTE = 3;
PlayState.curStage = "";
PlayState.isStoryMode = false;
PlayState.storyWeek = 0;
PlayState.storyPlaylist = [];
PlayState.storyDifficulty = 1;
PlayState.campaignScore = 0;
PlayState.daPixelZoom = 6;
PlayerSettings.numPlayers = 0;
PlayerSettings.numAvatars = 0;
PlayerSettings.onAvatarAdd = new flixel_util__$FlxSignal_FlxSignal1();
PlayerSettings.onAvatarRemove = new flixel_util__$FlxSignal_FlxSignal1();
Section.COPYCAT = 0;
StoryMenuState.weekUnlocked = [true,true,true,true,true,true,true];
TitleState.initialized = false;
TitleState.soundExt = ".mp3";
openfl_display_Shader.__meta__ = { fields : { glProgram : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
Xml.Element = 0;
Xml.PCData = 1;
Xml.CData = 2;
Xml.Comment = 3;
Xml.DocType = 4;
Xml.ProcessingInstruction = 5;
Xml.Document = 6;
flixel_math_FlxPoint._pool = new flixel_util_FlxPool_$flixel_$math_$FlxPoint(flixel_math_FlxPoint);
lime_math_Matrix3.__identity = new lime_math_Matrix3();
openfl_geom_Matrix.__meta__ = { fields : { equals : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, to3DString : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, toMozString : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_geom_Matrix.__identity = new openfl_geom_Matrix();
openfl_geom_Matrix.__pool = new lime_utils_ObjectPool(function() {
return new openfl_geom_Matrix();
},function(m) {
m.identity();
});
openfl_geom_Matrix.__matrix3 = new lime_math_Matrix3();
openfl_geom_ColorTransform.__pool = new lime_utils_ObjectPool(function() {
return new openfl_geom_ColorTransform();
},function(ct) {
ct.__identity();
});
flixel_FlxCamera.drawVertices = openfl_Vector.toFloatVector(null);
flixel_FlxCamera.trianglesSprite = new openfl_display_Sprite();
flixel_FlxCamera.renderPoint = (function($this) {
var $r;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
$r = point;
return $r;
}(this));
flixel_FlxCamera.renderRect = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
flixel_system_FlxVersion.sha = "";
flixel_math_FlxRandom._arrayFloatHelper = null;
flixel_math_FlxRandom.MULTIPLIER = 48271.0;
flixel_math_FlxRandom.MODULUS = 2147483647;
flixel_FlxG.autoPause = true;
flixel_FlxG.fixedTimestep = true;
flixel_FlxG.timeScale = 1;
flixel_FlxG.worldDivisions = 6;
flixel_FlxG.VERSION = new flixel_system_FlxVersion(4,8,1);
flixel_FlxG.elapsed = 0;
flixel_FlxG.maxElapsed = 0.1;
flixel_FlxG.scaleMode = new flixel_system_scaleModes_RatioScaleMode();
flixel_FlxG.worldBounds = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
flixel_FlxG.save = new flixel_util_FlxSave();
flixel_FlxG.random = new flixel_math_FlxRandom();
flixel_FlxG.swipes = [];
flixel_FlxG.html5 = new flixel_system_frontEnds_HTML5FrontEnd();
flixel_FlxG.inputs = new flixel_system_frontEnds_InputFrontEnd();
flixel_FlxG.console = new flixel_system_frontEnds_ConsoleFrontEnd();
flixel_FlxG.log = new flixel_system_frontEnds_LogFrontEnd();
flixel_FlxG.bitmapLog = new flixel_system_frontEnds_BitmapLogFrontEnd();
flixel_FlxG.watch = new flixel_system_frontEnds_WatchFrontEnd();
flixel_FlxG.debugger = new flixel_system_frontEnds_DebuggerFrontEnd();
flixel_FlxG.bitmap = new flixel_system_frontEnds_BitmapFrontEnd();
flixel_FlxG.cameras = new flixel_system_frontEnds_CameraFrontEnd();
flixel_FlxG.initialWidth = 0;
flixel_FlxG.initialHeight = 0;
flixel_FlxG.initialZoom = 0;
flixel_FlxG.signals = new flixel_system_frontEnds_SignalFrontEnd();
flixel_addons_text_TypeSound.resourceName = "__ASSET__:sound_flixel_addons_text_TypeSound";
flixel_text_FlxText.VERTICAL_GUTTER = 4;
flixel_addons_text_FlxTypeText.helperString = "";
openfl_display_BitmapData.__meta__ = { fields : { image : { SuppressWarnings : ["checkstyle:Dynamic"]}, __framebufferContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, __indexBufferContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, __surface : { SuppressWarnings : ["checkstyle:Dynamic"]}, __textureContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, __vertexBufferContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, compare : { SuppressWarnings : ["checkstyle:Dynamic"]}, getSurface : { SuppressWarnings : ["checkstyle:Dynamic"]}, __fromImage : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_BitmapData.VERTEX_BUFFER_STRIDE = 14;
openfl_display_BitmapData.__supportsBGRA = null;
openfl_display_BitmapData.__tempVector = new lime_math_Vector2();
flixel_addons_transition_GraphicTransTileCircle.resourceType = "image/png";
flixel_addons_transition_GraphicTransTileCircle.resourceName = "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileCircle";
flixel_addons_transition_GraphicTransTileDiamond.resourceType = "image/png";
flixel_addons_transition_GraphicTransTileDiamond.resourceName = "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileDiamond";
flixel_addons_transition_GraphicTransTileSquare.resourceType = "image/png";
flixel_addons_transition_GraphicTransTileSquare.resourceName = "__ASSET__:bitmap_flixel_addons_transition_GraphicTransTileSquare";
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.resourceType = "image/png";
flixel_addons_transition__$TransitionFade_GraphicDiagonalGradient.resourceName = "__ASSET__:bitmap_flixel_addons_transition__TransitionFade_GraphicDiagonalGradient";
flixel_addons_ui_Anchor.LEFT = "left";
flixel_addons_ui_Anchor.RIGHT = "right";
flixel_addons_ui_Anchor.TOP = "top";
flixel_addons_ui_Anchor.BOTTOM = "bottom";
flixel_addons_ui_Anchor.CENTER = "center";
flixel_addons_ui_Anchor.UNKNOWN = "unknown";
flixel_addons_ui_FlxInputText.NO_FILTER = 0;
flixel_addons_ui_FlxInputText.ONLY_ALPHA = 1;
flixel_addons_ui_FlxInputText.ONLY_NUMERIC = 2;
flixel_addons_ui_FlxInputText.ONLY_ALPHANUMERIC = 3;
flixel_addons_ui_FlxInputText.CUSTOM_FILTER = 4;
flixel_addons_ui_FlxInputText.ALL_CASES = 0;
flixel_addons_ui_FlxInputText.UPPER_CASE = 1;
flixel_addons_ui_FlxInputText.LOWER_CASE = 2;
flixel_addons_ui_FlxInputText.BACKSPACE_ACTION = "backspace";
flixel_addons_ui_FlxInputText.DELETE_ACTION = "delete";
flixel_addons_ui_FlxInputText.ENTER_ACTION = "enter";
flixel_addons_ui_FlxInputText.INPUT_ACTION = "input";
flixel_addons_ui_FlxUISprite.RESIZE_RATIO_X = 0;
flixel_addons_ui_FlxUISprite.RESIZE_RATIO_Y = 1;
flixel_addons_ui_FlxUISprite.RESIZE_RATIO_UNKNOWN = -1;
openfl_geom_Point.__pool = new lime_utils_ObjectPool(function() {
return new openfl_geom_Point();
},function(p) {
p.setTo(0,0);
});
openfl_geom_Rectangle.__pool = new lime_utils_ObjectPool(function() {
return new openfl_geom_Rectangle();
},function(r) {
r.setTo(0,0,0,0);
});
flixel_addons_ui_FlxUI9SliceSprite.bitmapsCreated = 0;
flixel_addons_ui_FlxUI9SliceSprite.useSectionCache = true;
flixel_addons_ui_FlxUI9SliceSprite._staticPoint = new openfl_geom_Point();
flixel_addons_ui_FlxUI9SliceSprite._staticRect = new openfl_geom_Rectangle();
flixel_addons_ui_FlxUI9SliceSprite._staticRect2 = new openfl_geom_Rectangle();
flixel_addons_ui_FlxUI9SliceSprite._staticPointZero = new openfl_geom_Point(0,0);
flixel_addons_ui_FlxUI9SliceSprite._staticMatrix = new openfl_geom_Matrix();
flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2 = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
flixel_addons_ui_FlxUI9SliceSprite.TILE_NONE = 0;
flixel_addons_ui_FlxUI9SliceSprite.TILE_BOTH = 17;
flixel_addons_ui_FlxUI9SliceSprite.TILE_H = 16;
flixel_addons_ui_FlxUI9SliceSprite.TILE_V = 1;
flixel_addons_ui_FlxUIAssets.IMG_BUTTON = "flixel/flixel-ui/img/button.png";
flixel_addons_ui_FlxUIAssets.IMG_BUTTON_ARROW_DOWN = "flixel/flixel-ui/img/button_arrow_down.png";
flixel_addons_ui_FlxUIAssets.IMG_BUTTON_ARROW_LEFT = "flixel/flixel-ui/img/button_arrow_left.png";
flixel_addons_ui_FlxUIAssets.IMG_BUTTON_ARROW_RIGHT = "flixel/flixel-ui/img/button_arrow_right.png";
flixel_addons_ui_FlxUIAssets.IMG_BUTTON_ARROW_UP = "flixel/flixel-ui/img/button_arrow_up.png";
flixel_addons_ui_FlxUIAssets.IMG_BUTTON_THIN = "flixel/flixel-ui/img/button_thin.png";
flixel_addons_ui_FlxUIAssets.IMG_BUTTON_TOGGLE = "flixel/flixel-ui/img/button_toggle.png";
flixel_addons_ui_FlxUIAssets.IMG_BUTTON_SIZE = 18;
flixel_addons_ui_FlxUIAssets.IMG_CHECK_MARK = "flixel/flixel-ui/img/check_mark.png";
flixel_addons_ui_FlxUIAssets.IMG_CHECK_BOX = "flixel/flixel-ui/img/check_box.png";
flixel_addons_ui_FlxUIAssets.IMG_CHROME = "flixel/flixel-ui/img/chrome.png";
flixel_addons_ui_FlxUIAssets.IMG_CHROME_LIGHT = "flixel/flixel-ui/img/chrome_light.png";
flixel_addons_ui_FlxUIAssets.IMG_CHROME_FLAT = "flixel/flixel-ui/img/chrome_flat.png";
flixel_addons_ui_FlxUIAssets.IMG_CHROME_INSET = "flixel/flixel-ui/img/chrome_inset.png";
flixel_addons_ui_FlxUIAssets.IMG_RADIO = "flixel/flixel-ui/img/radio.png";
flixel_addons_ui_FlxUIAssets.IMG_RADIO_DOT = "flixel/flixel-ui/img/radio_dot.png";
flixel_addons_ui_FlxUIAssets.IMG_TAB = "flixel/flixel-ui/img/tab.png";
flixel_addons_ui_FlxUIAssets.IMG_TAB_BACK = "flixel/flixel-ui/img/tab_back.png";
flixel_addons_ui_FlxUIAssets.IMG_BOX = "flixel/flixel-ui/img/box.png";
flixel_addons_ui_FlxUIAssets.IMG_DROPDOWN = "flixel/flixel-ui/img/dropdown_mark.png";
flixel_addons_ui_FlxUIAssets.IMG_PLUS = "flixel/flixel-ui/img/plus_mark.png";
flixel_addons_ui_FlxUIAssets.IMG_MINUS = "flixel/flixel-ui/img/minus_mark.png";
flixel_addons_ui_FlxUIAssets.IMG_HILIGHT = "flixel/flixel-ui/img/hilight.png";
flixel_addons_ui_FlxUIAssets.IMG_INVIS = "flixel/flixel-ui/img/invis.png";
flixel_addons_ui_FlxUIAssets.IMG_SWATCH = "flixel/flixel-ui/img/swatch.png";
flixel_addons_ui_FlxUIAssets.IMG_TOOLTIP_ARROW = "flixel/flixel-ui/img/tooltip_arrow.png";
flixel_addons_ui_FlxUIAssets.IMG_FINGER_SMALL = "flixel/flixel-ui/img/finger_small.png";
flixel_addons_ui_FlxUIAssets.IMG_FINGER_BIG = "flixel/flixel-ui/img/finger_big.png";
flixel_addons_ui_FlxUIAssets.SLICE9_BUTTON = "6,6,11,11";
flixel_addons_ui_FlxUIAssets.SLICE9_BUTTON_THIN = "2,2,15,15";
flixel_addons_ui_FlxUIAssets.SLICE9_BUTTON_TOGGLE = "6,6,11,11";
flixel_addons_ui_FlxUIAssets.SLICE9_TAB = "6,6,11,11";
flixel_addons_ui_FlxUIAssets.XML_DEFAULTS_ID = "flixel/flixel-ui/xml/defaults";
flixel_addons_ui_FlxUIAssets.XML_DEFAULT_POPUP_ID = "flixel/flixel-ui/xml/default_popup";
flixel_addons_ui_FlxUIAssets.XML_DEFAULT_LOADING_SCREEN_ID = "flixel/flixel-ui/xml/default_loading_screen";
flixel_addons_ui_FlxUIAssets.index_size = null;
flixel_addons_ui_FlxUITypedButton.CLICK_EVENT = "click_button";
flixel_addons_ui_FlxUITypedButton.OVER_EVENT = "over_button";
flixel_addons_ui_FlxUITypedButton.DOWN_EVENT = "down_button";
flixel_addons_ui_FlxUITypedButton.OUT_EVENT = "out_button";
flixel_addons_ui_FlxUICheckBox.CLICK_EVENT = "click_check_box";
flixel_addons_ui_FlxUICursor.KEYS_TAB = 1;
flixel_addons_ui_FlxUICursor.KEYS_WASD = 16;
flixel_addons_ui_FlxUICursor.KEYS_ARROWS = 256;
flixel_addons_ui_FlxUICursor.KEYS_NUMPAD = 4096;
flixel_addons_ui_FlxUICursor.GAMEPAD_DPAD = 65536;
flixel_addons_ui_FlxUICursor.GAMEPAD_LEFT_STICK = 1048576;
flixel_addons_ui_FlxUICursor.GAMEPAD_RIGHT_STICK = 16777216;
flixel_addons_ui_FlxUICursor.GAMEPAD_SHOULDER_BUTTONS = 268435456;
flixel_addons_ui_FlxUICursor.INPUT_NONE = 0;
flixel_addons_ui_FlxUICursor.INPUT_KEYS = 1;
flixel_addons_ui_FlxUICursor.INPUT_GAMEPAD = 16;
flixel_addons_ui_FlxUIDropDownMenu.CLICK_EVENT = "click_dropdown";
flixel_addons_ui_FlxUIInputText.CHANGE_EVENT = "change_input_text";
flixel_addons_ui_FlxUIInputText.ENTER_EVENT = "enter_input_text";
flixel_addons_ui_FlxUIInputText.DELETE_EVENT = "delete_input_text";
flixel_addons_ui_FlxUIInputText.INPUT_EVENT = "input_input_text";
flixel_addons_ui_FlxUIList.STACK_HORIZONTAL = 0;
flixel_addons_ui_FlxUIList.STACK_VERTICAL = 1;
flixel_input_FlxPointer._cachedPoint = new flixel_math_FlxPoint();
flixel_addons_ui_FlxUINumericStepper.STACK_VERTICAL = 0;
flixel_addons_ui_FlxUINumericStepper.STACK_HORIZONTAL = 1;
flixel_addons_ui_FlxUINumericStepper.CLICK_EVENT = "click_numeric_stepper";
flixel_addons_ui_FlxUINumericStepper.EDIT_EVENT = "edit_numeric_stepper";
flixel_addons_ui_FlxUINumericStepper.CHANGE_EVENT = "change_numeric_stepper";
flixel_addons_ui_FlxUIRadioGroup.CLICK_EVENT = "click_radio_group";
flixel_addons_ui_FlxUITabMenu.CLICK_EVENT = "tab_menu_click";
flixel_addons_ui_FlxUITabMenu.STACK_FRONT = "front";
flixel_addons_ui_FlxUITabMenu.STACK_BACK = "back";
flixel_addons_ui_FontDef.EXTENSIONS = [".ttf",".otf"];
flixel_addons_ui_U._matrix = null;
flixel_animation_FlxPrerotatedAnimation.PREROTATED = "prerotated_animation";
flixel_effects_FlxFlicker._pool = new flixel_util_FlxPool_$flixel_$effects_$FlxFlicker(flixel_effects_FlxFlicker);
flixel_effects_FlxFlicker._boundObjects = new haxe_ds_ObjectMap();
flixel_graphics_FlxGraphic.defaultPersist = false;
flixel_graphics_atlas_FlxAtlas.point = new openfl_geom_Point();
flixel_graphics_atlas_FlxAtlas.matrix = new openfl_geom_Matrix();
flixel_graphics_atlas_FlxAtlas.defaultMinSize = new flixel_math_FlxPoint(128,128);
flixel_graphics_atlas_FlxAtlas.defaultMaxSize = new flixel_math_FlxPoint(1024,1024);
flixel_graphics_tile_FlxDrawBaseItem.drawCalls = 0;
flixel_graphics_tile_FlxDrawQuadsItem.VERTICES_PER_QUAD = 4;
flixel_graphics_tile_FlxDrawTrianglesItem.point = (function($this) {
var $r;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
$r = point;
return $r;
}(this));
flixel_graphics_tile_FlxDrawTrianglesItem.rect = (function($this) {
var $r;
var _this = flixel_math_FlxRect._pool.get();
var X = 0;
var Y = 0;
var Width = 0;
var Height = 0;
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;
var rect = _this;
rect._inPool = false;
$r = rect;
return $r;
}(this));
flixel_input_actions_FlxInputDeviceID.ALL = -1;
flixel_input_actions_FlxInputDeviceID.FIRST_ACTIVE = -2;
flixel_input_actions_FlxInputDeviceID.NONE = -3;
flixel_input_actions_FlxActionInputAnalog.A_X = true;
flixel_input_actions_FlxActionInputAnalog.A_Y = false;
flixel_input_actions_FlxSteamController.CONTROLLER_CONNECT_POLL_TIME = 0.25;
flixel_input_actions_FlxSteamController.ORIGIN_DATA_POLL_TIME = 1.0;
flixel_input_actions_FlxSteamController.onControllerConnect = null;
flixel_input_actions_FlxSteamController.onOriginUpdate = null;
flixel_input_gamepad_FlxGamepadInputID.fromStringMap = (function($this) {
var $r;
var _g = new haxe_ds_StringMap();
_g.h["ANY"] = -2;
_g.h["A"] = 0;
_g.h["B"] = 1;
_g.h["X"] = 2;
_g.h["Y"] = 3;
_g.h["LEFT_SHOULDER"] = 4;
_g.h["RIGHT_SHOULDER"] = 5;
_g.h["BACK"] = 6;
_g.h["START"] = 7;
_g.h["LEFT_STICK_CLICK"] = 8;
_g.h["RIGHT_STICK_CLICK"] = 9;
_g.h["GUIDE"] = 10;
_g.h["DPAD_UP"] = 11;
_g.h["DPAD_DOWN"] = 12;
_g.h["DPAD_LEFT"] = 13;
_g.h["DPAD_RIGHT"] = 14;
_g.h["LEFT_TRIGGER_BUTTON"] = 15;
_g.h["RIGHT_TRIGGER_BUTTON"] = 16;
_g.h["LEFT_TRIGGER"] = 17;
_g.h["RIGHT_TRIGGER"] = 18;
_g.h["LEFT_ANALOG_STICK"] = 19;
_g.h["RIGHT_ANALOG_STICK"] = 20;
_g.h["DPAD"] = 21;
_g.h["TILT_PITCH"] = 26;
_g.h["TILT_ROLL"] = 27;
_g.h["POINTER_X"] = 28;
_g.h["POINTER_Y"] = 29;
_g.h["EXTRA_0"] = 30;
_g.h["EXTRA_1"] = 31;
_g.h["EXTRA_2"] = 32;
_g.h["EXTRA_3"] = 33;
_g.h["LEFT_STICK_DIGITAL_UP"] = 34;
_g.h["LEFT_STICK_DIGITAL_RIGHT"] = 35;
_g.h["LEFT_STICK_DIGITAL_DOWN"] = 36;
_g.h["LEFT_STICK_DIGITAL_LEFT"] = 37;
_g.h["RIGHT_STICK_DIGITAL_UP"] = 38;
_g.h["RIGHT_STICK_DIGITAL_RIGHT"] = 39;
_g.h["RIGHT_STICK_DIGITAL_DOWN"] = 40;
_g.h["RIGHT_STICK_DIGITAL_LEFT"] = 41;
$r = _g;
return $r;
}(this));
flixel_input_gamepad_FlxGamepadInputID.toStringMap = (function($this) {
var $r;
var _g = new haxe_ds_IntMap();
_g.h[-2] = "ANY";
_g.h[0] = "A";
_g.h[1] = "B";
_g.h[2] = "X";
_g.h[3] = "Y";
_g.h[4] = "LEFT_SHOULDER";
_g.h[5] = "RIGHT_SHOULDER";
_g.h[6] = "BACK";
_g.h[7] = "START";
_g.h[8] = "LEFT_STICK_CLICK";
_g.h[9] = "RIGHT_STICK_CLICK";
_g.h[10] = "GUIDE";
_g.h[11] = "DPAD_UP";
_g.h[12] = "DPAD_DOWN";
_g.h[13] = "DPAD_LEFT";
_g.h[14] = "DPAD_RIGHT";
_g.h[15] = "LEFT_TRIGGER_BUTTON";
_g.h[16] = "RIGHT_TRIGGER_BUTTON";
_g.h[17] = "LEFT_TRIGGER";
_g.h[18] = "RIGHT_TRIGGER";
_g.h[19] = "LEFT_ANALOG_STICK";
_g.h[20] = "RIGHT_ANALOG_STICK";
_g.h[21] = "DPAD";
_g.h[26] = "TILT_PITCH";
_g.h[27] = "TILT_ROLL";
_g.h[28] = "POINTER_X";
_g.h[29] = "POINTER_Y";
_g.h[30] = "EXTRA_0";
_g.h[31] = "EXTRA_1";
_g.h[32] = "EXTRA_2";
_g.h[33] = "EXTRA_3";
_g.h[34] = "LEFT_STICK_DIGITAL_UP";
_g.h[35] = "LEFT_STICK_DIGITAL_RIGHT";
_g.h[36] = "LEFT_STICK_DIGITAL_DOWN";
_g.h[37] = "LEFT_STICK_DIGITAL_LEFT";
_g.h[38] = "RIGHT_STICK_DIGITAL_UP";
_g.h[39] = "RIGHT_STICK_DIGITAL_RIGHT";
_g.h[40] = "RIGHT_STICK_DIGITAL_DOWN";
_g.h[41] = "RIGHT_STICK_DIGITAL_LEFT";
$r = _g;
return $r;
}(this));
flixel_input_gamepad_FlxGamepadInputID.ANY = -2;
flixel_input_gamepad_FlxGamepadInputID.NONE = -1;
flixel_input_gamepad_FlxGamepadInputID.A = 0;
flixel_input_gamepad_FlxGamepadInputID.B = 1;
flixel_input_gamepad_FlxGamepadInputID.X = 2;
flixel_input_gamepad_FlxGamepadInputID.Y = 3;
flixel_input_gamepad_FlxGamepadInputID.LEFT_SHOULDER = 4;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_SHOULDER = 5;
flixel_input_gamepad_FlxGamepadInputID.BACK = 6;
flixel_input_gamepad_FlxGamepadInputID.START = 7;
flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_CLICK = 8;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_CLICK = 9;
flixel_input_gamepad_FlxGamepadInputID.GUIDE = 10;
flixel_input_gamepad_FlxGamepadInputID.DPAD_UP = 11;
flixel_input_gamepad_FlxGamepadInputID.DPAD_DOWN = 12;
flixel_input_gamepad_FlxGamepadInputID.DPAD_LEFT = 13;
flixel_input_gamepad_FlxGamepadInputID.DPAD_RIGHT = 14;
flixel_input_gamepad_FlxGamepadInputID.LEFT_TRIGGER_BUTTON = 15;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_TRIGGER_BUTTON = 16;
flixel_input_gamepad_FlxGamepadInputID.LEFT_TRIGGER = 17;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_TRIGGER = 18;
flixel_input_gamepad_FlxGamepadInputID.LEFT_ANALOG_STICK = 19;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_ANALOG_STICK = 20;
flixel_input_gamepad_FlxGamepadInputID.DPAD = 21;
flixel_input_gamepad_FlxGamepadInputID.TILT_PITCH = 26;
flixel_input_gamepad_FlxGamepadInputID.TILT_ROLL = 27;
flixel_input_gamepad_FlxGamepadInputID.POINTER_X = 28;
flixel_input_gamepad_FlxGamepadInputID.POINTER_Y = 29;
flixel_input_gamepad_FlxGamepadInputID.EXTRA_0 = 30;
flixel_input_gamepad_FlxGamepadInputID.EXTRA_1 = 31;
flixel_input_gamepad_FlxGamepadInputID.EXTRA_2 = 32;
flixel_input_gamepad_FlxGamepadInputID.EXTRA_3 = 33;
flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_DIGITAL_UP = 34;
flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_DIGITAL_RIGHT = 35;
flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_DIGITAL_DOWN = 36;
flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_DIGITAL_LEFT = 37;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_DIGITAL_UP = 38;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_DIGITAL_RIGHT = 39;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_DIGITAL_DOWN = 40;
flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_DIGITAL_LEFT = 41;
openfl_ui_GameInput.__meta__ = { fields : { addEventListener : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_ui_GameInput.isSupported = true;
openfl_ui_GameInput.numDevices = 0;
openfl_ui_GameInput.__deviceList = [];
openfl_ui_GameInput.__instances = [];
openfl_ui_GameInput.__devices = new haxe_ds_ObjectMap();
flixel_input_gamepad_FlxGamepadManager._gameInput = new openfl_ui_GameInput();
flixel_input_gamepad_id_LogitechID.ONE = 0;
flixel_input_gamepad_id_LogitechID.TWO = 1;
flixel_input_gamepad_id_LogitechID.THREE = 2;
flixel_input_gamepad_id_LogitechID.FOUR = 3;
flixel_input_gamepad_id_LogitechID.FIVE = 4;
flixel_input_gamepad_id_LogitechID.SIX = 5;
flixel_input_gamepad_id_LogitechID.SEVEN = 6;
flixel_input_gamepad_id_LogitechID.EIGHT = 7;
flixel_input_gamepad_id_LogitechID.NINE = 8;
flixel_input_gamepad_id_LogitechID.TEN = 9;
flixel_input_gamepad_id_LogitechID.LEFT_STICK_CLICK = 10;
flixel_input_gamepad_id_LogitechID.RIGHT_STICK_CLICK = 11;
flixel_input_gamepad_id_LogitechID.DPAD_UP = 16;
flixel_input_gamepad_id_LogitechID.DPAD_DOWN = 17;
flixel_input_gamepad_id_LogitechID.DPAD_LEFT = 18;
flixel_input_gamepad_id_LogitechID.DPAD_RIGHT = 19;
flixel_input_gamepad_id_LogitechID.LOGITECH = -5;
flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 24, down : 25, left : 26, right : 27});
flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 28, down : 29, left : 30, right : 31});
flixel_input_gamepad_id_MFiID.A = 6;
flixel_input_gamepad_id_MFiID.B = 7;
flixel_input_gamepad_id_MFiID.X = 8;
flixel_input_gamepad_id_MFiID.Y = 9;
flixel_input_gamepad_id_MFiID.LB = 15;
flixel_input_gamepad_id_MFiID.RB = 16;
flixel_input_gamepad_id_MFiID.BACK = 10;
flixel_input_gamepad_id_MFiID.START = 12;
flixel_input_gamepad_id_MFiID.LEFT_STICK_CLICK = 13;
flixel_input_gamepad_id_MFiID.RIGHT_STICK_CLICK = 14;
flixel_input_gamepad_id_MFiID.GUIDE = 11;
flixel_input_gamepad_id_MFiID.DPAD_UP = 17;
flixel_input_gamepad_id_MFiID.DPAD_DOWN = 18;
flixel_input_gamepad_id_MFiID.DPAD_LEFT = 19;
flixel_input_gamepad_id_MFiID.DPAD_RIGHT = 20;
flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 21, down : 22, left : 23, right : 24});
flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 25, down : 26, left : 27, right : 28});
flixel_input_gamepad_id_MFiID.LEFT_TRIGGER = 4;
flixel_input_gamepad_id_MFiID.RIGHT_TRIGGER = 5;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_ONE = 8;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_TWO = 9;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_A = 10;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_B = 11;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_MINUS = 12;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_PLUS = 13;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_HOME = 19;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_Z = 14;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_C = 15;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_DPAD_UP = 4;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_DPAD_DOWN = 5;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_DPAD_LEFT = 6;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_DPAD_RIGHT = 7;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_MINUS = 12;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_PLUS = 13;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_HOME = 19;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_A = 10;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_B = 11;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_ONE = 8;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_TWO = 9;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_Y = 8;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_X = 9;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_B = 10;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_A = 11;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_L = 12;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_R = 13;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_ZL = 14;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_ZR = 15;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_SELECT = 16;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_START = 17;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_HOME = 19;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_ONE = -1;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_TWO = -1;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_DPAD_UP = 4;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_DPAD_DOWN = 5;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_DPAD_LEFT = 6;
flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_DPAD_RIGHT = 7;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_POINTER_X = 2;
flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_POINTER_Y = 3;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25, threshold : 0.5, mode : flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL});
flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 26, down : 27, left : 28, right : 29});
flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 26, down : 27, left : 28, right : 29});
flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_TRIGGER_FAKE = 4;
flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_TRIGGER_FAKE = 5;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD_UP = 22;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD_DOWN = 23;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD_LEFT = 24;
flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD_RIGHT = 25;
flixel_input_gamepad_id_OUYAID.O = 6;
flixel_input_gamepad_id_OUYAID.U = 8;
flixel_input_gamepad_id_OUYAID.Y = 9;
flixel_input_gamepad_id_OUYAID.A = 7;
flixel_input_gamepad_id_OUYAID.LB = 15;
flixel_input_gamepad_id_OUYAID.RB = 16;
flixel_input_gamepad_id_OUYAID.LEFT_STICK_CLICK = 13;
flixel_input_gamepad_id_OUYAID.RIGHT_STICK_CLICK = 14;
flixel_input_gamepad_id_OUYAID.HOME = 16777234;
flixel_input_gamepad_id_OUYAID.LEFT_TRIGGER = 4;
flixel_input_gamepad_id_OUYAID.RIGHT_TRIGGER = 5;
flixel_input_gamepad_id_OUYAID.DPAD_LEFT = 19;
flixel_input_gamepad_id_OUYAID.DPAD_RIGHT = 20;
flixel_input_gamepad_id_OUYAID.DPAD_DOWN = 18;
flixel_input_gamepad_id_OUYAID.DPAD_UP = 17;
flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 23, down : 24, left : 25, right : 26});
flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 27, down : 28, left : 29, right : 30});
flixel_input_gamepad_id_PS4ID.X = 6;
flixel_input_gamepad_id_PS4ID.CIRCLE = 7;
flixel_input_gamepad_id_PS4ID.SQUARE = 8;
flixel_input_gamepad_id_PS4ID.TRIANGLE = 9;
flixel_input_gamepad_id_PS4ID.PS = 11;
flixel_input_gamepad_id_PS4ID.OPTIONS = 12;
flixel_input_gamepad_id_PS4ID.LEFT_STICK_CLICK = 13;
flixel_input_gamepad_id_PS4ID.RIGHT_STICK_CLICK = 14;
flixel_input_gamepad_id_PS4ID.L1 = 15;
flixel_input_gamepad_id_PS4ID.R1 = 16;
flixel_input_gamepad_id_PS4ID.SHARE = 10;
flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25});
flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 26, down : 27, left : 28, right : 29});
flixel_input_gamepad_id_PS4ID.TOUCHPAD_CLICK = 30;
flixel_input_gamepad_id_PS4ID.L2 = 4;
flixel_input_gamepad_id_PS4ID.R2 = 5;
flixel_input_gamepad_id_PS4ID.DPAD_UP = 17;
flixel_input_gamepad_id_PS4ID.DPAD_DOWN = 18;
flixel_input_gamepad_id_PS4ID.DPAD_LEFT = 19;
flixel_input_gamepad_id_PS4ID.DPAD_RIGHT = 20;
flixel_input_gamepad_id_PSVitaID.X = 6;
flixel_input_gamepad_id_PSVitaID.CIRCLE = 7;
flixel_input_gamepad_id_PSVitaID.SQUARE = 8;
flixel_input_gamepad_id_PSVitaID.TRIANGLE = 9;
flixel_input_gamepad_id_PSVitaID.SELECT = 10;
flixel_input_gamepad_id_PSVitaID.START = 12;
flixel_input_gamepad_id_PSVitaID.L = 15;
flixel_input_gamepad_id_PSVitaID.R = 16;
flixel_input_gamepad_id_PSVitaID.DPAD_UP = 17;
flixel_input_gamepad_id_PSVitaID.DPAD_DOWN = 18;
flixel_input_gamepad_id_PSVitaID.DPAD_LEFT = 19;
flixel_input_gamepad_id_PSVitaID.DPAD_RIGHT = 20;
flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 21, down : 22, left : 23, right : 24});
flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 25, down : 26, left : 27, right : 28});
flixel_input_gamepad_id_SwitchJoyconLeftID.ZL = 4;
flixel_input_gamepad_id_SwitchJoyconLeftID.DOWN = 6;
flixel_input_gamepad_id_SwitchJoyconLeftID.RIGHT = 7;
flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT = 8;
flixel_input_gamepad_id_SwitchJoyconLeftID.UP = 9;
flixel_input_gamepad_id_SwitchJoyconLeftID.L = 10;
flixel_input_gamepad_id_SwitchJoyconLeftID.MINUS = 12;
flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_STICK_CLICK = 13;
flixel_input_gamepad_id_SwitchJoyconLeftID.SL = 15;
flixel_input_gamepad_id_SwitchJoyconLeftID.SR = 16;
flixel_input_gamepad_id_SwitchJoyconLeftID.CAPTURE = 21;
flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25});
flixel_input_gamepad_id_SwitchJoyconRightID.ZR = 5;
flixel_input_gamepad_id_SwitchJoyconRightID.A = 6;
flixel_input_gamepad_id_SwitchJoyconRightID.X = 7;
flixel_input_gamepad_id_SwitchJoyconRightID.B = 8;
flixel_input_gamepad_id_SwitchJoyconRightID.Y = 9;
flixel_input_gamepad_id_SwitchJoyconRightID.R = 10;
flixel_input_gamepad_id_SwitchJoyconRightID.HOME = 11;
flixel_input_gamepad_id_SwitchJoyconRightID.PLUS = 12;
flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_STICK_CLICK = 13;
flixel_input_gamepad_id_SwitchJoyconRightID.SL = 15;
flixel_input_gamepad_id_SwitchJoyconRightID.SR = 16;
flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25});
flixel_input_gamepad_id_SwitchProID.ZL = 4;
flixel_input_gamepad_id_SwitchProID.ZR = 5;
flixel_input_gamepad_id_SwitchProID.B = 6;
flixel_input_gamepad_id_SwitchProID.A = 7;
flixel_input_gamepad_id_SwitchProID.Y = 8;
flixel_input_gamepad_id_SwitchProID.X = 9;
flixel_input_gamepad_id_SwitchProID.MINUS = 10;
flixel_input_gamepad_id_SwitchProID.HOME = 11;
flixel_input_gamepad_id_SwitchProID.PLUS = 12;
flixel_input_gamepad_id_SwitchProID.LEFT_STICK_CLICK = 13;
flixel_input_gamepad_id_SwitchProID.RIGHT_STICK_CLICK = 14;
flixel_input_gamepad_id_SwitchProID.L = 15;
flixel_input_gamepad_id_SwitchProID.R = 16;
flixel_input_gamepad_id_SwitchProID.DPAD_UP = 17;
flixel_input_gamepad_id_SwitchProID.DPAD_DOWN = 18;
flixel_input_gamepad_id_SwitchProID.DPAD_LEFT = 19;
flixel_input_gamepad_id_SwitchProID.DPAD_RIGHT = 20;
flixel_input_gamepad_id_SwitchProID.CAPTURE = 21;
flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25});
flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 26, down : 27, left : 28, right : 29});
flixel_input_gamepad_id_WiiRemoteID.REMOTE_ONE = 9;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_TWO = 10;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_A = 11;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_B = 12;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_PLUS = 13;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_MINUS = 14;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_HOME = 15;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_A = 9;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_B = 10;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_C = 11;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_Z = 12;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_ONE = 13;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_TWO = 14;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_PLUS = 15;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_MINUS = 16;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_HOME = 17;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_DPAD_UP = 5;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_DPAD_DOWN = 6;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_DPAD_LEFT = 7;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_DPAD_RIGHT = 8;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_A = 9;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_B = 10;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_Y = 11;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_X = 12;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_L = 13;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_R = 14;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_ZL = 15;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_ZR = 16;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_START = 17;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_SELECT = 18;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_HOME = 19;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_ONE = 20;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_TWO = 21;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_DPAD_UP = 5;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_DPAD_DOWN = 6;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_DPAD_LEFT = 7;
flixel_input_gamepad_id_WiiRemoteID.CLASSIC_DPAD_RIGHT = 8;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_TILT_PITCH = 2;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_TILT_ROLL = 3;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_TILT_PITCH = 3;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_TILT_ROLL = 2;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_NULL_AXIS = 4;
flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_NULL_AXIS = 4;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25, threshold : 0.5, mode : flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL});
flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 28, down : 29, left : 30, right : 31});
flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 32, down : 33, left : 34, right : 35});
flixel_input_gamepad_id_WiiRemoteID.LEFT_TRIGGER_FAKE = 4;
flixel_input_gamepad_id_WiiRemoteID.RIGHT_TRIGGER_FAKE = 5;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_UP = 22;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_DOWN = 23;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_LEFT = 24;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_RIGHT = 25;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_X = 26;
flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_Y = 27;
flixel_input_gamepad_id_XInputID.A = 6;
flixel_input_gamepad_id_XInputID.B = 7;
flixel_input_gamepad_id_XInputID.X = 8;
flixel_input_gamepad_id_XInputID.Y = 9;
flixel_input_gamepad_id_XInputID.BACK = 10;
flixel_input_gamepad_id_XInputID.GUIDE = -1;
flixel_input_gamepad_id_XInputID.START = 12;
flixel_input_gamepad_id_XInputID.LEFT_STICK_CLICK = 13;
flixel_input_gamepad_id_XInputID.RIGHT_STICK_CLICK = 14;
flixel_input_gamepad_id_XInputID.LB = 15;
flixel_input_gamepad_id_XInputID.RB = 16;
flixel_input_gamepad_id_XInputID.DPAD_UP = 17;
flixel_input_gamepad_id_XInputID.DPAD_DOWN = 18;
flixel_input_gamepad_id_XInputID.DPAD_LEFT = 19;
flixel_input_gamepad_id_XInputID.DPAD_RIGHT = 20;
flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 21, down : 22, left : 23, right : 24});
flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 25, down : 26, left : 27, right : 28});
flixel_input_gamepad_id_XInputID.LEFT_TRIGGER = 4;
flixel_input_gamepad_id_XInputID.RIGHT_TRIGGER = 5;
flixel_input_keyboard_FlxKey.fromStringMap = (function($this) {
var $r;
var _g = new haxe_ds_StringMap();
_g.h["ANY"] = -2;
_g.h["A"] = 65;
_g.h["B"] = 66;
_g.h["C"] = 67;
_g.h["D"] = 68;
_g.h["E"] = 69;
_g.h["F"] = 70;
_g.h["G"] = 71;
_g.h["H"] = 72;
_g.h["I"] = 73;
_g.h["J"] = 74;
_g.h["K"] = 75;
_g.h["L"] = 76;
_g.h["M"] = 77;
_g.h["N"] = 78;
_g.h["O"] = 79;
_g.h["P"] = 80;
_g.h["Q"] = 81;
_g.h["R"] = 82;
_g.h["S"] = 83;
_g.h["T"] = 84;
_g.h["U"] = 85;
_g.h["V"] = 86;
_g.h["W"] = 87;
_g.h["X"] = 88;
_g.h["Y"] = 89;
_g.h["Z"] = 90;
_g.h["ZERO"] = 48;
_g.h["ONE"] = 49;
_g.h["TWO"] = 50;
_g.h["THREE"] = 51;
_g.h["FOUR"] = 52;
_g.h["FIVE"] = 53;
_g.h["SIX"] = 54;
_g.h["SEVEN"] = 55;
_g.h["EIGHT"] = 56;
_g.h["NINE"] = 57;
_g.h["PAGEUP"] = 33;
_g.h["PAGEDOWN"] = 34;
_g.h["HOME"] = 36;
_g.h["END"] = 35;
_g.h["INSERT"] = 45;
_g.h["ESCAPE"] = 27;
_g.h["MINUS"] = 189;
_g.h["PLUS"] = 187;
_g.h["DELETE"] = 46;
_g.h["BACKSPACE"] = 8;
_g.h["LBRACKET"] = 219;
_g.h["RBRACKET"] = 221;
_g.h["BACKSLASH"] = 220;
_g.h["CAPSLOCK"] = 20;
_g.h["SEMICOLON"] = 186;
_g.h["QUOTE"] = 222;
_g.h["ENTER"] = 13;
_g.h["SHIFT"] = 16;
_g.h["COMMA"] = 188;
_g.h["PERIOD"] = 190;
_g.h["SLASH"] = 191;
_g.h["GRAVEACCENT"] = 192;
_g.h["CONTROL"] = 17;
_g.h["ALT"] = 18;
_g.h["SPACE"] = 32;
_g.h["UP"] = 38;
_g.h["DOWN"] = 40;
_g.h["LEFT"] = 37;
_g.h["RIGHT"] = 39;
_g.h["TAB"] = 9;
_g.h["PRINTSCREEN"] = 301;
_g.h["F1"] = 112;
_g.h["F2"] = 113;
_g.h["F3"] = 114;
_g.h["F4"] = 115;
_g.h["F5"] = 116;
_g.h["F6"] = 117;
_g.h["F7"] = 118;
_g.h["F8"] = 119;
_g.h["F9"] = 120;
_g.h["F10"] = 121;
_g.h["F11"] = 122;
_g.h["F12"] = 123;
_g.h["NUMPADZERO"] = 96;
_g.h["NUMPADONE"] = 97;
_g.h["NUMPADTWO"] = 98;
_g.h["NUMPADTHREE"] = 99;
_g.h["NUMPADFOUR"] = 100;
_g.h["NUMPADFIVE"] = 101;
_g.h["NUMPADSIX"] = 102;
_g.h["NUMPADSEVEN"] = 103;
_g.h["NUMPADEIGHT"] = 104;
_g.h["NUMPADNINE"] = 105;
_g.h["NUMPADMINUS"] = 109;
_g.h["NUMPADPLUS"] = 107;
_g.h["NUMPADPERIOD"] = 110;
_g.h["NUMPADMULTIPLY"] = 106;
$r = _g;
return $r;
}(this));
flixel_input_keyboard_FlxKey.toStringMap = (function($this) {
var $r;
var _g = new haxe_ds_IntMap();
_g.h[-2] = "ANY";
_g.h[65] = "A";
_g.h[66] = "B";
_g.h[67] = "C";
_g.h[68] = "D";
_g.h[69] = "E";
_g.h[70] = "F";
_g.h[71] = "G";
_g.h[72] = "H";
_g.h[73] = "I";
_g.h[74] = "J";
_g.h[75] = "K";
_g.h[76] = "L";
_g.h[77] = "M";
_g.h[78] = "N";
_g.h[79] = "O";
_g.h[80] = "P";
_g.h[81] = "Q";
_g.h[82] = "R";
_g.h[83] = "S";
_g.h[84] = "T";
_g.h[85] = "U";
_g.h[86] = "V";
_g.h[87] = "W";
_g.h[88] = "X";
_g.h[89] = "Y";
_g.h[90] = "Z";
_g.h[48] = "ZERO";
_g.h[49] = "ONE";
_g.h[50] = "TWO";
_g.h[51] = "THREE";
_g.h[52] = "FOUR";
_g.h[53] = "FIVE";
_g.h[54] = "SIX";
_g.h[55] = "SEVEN";
_g.h[56] = "EIGHT";
_g.h[57] = "NINE";
_g.h[33] = "PAGEUP";
_g.h[34] = "PAGEDOWN";
_g.h[36] = "HOME";
_g.h[35] = "END";
_g.h[45] = "INSERT";
_g.h[27] = "ESCAPE";
_g.h[189] = "MINUS";
_g.h[187] = "PLUS";
_g.h[46] = "DELETE";
_g.h[8] = "BACKSPACE";
_g.h[219] = "LBRACKET";
_g.h[221] = "RBRACKET";
_g.h[220] = "BACKSLASH";
_g.h[20] = "CAPSLOCK";
_g.h[186] = "SEMICOLON";
_g.h[222] = "QUOTE";
_g.h[13] = "ENTER";
_g.h[16] = "SHIFT";
_g.h[188] = "COMMA";
_g.h[190] = "PERIOD";
_g.h[191] = "SLASH";
_g.h[192] = "GRAVEACCENT";
_g.h[17] = "CONTROL";
_g.h[18] = "ALT";
_g.h[32] = "SPACE";
_g.h[38] = "UP";
_g.h[40] = "DOWN";
_g.h[37] = "LEFT";
_g.h[39] = "RIGHT";
_g.h[9] = "TAB";
_g.h[301] = "PRINTSCREEN";
_g.h[112] = "F1";
_g.h[113] = "F2";
_g.h[114] = "F3";
_g.h[115] = "F4";
_g.h[116] = "F5";
_g.h[117] = "F6";
_g.h[118] = "F7";
_g.h[119] = "F8";
_g.h[120] = "F9";
_g.h[121] = "F10";
_g.h[122] = "F11";
_g.h[123] = "F12";
_g.h[96] = "NUMPADZERO";
_g.h[97] = "NUMPADONE";
_g.h[98] = "NUMPADTWO";
_g.h[99] = "NUMPADTHREE";
_g.h[100] = "NUMPADFOUR";
_g.h[101] = "NUMPADFIVE";
_g.h[102] = "NUMPADSIX";
_g.h[103] = "NUMPADSEVEN";
_g.h[104] = "NUMPADEIGHT";
_g.h[105] = "NUMPADNINE";
_g.h[109] = "NUMPADMINUS";
_g.h[107] = "NUMPADPLUS";
_g.h[110] = "NUMPADPERIOD";
_g.h[106] = "NUMPADMULTIPLY";
$r = _g;
return $r;
}(this));
flixel_input_keyboard_FlxKey.ANY = -2;
flixel_input_keyboard_FlxKey.NONE = -1;
flixel_input_keyboard_FlxKey.A = 65;
flixel_input_keyboard_FlxKey.B = 66;
flixel_input_keyboard_FlxKey.C = 67;
flixel_input_keyboard_FlxKey.D = 68;
flixel_input_keyboard_FlxKey.E = 69;
flixel_input_keyboard_FlxKey.F = 70;
flixel_input_keyboard_FlxKey.G = 71;
flixel_input_keyboard_FlxKey.H = 72;
flixel_input_keyboard_FlxKey.I = 73;
flixel_input_keyboard_FlxKey.J = 74;
flixel_input_keyboard_FlxKey.K = 75;
flixel_input_keyboard_FlxKey.L = 76;
flixel_input_keyboard_FlxKey.M = 77;
flixel_input_keyboard_FlxKey.N = 78;
flixel_input_keyboard_FlxKey.O = 79;
flixel_input_keyboard_FlxKey.P = 80;
flixel_input_keyboard_FlxKey.Q = 81;
flixel_input_keyboard_FlxKey.R = 82;
flixel_input_keyboard_FlxKey.S = 83;
flixel_input_keyboard_FlxKey.T = 84;
flixel_input_keyboard_FlxKey.U = 85;
flixel_input_keyboard_FlxKey.V = 86;
flixel_input_keyboard_FlxKey.W = 87;
flixel_input_keyboard_FlxKey.X = 88;
flixel_input_keyboard_FlxKey.Y = 89;
flixel_input_keyboard_FlxKey.Z = 90;
flixel_input_keyboard_FlxKey.ZERO = 48;
flixel_input_keyboard_FlxKey.ONE = 49;
flixel_input_keyboard_FlxKey.TWO = 50;
flixel_input_keyboard_FlxKey.THREE = 51;
flixel_input_keyboard_FlxKey.FOUR = 52;
flixel_input_keyboard_FlxKey.FIVE = 53;
flixel_input_keyboard_FlxKey.SIX = 54;
flixel_input_keyboard_FlxKey.SEVEN = 55;
flixel_input_keyboard_FlxKey.EIGHT = 56;
flixel_input_keyboard_FlxKey.NINE = 57;
flixel_input_keyboard_FlxKey.PAGEUP = 33;
flixel_input_keyboard_FlxKey.PAGEDOWN = 34;
flixel_input_keyboard_FlxKey.HOME = 36;
flixel_input_keyboard_FlxKey.END = 35;
flixel_input_keyboard_FlxKey.INSERT = 45;
flixel_input_keyboard_FlxKey.ESCAPE = 27;
flixel_input_keyboard_FlxKey.MINUS = 189;
flixel_input_keyboard_FlxKey.PLUS = 187;
flixel_input_keyboard_FlxKey.DELETE = 46;
flixel_input_keyboard_FlxKey.BACKSPACE = 8;
flixel_input_keyboard_FlxKey.LBRACKET = 219;
flixel_input_keyboard_FlxKey.RBRACKET = 221;
flixel_input_keyboard_FlxKey.BACKSLASH = 220;
flixel_input_keyboard_FlxKey.CAPSLOCK = 20;
flixel_input_keyboard_FlxKey.SEMICOLON = 186;
flixel_input_keyboard_FlxKey.QUOTE = 222;
flixel_input_keyboard_FlxKey.ENTER = 13;
flixel_input_keyboard_FlxKey.SHIFT = 16;
flixel_input_keyboard_FlxKey.COMMA = 188;
flixel_input_keyboard_FlxKey.PERIOD = 190;
flixel_input_keyboard_FlxKey.SLASH = 191;
flixel_input_keyboard_FlxKey.GRAVEACCENT = 192;
flixel_input_keyboard_FlxKey.CONTROL = 17;
flixel_input_keyboard_FlxKey.ALT = 18;
flixel_input_keyboard_FlxKey.SPACE = 32;
flixel_input_keyboard_FlxKey.UP = 38;
flixel_input_keyboard_FlxKey.DOWN = 40;
flixel_input_keyboard_FlxKey.LEFT = 37;
flixel_input_keyboard_FlxKey.RIGHT = 39;
flixel_input_keyboard_FlxKey.TAB = 9;
flixel_input_keyboard_FlxKey.PRINTSCREEN = 301;
flixel_input_keyboard_FlxKey.F1 = 112;
flixel_input_keyboard_FlxKey.F2 = 113;
flixel_input_keyboard_FlxKey.F3 = 114;
flixel_input_keyboard_FlxKey.F4 = 115;
flixel_input_keyboard_FlxKey.F5 = 116;
flixel_input_keyboard_FlxKey.F6 = 117;
flixel_input_keyboard_FlxKey.F7 = 118;
flixel_input_keyboard_FlxKey.F8 = 119;
flixel_input_keyboard_FlxKey.F9 = 120;
flixel_input_keyboard_FlxKey.F10 = 121;
flixel_input_keyboard_FlxKey.F11 = 122;
flixel_input_keyboard_FlxKey.F12 = 123;
flixel_input_keyboard_FlxKey.NUMPADZERO = 96;
flixel_input_keyboard_FlxKey.NUMPADONE = 97;
flixel_input_keyboard_FlxKey.NUMPADTWO = 98;
flixel_input_keyboard_FlxKey.NUMPADTHREE = 99;
flixel_input_keyboard_FlxKey.NUMPADFOUR = 100;
flixel_input_keyboard_FlxKey.NUMPADFIVE = 101;
flixel_input_keyboard_FlxKey.NUMPADSIX = 102;
flixel_input_keyboard_FlxKey.NUMPADSEVEN = 103;
flixel_input_keyboard_FlxKey.NUMPADEIGHT = 104;
flixel_input_keyboard_FlxKey.NUMPADNINE = 105;
flixel_input_keyboard_FlxKey.NUMPADMINUS = 109;
flixel_input_keyboard_FlxKey.NUMPADPLUS = 107;
flixel_input_keyboard_FlxKey.NUMPADPERIOD = 110;
flixel_input_keyboard_FlxKey.NUMPADMULTIPLY = 106;
flixel_input_mouse__$FlxMouse_GraphicCursor.resourceType = "image/png";
flixel_input_mouse__$FlxMouse_GraphicCursor.resourceName = "__ASSET__:bitmap_flixel_input_mouse__FlxMouse_GraphicCursor";
flixel_input_touch_FlxTouchManager.maxTouchPoints = 0;
flixel_math_FlxMath.MIN_VALUE_FLOAT = 0.0000000000000001;
flixel_math_FlxMath.MAX_VALUE_FLOAT = 1.79e+308;
flixel_math_FlxMath.MIN_VALUE_INT = -2147483647;
flixel_math_FlxMath.MAX_VALUE_INT = 2147483647;
flixel_math_FlxMath.SQUARE_ROOT_OF_TWO = 1.41421356237;
flixel_math_FlxMath.EPSILON = 0.0000001;
flixel_math_FlxVector.EPSILON = 0.0000001;
flixel_math_FlxVector.EPSILON_SQUARED = 9.9999999999999984e-015;
flixel_math_FlxVector._vector1 = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_math_FlxVector._vector2 = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_math_FlxVector._vector3 = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_system_GraphicLogo.resourceType = "image/png";
flixel_system_GraphicLogo.resourceName = "__ASSET__:bitmap_flixel_system_GraphicLogo";
flixel_system_GraphicVirtualInput.resourceType = "image/png";
flixel_system_GraphicVirtualInput.resourceName = "__ASSET__:bitmap_flixel_system_GraphicVirtualInput";
openfl_utils_ByteArrayData.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_utils_ByteArrayData.defaultObjectEncoding = 10;
openfl_utils_ByteArrayData.__defaultEndian = null;
flixel_system_VirtualInputData.resourceName = "__ASSET__:file_flixel_system_VirtualInputData";
flixel_system_FlxAssets.FONT_DEFAULT = "Nokia Cellphone FC Small";
flixel_system_FlxAssets.FONT_DEBUGGER = "Monsterrat";
flixel_system_FlxBasePreloader.LOCAL = "localhost";
flixel_system_FlxLinkedList._NUM_CACHED_FLX_LIST = 0;
flixel_system__$FlxPreloader_GraphicLogoLight.resourceType = "image/png";
flixel_system__$FlxPreloader_GraphicLogoLight.resourceName = "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoLight";
flixel_system__$FlxPreloader_GraphicLogoCorners.resourceType = "image/png";
flixel_system__$FlxPreloader_GraphicLogoCorners.resourceName = "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoCorners";
flixel_system_FlxQuadTree.A_LIST = 0;
flixel_system_FlxQuadTree.B_LIST = 1;
flixel_system_FlxQuadTree._NUM_CACHED_QUAD_TREES = 0;
flixel_system_FlxSplash.muted = true;
flixel_system_debug__$FlxDebugger_GraphicFlixel.resourceType = "image/png";
flixel_system_debug__$FlxDebugger_GraphicFlixel.resourceName = "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicFlixel";
flixel_system_debug__$FlxDebugger_GraphicDrawDebug.resourceType = "image/png";
flixel_system_debug__$FlxDebugger_GraphicDrawDebug.resourceName = "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicDrawDebug";
flixel_system_debug_GraphicLog.resourceType = "image/png";
flixel_system_debug_GraphicLog.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicLog";
flixel_system_debug_GraphicStats.resourceType = "image/png";
flixel_system_debug_GraphicStats.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicStats";
flixel_system_debug_GraphicWatch.resourceType = "image/png";
flixel_system_debug_GraphicWatch.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicWatch";
flixel_system_debug_GraphicBitmapLog.resourceType = "image/png";
flixel_system_debug_GraphicBitmapLog.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicBitmapLog";
flixel_system_debug_GraphicConsole.resourceType = "image/png";
flixel_system_debug_GraphicConsole.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicConsole";
flixel_system_debug_GraphicArrowLeft.resourceType = "image/png";
flixel_system_debug_GraphicArrowLeft.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicArrowLeft";
flixel_system_debug_GraphicArrowRight.resourceType = "image/png";
flixel_system_debug_GraphicArrowRight.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicArrowRight";
flixel_system_debug_GraphicCloseButton.resourceType = "image/png";
flixel_system_debug_GraphicCloseButton.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicCloseButton";
flixel_system_debug_GraphicInteractive.resourceType = "image/png";
flixel_system_debug_GraphicInteractive.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicInteractive";
flixel_system_debug_Tooltip._tooltips = [];
flixel_system_debug_TooltipOverlay.BG_COLOR = -12961222;
flixel_system_debug_TooltipOverlay.TEXT_ALPHA = 0.8;
flixel_system_debug_TooltipOverlay.MARGIN_X = 10;
flixel_system_debug_TooltipOverlay.MARGIN_Y = 10;
flixel_system_debug__$Window_GraphicWindowHandle.resourceType = "image/png";
flixel_system_debug__$Window_GraphicWindowHandle.resourceName = "__ASSET__:bitmap_flixel_system_debug__Window_GraphicWindowHandle";
flixel_system_debug_Window.BG_COLOR = -580952225;
flixel_system_debug_Window.HEADER_COLOR = -1157627904;
flixel_system_debug_Window.HEADER_ALPHA = 0.8;
flixel_system_debug_Window.HEADER_HEIGHT = 15;
flixel_system_debug_Window.WINDOW_AMOUNT = 0;
flixel_system_debug_completion_CompletionListEntry.WIDTH = 150;
flixel_system_debug_completion_CompletionListEntry.HEIGHT = 20;
flixel_system_debug_completion_CompletionListEntry.COLOR_NORMAL = -10526881;
flixel_system_debug_completion_CompletionListEntry.COLOR_HIGHLIGHT = -9605779;
flixel_system_debug_completion_CompletionListEntry.GUTTER = 4;
flixel_system_debug_completion_CompletionListScrollBar.BG_COLOR = -12303292;
flixel_system_debug_completion_CompletionListScrollBar.HANDLE_COLOR = -14540254;
flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.resourceType = "image/png";
flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Eraser_GraphicEraserTool";
flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.resourceType = "image/png";
flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Mover_GraphicMoverTool";
flixel_system_debug_interaction_tools_GraphicCursorCross.resourceType = "image/png";
flixel_system_debug_interaction_tools_GraphicCursorCross.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicCursorCross";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.resourceType = "image/png";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformTool";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.resourceType = "image/png";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorDefault";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.resourceType = "image/png";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleY";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.resourceType = "image/png";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleX";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.resourceType = "image/png";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleXY";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.resourceType = "image/png";
flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorRotate";
flixel_system_debug_interaction_tools_Transform.OUTLINE_PADDING = 5.0;
flixel_system_debug_interaction_tools_Transform.MARKER_SIZE = 3.0;
flixel_system_debug_interaction_tools_Transform.MARKER_INTERACTION_DISTANCE = 5.0;
flixel_system_debug_interaction_tools_Transform.RESIZE_STEP = 10.0;
flixel_system_debug_interaction_tools_Transform.CURSOR_ROTATE = "transformRotate";
flixel_system_debug_interaction_tools_Transform.CURSOR_SCALE_X = "transformScaleX";
flixel_system_debug_interaction_tools_Transform.CURSOR_SCALE_Y = "transformScaleY";
flixel_system_debug_interaction_tools_Transform.CURSOR_SCALE_XY = "transformScaleXY";
flixel_system_debug_interaction_tools_Transform.MARKER_ROTATE = 0;
flixel_system_debug_interaction_tools_Transform.MARKER_SCALE_X = 1;
flixel_system_debug_interaction_tools_Transform.MARKER_SCALE_XY = 2;
flixel_system_debug_interaction_tools_Transform.MARKER_SCALE_Y = 3;
flixel_system_debug_log_LogStyle.NORMAL = new flixel_system_debug_log_LogStyle();
flixel_system_debug_log_LogStyle.WARNING = new flixel_system_debug_log_LogStyle("[WARNING] ","D9F85C",12,false,false,false,"flixel/sounds/beep",true);
flixel_system_debug_log_LogStyle.ERROR = new flixel_system_debug_log_LogStyle("[ERROR] ","FF8888",12,false,false,false,"flixel/sounds/beep",true);
flixel_system_debug_log_LogStyle.NOTICE = new flixel_system_debug_log_LogStyle("[NOTICE] ","5CF878",12,false);
flixel_system_debug_log_LogStyle.CONSOLE = new flixel_system_debug_log_LogStyle("> ","5A96FA",12,false);
flixel_system_debug_stats__$Stats_GraphicMinimizeButton.resourceType = "image/png";
flixel_system_debug_stats__$Stats_GraphicMinimizeButton.resourceName = "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMinimizeButton";
flixel_system_debug_stats__$Stats_GraphicMaximizeButton.resourceType = "image/png";
flixel_system_debug_stats__$Stats_GraphicMaximizeButton.resourceName = "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMaximizeButton";
flixel_text_FlxTextAlign.LEFT = "left";
flixel_text_FlxTextAlign.CENTER = "center";
flixel_text_FlxTextAlign.RIGHT = "right";
flixel_text_FlxTextAlign.JUSTIFY = "justify";
flixel_tile_FlxBaseTilemap.offsetAutoTile = [0,0,0,0,2,2,0,3,0,0,0,0,0,0,0,0,11,11,0,0,13,13,0,14,0,0,0,0,18,18,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,51,0,0,53,53,0,54,0,0,0,0,0,0,0,0,62,62,0,0,64,64,0,65,0,0,0,0,69,69,0,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,86,0,0,88,88,0,89,0,0,0,0,93,93,0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,159,0,0,0,162,0,163,0,0,0,0,0,0,0,0,0,172,0,0,0,175,0,176,0,0,0,0,0,181,0,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,199,0,0,0,202,0,203,0,0,0,0,0,208,0,209];
flixel_tweens_FlxEase.PI2 = Math.PI / 2;
flixel_tweens_FlxEase.EL = 2 * Math.PI / .45;
flixel_tweens_FlxEase.B1 = 0.36363636363636365;
flixel_tweens_FlxEase.B2 = 0.72727272727272729;
flixel_tweens_FlxEase.B3 = 0.54545454545454541;
flixel_tweens_FlxEase.B4 = 0.90909090909090906;
flixel_tweens_FlxEase.B5 = 0.81818181818181823;
flixel_tweens_FlxEase.B6 = 0.95454545454545459;
flixel_tweens_FlxEase.ELASTIC_AMPLITUDE = 1;
flixel_tweens_FlxEase.ELASTIC_PERIOD = 0.4;
flixel_tweens_FlxTween.PERSIST = 1;
flixel_tweens_FlxTween.LOOPING = 2;
flixel_tweens_FlxTween.PINGPONG = 4;
flixel_tweens_FlxTween.ONESHOT = 8;
flixel_tweens_FlxTween.BACKWARD = 16;
flixel_ui_FlxButton.NORMAL = 0;
flixel_ui_FlxButton.HIGHLIGHT = 1;
flixel_ui_FlxButton.PRESSED = 2;
flixel_util_FlxBitmapDataPool.maxLength = 8;
flixel_util_FlxBitmapDataPool.$length = 0;
flixel_util_FlxBitmapDataPool._head = null;
flixel_util_FlxBitmapDataPool._tail = null;
flixel_util_FlxBitmapDataPool._rect = new openfl_geom_Rectangle();
flixel_util_FlxBitmapDataUtil.matrix = new flixel_math_FlxMatrix();
flixel_util_FlxCollision.pointA = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_util_FlxCollision.pointB = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_util_FlxCollision.centerA = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_util_FlxCollision.centerB = (function($this) {
var $r;
var this1 = new flixel_math_FlxPoint(0,0);
$r = this1;
return $r;
}(this));
flixel_util_FlxCollision.matrixA = new flixel_math_FlxMatrix();
flixel_util_FlxCollision.matrixB = new flixel_math_FlxMatrix();
flixel_util_FlxCollision.testMatrix = new flixel_math_FlxMatrix();
flixel_util_FlxCollision.boundsA = new flixel_math_FlxRect();
flixel_util_FlxCollision.boundsB = new flixel_math_FlxRect();
flixel_util_FlxCollision.intersect = new flixel_math_FlxRect();
flixel_util_FlxCollision.flashRect = new openfl_geom_Rectangle();
flixel_util_FlxColor.TRANSPARENT = 0;
flixel_util_FlxColor.WHITE = -1;
flixel_util_FlxColor.GRAY = -8355712;
flixel_util_FlxColor.BLACK = -16777216;
flixel_util_FlxColor.GREEN = -16744448;
flixel_util_FlxColor.LIME = -16711936;
flixel_util_FlxColor.YELLOW = -256;
flixel_util_FlxColor.ORANGE = -23296;
flixel_util_FlxColor.RED = -65536;
flixel_util_FlxColor.PURPLE = -8388480;
flixel_util_FlxColor.BLUE = -16776961;
flixel_util_FlxColor.BROWN = -7650029;
flixel_util_FlxColor.PINK = -16181;
flixel_util_FlxColor.MAGENTA = -65281;
flixel_util_FlxColor.CYAN = -16711681;
flixel_util_FlxColor.colorLookup = (function($this) {
var $r;
var _g = new haxe_ds_StringMap();
_g.h["TRANSPARENT"] = 0;
_g.h["WHITE"] = -1;
_g.h["GRAY"] = -8355712;
_g.h["BLACK"] = -16777216;
_g.h["GREEN"] = -16744448;
_g.h["LIME"] = -16711936;
_g.h["YELLOW"] = -256;
_g.h["ORANGE"] = -23296;
_g.h["RED"] = -65536;
_g.h["PURPLE"] = -8388480;
_g.h["BLUE"] = -16776961;
_g.h["BROWN"] = -7650029;
_g.h["PINK"] = -16181;
_g.h["MAGENTA"] = -65281;
_g.h["CYAN"] = -16711681;
$r = _g;
return $r;
}(this));
flixel_util_FlxColor.COLOR_REGEX = new EReg("^(0x|#)(([A-F0-9]{2}){3,4})$","i");
flixel_util_FlxPath.FORWARD = 0;
flixel_util_FlxPath.BACKWARD = 1;
flixel_util_FlxPath.LOOP_FORWARD = 16;
flixel_util_FlxPath.LOOP_BACKWARD = 256;
flixel_util_FlxPath.YOYO = 4096;
flixel_util_FlxPath.HORIZONTAL_ONLY = 65536;
flixel_util_FlxPath.VERTICAL_ONLY = 1048576;
flixel_util_FlxPath._point = (function($this) {
var $r;
var point = flixel_math_FlxPoint._pool.get().set(0,0);
point._inPool = false;
$r = point;
return $r;
}(this));
flixel_util_FlxSort.ASCENDING = -1;
flixel_util_FlxSort.DESCENDING = 1;
flixel_util_FlxSpriteUtil.flashGfxSprite = new openfl_display_Sprite();
flixel_util_FlxSpriteUtil.flashGfx = flixel_util_FlxSpriteUtil.flashGfxSprite.get_graphics();
flixel_util_LabelValuePair._pool = new flixel_util_FlxPool_$flixel_$util_$LabelValuePair(flixel_util_LabelValuePair);
haxe_Serializer.USE_CACHE = false;
haxe_Serializer.USE_ENUM_INDEX = false;
haxe_Serializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
haxe_Serializer.BASE64_CODES = null;
haxe_Unserializer.DEFAULT_RESOLVER = new haxe__$Unserializer_DefaultResolver();
haxe_Unserializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
haxe_Unserializer.CODES = null;
haxe_crypto_Base64.CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
haxe_crypto_Base64.BYTES = haxe_io_Bytes.ofString(haxe_crypto_Base64.CHARS);
haxe_io_FPHelper.i64tmp = (function($this) {
var $r;
var this1 = new haxe__$Int64__$_$_$Int64(0,0);
$r = this1;
return $r;
}(this));
haxe_io_FPHelper.helper = new DataView(new ArrayBuffer(8));
haxe_xml_Parser.escapes = (function($this) {
var $r;
var h = new haxe_ds_StringMap();
h.h["lt"] = "<";
h.h["gt"] = ">";
h.h["amp"] = "&";
h.h["quot"] = "\"";
h.h["apos"] = "'";
$r = h;
return $r;
}(this));
haxe_zip_InflateImpl.LEN_EXTRA_BITS_TBL = [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,-1,-1];
haxe_zip_InflateImpl.LEN_BASE_VAL_TBL = [3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258];
haxe_zip_InflateImpl.DIST_EXTRA_BITS_TBL = [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,-1,-1];
haxe_zip_InflateImpl.DIST_BASE_VAL_TBL = [1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577];
haxe_zip_InflateImpl.CODE_LENGTHS_POS = [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];
haxe_zip_InflateImpl.FIXED_HUFFMAN = null;
hscript_Parser.p1 = 0;
hscript_Parser.tokenMin = 0;
hscript_Parser.tokenMax = 0;
io_newgrounds_NGLite.onCoreReady = new io_newgrounds_utils_Dispatcher();
io_newgrounds_NG.onCoreReady = new io_newgrounds_utils_Dispatcher();
io_newgrounds_NG.urlParser = new EReg("^(?:http[s]?://)?([^:/\\s]+)(:[0-9]+)?((?:/\\w+)*/)([\\w\\-\\.]+[^#?\\s]+)([^#\\s]*)?(#[\\w\\-]+)?$","i");
io_newgrounds_objects_Medal.EASY = 1;
io_newgrounds_objects_Medal.MODERATE = 2;
io_newgrounds_objects_Medal.CHALLENGING = 3;
io_newgrounds_objects_Medal.DIFFICULT = 4;
io_newgrounds_objects_Medal.BRUTAL = 5;
io_newgrounds_utils_AsyncHttp.PATH = "https://newgrounds.io/gateway_v3.php";
lime__$internal_backend_html5_HTML5HTTPRequest.OPTION_REVOKE_URL = 1;
lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests = 0;
lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit = 17;
lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue = new haxe_ds_List();
lime__$internal_backend_html5_HTML5Window.dummyCharacter = "";
lime__$internal_backend_html5_HTML5Window.windowID = 0;
lime__$internal_format_Base64.DICTIONARY = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
lime__$internal_format_Base64.EXTENDED_DICTIONARY = (function($this) {
var $r;
var result = [];
{
var _g = 0;
var _g1 = lime__$internal_format_Base64.DICTIONARY;
while(_g < _g1.length) {
var a = _g1[_g];
++_g;
var _g2 = 0;
var _g3 = lime__$internal_format_Base64.DICTIONARY;
while(_g2 < _g3.length) {
var b = _g3[_g2];
++_g2;
result.push(a + b);
}
}
}
$r = result;
return $r;
}(this));
lime__$internal_graphics_StackBlur.MUL_TABLE = [1,171,205,293,57,373,79,137,241,27,391,357,41,19,283,265,497,469,443,421,25,191,365,349,335,161,155,149,9,278,269,261,505,245,475,231,449,437,213,415,405,395,193,377,369,361,353,345,169,331,325,319,313,307,301,37,145,285,281,69,271,267,263,259,509,501,493,243,479,118,465,459,113,446,55,435,429,423,209,413,51,403,199,393,97,3,379,375,371,367,363,359,355,351,347,43,85,337,333,165,327,323,5,317,157,311,77,305,303,75,297,294,73,289,287,71,141,279,277,275,68,135,67,133,33,262,260,129,511,507,503,499,495,491,61,121,481,477,237,235,467,232,115,457,227,451,7,445,221,439,218,433,215,427,425,211,419,417,207,411,409,203,202,401,399,396,197,49,389,387,385,383,95,189,47,187,93,185,23,183,91,181,45,179,89,177,11,175,87,173,345,343,341,339,337,21,167,83,331,329,327,163,81,323,321,319,159,79,315,313,39,155,309,307,153,305,303,151,75,299,149,37,295,147,73,291,145,289,287,143,285,71,141,281,35,279,139,69,275,137,273,17,271,135,269,267,133,265,33,263,131,261,130,259,129,257,1];
lime__$internal_graphics_StackBlur.SHG_TABLE = [0,9,10,11,9,12,10,11,12,9,13,13,10,9,13,13,14,14,14,14,10,13,14,14,14,13,13,13,9,14,14,14,15,14,15,14,15,15,14,15,15,15,14,15,15,15,15,15,14,15,15,15,15,15,15,12,14,15,15,13,15,15,15,15,16,16,16,15,16,14,16,16,14,16,13,16,16,16,15,16,13,16,15,16,14,9,16,16,16,16,16,16,16,16,16,13,14,16,16,15,16,16,10,16,15,16,14,16,16,14,16,16,14,16,16,14,15,16,16,16,14,15,14,15,13,16,16,15,17,17,17,17,17,17,14,15,17,17,16,16,17,16,15,17,16,17,11,17,16,17,16,17,16,17,17,16,17,17,16,17,17,16,16,17,17,17,16,14,17,17,17,17,15,16,14,16,15,16,13,16,15,16,14,16,15,16,12,16,15,16,17,17,17,17,17,13,16,15,17,17,17,16,15,17,17,17,16,15,17,17,14,16,17,17,16,17,17,16,15,17,16,14,17,16,15,17,16,17,17,16,17,15,16,17,14,17,16,15,17,16,17,13,17,16,17,17,16,17,14,17,16,17,16,17,16,17,9];
lime_graphics_cairo_CairoFTFontFace.FT_LOAD_FORCE_AUTOHINT = 32;
lime_graphics_opengl_GL.DEPTH_BUFFER_BIT = 256;
lime_graphics_opengl_GL.STENCIL_BUFFER_BIT = 1024;
lime_graphics_opengl_GL.COLOR_BUFFER_BIT = 16384;
lime_graphics_opengl_GL.POINTS = 0;
lime_graphics_opengl_GL.LINES = 1;
lime_graphics_opengl_GL.LINE_LOOP = 2;
lime_graphics_opengl_GL.LINE_STRIP = 3;
lime_graphics_opengl_GL.TRIANGLES = 4;
lime_graphics_opengl_GL.TRIANGLE_STRIP = 5;
lime_graphics_opengl_GL.TRIANGLE_FAN = 6;
lime_graphics_opengl_GL.ZERO = 0;
lime_graphics_opengl_GL.ONE = 1;
lime_graphics_opengl_GL.SRC_COLOR = 768;
lime_graphics_opengl_GL.ONE_MINUS_SRC_COLOR = 769;
lime_graphics_opengl_GL.SRC_ALPHA = 770;
lime_graphics_opengl_GL.ONE_MINUS_SRC_ALPHA = 771;
lime_graphics_opengl_GL.DST_ALPHA = 772;
lime_graphics_opengl_GL.ONE_MINUS_DST_ALPHA = 773;
lime_graphics_opengl_GL.DST_COLOR = 774;
lime_graphics_opengl_GL.ONE_MINUS_DST_COLOR = 775;
lime_graphics_opengl_GL.SRC_ALPHA_SATURATE = 776;
lime_graphics_opengl_GL.FUNC_ADD = 32774;
lime_graphics_opengl_GL.BLEND_EQUATION = 32777;
lime_graphics_opengl_GL.BLEND_EQUATION_RGB = 32777;
lime_graphics_opengl_GL.BLEND_EQUATION_ALPHA = 34877;
lime_graphics_opengl_GL.FUNC_SUBTRACT = 32778;
lime_graphics_opengl_GL.FUNC_REVERSE_SUBTRACT = 32779;
lime_graphics_opengl_GL.BLEND_DST_RGB = 32968;
lime_graphics_opengl_GL.BLEND_SRC_RGB = 32969;
lime_graphics_opengl_GL.BLEND_DST_ALPHA = 32970;
lime_graphics_opengl_GL.BLEND_SRC_ALPHA = 32971;
lime_graphics_opengl_GL.CONSTANT_COLOR = 32769;
lime_graphics_opengl_GL.ONE_MINUS_CONSTANT_COLOR = 32770;
lime_graphics_opengl_GL.CONSTANT_ALPHA = 32771;
lime_graphics_opengl_GL.ONE_MINUS_CONSTANT_ALPHA = 32772;
lime_graphics_opengl_GL.BLEND_COLOR = 32773;
lime_graphics_opengl_GL.ARRAY_BUFFER = 34962;
lime_graphics_opengl_GL.ELEMENT_ARRAY_BUFFER = 34963;
lime_graphics_opengl_GL.ARRAY_BUFFER_BINDING = 34964;
lime_graphics_opengl_GL.ELEMENT_ARRAY_BUFFER_BINDING = 34965;
lime_graphics_opengl_GL.STREAM_DRAW = 35040;
lime_graphics_opengl_GL.STATIC_DRAW = 35044;
lime_graphics_opengl_GL.DYNAMIC_DRAW = 35048;
lime_graphics_opengl_GL.BUFFER_SIZE = 34660;
lime_graphics_opengl_GL.BUFFER_USAGE = 34661;
lime_graphics_opengl_GL.CURRENT_VERTEX_ATTRIB = 34342;
lime_graphics_opengl_GL.FRONT = 1028;
lime_graphics_opengl_GL.BACK = 1029;
lime_graphics_opengl_GL.FRONT_AND_BACK = 1032;
lime_graphics_opengl_GL.CULL_FACE = 2884;
lime_graphics_opengl_GL.BLEND = 3042;
lime_graphics_opengl_GL.DITHER = 3024;
lime_graphics_opengl_GL.STENCIL_TEST = 2960;
lime_graphics_opengl_GL.DEPTH_TEST = 2929;
lime_graphics_opengl_GL.SCISSOR_TEST = 3089;
lime_graphics_opengl_GL.POLYGON_OFFSET_FILL = 32823;
lime_graphics_opengl_GL.SAMPLE_ALPHA_TO_COVERAGE = 32926;
lime_graphics_opengl_GL.SAMPLE_COVERAGE = 32928;
lime_graphics_opengl_GL.NO_ERROR = 0;
lime_graphics_opengl_GL.INVALID_ENUM = 1280;
lime_graphics_opengl_GL.INVALID_VALUE = 1281;
lime_graphics_opengl_GL.INVALID_OPERATION = 1282;
lime_graphics_opengl_GL.OUT_OF_MEMORY = 1285;
lime_graphics_opengl_GL.CW = 2304;
lime_graphics_opengl_GL.CCW = 2305;
lime_graphics_opengl_GL.LINE_WIDTH = 2849;
lime_graphics_opengl_GL.ALIASED_POINT_SIZE_RANGE = 33901;
lime_graphics_opengl_GL.ALIASED_LINE_WIDTH_RANGE = 33902;
lime_graphics_opengl_GL.CULL_FACE_MODE = 2885;
lime_graphics_opengl_GL.FRONT_FACE = 2886;
lime_graphics_opengl_GL.DEPTH_RANGE = 2928;
lime_graphics_opengl_GL.DEPTH_WRITEMASK = 2930;
lime_graphics_opengl_GL.DEPTH_CLEAR_VALUE = 2931;
lime_graphics_opengl_GL.DEPTH_FUNC = 2932;
lime_graphics_opengl_GL.STENCIL_CLEAR_VALUE = 2961;
lime_graphics_opengl_GL.STENCIL_FUNC = 2962;
lime_graphics_opengl_GL.STENCIL_FAIL = 2964;
lime_graphics_opengl_GL.STENCIL_PASS_DEPTH_FAIL = 2965;
lime_graphics_opengl_GL.STENCIL_PASS_DEPTH_PASS = 2966;
lime_graphics_opengl_GL.STENCIL_REF = 2967;
lime_graphics_opengl_GL.STENCIL_VALUE_MASK = 2963;
lime_graphics_opengl_GL.STENCIL_WRITEMASK = 2968;
lime_graphics_opengl_GL.STENCIL_BACK_FUNC = 34816;
lime_graphics_opengl_GL.STENCIL_BACK_FAIL = 34817;
lime_graphics_opengl_GL.STENCIL_BACK_PASS_DEPTH_FAIL = 34818;
lime_graphics_opengl_GL.STENCIL_BACK_PASS_DEPTH_PASS = 34819;
lime_graphics_opengl_GL.STENCIL_BACK_REF = 36003;
lime_graphics_opengl_GL.STENCIL_BACK_VALUE_MASK = 36004;
lime_graphics_opengl_GL.STENCIL_BACK_WRITEMASK = 36005;
lime_graphics_opengl_GL.VIEWPORT = 2978;
lime_graphics_opengl_GL.SCISSOR_BOX = 3088;
lime_graphics_opengl_GL.COLOR_CLEAR_VALUE = 3106;
lime_graphics_opengl_GL.COLOR_WRITEMASK = 3107;
lime_graphics_opengl_GL.UNPACK_ALIGNMENT = 3317;
lime_graphics_opengl_GL.PACK_ALIGNMENT = 3333;
lime_graphics_opengl_GL.MAX_TEXTURE_SIZE = 3379;
lime_graphics_opengl_GL.MAX_VIEWPORT_DIMS = 3386;
lime_graphics_opengl_GL.SUBPIXEL_BITS = 3408;
lime_graphics_opengl_GL.RED_BITS = 3410;
lime_graphics_opengl_GL.GREEN_BITS = 3411;
lime_graphics_opengl_GL.BLUE_BITS = 3412;
lime_graphics_opengl_GL.ALPHA_BITS = 3413;
lime_graphics_opengl_GL.DEPTH_BITS = 3414;
lime_graphics_opengl_GL.STENCIL_BITS = 3415;
lime_graphics_opengl_GL.POLYGON_OFFSET_UNITS = 10752;
lime_graphics_opengl_GL.POLYGON_OFFSET_FACTOR = 32824;
lime_graphics_opengl_GL.TEXTURE_BINDING_2D = 32873;
lime_graphics_opengl_GL.SAMPLE_BUFFERS = 32936;
lime_graphics_opengl_GL.SAMPLES = 32937;
lime_graphics_opengl_GL.SAMPLE_COVERAGE_VALUE = 32938;
lime_graphics_opengl_GL.SAMPLE_COVERAGE_INVERT = 32939;
lime_graphics_opengl_GL.NUM_COMPRESSED_TEXTURE_FORMATS = 34466;
lime_graphics_opengl_GL.COMPRESSED_TEXTURE_FORMATS = 34467;
lime_graphics_opengl_GL.DONT_CARE = 4352;
lime_graphics_opengl_GL.FASTEST = 4353;
lime_graphics_opengl_GL.NICEST = 4354;
lime_graphics_opengl_GL.GENERATE_MIPMAP_HINT = 33170;
lime_graphics_opengl_GL.BYTE = 5120;
lime_graphics_opengl_GL.UNSIGNED_BYTE = 5121;
lime_graphics_opengl_GL.SHORT = 5122;
lime_graphics_opengl_GL.UNSIGNED_SHORT = 5123;
lime_graphics_opengl_GL.INT = 5124;
lime_graphics_opengl_GL.UNSIGNED_INT = 5125;
lime_graphics_opengl_GL.FLOAT = 5126;
lime_graphics_opengl_GL.DEPTH_COMPONENT = 6402;
lime_graphics_opengl_GL.ALPHA = 6406;
lime_graphics_opengl_GL.RGB = 6407;
lime_graphics_opengl_GL.RGBA = 6408;
lime_graphics_opengl_GL.LUMINANCE = 6409;
lime_graphics_opengl_GL.LUMINANCE_ALPHA = 6410;
lime_graphics_opengl_GL.UNSIGNED_SHORT_4_4_4_4 = 32819;
lime_graphics_opengl_GL.UNSIGNED_SHORT_5_5_5_1 = 32820;
lime_graphics_opengl_GL.UNSIGNED_SHORT_5_6_5 = 33635;
lime_graphics_opengl_GL.FRAGMENT_SHADER = 35632;
lime_graphics_opengl_GL.VERTEX_SHADER = 35633;
lime_graphics_opengl_GL.MAX_VERTEX_ATTRIBS = 34921;
lime_graphics_opengl_GL.MAX_VERTEX_UNIFORM_VECTORS = 36347;
lime_graphics_opengl_GL.MAX_VARYING_VECTORS = 36348;
lime_graphics_opengl_GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;
lime_graphics_opengl_GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;
lime_graphics_opengl_GL.MAX_TEXTURE_IMAGE_UNITS = 34930;
lime_graphics_opengl_GL.MAX_FRAGMENT_UNIFORM_VECTORS = 36349;
lime_graphics_opengl_GL.SHADER_TYPE = 35663;
lime_graphics_opengl_GL.DELETE_STATUS = 35712;
lime_graphics_opengl_GL.LINK_STATUS = 35714;
lime_graphics_opengl_GL.VALIDATE_STATUS = 35715;
lime_graphics_opengl_GL.ATTACHED_SHADERS = 35717;
lime_graphics_opengl_GL.ACTIVE_UNIFORMS = 35718;
lime_graphics_opengl_GL.ACTIVE_ATTRIBUTES = 35721;
lime_graphics_opengl_GL.SHADING_LANGUAGE_VERSION = 35724;
lime_graphics_opengl_GL.CURRENT_PROGRAM = 35725;
lime_graphics_opengl_GL.NEVER = 512;
lime_graphics_opengl_GL.LESS = 513;
lime_graphics_opengl_GL.EQUAL = 514;
lime_graphics_opengl_GL.LEQUAL = 515;
lime_graphics_opengl_GL.GREATER = 516;
lime_graphics_opengl_GL.NOTEQUAL = 517;
lime_graphics_opengl_GL.GEQUAL = 518;
lime_graphics_opengl_GL.ALWAYS = 519;
lime_graphics_opengl_GL.KEEP = 7680;
lime_graphics_opengl_GL.REPLACE = 7681;
lime_graphics_opengl_GL.INCR = 7682;
lime_graphics_opengl_GL.DECR = 7683;
lime_graphics_opengl_GL.INVERT = 5386;
lime_graphics_opengl_GL.INCR_WRAP = 34055;
lime_graphics_opengl_GL.DECR_WRAP = 34056;
lime_graphics_opengl_GL.VENDOR = 7936;
lime_graphics_opengl_GL.RENDERER = 7937;
lime_graphics_opengl_GL.VERSION = 7938;
lime_graphics_opengl_GL.EXTENSIONS = 7939;
lime_graphics_opengl_GL.NEAREST = 9728;
lime_graphics_opengl_GL.LINEAR = 9729;
lime_graphics_opengl_GL.NEAREST_MIPMAP_NEAREST = 9984;
lime_graphics_opengl_GL.LINEAR_MIPMAP_NEAREST = 9985;
lime_graphics_opengl_GL.NEAREST_MIPMAP_LINEAR = 9986;
lime_graphics_opengl_GL.LINEAR_MIPMAP_LINEAR = 9987;
lime_graphics_opengl_GL.TEXTURE_MAG_FILTER = 10240;
lime_graphics_opengl_GL.TEXTURE_MIN_FILTER = 10241;
lime_graphics_opengl_GL.TEXTURE_WRAP_S = 10242;
lime_graphics_opengl_GL.TEXTURE_WRAP_T = 10243;
lime_graphics_opengl_GL.TEXTURE_2D = 3553;
lime_graphics_opengl_GL.TEXTURE = 5890;
lime_graphics_opengl_GL.TEXTURE_CUBE_MAP = 34067;
lime_graphics_opengl_GL.TEXTURE_BINDING_CUBE_MAP = 34068;
lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
lime_graphics_opengl_GL.MAX_CUBE_MAP_TEXTURE_SIZE = 34076;
lime_graphics_opengl_GL.TEXTURE0 = 33984;
lime_graphics_opengl_GL.TEXTURE1 = 33985;
lime_graphics_opengl_GL.TEXTURE2 = 33986;
lime_graphics_opengl_GL.TEXTURE3 = 33987;
lime_graphics_opengl_GL.TEXTURE4 = 33988;
lime_graphics_opengl_GL.TEXTURE5 = 33989;
lime_graphics_opengl_GL.TEXTURE6 = 33990;
lime_graphics_opengl_GL.TEXTURE7 = 33991;
lime_graphics_opengl_GL.TEXTURE8 = 33992;
lime_graphics_opengl_GL.TEXTURE9 = 33993;
lime_graphics_opengl_GL.TEXTURE10 = 33994;
lime_graphics_opengl_GL.TEXTURE11 = 33995;
lime_graphics_opengl_GL.TEXTURE12 = 33996;
lime_graphics_opengl_GL.TEXTURE13 = 33997;
lime_graphics_opengl_GL.TEXTURE14 = 33998;
lime_graphics_opengl_GL.TEXTURE15 = 33999;
lime_graphics_opengl_GL.TEXTURE16 = 34000;
lime_graphics_opengl_GL.TEXTURE17 = 34001;
lime_graphics_opengl_GL.TEXTURE18 = 34002;
lime_graphics_opengl_GL.TEXTURE19 = 34003;
lime_graphics_opengl_GL.TEXTURE20 = 34004;
lime_graphics_opengl_GL.TEXTURE21 = 34005;
lime_graphics_opengl_GL.TEXTURE22 = 34006;
lime_graphics_opengl_GL.TEXTURE23 = 34007;
lime_graphics_opengl_GL.TEXTURE24 = 34008;
lime_graphics_opengl_GL.TEXTURE25 = 34009;
lime_graphics_opengl_GL.TEXTURE26 = 34010;
lime_graphics_opengl_GL.TEXTURE27 = 34011;
lime_graphics_opengl_GL.TEXTURE28 = 34012;
lime_graphics_opengl_GL.TEXTURE29 = 34013;
lime_graphics_opengl_GL.TEXTURE30 = 34014;
lime_graphics_opengl_GL.TEXTURE31 = 34015;
lime_graphics_opengl_GL.ACTIVE_TEXTURE = 34016;
lime_graphics_opengl_GL.REPEAT = 10497;
lime_graphics_opengl_GL.CLAMP_TO_EDGE = 33071;
lime_graphics_opengl_GL.MIRRORED_REPEAT = 33648;
lime_graphics_opengl_GL.FLOAT_VEC2 = 35664;
lime_graphics_opengl_GL.FLOAT_VEC3 = 35665;
lime_graphics_opengl_GL.FLOAT_VEC4 = 35666;
lime_graphics_opengl_GL.INT_VEC2 = 35667;
lime_graphics_opengl_GL.INT_VEC3 = 35668;
lime_graphics_opengl_GL.INT_VEC4 = 35669;
lime_graphics_opengl_GL.BOOL = 35670;
lime_graphics_opengl_GL.BOOL_VEC2 = 35671;
lime_graphics_opengl_GL.BOOL_VEC3 = 35672;
lime_graphics_opengl_GL.BOOL_VEC4 = 35673;
lime_graphics_opengl_GL.FLOAT_MAT2 = 35674;
lime_graphics_opengl_GL.FLOAT_MAT3 = 35675;
lime_graphics_opengl_GL.FLOAT_MAT4 = 35676;
lime_graphics_opengl_GL.SAMPLER_2D = 35678;
lime_graphics_opengl_GL.SAMPLER_CUBE = 35680;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_ENABLED = 34338;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_SIZE = 34339;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_STRIDE = 34340;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_TYPE = 34341;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_POINTER = 34373;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975;
lime_graphics_opengl_GL.IMPLEMENTATION_COLOR_READ_TYPE = 35738;
lime_graphics_opengl_GL.IMPLEMENTATION_COLOR_READ_FORMAT = 35739;
lime_graphics_opengl_GL.VERTEX_PROGRAM_POINT_SIZE = 34370;
lime_graphics_opengl_GL.POINT_SPRITE = 34913;
lime_graphics_opengl_GL.COMPILE_STATUS = 35713;
lime_graphics_opengl_GL.LOW_FLOAT = 36336;
lime_graphics_opengl_GL.MEDIUM_FLOAT = 36337;
lime_graphics_opengl_GL.HIGH_FLOAT = 36338;
lime_graphics_opengl_GL.LOW_INT = 36339;
lime_graphics_opengl_GL.MEDIUM_INT = 36340;
lime_graphics_opengl_GL.HIGH_INT = 36341;
lime_graphics_opengl_GL.FRAMEBUFFER = 36160;
lime_graphics_opengl_GL.RENDERBUFFER = 36161;
lime_graphics_opengl_GL.RGBA4 = 32854;
lime_graphics_opengl_GL.RGB5_A1 = 32855;
lime_graphics_opengl_GL.RGB565 = 36194;
lime_graphics_opengl_GL.DEPTH_COMPONENT16 = 33189;
lime_graphics_opengl_GL.STENCIL_INDEX = 6401;
lime_graphics_opengl_GL.STENCIL_INDEX8 = 36168;
lime_graphics_opengl_GL.DEPTH_STENCIL = 34041;
lime_graphics_opengl_GL.RENDERBUFFER_WIDTH = 36162;
lime_graphics_opengl_GL.RENDERBUFFER_HEIGHT = 36163;
lime_graphics_opengl_GL.RENDERBUFFER_INTERNAL_FORMAT = 36164;
lime_graphics_opengl_GL.RENDERBUFFER_RED_SIZE = 36176;
lime_graphics_opengl_GL.RENDERBUFFER_GREEN_SIZE = 36177;
lime_graphics_opengl_GL.RENDERBUFFER_BLUE_SIZE = 36178;
lime_graphics_opengl_GL.RENDERBUFFER_ALPHA_SIZE = 36179;
lime_graphics_opengl_GL.RENDERBUFFER_DEPTH_SIZE = 36180;
lime_graphics_opengl_GL.RENDERBUFFER_STENCIL_SIZE = 36181;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051;
lime_graphics_opengl_GL.COLOR_ATTACHMENT0 = 36064;
lime_graphics_opengl_GL.DEPTH_ATTACHMENT = 36096;
lime_graphics_opengl_GL.STENCIL_ATTACHMENT = 36128;
lime_graphics_opengl_GL.DEPTH_STENCIL_ATTACHMENT = 33306;
lime_graphics_opengl_GL.NONE = 0;
lime_graphics_opengl_GL.FRAMEBUFFER_COMPLETE = 36053;
lime_graphics_opengl_GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054;
lime_graphics_opengl_GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055;
lime_graphics_opengl_GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057;
lime_graphics_opengl_GL.FRAMEBUFFER_UNSUPPORTED = 36061;
lime_graphics_opengl_GL.FRAMEBUFFER_BINDING = 36006;
lime_graphics_opengl_GL.RENDERBUFFER_BINDING = 36007;
lime_graphics_opengl_GL.MAX_RENDERBUFFER_SIZE = 34024;
lime_graphics_opengl_GL.INVALID_FRAMEBUFFER_OPERATION = 1286;
lime_graphics_opengl_GL.UNPACK_FLIP_Y_WEBGL = 37440;
lime_graphics_opengl_GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441;
lime_graphics_opengl_GL.CONTEXT_LOST_WEBGL = 37442;
lime_graphics_opengl_GL.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443;
lime_graphics_opengl_GL.BROWSER_DEFAULT_WEBGL = 37444;
lime_graphics_opengl_GL.READ_BUFFER = 3074;
lime_graphics_opengl_GL.UNPACK_ROW_LENGTH = 3314;
lime_graphics_opengl_GL.UNPACK_SKIP_ROWS = 3315;
lime_graphics_opengl_GL.UNPACK_SKIP_PIXELS = 3316;
lime_graphics_opengl_GL.PACK_ROW_LENGTH = 3330;
lime_graphics_opengl_GL.PACK_SKIP_ROWS = 3331;
lime_graphics_opengl_GL.PACK_SKIP_PIXELS = 3332;
lime_graphics_opengl_GL.TEXTURE_BINDING_3D = 32874;
lime_graphics_opengl_GL.UNPACK_SKIP_IMAGES = 32877;
lime_graphics_opengl_GL.UNPACK_IMAGE_HEIGHT = 32878;
lime_graphics_opengl_GL.MAX_3D_TEXTURE_SIZE = 32883;
lime_graphics_opengl_GL.MAX_ELEMENTS_VERTICES = 33000;
lime_graphics_opengl_GL.MAX_ELEMENTS_INDICES = 33001;
lime_graphics_opengl_GL.MAX_TEXTURE_LOD_BIAS = 34045;
lime_graphics_opengl_GL.MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657;
lime_graphics_opengl_GL.MAX_VERTEX_UNIFORM_COMPONENTS = 35658;
lime_graphics_opengl_GL.MAX_ARRAY_TEXTURE_LAYERS = 35071;
lime_graphics_opengl_GL.MIN_PROGRAM_TEXEL_OFFSET = 35076;
lime_graphics_opengl_GL.MAX_PROGRAM_TEXEL_OFFSET = 35077;
lime_graphics_opengl_GL.MAX_VARYING_COMPONENTS = 35659;
lime_graphics_opengl_GL.FRAGMENT_SHADER_DERIVATIVE_HINT = 35723;
lime_graphics_opengl_GL.RASTERIZER_DISCARD = 35977;
lime_graphics_opengl_GL.VERTEX_ARRAY_BINDING = 34229;
lime_graphics_opengl_GL.MAX_VERTEX_OUTPUT_COMPONENTS = 37154;
lime_graphics_opengl_GL.MAX_FRAGMENT_INPUT_COMPONENTS = 37157;
lime_graphics_opengl_GL.MAX_SERVER_WAIT_TIMEOUT = 37137;
lime_graphics_opengl_GL.MAX_ELEMENT_INDEX = 36203;
lime_graphics_opengl_GL.RED = 6403;
lime_graphics_opengl_GL.RGB8 = 32849;
lime_graphics_opengl_GL.RGBA8 = 32856;
lime_graphics_opengl_GL.RGB10_A2 = 32857;
lime_graphics_opengl_GL.TEXTURE_3D = 32879;
lime_graphics_opengl_GL.TEXTURE_WRAP_R = 32882;
lime_graphics_opengl_GL.TEXTURE_MIN_LOD = 33082;
lime_graphics_opengl_GL.TEXTURE_MAX_LOD = 33083;
lime_graphics_opengl_GL.TEXTURE_BASE_LEVEL = 33084;
lime_graphics_opengl_GL.TEXTURE_MAX_LEVEL = 33085;
lime_graphics_opengl_GL.TEXTURE_COMPARE_MODE = 34892;
lime_graphics_opengl_GL.TEXTURE_COMPARE_FUNC = 34893;
lime_graphics_opengl_GL.SRGB = 35904;
lime_graphics_opengl_GL.SRGB8 = 35905;
lime_graphics_opengl_GL.SRGB8_ALPHA8 = 35907;
lime_graphics_opengl_GL.COMPARE_REF_TO_TEXTURE = 34894;
lime_graphics_opengl_GL.RGBA32F = 34836;
lime_graphics_opengl_GL.RGB32F = 34837;
lime_graphics_opengl_GL.RGBA16F = 34842;
lime_graphics_opengl_GL.RGB16F = 34843;
lime_graphics_opengl_GL.TEXTURE_2D_ARRAY = 35866;
lime_graphics_opengl_GL.TEXTURE_BINDING_2D_ARRAY = 35869;
lime_graphics_opengl_GL.R11F_G11F_B10F = 35898;
lime_graphics_opengl_GL.RGB9_E5 = 35901;
lime_graphics_opengl_GL.RGBA32UI = 36208;
lime_graphics_opengl_GL.RGB32UI = 36209;
lime_graphics_opengl_GL.RGBA16UI = 36214;
lime_graphics_opengl_GL.RGB16UI = 36215;
lime_graphics_opengl_GL.RGBA8UI = 36220;
lime_graphics_opengl_GL.RGB8UI = 36221;
lime_graphics_opengl_GL.RGBA32I = 36226;
lime_graphics_opengl_GL.RGB32I = 36227;
lime_graphics_opengl_GL.RGBA16I = 36232;
lime_graphics_opengl_GL.RGB16I = 36233;
lime_graphics_opengl_GL.RGBA8I = 36238;
lime_graphics_opengl_GL.RGB8I = 36239;
lime_graphics_opengl_GL.RED_INTEGER = 36244;
lime_graphics_opengl_GL.RGB_INTEGER = 36248;
lime_graphics_opengl_GL.RGBA_INTEGER = 36249;
lime_graphics_opengl_GL.R8 = 33321;
lime_graphics_opengl_GL.RG8 = 33323;
lime_graphics_opengl_GL.R16F = 33325;
lime_graphics_opengl_GL.R32F = 33326;
lime_graphics_opengl_GL.RG16F = 33327;
lime_graphics_opengl_GL.RG32F = 33328;
lime_graphics_opengl_GL.R8I = 33329;
lime_graphics_opengl_GL.R8UI = 33330;
lime_graphics_opengl_GL.R16I = 33331;
lime_graphics_opengl_GL.R16UI = 33332;
lime_graphics_opengl_GL.R32I = 33333;
lime_graphics_opengl_GL.R32UI = 33334;
lime_graphics_opengl_GL.RG8I = 33335;
lime_graphics_opengl_GL.RG8UI = 33336;
lime_graphics_opengl_GL.RG16I = 33337;
lime_graphics_opengl_GL.RG16UI = 33338;
lime_graphics_opengl_GL.RG32I = 33339;
lime_graphics_opengl_GL.RG32UI = 33340;
lime_graphics_opengl_GL.R8_SNORM = 36756;
lime_graphics_opengl_GL.RG8_SNORM = 36757;
lime_graphics_opengl_GL.RGB8_SNORM = 36758;
lime_graphics_opengl_GL.RGBA8_SNORM = 36759;
lime_graphics_opengl_GL.RGB10_A2UI = 36975;
lime_graphics_opengl_GL.TEXTURE_IMMUTABLE_FORMAT = 37167;
lime_graphics_opengl_GL.TEXTURE_IMMUTABLE_LEVELS = 33503;
lime_graphics_opengl_GL.UNSIGNED_INT_2_10_10_10_REV = 33640;
lime_graphics_opengl_GL.UNSIGNED_INT_10F_11F_11F_REV = 35899;
lime_graphics_opengl_GL.UNSIGNED_INT_5_9_9_9_REV = 35902;
lime_graphics_opengl_GL.FLOAT_32_UNSIGNED_INT_24_8_REV = 36269;
lime_graphics_opengl_GL.UNSIGNED_INT_24_8 = 34042;
lime_graphics_opengl_GL.HALF_FLOAT = 5131;
lime_graphics_opengl_GL.RG = 33319;
lime_graphics_opengl_GL.RG_INTEGER = 33320;
lime_graphics_opengl_GL.INT_2_10_10_10_REV = 36255;
lime_graphics_opengl_GL.CURRENT_QUERY = 34917;
lime_graphics_opengl_GL.QUERY_RESULT = 34918;
lime_graphics_opengl_GL.QUERY_RESULT_AVAILABLE = 34919;
lime_graphics_opengl_GL.ANY_SAMPLES_PASSED = 35887;
lime_graphics_opengl_GL.ANY_SAMPLES_PASSED_CONSERVATIVE = 36202;
lime_graphics_opengl_GL.MAX_DRAW_BUFFERS = 34852;
lime_graphics_opengl_GL.DRAW_BUFFER0 = 34853;
lime_graphics_opengl_GL.DRAW_BUFFER1 = 34854;
lime_graphics_opengl_GL.DRAW_BUFFER2 = 34855;
lime_graphics_opengl_GL.DRAW_BUFFER3 = 34856;
lime_graphics_opengl_GL.DRAW_BUFFER4 = 34857;
lime_graphics_opengl_GL.DRAW_BUFFER5 = 34858;
lime_graphics_opengl_GL.DRAW_BUFFER6 = 34859;
lime_graphics_opengl_GL.DRAW_BUFFER7 = 34860;
lime_graphics_opengl_GL.DRAW_BUFFER8 = 34861;
lime_graphics_opengl_GL.DRAW_BUFFER9 = 34862;
lime_graphics_opengl_GL.DRAW_BUFFER10 = 34863;
lime_graphics_opengl_GL.DRAW_BUFFER11 = 34864;
lime_graphics_opengl_GL.DRAW_BUFFER12 = 34865;
lime_graphics_opengl_GL.DRAW_BUFFER13 = 34866;
lime_graphics_opengl_GL.DRAW_BUFFER14 = 34867;
lime_graphics_opengl_GL.DRAW_BUFFER15 = 34868;
lime_graphics_opengl_GL.MAX_COLOR_ATTACHMENTS = 36063;
lime_graphics_opengl_GL.COLOR_ATTACHMENT1 = 36065;
lime_graphics_opengl_GL.COLOR_ATTACHMENT2 = 36066;
lime_graphics_opengl_GL.COLOR_ATTACHMENT3 = 36067;
lime_graphics_opengl_GL.COLOR_ATTACHMENT4 = 36068;
lime_graphics_opengl_GL.COLOR_ATTACHMENT5 = 36069;
lime_graphics_opengl_GL.COLOR_ATTACHMENT6 = 36070;
lime_graphics_opengl_GL.COLOR_ATTACHMENT7 = 36071;
lime_graphics_opengl_GL.COLOR_ATTACHMENT8 = 36072;
lime_graphics_opengl_GL.COLOR_ATTACHMENT9 = 36073;
lime_graphics_opengl_GL.COLOR_ATTACHMENT10 = 36074;
lime_graphics_opengl_GL.COLOR_ATTACHMENT11 = 36075;
lime_graphics_opengl_GL.COLOR_ATTACHMENT12 = 36076;
lime_graphics_opengl_GL.COLOR_ATTACHMENT13 = 36077;
lime_graphics_opengl_GL.COLOR_ATTACHMENT14 = 36078;
lime_graphics_opengl_GL.COLOR_ATTACHMENT15 = 36079;
lime_graphics_opengl_GL.SAMPLER_3D = 35679;
lime_graphics_opengl_GL.SAMPLER_2D_SHADOW = 35682;
lime_graphics_opengl_GL.SAMPLER_2D_ARRAY = 36289;
lime_graphics_opengl_GL.SAMPLER_2D_ARRAY_SHADOW = 36292;
lime_graphics_opengl_GL.SAMPLER_CUBE_SHADOW = 36293;
lime_graphics_opengl_GL.INT_SAMPLER_2D = 36298;
lime_graphics_opengl_GL.INT_SAMPLER_3D = 36299;
lime_graphics_opengl_GL.INT_SAMPLER_CUBE = 36300;
lime_graphics_opengl_GL.INT_SAMPLER_2D_ARRAY = 36303;
lime_graphics_opengl_GL.UNSIGNED_INT_SAMPLER_2D = 36306;
lime_graphics_opengl_GL.UNSIGNED_INT_SAMPLER_3D = 36307;
lime_graphics_opengl_GL.UNSIGNED_INT_SAMPLER_CUBE = 36308;
lime_graphics_opengl_GL.UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311;
lime_graphics_opengl_GL.MAX_SAMPLES = 36183;
lime_graphics_opengl_GL.SAMPLER_BINDING = 35097;
lime_graphics_opengl_GL.PIXEL_PACK_BUFFER = 35051;
lime_graphics_opengl_GL.PIXEL_UNPACK_BUFFER = 35052;
lime_graphics_opengl_GL.PIXEL_PACK_BUFFER_BINDING = 35053;
lime_graphics_opengl_GL.PIXEL_UNPACK_BUFFER_BINDING = 35055;
lime_graphics_opengl_GL.COPY_READ_BUFFER = 36662;
lime_graphics_opengl_GL.COPY_WRITE_BUFFER = 36663;
lime_graphics_opengl_GL.COPY_READ_BUFFER_BINDING = 36662;
lime_graphics_opengl_GL.COPY_WRITE_BUFFER_BINDING = 36663;
lime_graphics_opengl_GL.FLOAT_MAT2x3 = 35685;
lime_graphics_opengl_GL.FLOAT_MAT2x4 = 35686;
lime_graphics_opengl_GL.FLOAT_MAT3x2 = 35687;
lime_graphics_opengl_GL.FLOAT_MAT3x4 = 35688;
lime_graphics_opengl_GL.FLOAT_MAT4x2 = 35689;
lime_graphics_opengl_GL.FLOAT_MAT4x3 = 35690;
lime_graphics_opengl_GL.UNSIGNED_INT_VEC2 = 36294;
lime_graphics_opengl_GL.UNSIGNED_INT_VEC3 = 36295;
lime_graphics_opengl_GL.UNSIGNED_INT_VEC4 = 36296;
lime_graphics_opengl_GL.UNSIGNED_NORMALIZED = 35863;
lime_graphics_opengl_GL.SIGNED_NORMALIZED = 36764;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_INTEGER = 35069;
lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_DIVISOR = 35070;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER_MODE = 35967;
lime_graphics_opengl_GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_VARYINGS = 35971;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER_START = 35972;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976;
lime_graphics_opengl_GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978;
lime_graphics_opengl_GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979;
lime_graphics_opengl_GL.INTERLEAVED_ATTRIBS = 35980;
lime_graphics_opengl_GL.SEPARATE_ATTRIBS = 35981;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER = 35982;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK = 36386;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_PAUSED = 36387;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_ACTIVE = 36388;
lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BINDING = 36389;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303;
lime_graphics_opengl_GL.FRAMEBUFFER_DEFAULT = 33304;
lime_graphics_opengl_GL.DEPTH24_STENCIL8 = 35056;
lime_graphics_opengl_GL.DRAW_FRAMEBUFFER_BINDING = 36006;
lime_graphics_opengl_GL.READ_FRAMEBUFFER = 36008;
lime_graphics_opengl_GL.DRAW_FRAMEBUFFER = 36009;
lime_graphics_opengl_GL.READ_FRAMEBUFFER_BINDING = 36010;
lime_graphics_opengl_GL.RENDERBUFFER_SAMPLES = 36011;
lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052;
lime_graphics_opengl_GL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182;
lime_graphics_opengl_GL.UNIFORM_BUFFER = 35345;
lime_graphics_opengl_GL.UNIFORM_BUFFER_BINDING = 35368;
lime_graphics_opengl_GL.UNIFORM_BUFFER_START = 35369;
lime_graphics_opengl_GL.UNIFORM_BUFFER_SIZE = 35370;
lime_graphics_opengl_GL.MAX_VERTEX_UNIFORM_BLOCKS = 35371;
lime_graphics_opengl_GL.MAX_FRAGMENT_UNIFORM_BLOCKS = 35373;
lime_graphics_opengl_GL.MAX_COMBINED_UNIFORM_BLOCKS = 35374;
lime_graphics_opengl_GL.MAX_UNIFORM_BUFFER_BINDINGS = 35375;
lime_graphics_opengl_GL.MAX_UNIFORM_BLOCK_SIZE = 35376;
lime_graphics_opengl_GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377;
lime_graphics_opengl_GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379;
lime_graphics_opengl_GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380;
lime_graphics_opengl_GL.ACTIVE_UNIFORM_BLOCKS = 35382;
lime_graphics_opengl_GL.UNIFORM_TYPE = 35383;
lime_graphics_opengl_GL.UNIFORM_SIZE = 35384;
lime_graphics_opengl_GL.UNIFORM_BLOCK_INDEX = 35386;
lime_graphics_opengl_GL.UNIFORM_OFFSET = 35387;
lime_graphics_opengl_GL.UNIFORM_ARRAY_STRIDE = 35388;
lime_graphics_opengl_GL.UNIFORM_MATRIX_STRIDE = 35389;
lime_graphics_opengl_GL.UNIFORM_IS_ROW_MAJOR = 35390;
lime_graphics_opengl_GL.UNIFORM_BLOCK_BINDING = 35391;
lime_graphics_opengl_GL.UNIFORM_BLOCK_DATA_SIZE = 35392;
lime_graphics_opengl_GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394;
lime_graphics_opengl_GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395;
lime_graphics_opengl_GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396;
lime_graphics_opengl_GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398;
lime_graphics_opengl_GL.OBJECT_TYPE = 37138;
lime_graphics_opengl_GL.SYNC_CONDITION = 37139;
lime_graphics_opengl_GL.SYNC_STATUS = 37140;
lime_graphics_opengl_GL.SYNC_FLAGS = 37141;
lime_graphics_opengl_GL.SYNC_FENCE = 37142;
lime_graphics_opengl_GL.SYNC_GPU_COMMANDS_COMPLETE = 37143;
lime_graphics_opengl_GL.UNSIGNALED = 37144;
lime_graphics_opengl_GL.SIGNALED = 37145;
lime_graphics_opengl_GL.ALREADY_SIGNALED = 37146;
lime_graphics_opengl_GL.TIMEOUT_EXPIRED = 37147;
lime_graphics_opengl_GL.CONDITION_SATISFIED = 37148;
lime_graphics_opengl_GL.WAIT_FAILED = 37149;
lime_graphics_opengl_GL.SYNC_FLUSH_COMMANDS_BIT = 1;
lime_graphics_opengl_GL.COLOR = 6144;
lime_graphics_opengl_GL.DEPTH = 6145;
lime_graphics_opengl_GL.STENCIL = 6146;
lime_graphics_opengl_GL.MIN = 32775;
lime_graphics_opengl_GL.MAX = 32776;
lime_graphics_opengl_GL.DEPTH_COMPONENT24 = 33190;
lime_graphics_opengl_GL.STREAM_READ = 35041;
lime_graphics_opengl_GL.STREAM_COPY = 35042;
lime_graphics_opengl_GL.STATIC_READ = 35045;
lime_graphics_opengl_GL.STATIC_COPY = 35046;
lime_graphics_opengl_GL.DYNAMIC_READ = 35049;
lime_graphics_opengl_GL.DYNAMIC_COPY = 35050;
lime_graphics_opengl_GL.DEPTH_COMPONENT32F = 36012;
lime_graphics_opengl_GL.DEPTH32F_STENCIL8 = 36013;
lime_graphics_opengl_GL.INVALID_INDEX = -1;
lime_graphics_opengl_GL.TIMEOUT_IGNORED = -1;
lime_graphics_opengl_GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 37447;
lime_math_ColorMatrix.__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];
lime_math_Matrix4.__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];
lime_media_openal_AL.NONE = 0;
lime_media_openal_AL.FALSE = 0;
lime_media_openal_AL.TRUE = 1;
lime_media_openal_AL.SOURCE_RELATIVE = 514;
lime_media_openal_AL.CONE_INNER_ANGLE = 4097;
lime_media_openal_AL.CONE_OUTER_ANGLE = 4098;
lime_media_openal_AL.PITCH = 4099;
lime_media_openal_AL.POSITION = 4100;
lime_media_openal_AL.DIRECTION = 4101;
lime_media_openal_AL.VELOCITY = 4102;
lime_media_openal_AL.LOOPING = 4103;
lime_media_openal_AL.BUFFER = 4105;
lime_media_openal_AL.GAIN = 4106;
lime_media_openal_AL.MIN_GAIN = 4109;
lime_media_openal_AL.MAX_GAIN = 4110;
lime_media_openal_AL.ORIENTATION = 4111;
lime_media_openal_AL.SOURCE_STATE = 4112;
lime_media_openal_AL.INITIAL = 4113;
lime_media_openal_AL.PLAYING = 4114;
lime_media_openal_AL.PAUSED = 4115;
lime_media_openal_AL.STOPPED = 4116;
lime_media_openal_AL.BUFFERS_QUEUED = 4117;
lime_media_openal_AL.BUFFERS_PROCESSED = 4118;
lime_media_openal_AL.REFERENCE_DISTANCE = 4128;
lime_media_openal_AL.ROLLOFF_FACTOR = 4129;
lime_media_openal_AL.CONE_OUTER_GAIN = 4130;
lime_media_openal_AL.MAX_DISTANCE = 4131;
lime_media_openal_AL.SEC_OFFSET = 4132;
lime_media_openal_AL.SAMPLE_OFFSET = 4133;
lime_media_openal_AL.BYTE_OFFSET = 4134;
lime_media_openal_AL.SOURCE_TYPE = 4135;
lime_media_openal_AL.STATIC = 4136;
lime_media_openal_AL.STREAMING = 4137;
lime_media_openal_AL.UNDETERMINED = 4144;
lime_media_openal_AL.FORMAT_MONO8 = 4352;
lime_media_openal_AL.FORMAT_MONO16 = 4353;
lime_media_openal_AL.FORMAT_STEREO8 = 4354;
lime_media_openal_AL.FORMAT_STEREO16 = 4355;
lime_media_openal_AL.FREQUENCY = 8193;
lime_media_openal_AL.BITS = 8194;
lime_media_openal_AL.CHANNELS = 8195;
lime_media_openal_AL.SIZE = 8196;
lime_media_openal_AL.NO_ERROR = 0;
lime_media_openal_AL.INVALID_NAME = 40961;
lime_media_openal_AL.INVALID_ENUM = 40962;
lime_media_openal_AL.INVALID_VALUE = 40963;
lime_media_openal_AL.INVALID_OPERATION = 40964;
lime_media_openal_AL.OUT_OF_MEMORY = 40965;
lime_media_openal_AL.VENDOR = 45057;
lime_media_openal_AL.VERSION = 45058;
lime_media_openal_AL.RENDERER = 45059;
lime_media_openal_AL.EXTENSIONS = 45060;
lime_media_openal_AL.DOPPLER_FACTOR = 49152;
lime_media_openal_AL.SPEED_OF_SOUND = 49155;
lime_media_openal_AL.DOPPLER_VELOCITY = 49153;
lime_media_openal_AL.DISTANCE_MODEL = 53248;
lime_media_openal_AL.INVERSE_DISTANCE = 53249;
lime_media_openal_AL.INVERSE_DISTANCE_CLAMPED = 53250;
lime_media_openal_AL.LINEAR_DISTANCE = 53251;
lime_media_openal_AL.LINEAR_DISTANCE_CLAMPED = 53252;
lime_media_openal_AL.EXPONENT_DISTANCE = 53253;
lime_media_openal_AL.EXPONENT_DISTANCE_CLAMPED = 53254;
lime_media_openal_AL.METERS_PER_UNIT = 131076;
lime_media_openal_AL.DIRECT_FILTER = 131077;
lime_media_openal_AL.AUXILIARY_SEND_FILTER = 131078;
lime_media_openal_AL.AIR_ABSORPTION_FACTOR = 131079;
lime_media_openal_AL.ROOM_ROLLOFF_FACTOR = 131080;
lime_media_openal_AL.CONE_OUTER_GAINHF = 131081;
lime_media_openal_AL.DIRECT_FILTER_GAINHF_AUTO = 131082;
lime_media_openal_AL.AUXILIARY_SEND_FILTER_GAIN_AUTO = 131083;
lime_media_openal_AL.AUXILIARY_SEND_FILTER_GAINHF_AUTO = 131084;
lime_media_openal_AL.REVERB_DENSITY = 1;
lime_media_openal_AL.REVERB_DIFFUSION = 2;
lime_media_openal_AL.REVERB_GAIN = 3;
lime_media_openal_AL.REVERB_GAINHF = 4;
lime_media_openal_AL.REVERB_DECAY_TIME = 5;
lime_media_openal_AL.REVERB_DECAY_HFRATIO = 6;
lime_media_openal_AL.REVERB_REFLECTIONS_GAIN = 7;
lime_media_openal_AL.REVERB_REFLECTIONS_DELAY = 8;
lime_media_openal_AL.REVERB_LATE_REVERB_GAIN = 9;
lime_media_openal_AL.REVERB_LATE_REVERB_DELAY = 10;
lime_media_openal_AL.REVERB_AIR_ABSORPTION_GAINHF = 11;
lime_media_openal_AL.REVERB_ROOM_ROLLOFF_FACTOR = 12;
lime_media_openal_AL.REVERB_DECAY_HFLIMIT = 13;
lime_media_openal_AL.EAXREVERB_DENSITY = 1;
lime_media_openal_AL.EAXREVERB_DIFFUSION = 2;
lime_media_openal_AL.EAXREVERB_GAIN = 3;
lime_media_openal_AL.EAXREVERB_GAINHF = 4;
lime_media_openal_AL.EAXREVERB_GAINLF = 5;
lime_media_openal_AL.EAXREVERB_DECAY_TIME = 6;
lime_media_openal_AL.EAXREVERB_DECAY_HFRATIO = 7;
lime_media_openal_AL.EAXREVERB_DECAY_LFRATIO = 8;
lime_media_openal_AL.EAXREVERB_REFLECTIONS_GAIN = 9;
lime_media_openal_AL.EAXREVERB_REFLECTIONS_DELAY = 10;
lime_media_openal_AL.EAXREVERB_REFLECTIONS_PAN = 11;
lime_media_openal_AL.EAXREVERB_LATE_REVERB_GAIN = 12;
lime_media_openal_AL.EAXREVERB_LATE_REVERB_DELAY = 13;
lime_media_openal_AL.EAXREVERB_LATE_REVERB_PAN = 14;
lime_media_openal_AL.EAXREVERB_ECHO_TIME = 15;
lime_media_openal_AL.EAXREVERB_ECHO_DEPTH = 16;
lime_media_openal_AL.EAXREVERB_MODULATION_TIME = 17;
lime_media_openal_AL.EAXREVERB_MODULATION_DEPTH = 18;
lime_media_openal_AL.EAXREVERB_AIR_ABSORPTION_GAINHF = 19;
lime_media_openal_AL.EAXREVERB_HFREFERENCE = 20;
lime_media_openal_AL.EAXREVERB_LFREFERENCE = 21;
lime_media_openal_AL.EAXREVERB_ROOM_ROLLOFF_FACTOR = 22;
lime_media_openal_AL.EAXREVERB_DECAY_HFLIMIT = 23;
lime_media_openal_AL.CHORUS_WAVEFORM = 1;
lime_media_openal_AL.CHORUS_PHASE = 2;
lime_media_openal_AL.CHORUS_RATE = 3;
lime_media_openal_AL.CHORUS_DEPTH = 4;
lime_media_openal_AL.CHORUS_FEEDBACK = 5;
lime_media_openal_AL.CHORUS_DELAY = 6;
lime_media_openal_AL.DISTORTION_EDGE = 1;
lime_media_openal_AL.DISTORTION_GAIN = 2;
lime_media_openal_AL.DISTORTION_LOWPASS_CUTOFF = 3;
lime_media_openal_AL.DISTORTION_EQCENTER = 4;
lime_media_openal_AL.DISTORTION_EQBANDWIDTH = 5;
lime_media_openal_AL.ECHO_DELAY = 1;
lime_media_openal_AL.ECHO_LRDELAY = 2;
lime_media_openal_AL.ECHO_DAMPING = 3;
lime_media_openal_AL.ECHO_FEEDBACK = 4;
lime_media_openal_AL.ECHO_SPREAD = 5;
lime_media_openal_AL.FLANGER_WAVEFORM = 1;
lime_media_openal_AL.FLANGER_PHASE = 2;
lime_media_openal_AL.FLANGER_RATE = 3;
lime_media_openal_AL.FLANGER_DEPTH = 4;
lime_media_openal_AL.FLANGER_FEEDBACK = 5;
lime_media_openal_AL.FLANGER_DELAY = 6;
lime_media_openal_AL.FREQUENCY_SHIFTER_FREQUENCY = 1;
lime_media_openal_AL.FREQUENCY_SHIFTER_LEFT_DIRECTION = 2;
lime_media_openal_AL.FREQUENCY_SHIFTER_RIGHT_DIRECTION = 3;
lime_media_openal_AL.VOCAL_MORPHER_PHONEMEA = 1;
lime_media_openal_AL.VOCAL_MORPHER_PHONEMEA_COARSE_TUNING = 2;
lime_media_openal_AL.VOCAL_MORPHER_PHONEMEB = 3;
lime_media_openal_AL.VOCAL_MORPHER_PHONEMEB_COARSE_TUNING = 4;
lime_media_openal_AL.VOCAL_MORPHER_WAVEFORM = 5;
lime_media_openal_AL.VOCAL_MORPHER_RATE = 6;
lime_media_openal_AL.PITCH_SHIFTER_COARSE_TUNE = 1;
lime_media_openal_AL.PITCH_SHIFTER_FINE_TUNE = 2;
lime_media_openal_AL.RING_MODULATOR_FREQUENCY = 1;
lime_media_openal_AL.RING_MODULATOR_HIGHPASS_CUTOFF = 2;
lime_media_openal_AL.RING_MODULATOR_WAVEFORM = 3;
lime_media_openal_AL.AUTOWAH_ATTACK_TIME = 1;
lime_media_openal_AL.AUTOWAH_RELEASE_TIME = 2;
lime_media_openal_AL.AUTOWAH_RESONANCE = 3;
lime_media_openal_AL.AUTOWAH_PEAK_GAIN = 4;
lime_media_openal_AL.COMPRESSOR_ONOFF = 1;
lime_media_openal_AL.EQUALIZER_LOW_GAIN = 1;
lime_media_openal_AL.EQUALIZER_LOW_CUTOFF = 2;
lime_media_openal_AL.EQUALIZER_MID1_GAIN = 3;
lime_media_openal_AL.EQUALIZER_MID1_CENTER = 4;
lime_media_openal_AL.EQUALIZER_MID1_WIDTH = 5;
lime_media_openal_AL.EQUALIZER_MID2_GAIN = 6;
lime_media_openal_AL.EQUALIZER_MID2_CENTER = 7;
lime_media_openal_AL.EQUALIZER_MID2_WIDTH = 8;
lime_media_openal_AL.EQUALIZER_HIGH_GAIN = 9;
lime_media_openal_AL.EQUALIZER_HIGH_CUTOFF = 10;
lime_media_openal_AL.EFFECT_FIRST_PARAMETER = 0;
lime_media_openal_AL.EFFECT_LAST_PARAMETER = 32768;
lime_media_openal_AL.EFFECT_TYPE = 32769;
lime_media_openal_AL.EFFECT_NULL = 0;
lime_media_openal_AL.EFFECT_EAXREVERB = 32768;
lime_media_openal_AL.EFFECT_REVERB = 1;
lime_media_openal_AL.EFFECT_CHORUS = 2;
lime_media_openal_AL.EFFECT_DISTORTION = 3;
lime_media_openal_AL.EFFECT_ECHO = 4;
lime_media_openal_AL.EFFECT_FLANGER = 5;
lime_media_openal_AL.EFFECT_FREQUENCY_SHIFTER = 6;
lime_media_openal_AL.EFFECT_VOCAL_MORPHER = 7;
lime_media_openal_AL.EFFECT_PITCH_SHIFTER = 8;
lime_media_openal_AL.EFFECT_RING_MODULATOR = 9;
lime_media_openal_AL.FFECT_AUTOWAH = 10;
lime_media_openal_AL.EFFECT_COMPRESSOR = 11;
lime_media_openal_AL.EFFECT_EQUALIZER = 12;
lime_media_openal_AL.EFFECTSLOT_EFFECT = 1;
lime_media_openal_AL.EFFECTSLOT_GAIN = 2;
lime_media_openal_AL.EFFECTSLOT_AUXILIARY_SEND_AUTO = 3;
lime_media_openal_AL.LOWPASS_GAIN = 1;
lime_media_openal_AL.LOWPASS_GAINHF = 2;
lime_media_openal_AL.HIGHPASS_GAIN = 1;
lime_media_openal_AL.HIGHPASS_GAINLF = 2;
lime_media_openal_AL.BANDPASS_GAIN = 1;
lime_media_openal_AL.BANDPASS_GAINLF = 2;
lime_media_openal_AL.BANDPASS_GAINHF = 3;
lime_media_openal_AL.FILTER_FIRST_PARAMETER = 0;
lime_media_openal_AL.FILTER_LAST_PARAMETER = 32768;
lime_media_openal_AL.FILTER_TYPE = 32769;
lime_media_openal_AL.FILTER_NULL = 0;
lime_media_openal_AL.FILTER_LOWPASS = 1;
lime_media_openal_AL.FILTER_HIGHPASS = 2;
lime_media_openal_AL.FILTER_BANDPASS = 3;
lime_media_openal_ALC.FALSE = 0;
lime_media_openal_ALC.TRUE = 1;
lime_media_openal_ALC.FREQUENCY = 4103;
lime_media_openal_ALC.REFRESH = 4104;
lime_media_openal_ALC.SYNC = 4105;
lime_media_openal_ALC.MONO_SOURCES = 4112;
lime_media_openal_ALC.STEREO_SOURCES = 4113;
lime_media_openal_ALC.NO_ERROR = 0;
lime_media_openal_ALC.INVALID_DEVICE = 40961;
lime_media_openal_ALC.INVALID_CONTEXT = 40962;
lime_media_openal_ALC.INVALID_ENUM = 40963;
lime_media_openal_ALC.INVALID_VALUE = 40964;
lime_media_openal_ALC.OUT_OF_MEMORY = 40965;
lime_media_openal_ALC.ATTRIBUTES_SIZE = 4098;
lime_media_openal_ALC.ALL_ATTRIBUTES = 4099;
lime_media_openal_ALC.DEFAULT_DEVICE_SPECIFIER = 4100;
lime_media_openal_ALC.DEVICE_SPECIFIER = 4101;
lime_media_openal_ALC.EXTENSIONS = 4102;
lime_media_openal_ALC.ENUMERATE_ALL_EXT = 1;
lime_media_openal_ALC.DEFAULT_ALL_DEVICES_SPECIFIER = 4114;
lime_media_openal_ALC.ALL_DEVICES_SPECIFIER = 4115;
lime_system_BackgroundWorker.MESSAGE_COMPLETE = "__COMPLETE__";
lime_system_BackgroundWorker.MESSAGE_ERROR = "__ERROR__";
lime_system_CFFI.__moduleNames = null;
lime_system_Clipboard.onUpdate = new lime_app__$Event_$Void_$Void();
lime_system_Sensor.sensorByID = new haxe_ds_IntMap();
lime_system_Sensor.sensors = [];
lime_system_System.__directories = new haxe_ds_IntMap();
lime_ui_Gamepad.devices = new haxe_ds_IntMap();
lime_ui_Gamepad.onConnect = new lime_app__$Event_$lime_$ui_$Gamepad_$Void();
lime_ui_GamepadAxis.LEFT_X = 0;
lime_ui_GamepadAxis.LEFT_Y = 1;
lime_ui_GamepadAxis.RIGHT_X = 2;
lime_ui_GamepadAxis.RIGHT_Y = 3;
lime_ui_GamepadAxis.TRIGGER_LEFT = 4;
lime_ui_GamepadAxis.TRIGGER_RIGHT = 5;
lime_ui_GamepadButton.A = 0;
lime_ui_GamepadButton.B = 1;
lime_ui_GamepadButton.X = 2;
lime_ui_GamepadButton.Y = 3;
lime_ui_GamepadButton.BACK = 4;
lime_ui_GamepadButton.GUIDE = 5;
lime_ui_GamepadButton.START = 6;
lime_ui_GamepadButton.LEFT_STICK = 7;
lime_ui_GamepadButton.RIGHT_STICK = 8;
lime_ui_GamepadButton.LEFT_SHOULDER = 9;
lime_ui_GamepadButton.RIGHT_SHOULDER = 10;
lime_ui_GamepadButton.DPAD_UP = 11;
lime_ui_GamepadButton.DPAD_DOWN = 12;
lime_ui_GamepadButton.DPAD_LEFT = 13;
lime_ui_GamepadButton.DPAD_RIGHT = 14;
lime_ui_Joystick.devices = new haxe_ds_IntMap();
lime_ui_Joystick.onConnect = new lime_app__$Event_$lime_$ui_$Joystick_$Void();
lime_ui_JoystickHatPosition.CENTER = 0;
lime_ui_JoystickHatPosition.DOWN = 4;
lime_ui_JoystickHatPosition.LEFT = 8;
lime_ui_JoystickHatPosition.RIGHT = 2;
lime_ui_JoystickHatPosition.UP = 1;
lime_ui_JoystickHatPosition.DOWN_LEFT = 12;
lime_ui_JoystickHatPosition.DOWN_RIGHT = 6;
lime_ui_JoystickHatPosition.UP_LEFT = 9;
lime_ui_JoystickHatPosition.UP_RIGHT = 3;
lime_ui_KeyCode.UNKNOWN = 0;
lime_ui_KeyCode.BACKSPACE = 8;
lime_ui_KeyCode.TAB = 9;
lime_ui_KeyCode.RETURN = 13;
lime_ui_KeyCode.ESCAPE = 27;
lime_ui_KeyCode.SPACE = 32;
lime_ui_KeyCode.EXCLAMATION = 33;
lime_ui_KeyCode.QUOTE = 34;
lime_ui_KeyCode.HASH = 35;
lime_ui_KeyCode.DOLLAR = 36;
lime_ui_KeyCode.PERCENT = 37;
lime_ui_KeyCode.AMPERSAND = 38;
lime_ui_KeyCode.SINGLE_QUOTE = 39;
lime_ui_KeyCode.LEFT_PARENTHESIS = 40;
lime_ui_KeyCode.RIGHT_PARENTHESIS = 41;
lime_ui_KeyCode.ASTERISK = 42;
lime_ui_KeyCode.PLUS = 43;
lime_ui_KeyCode.COMMA = 44;
lime_ui_KeyCode.MINUS = 45;
lime_ui_KeyCode.PERIOD = 46;
lime_ui_KeyCode.SLASH = 47;
lime_ui_KeyCode.NUMBER_0 = 48;
lime_ui_KeyCode.NUMBER_1 = 49;
lime_ui_KeyCode.NUMBER_2 = 50;
lime_ui_KeyCode.NUMBER_3 = 51;
lime_ui_KeyCode.NUMBER_4 = 52;
lime_ui_KeyCode.NUMBER_5 = 53;
lime_ui_KeyCode.NUMBER_6 = 54;
lime_ui_KeyCode.NUMBER_7 = 55;
lime_ui_KeyCode.NUMBER_8 = 56;
lime_ui_KeyCode.NUMBER_9 = 57;
lime_ui_KeyCode.COLON = 58;
lime_ui_KeyCode.SEMICOLON = 59;
lime_ui_KeyCode.LESS_THAN = 60;
lime_ui_KeyCode.EQUALS = 61;
lime_ui_KeyCode.GREATER_THAN = 62;
lime_ui_KeyCode.QUESTION = 63;
lime_ui_KeyCode.AT = 64;
lime_ui_KeyCode.LEFT_BRACKET = 91;
lime_ui_KeyCode.BACKSLASH = 92;
lime_ui_KeyCode.RIGHT_BRACKET = 93;
lime_ui_KeyCode.CARET = 94;
lime_ui_KeyCode.UNDERSCORE = 95;
lime_ui_KeyCode.GRAVE = 96;
lime_ui_KeyCode.A = 97;
lime_ui_KeyCode.B = 98;
lime_ui_KeyCode.C = 99;
lime_ui_KeyCode.D = 100;
lime_ui_KeyCode.E = 101;
lime_ui_KeyCode.F = 102;
lime_ui_KeyCode.G = 103;
lime_ui_KeyCode.H = 104;
lime_ui_KeyCode.I = 105;
lime_ui_KeyCode.J = 106;
lime_ui_KeyCode.K = 107;
lime_ui_KeyCode.L = 108;
lime_ui_KeyCode.M = 109;
lime_ui_KeyCode.N = 110;
lime_ui_KeyCode.O = 111;
lime_ui_KeyCode.P = 112;
lime_ui_KeyCode.Q = 113;
lime_ui_KeyCode.R = 114;
lime_ui_KeyCode.S = 115;
lime_ui_KeyCode.T = 116;
lime_ui_KeyCode.U = 117;
lime_ui_KeyCode.V = 118;
lime_ui_KeyCode.W = 119;
lime_ui_KeyCode.X = 120;
lime_ui_KeyCode.Y = 121;
lime_ui_KeyCode.Z = 122;
lime_ui_KeyCode.DELETE = 127;
lime_ui_KeyCode.CAPS_LOCK = 1073741881;
lime_ui_KeyCode.F1 = 1073741882;
lime_ui_KeyCode.F2 = 1073741883;
lime_ui_KeyCode.F3 = 1073741884;
lime_ui_KeyCode.F4 = 1073741885;
lime_ui_KeyCode.F5 = 1073741886;
lime_ui_KeyCode.F6 = 1073741887;
lime_ui_KeyCode.F7 = 1073741888;
lime_ui_KeyCode.F8 = 1073741889;
lime_ui_KeyCode.F9 = 1073741890;
lime_ui_KeyCode.F10 = 1073741891;
lime_ui_KeyCode.F11 = 1073741892;
lime_ui_KeyCode.F12 = 1073741893;
lime_ui_KeyCode.PRINT_SCREEN = 1073741894;
lime_ui_KeyCode.SCROLL_LOCK = 1073741895;
lime_ui_KeyCode.PAUSE = 1073741896;
lime_ui_KeyCode.INSERT = 1073741897;
lime_ui_KeyCode.HOME = 1073741898;
lime_ui_KeyCode.PAGE_UP = 1073741899;
lime_ui_KeyCode.END = 1073741901;
lime_ui_KeyCode.PAGE_DOWN = 1073741902;
lime_ui_KeyCode.RIGHT = 1073741903;
lime_ui_KeyCode.LEFT = 1073741904;
lime_ui_KeyCode.DOWN = 1073741905;
lime_ui_KeyCode.UP = 1073741906;
lime_ui_KeyCode.NUM_LOCK = 1073741907;
lime_ui_KeyCode.NUMPAD_DIVIDE = 1073741908;
lime_ui_KeyCode.NUMPAD_MULTIPLY = 1073741909;
lime_ui_KeyCode.NUMPAD_MINUS = 1073741910;
lime_ui_KeyCode.NUMPAD_PLUS = 1073741911;
lime_ui_KeyCode.NUMPAD_ENTER = 1073741912;
lime_ui_KeyCode.NUMPAD_1 = 1073741913;
lime_ui_KeyCode.NUMPAD_2 = 1073741914;
lime_ui_KeyCode.NUMPAD_3 = 1073741915;
lime_ui_KeyCode.NUMPAD_4 = 1073741916;
lime_ui_KeyCode.NUMPAD_5 = 1073741917;
lime_ui_KeyCode.NUMPAD_6 = 1073741918;
lime_ui_KeyCode.NUMPAD_7 = 1073741919;
lime_ui_KeyCode.NUMPAD_8 = 1073741920;
lime_ui_KeyCode.NUMPAD_9 = 1073741921;
lime_ui_KeyCode.NUMPAD_0 = 1073741922;
lime_ui_KeyCode.NUMPAD_PERIOD = 1073741923;
lime_ui_KeyCode.APPLICATION = 1073741925;
lime_ui_KeyCode.POWER = 1073741926;
lime_ui_KeyCode.NUMPAD_EQUALS = 1073741927;
lime_ui_KeyCode.F13 = 1073741928;
lime_ui_KeyCode.F14 = 1073741929;
lime_ui_KeyCode.F15 = 1073741930;
lime_ui_KeyCode.F16 = 1073741931;
lime_ui_KeyCode.F17 = 1073741932;
lime_ui_KeyCode.F18 = 1073741933;
lime_ui_KeyCode.F19 = 1073741934;
lime_ui_KeyCode.F20 = 1073741935;
lime_ui_KeyCode.F21 = 1073741936;
lime_ui_KeyCode.F22 = 1073741937;
lime_ui_KeyCode.F23 = 1073741938;
lime_ui_KeyCode.F24 = 1073741939;
lime_ui_KeyCode.EXECUTE = 1073741940;
lime_ui_KeyCode.HELP = 1073741941;
lime_ui_KeyCode.MENU = 1073741942;
lime_ui_KeyCode.SELECT = 1073741943;
lime_ui_KeyCode.STOP = 1073741944;
lime_ui_KeyCode.AGAIN = 1073741945;
lime_ui_KeyCode.UNDO = 1073741946;
lime_ui_KeyCode.CUT = 1073741947;
lime_ui_KeyCode.COPY = 1073741948;
lime_ui_KeyCode.PASTE = 1073741949;
lime_ui_KeyCode.FIND = 1073741950;
lime_ui_KeyCode.MUTE = 1073741951;
lime_ui_KeyCode.VOLUME_UP = 1073741952;
lime_ui_KeyCode.VOLUME_DOWN = 1073741953;
lime_ui_KeyCode.NUMPAD_COMMA = 1073741957;
lime_ui_KeyCode.ALT_ERASE = 1073741977;
lime_ui_KeyCode.SYSTEM_REQUEST = 1073741978;
lime_ui_KeyCode.CANCEL = 1073741979;
lime_ui_KeyCode.CLEAR = 1073741980;
lime_ui_KeyCode.PRIOR = 1073741981;
lime_ui_KeyCode.RETURN2 = 1073741982;
lime_ui_KeyCode.SEPARATOR = 1073741983;
lime_ui_KeyCode.OUT = 1073741984;
lime_ui_KeyCode.OPER = 1073741985;
lime_ui_KeyCode.CLEAR_AGAIN = 1073741986;
lime_ui_KeyCode.CRSEL = 1073741987;
lime_ui_KeyCode.EXSEL = 1073741988;
lime_ui_KeyCode.NUMPAD_00 = 1073742000;
lime_ui_KeyCode.NUMPAD_000 = 1073742001;
lime_ui_KeyCode.THOUSAND_SEPARATOR = 1073742002;
lime_ui_KeyCode.DECIMAL_SEPARATOR = 1073742003;
lime_ui_KeyCode.CURRENCY_UNIT = 1073742004;
lime_ui_KeyCode.CURRENCY_SUBUNIT = 1073742005;
lime_ui_KeyCode.NUMPAD_LEFT_PARENTHESIS = 1073742006;
lime_ui_KeyCode.NUMPAD_RIGHT_PARENTHESIS = 1073742007;
lime_ui_KeyCode.NUMPAD_LEFT_BRACE = 1073742008;
lime_ui_KeyCode.NUMPAD_RIGHT_BRACE = 1073742009;
lime_ui_KeyCode.NUMPAD_TAB = 1073742010;
lime_ui_KeyCode.NUMPAD_BACKSPACE = 1073742011;
lime_ui_KeyCode.NUMPAD_A = 1073742012;
lime_ui_KeyCode.NUMPAD_B = 1073742013;
lime_ui_KeyCode.NUMPAD_C = 1073742014;
lime_ui_KeyCode.NUMPAD_D = 1073742015;
lime_ui_KeyCode.NUMPAD_E = 1073742016;
lime_ui_KeyCode.NUMPAD_F = 1073742017;
lime_ui_KeyCode.NUMPAD_XOR = 1073742018;
lime_ui_KeyCode.NUMPAD_POWER = 1073742019;
lime_ui_KeyCode.NUMPAD_PERCENT = 1073742020;
lime_ui_KeyCode.NUMPAD_LESS_THAN = 1073742021;
lime_ui_KeyCode.NUMPAD_GREATER_THAN = 1073742022;
lime_ui_KeyCode.NUMPAD_AMPERSAND = 1073742023;
lime_ui_KeyCode.NUMPAD_DOUBLE_AMPERSAND = 1073742024;
lime_ui_KeyCode.NUMPAD_VERTICAL_BAR = 1073742025;
lime_ui_KeyCode.NUMPAD_DOUBLE_VERTICAL_BAR = 1073742026;
lime_ui_KeyCode.NUMPAD_COLON = 1073742027;
lime_ui_KeyCode.NUMPAD_HASH = 1073742028;
lime_ui_KeyCode.NUMPAD_SPACE = 1073742029;
lime_ui_KeyCode.NUMPAD_AT = 1073742030;
lime_ui_KeyCode.NUMPAD_EXCLAMATION = 1073742031;
lime_ui_KeyCode.NUMPAD_MEM_STORE = 1073742032;
lime_ui_KeyCode.NUMPAD_MEM_RECALL = 1073742033;
lime_ui_KeyCode.NUMPAD_MEM_CLEAR = 1073742034;
lime_ui_KeyCode.NUMPAD_MEM_ADD = 1073742035;
lime_ui_KeyCode.NUMPAD_MEM_SUBTRACT = 1073742036;
lime_ui_KeyCode.NUMPAD_MEM_MULTIPLY = 1073742037;
lime_ui_KeyCode.NUMPAD_MEM_DIVIDE = 1073742038;
lime_ui_KeyCode.NUMPAD_PLUS_MINUS = 1073742039;
lime_ui_KeyCode.NUMPAD_CLEAR = 1073742040;
lime_ui_KeyCode.NUMPAD_CLEAR_ENTRY = 1073742041;
lime_ui_KeyCode.NUMPAD_BINARY = 1073742042;
lime_ui_KeyCode.NUMPAD_OCTAL = 1073742043;
lime_ui_KeyCode.NUMPAD_DECIMAL = 1073742044;
lime_ui_KeyCode.NUMPAD_HEXADECIMAL = 1073742045;
lime_ui_KeyCode.LEFT_CTRL = 1073742048;
lime_ui_KeyCode.LEFT_SHIFT = 1073742049;
lime_ui_KeyCode.LEFT_ALT = 1073742050;
lime_ui_KeyCode.LEFT_META = 1073742051;
lime_ui_KeyCode.RIGHT_CTRL = 1073742052;
lime_ui_KeyCode.RIGHT_SHIFT = 1073742053;
lime_ui_KeyCode.RIGHT_ALT = 1073742054;
lime_ui_KeyCode.RIGHT_META = 1073742055;
lime_ui_KeyCode.MODE = 1073742081;
lime_ui_KeyCode.AUDIO_NEXT = 1073742082;
lime_ui_KeyCode.AUDIO_PREVIOUS = 1073742083;
lime_ui_KeyCode.AUDIO_STOP = 1073742084;
lime_ui_KeyCode.AUDIO_PLAY = 1073742085;
lime_ui_KeyCode.AUDIO_MUTE = 1073742086;
lime_ui_KeyCode.MEDIA_SELECT = 1073742087;
lime_ui_KeyCode.WWW = 1073742088;
lime_ui_KeyCode.MAIL = 1073742089;
lime_ui_KeyCode.CALCULATOR = 1073742090;
lime_ui_KeyCode.COMPUTER = 1073742091;
lime_ui_KeyCode.APP_CONTROL_SEARCH = 1073742092;
lime_ui_KeyCode.APP_CONTROL_HOME = 1073742093;
lime_ui_KeyCode.APP_CONTROL_BACK = 1073742094;
lime_ui_KeyCode.APP_CONTROL_FORWARD = 1073742095;
lime_ui_KeyCode.APP_CONTROL_STOP = 1073742096;
lime_ui_KeyCode.APP_CONTROL_REFRESH = 1073742097;
lime_ui_KeyCode.APP_CONTROL_BOOKMARKS = 1073742098;
lime_ui_KeyCode.BRIGHTNESS_DOWN = 1073742099;
lime_ui_KeyCode.BRIGHTNESS_UP = 1073742100;
lime_ui_KeyCode.DISPLAY_SWITCH = 1073742101;
lime_ui_KeyCode.BACKLIGHT_TOGGLE = 1073742102;
lime_ui_KeyCode.BACKLIGHT_DOWN = 1073742103;
lime_ui_KeyCode.BACKLIGHT_UP = 1073742104;
lime_ui_KeyCode.EJECT = 1073742105;
lime_ui_KeyCode.SLEEP = 1073742106;
lime_ui_KeyModifier.NONE = 0;
lime_ui_KeyModifier.LEFT_SHIFT = 1;
lime_ui_KeyModifier.RIGHT_SHIFT = 2;
lime_ui_KeyModifier.LEFT_CTRL = 64;
lime_ui_KeyModifier.RIGHT_CTRL = 128;
lime_ui_KeyModifier.LEFT_ALT = 256;
lime_ui_KeyModifier.RIGHT_ALT = 512;
lime_ui_KeyModifier.LEFT_META = 1024;
lime_ui_KeyModifier.RIGHT_META = 2048;
lime_ui_KeyModifier.NUM_LOCK = 4096;
lime_ui_KeyModifier.CAPS_LOCK = 8192;
lime_ui_KeyModifier.MODE = 16384;
lime_ui_KeyModifier.CTRL = 192;
lime_ui_KeyModifier.SHIFT = 3;
lime_ui_KeyModifier.ALT = 768;
lime_ui_KeyModifier.META = 3072;
lime_ui_ScanCode.UNKNOWN = 0;
lime_ui_ScanCode.BACKSPACE = 42;
lime_ui_ScanCode.TAB = 43;
lime_ui_ScanCode.RETURN = 40;
lime_ui_ScanCode.ESCAPE = 41;
lime_ui_ScanCode.SPACE = 44;
lime_ui_ScanCode.SINGLE_QUOTE = 52;
lime_ui_ScanCode.COMMA = 54;
lime_ui_ScanCode.MINUS = 45;
lime_ui_ScanCode.PERIOD = 55;
lime_ui_ScanCode.SLASH = 56;
lime_ui_ScanCode.NUMBER_0 = 39;
lime_ui_ScanCode.NUMBER_1 = 30;
lime_ui_ScanCode.NUMBER_2 = 31;
lime_ui_ScanCode.NUMBER_3 = 32;
lime_ui_ScanCode.NUMBER_4 = 33;
lime_ui_ScanCode.NUMBER_5 = 34;
lime_ui_ScanCode.NUMBER_6 = 35;
lime_ui_ScanCode.NUMBER_7 = 36;
lime_ui_ScanCode.NUMBER_8 = 37;
lime_ui_ScanCode.NUMBER_9 = 38;
lime_ui_ScanCode.SEMICOLON = 51;
lime_ui_ScanCode.EQUALS = 46;
lime_ui_ScanCode.LEFT_BRACKET = 47;
lime_ui_ScanCode.BACKSLASH = 49;
lime_ui_ScanCode.RIGHT_BRACKET = 48;
lime_ui_ScanCode.GRAVE = 53;
lime_ui_ScanCode.A = 4;
lime_ui_ScanCode.B = 5;
lime_ui_ScanCode.C = 6;
lime_ui_ScanCode.D = 7;
lime_ui_ScanCode.E = 8;
lime_ui_ScanCode.F = 9;
lime_ui_ScanCode.G = 10;
lime_ui_ScanCode.H = 11;
lime_ui_ScanCode.I = 12;
lime_ui_ScanCode.J = 13;
lime_ui_ScanCode.K = 14;
lime_ui_ScanCode.L = 15;
lime_ui_ScanCode.M = 16;
lime_ui_ScanCode.N = 17;
lime_ui_ScanCode.O = 18;
lime_ui_ScanCode.P = 19;
lime_ui_ScanCode.Q = 20;
lime_ui_ScanCode.R = 21;
lime_ui_ScanCode.S = 22;
lime_ui_ScanCode.T = 23;
lime_ui_ScanCode.U = 24;
lime_ui_ScanCode.V = 25;
lime_ui_ScanCode.W = 26;
lime_ui_ScanCode.X = 27;
lime_ui_ScanCode.Y = 28;
lime_ui_ScanCode.Z = 29;
lime_ui_ScanCode.DELETE = 76;
lime_ui_ScanCode.CAPS_LOCK = 57;
lime_ui_ScanCode.F1 = 58;
lime_ui_ScanCode.F2 = 59;
lime_ui_ScanCode.F3 = 60;
lime_ui_ScanCode.F4 = 61;
lime_ui_ScanCode.F5 = 62;
lime_ui_ScanCode.F6 = 63;
lime_ui_ScanCode.F7 = 64;
lime_ui_ScanCode.F8 = 65;
lime_ui_ScanCode.F9 = 66;
lime_ui_ScanCode.F10 = 67;
lime_ui_ScanCode.F11 = 68;
lime_ui_ScanCode.F12 = 69;
lime_ui_ScanCode.PRINT_SCREEN = 70;
lime_ui_ScanCode.SCROLL_LOCK = 71;
lime_ui_ScanCode.PAUSE = 72;
lime_ui_ScanCode.INSERT = 73;
lime_ui_ScanCode.HOME = 74;
lime_ui_ScanCode.PAGE_UP = 75;
lime_ui_ScanCode.END = 77;
lime_ui_ScanCode.PAGE_DOWN = 78;
lime_ui_ScanCode.RIGHT = 79;
lime_ui_ScanCode.LEFT = 80;
lime_ui_ScanCode.DOWN = 81;
lime_ui_ScanCode.UP = 82;
lime_ui_ScanCode.NUM_LOCK = 83;
lime_ui_ScanCode.NUMPAD_DIVIDE = 84;
lime_ui_ScanCode.NUMPAD_MULTIPLY = 85;
lime_ui_ScanCode.NUMPAD_MINUS = 86;
lime_ui_ScanCode.NUMPAD_PLUS = 87;
lime_ui_ScanCode.NUMPAD_ENTER = 88;
lime_ui_ScanCode.NUMPAD_1 = 89;
lime_ui_ScanCode.NUMPAD_2 = 90;
lime_ui_ScanCode.NUMPAD_3 = 91;
lime_ui_ScanCode.NUMPAD_4 = 92;
lime_ui_ScanCode.NUMPAD_5 = 93;
lime_ui_ScanCode.NUMPAD_6 = 94;
lime_ui_ScanCode.NUMPAD_7 = 95;
lime_ui_ScanCode.NUMPAD_8 = 96;
lime_ui_ScanCode.NUMPAD_9 = 97;
lime_ui_ScanCode.NUMPAD_0 = 98;
lime_ui_ScanCode.NUMPAD_PERIOD = 99;
lime_ui_ScanCode.APPLICATION = 101;
lime_ui_ScanCode.POWER = 102;
lime_ui_ScanCode.NUMPAD_EQUALS = 103;
lime_ui_ScanCode.F13 = 104;
lime_ui_ScanCode.F14 = 105;
lime_ui_ScanCode.F15 = 106;
lime_ui_ScanCode.F16 = 107;
lime_ui_ScanCode.F17 = 108;
lime_ui_ScanCode.F18 = 109;
lime_ui_ScanCode.F19 = 110;
lime_ui_ScanCode.F20 = 111;
lime_ui_ScanCode.F21 = 112;
lime_ui_ScanCode.F22 = 113;
lime_ui_ScanCode.F23 = 114;
lime_ui_ScanCode.F24 = 115;
lime_ui_ScanCode.EXECUTE = 116;
lime_ui_ScanCode.HELP = 117;
lime_ui_ScanCode.MENU = 118;
lime_ui_ScanCode.SELECT = 119;
lime_ui_ScanCode.STOP = 120;
lime_ui_ScanCode.AGAIN = 121;
lime_ui_ScanCode.UNDO = 122;
lime_ui_ScanCode.CUT = 123;
lime_ui_ScanCode.COPY = 124;
lime_ui_ScanCode.PASTE = 125;
lime_ui_ScanCode.FIND = 126;
lime_ui_ScanCode.MUTE = 127;
lime_ui_ScanCode.VOLUME_UP = 128;
lime_ui_ScanCode.VOLUME_DOWN = 129;
lime_ui_ScanCode.NUMPAD_COMMA = 133;
lime_ui_ScanCode.ALT_ERASE = 153;
lime_ui_ScanCode.SYSTEM_REQUEST = 154;
lime_ui_ScanCode.CANCEL = 155;
lime_ui_ScanCode.CLEAR = 156;
lime_ui_ScanCode.PRIOR = 157;
lime_ui_ScanCode.RETURN2 = 158;
lime_ui_ScanCode.SEPARATOR = 159;
lime_ui_ScanCode.OUT = 160;
lime_ui_ScanCode.OPER = 161;
lime_ui_ScanCode.CLEAR_AGAIN = 162;
lime_ui_ScanCode.CRSEL = 163;
lime_ui_ScanCode.EXSEL = 164;
lime_ui_ScanCode.NUMPAD_00 = 176;
lime_ui_ScanCode.NUMPAD_000 = 177;
lime_ui_ScanCode.THOUSAND_SEPARATOR = 178;
lime_ui_ScanCode.DECIMAL_SEPARATOR = 179;
lime_ui_ScanCode.CURRENCY_UNIT = 180;
lime_ui_ScanCode.CURRENCY_SUBUNIT = 181;
lime_ui_ScanCode.NUMPAD_LEFT_PARENTHESIS = 182;
lime_ui_ScanCode.NUMPAD_RIGHT_PARENTHESIS = 183;
lime_ui_ScanCode.NUMPAD_LEFT_BRACE = 184;
lime_ui_ScanCode.NUMPAD_RIGHT_BRACE = 185;
lime_ui_ScanCode.NUMPAD_TAB = 186;
lime_ui_ScanCode.NUMPAD_BACKSPACE = 187;
lime_ui_ScanCode.NUMPAD_A = 188;
lime_ui_ScanCode.NUMPAD_B = 189;
lime_ui_ScanCode.NUMPAD_C = 190;
lime_ui_ScanCode.NUMPAD_D = 191;
lime_ui_ScanCode.NUMPAD_E = 192;
lime_ui_ScanCode.NUMPAD_F = 193;
lime_ui_ScanCode.NUMPAD_XOR = 194;
lime_ui_ScanCode.NUMPAD_POWER = 195;
lime_ui_ScanCode.NUMPAD_PERCENT = 196;
lime_ui_ScanCode.NUMPAD_LESS_THAN = 197;
lime_ui_ScanCode.NUMPAD_GREATER_THAN = 198;
lime_ui_ScanCode.NUMPAD_AMPERSAND = 199;
lime_ui_ScanCode.NUMPAD_DOUBLE_AMPERSAND = 200;
lime_ui_ScanCode.NUMPAD_VERTICAL_BAR = 201;
lime_ui_ScanCode.NUMPAD_DOUBLE_VERTICAL_BAR = 202;
lime_ui_ScanCode.NUMPAD_COLON = 203;
lime_ui_ScanCode.NUMPAD_HASH = 204;
lime_ui_ScanCode.NUMPAD_SPACE = 205;
lime_ui_ScanCode.NUMPAD_AT = 206;
lime_ui_ScanCode.NUMPAD_EXCLAMATION = 207;
lime_ui_ScanCode.NUMPAD_MEM_STORE = 208;
lime_ui_ScanCode.NUMPAD_MEM_RECALL = 209;
lime_ui_ScanCode.NUMPAD_MEM_CLEAR = 210;
lime_ui_ScanCode.NUMPAD_MEM_ADD = 211;
lime_ui_ScanCode.NUMPAD_MEM_SUBTRACT = 212;
lime_ui_ScanCode.NUMPAD_MEM_MULTIPLY = 213;
lime_ui_ScanCode.NUMPAD_MEM_DIVIDE = 214;
lime_ui_ScanCode.NUMPAD_PLUS_MINUS = 215;
lime_ui_ScanCode.NUMPAD_CLEAR = 216;
lime_ui_ScanCode.NUMPAD_CLEAR_ENTRY = 217;
lime_ui_ScanCode.NUMPAD_BINARY = 218;
lime_ui_ScanCode.NUMPAD_OCTAL = 219;
lime_ui_ScanCode.NUMPAD_DECIMAL = 220;
lime_ui_ScanCode.NUMPAD_HEXADECIMAL = 221;
lime_ui_ScanCode.LEFT_CTRL = 224;
lime_ui_ScanCode.LEFT_SHIFT = 225;
lime_ui_ScanCode.LEFT_ALT = 226;
lime_ui_ScanCode.LEFT_META = 227;
lime_ui_ScanCode.RIGHT_CTRL = 228;
lime_ui_ScanCode.RIGHT_SHIFT = 229;
lime_ui_ScanCode.RIGHT_ALT = 230;
lime_ui_ScanCode.RIGHT_META = 231;
lime_ui_ScanCode.MODE = 257;
lime_ui_ScanCode.AUDIO_NEXT = 258;
lime_ui_ScanCode.AUDIO_PREVIOUS = 259;
lime_ui_ScanCode.AUDIO_STOP = 260;
lime_ui_ScanCode.AUDIO_PLAY = 261;
lime_ui_ScanCode.AUDIO_MUTE = 262;
lime_ui_ScanCode.MEDIA_SELECT = 263;
lime_ui_ScanCode.WWW = 264;
lime_ui_ScanCode.MAIL = 265;
lime_ui_ScanCode.CALCULATOR = 266;
lime_ui_ScanCode.COMPUTER = 267;
lime_ui_ScanCode.APP_CONTROL_SEARCH = 268;
lime_ui_ScanCode.APP_CONTROL_HOME = 269;
lime_ui_ScanCode.APP_CONTROL_BACK = 270;
lime_ui_ScanCode.APP_CONTROL_FORWARD = 271;
lime_ui_ScanCode.APP_CONTROL_STOP = 272;
lime_ui_ScanCode.APP_CONTROL_REFRESH = 273;
lime_ui_ScanCode.APP_CONTROL_BOOKMARKS = 274;
lime_ui_ScanCode.BRIGHTNESS_DOWN = 275;
lime_ui_ScanCode.BRIGHTNESS_UP = 276;
lime_ui_ScanCode.DISPLAY_SWITCH = 277;
lime_ui_ScanCode.BACKLIGHT_TOGGLE = 278;
lime_ui_ScanCode.BACKLIGHT_DOWN = 279;
lime_ui_ScanCode.BACKLIGHT_UP = 280;
lime_ui_ScanCode.EJECT = 281;
lime_ui_ScanCode.SLEEP = 282;
lime_ui_Touch.onCancel = new lime_app__$Event_$lime_$ui_$Touch_$Void();
lime_ui_Touch.onEnd = new lime_app__$Event_$lime_$ui_$Touch_$Void();
lime_ui_Touch.onMove = new lime_app__$Event_$lime_$ui_$Touch_$Void();
lime_ui_Touch.onStart = new lime_app__$Event_$lime_$ui_$Touch_$Void();
lime_utils_Assets.cache = new lime_utils_AssetCache();
lime_utils_Assets.onChange = new lime_app__$Event_$Void_$Void();
lime_utils_Assets.bundlePaths = new haxe_ds_StringMap();
lime_utils_Assets.libraries = new haxe_ds_StringMap();
lime_utils_Assets.libraryPaths = new haxe_ds_StringMap();
lime_utils_Float32Array.BYTES_PER_ELEMENT = 4;
lime_utils_Float64Array.BYTES_PER_ELEMENT = 8;
lime_utils_Int16Array.BYTES_PER_ELEMENT = 2;
lime_utils_Int32Array.BYTES_PER_ELEMENT = 4;
lime_utils_Int8Array.BYTES_PER_ELEMENT = 1;
lime_utils_Log.throwErrors = true;
lime_utils_LogLevel.NONE = 0;
lime_utils_LogLevel.ERROR = 1;
lime_utils_LogLevel.WARN = 2;
lime_utils_LogLevel.INFO = 3;
lime_utils_LogLevel.DEBUG = 4;
lime_utils_LogLevel.VERBOSE = 5;
lime_utils_UInt16Array.BYTES_PER_ELEMENT = 2;
lime_utils_UInt32Array.BYTES_PER_ELEMENT = 4;
lime_utils_UInt8Array.BYTES_PER_ELEMENT = 1;
lime_utils_UInt8ClampedArray.BYTES_PER_ELEMENT = 1;
openfl_Lib.__lastTimerID = 0;
openfl_Lib.__sentWarnings = new haxe_ds_StringMap();
openfl_Lib.__timers = new haxe_ds_IntMap();
openfl__$Vector_IVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl__$Vector_BoolVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl__$Vector_FloatVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl__$Vector_FunctionVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl__$Vector_IntVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl__$Vector_ObjectVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { concat : { SuppressWarnings : ["checkstyle:Dynamic"]}, toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl__$internal_Lib.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, statics : { notImplemented : { SuppressWarnings : ["checkstyle:NullableParameter"]}}};
openfl__$internal_Lib.__sentWarnings = new haxe_ds_StringMap();
openfl__$internal_formats_html_HTMLParser.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl__$internal_formats_html_HTMLParser.__regexAlign = new EReg("align\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexBreakTag = new EReg("<br\\s*/?>","gi");
openfl__$internal_formats_html_HTMLParser.__regexBlockIndent = new EReg("blockindent\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexColor = new EReg("color\\s?=\\s?(\"#([^\"]+)\"|'#([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexEntities = [new EReg("&quot;","g"),new EReg("&apos;","g"),new EReg("&amp;","g"),new EReg("&lt;","g"),new EReg("&gt;","g"),new EReg("&nbsp;","g")];
openfl__$internal_formats_html_HTMLParser.__regexFace = new EReg("face\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexHTMLTag = new EReg("<.*?>","g");
openfl__$internal_formats_html_HTMLParser.__regexHref = new EReg("href\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexIndent = new EReg(" indent\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexLeading = new EReg("leading\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexLeftMargin = new EReg("leftmargin\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexRightMargin = new EReg("rightmargin\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexSize = new EReg("size\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_formats_html_HTMLParser.__regexTabStops = new EReg("tabstops\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i");
openfl__$internal_utils_TouchData.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { touch : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl__$internal_utils_TouchData.__pool = new lime_utils_ObjectPool(function() {
return new openfl__$internal_utils_TouchData();
},function(data) {
data.reset();
});
openfl_display_Application.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display_BlendMode.ADD = 0;
openfl_display_BlendMode.ALPHA = 1;
openfl_display_BlendMode.DARKEN = 2;
openfl_display_BlendMode.DIFFERENCE = 3;
openfl_display_BlendMode.ERASE = 4;
openfl_display_BlendMode.HARDLIGHT = 5;
openfl_display_BlendMode.INVERT = 6;
openfl_display_BlendMode.LAYER = 7;
openfl_display_BlendMode.LIGHTEN = 8;
openfl_display_BlendMode.MULTIPLY = 9;
openfl_display_BlendMode.NORMAL = 10;
openfl_display_BlendMode.OVERLAY = 11;
openfl_display_BlendMode.SCREEN = 12;
openfl_display_BlendMode.SHADER = 13;
openfl_display_BlendMode.SUBTRACT = 14;
openfl_display_DisplayObjectRenderer.__meta__ = { fields : { __context : { SuppressWarnings : ["checkstyle:Dynamic"]}, __type : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_CairoRenderer.__meta__ = { fields : { cairo : { SuppressWarnings : ["checkstyle:Dynamic"]}, __matrix3 : { SuppressWarnings : ["checkstyle:Dynamic"]}, applyMatrix : { SuppressWarnings : ["checkstyle:Dynamic"]}, __setBlendModeCairo : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_CanvasRenderer.__meta__ = { fields : { context : { SuppressWarnings : ["checkstyle:Dynamic"]}, applySmoothing : { SuppressWarnings : ["checkstyle:Dynamic"]}, setTransform : { SuppressWarnings : ["checkstyle:Dynamic"]}, __setBlendModeContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_CapsStyle.NONE = 0;
openfl_display_CapsStyle.ROUND = 1;
openfl_display_CapsStyle.SQUARE = 2;
openfl_display_DOMRenderer.__meta__ = { fields : { element : { SuppressWarnings : ["checkstyle:Dynamic"]}, applyStyle : { SuppressWarnings : ["checkstyle:Dynamic"]}, clearStyle : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_text_TextField.__missingFontWarning = new haxe_ds_StringMap();
openfl_display_GradientType.LINEAR = 0;
openfl_display_GradientType.RADIAL = 1;
openfl_display_Graphics.__meta__ = { fields : { overrideBlendMode : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_display_Graphics.maxTextureHeight = null;
openfl_display_Graphics.maxTextureWidth = null;
openfl_display_GraphicsPath.SIN45 = 0.70710678118654752440084436210485;
openfl_display_GraphicsPath.TAN22 = 0.4142135623730950488016887242097;
openfl_display_GraphicsPathWinding.EVEN_ODD = 0;
openfl_display_GraphicsPathWinding.NON_ZERO = 1;
openfl_display_InterpolationMethod.LINEAR_RGB = 0;
openfl_display_InterpolationMethod.RGB = 1;
openfl_display_JointStyle.BEVEL = 0;
openfl_display_JointStyle.MITER = 1;
openfl_display_JointStyle.ROUND = 2;
openfl_display_LineScaleMode.HORIZONTAL = 0;
openfl_display_LineScaleMode.NONE = 1;
openfl_display_LineScaleMode.NORMAL = 2;
openfl_display_LineScaleMode.VERTICAL = 3;
openfl_display_Loader.__meta__ = { fields : { BitmapData_onError : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_LoaderInfo.__meta__ = { statics : { create : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}, fields : { parameters : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_LoaderInfo.__rootURL = typeof(window) != "undefined" ? window.document.URL : "";
openfl_display_OpenGLRenderer.__meta__ = { fields : { gl : { SuppressWarnings : ["checkstyle:Dynamic"]}, __gl : { SuppressWarnings : ["checkstyle:Dynamic"]}, __matrix : { SuppressWarnings : ["checkstyle:Dynamic"]}, __projection : { SuppressWarnings : ["checkstyle:Dynamic"]}, __projectionFlipped : { SuppressWarnings : ["checkstyle:Dynamic"]}, getMatrix : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_OpenGLRenderer.__alphaValue = [1];
openfl_display_OpenGLRenderer.__colorMultipliersValue = [0,0,0,0];
openfl_display_OpenGLRenderer.__colorOffsetsValue = [0,0,0,0];
openfl_display_OpenGLRenderer.__defaultColorMultipliersValue = [1,1,1,1];
openfl_display_OpenGLRenderer.__emptyColorValue = [0,0,0,0];
openfl_display_OpenGLRenderer.__emptyAlphaValue = [1];
openfl_display_OpenGLRenderer.__hasColorTransformValue = [false];
openfl_display_OpenGLRenderer.__scissorRectangle = new openfl_geom_Rectangle();
openfl_display_OpenGLRenderer.__textureSizeValue = [0,0];
openfl_display_PixelSnapping.ALWAYS = 0;
openfl_display_PixelSnapping.AUTO = 1;
openfl_display_PixelSnapping.NEVER = 2;
openfl_display_Preloader.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { onComplete : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_DefaultPreloader.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display_ShaderInput.__meta__ = { fields : { index : { SuppressWarnings : ["checkstyle:Dynamic"]}, name : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_display_ShaderParameter.__meta__ = { fields : { index : { SuppressWarnings : ["checkstyle:Dynamic"]}, name : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_display_ShaderParameterType.BOOL = 0;
openfl_display_ShaderParameterType.BOOL2 = 1;
openfl_display_ShaderParameterType.BOOL3 = 2;
openfl_display_ShaderParameterType.BOOL4 = 3;
openfl_display_ShaderParameterType.FLOAT = 4;
openfl_display_ShaderParameterType.FLOAT2 = 5;
openfl_display_ShaderParameterType.FLOAT3 = 6;
openfl_display_ShaderParameterType.FLOAT4 = 7;
openfl_display_ShaderParameterType.INT = 8;
openfl_display_ShaderParameterType.INT2 = 9;
openfl_display_ShaderParameterType.INT3 = 10;
openfl_display_ShaderParameterType.INT4 = 11;
openfl_display_ShaderParameterType.MATRIX2X2 = 12;
openfl_display_ShaderParameterType.MATRIX2X3 = 13;
openfl_display_ShaderParameterType.MATRIX2X4 = 14;
openfl_display_ShaderParameterType.MATRIX3X2 = 15;
openfl_display_ShaderParameterType.MATRIX3X3 = 16;
openfl_display_ShaderParameterType.MATRIX3X4 = 17;
openfl_display_ShaderParameterType.MATRIX4X2 = 18;
openfl_display_ShaderParameterType.MATRIX4X3 = 19;
openfl_display_ShaderParameterType.MATRIX4X4 = 20;
openfl_display_ShaderPrecision.FAST = 0;
openfl_display_ShaderPrecision.FULL = 1;
openfl_display_SpreadMethod.PAD = 0;
openfl_display_SpreadMethod.REFLECT = 1;
openfl_display_SpreadMethod.REPEAT = 2;
openfl_display_Stage.__meta__ = { fields : { __broadcastEvent : { SuppressWarnings : ["checkstyle:Dynamic"]}, __dispatchEvent : { SuppressWarnings : [["checkstyle:Dynamic","checkstyle:LeftCurly"]]}, __dispatchStack : { SuppressWarnings : [["checkstyle:Dynamic","checkstyle:LeftCurly"]]}, __dispatchTarget : { SuppressWarnings : ["checkstyle:Dynamic"]}, __handleError : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display_StageAlign.BOTTOM = 0;
openfl_display_StageAlign.BOTTOM_LEFT = 1;
openfl_display_StageAlign.BOTTOM_RIGHT = 2;
openfl_display_StageAlign.LEFT = 3;
openfl_display_StageAlign.RIGHT = 4;
openfl_display_StageAlign.TOP = 5;
openfl_display_StageAlign.TOP_LEFT = 6;
openfl_display_StageAlign.TOP_RIGHT = 7;
openfl_display_StageDisplayState.FULL_SCREEN = 0;
openfl_display_StageDisplayState.FULL_SCREEN_INTERACTIVE = 1;
openfl_display_StageDisplayState.NORMAL = 2;
openfl_display_StageQuality.BEST = 0;
openfl_display_StageQuality.HIGH = 1;
openfl_display_StageQuality.LOW = 2;
openfl_display_StageQuality.MEDIUM = 3;
openfl_display_StageScaleMode.EXACT_FIT = 0;
openfl_display_StageScaleMode.NO_BORDER = 1;
openfl_display_StageScaleMode.NO_SCALE = 2;
openfl_display_StageScaleMode.SHOW_ALL = 3;
openfl_display_TriangleCulling.NEGATIVE = 0;
openfl_display_TriangleCulling.NONE = 1;
openfl_display_TriangleCulling.POSITIVE = 2;
openfl_display_Window.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display__$internal_AbstractNoise.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_CairoBitmap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_CairoDisplayObject.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_CairoGraphics.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_CairoTextField.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_CanvasBitmap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_CanvasDisplayObject.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_DrawCommandBuffer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { o : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display__$internal_DrawCommandBuffer.empty = new openfl_display__$internal_DrawCommandBuffer();
openfl_display__$internal_CanvasGraphics.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, statics : { windingRule : { SuppressWarnings : ["checkstyle:Dynamic"]}, createBitmapFill : { SuppressWarnings : ["checkstyle:Dynamic"]}, createGradientPattern : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display__$internal_CanvasGraphics.SIN45 = 0.70710678118654752440084436210485;
openfl_display__$internal_CanvasGraphics.TAN22 = 0.4142135623730950488016887242097;
openfl_display__$internal_CanvasGraphics.fillCommands = new openfl_display__$internal_DrawCommandBuffer();
openfl_display__$internal_CanvasGraphics.strokeCommands = new openfl_display__$internal_DrawCommandBuffer();
openfl_display__$internal_CanvasShape.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_CanvasTextField.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_Context3DBitmap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_Context3DBuffer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_Context3DBuffer.MAX_INDEX_BUFFER_LENGTH = 65535;
openfl_display__$internal_Context3DBuffer.MAX_QUADS_PER_INDEX_BUFFER = 10922;
openfl_display__$internal_Context3DBuffer.MAX_QUAD_INDEX_BUFFER_LENGTH = 65532;
openfl_display__$internal_Context3DDisplayObject.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_Context3DGraphics.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_Context3DGraphics.blankBitmapData = new openfl_display_BitmapData(1,1,false,0);
openfl_display__$internal_Context3DGraphics.tempColorTransform = new openfl_geom_ColorTransform(1,1,1,1,0,0,0,0);
openfl_display__$internal_Context3DMaskShader.opaqueBitmapData = new openfl_display_BitmapData(1,1,false,0);
openfl_display__$internal_Context3DShape.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_Context3DTextField.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_DOMBitmap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_DOMDisplayObject.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_DOMShape.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_DOMTextField.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_DOMTextField.__regexColor = new EReg("color=(\"#([^\"]+)\"|'#([^']+)')","i");
openfl_display__$internal_DOMTextField.__regexFace = new EReg("face=(\"([^\"]+)\"|'([^']+)')","i");
openfl_display__$internal_DOMTextField.__regexFont = new EReg("<font ([^>]+)>","gi");
openfl_display__$internal_DOMTextField.__regexCloseFont = new EReg("</font>","gi");
openfl_display__$internal_DOMTextField.__regexSize = new EReg("size=(\"([^\"]+)\"|'([^']+)')","i");
openfl_display__$internal_DrawCommandReader.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { obj : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display__$internal_PerlinNoise.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, statics : { P : { SuppressWarnings : ["checkstyle:ConstantName"]}}};
openfl_display__$internal_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];
openfl_display__$internal_SamplerState.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display__$internal_ShaderBuffer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { overrideIntValues : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display3D_Context3D.supportsVideoTexture = true;
openfl_display3D_Context3D.__glDepthStencil = -1;
openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy = -1;
openfl_display3D_Context3D.__glMaxViewportDims = -1;
openfl_display3D_Context3D.__glMemoryCurrentAvailable = -1;
openfl_display3D_Context3D.__glMemoryTotalAvailable = -1;
openfl_display3D_Context3D.__glTextureMaxAnisotropy = -1;
openfl_display3D_Context3DBlendFactor.DESTINATION_ALPHA = 0;
openfl_display3D_Context3DBlendFactor.DESTINATION_COLOR = 1;
openfl_display3D_Context3DBlendFactor.ONE = 2;
openfl_display3D_Context3DBlendFactor.ONE_MINUS_DESTINATION_ALPHA = 3;
openfl_display3D_Context3DBlendFactor.ONE_MINUS_DESTINATION_COLOR = 4;
openfl_display3D_Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA = 5;
openfl_display3D_Context3DBlendFactor.ONE_MINUS_SOURCE_COLOR = 6;
openfl_display3D_Context3DBlendFactor.SOURCE_ALPHA = 7;
openfl_display3D_Context3DBlendFactor.SOURCE_COLOR = 8;
openfl_display3D_Context3DBlendFactor.ZERO = 9;
openfl_display3D_Context3DBufferUsage.DYNAMIC_DRAW = 0;
openfl_display3D_Context3DBufferUsage.STATIC_DRAW = 1;
openfl_display3D_Context3DCompareMode.ALWAYS = 0;
openfl_display3D_Context3DCompareMode.EQUAL = 1;
openfl_display3D_Context3DCompareMode.GREATER = 2;
openfl_display3D_Context3DCompareMode.GREATER_EQUAL = 3;
openfl_display3D_Context3DCompareMode.LESS = 4;
openfl_display3D_Context3DCompareMode.LESS_EQUAL = 5;
openfl_display3D_Context3DCompareMode.NEVER = 6;
openfl_display3D_Context3DCompareMode.NOT_EQUAL = 7;
openfl_display3D_Context3DMipFilter.MIPLINEAR = 0;
openfl_display3D_Context3DMipFilter.MIPNEAREST = 1;
openfl_display3D_Context3DMipFilter.MIPNONE = 2;
openfl_display3D_Context3DProfile.BASELINE = 0;
openfl_display3D_Context3DProfile.BASELINE_CONSTRAINED = 1;
openfl_display3D_Context3DProfile.BASELINE_EXTENDED = 2;
openfl_display3D_Context3DProfile.STANDARD = 3;
openfl_display3D_Context3DProfile.STANDARD_CONSTRAINED = 4;
openfl_display3D_Context3DProfile.STANDARD_EXTENDED = 5;
openfl_display3D_Context3DProgramFormat.AGAL = 0;
openfl_display3D_Context3DProgramFormat.GLSL = 1;
openfl_display3D_Context3DProgramType.FRAGMENT = 0;
openfl_display3D_Context3DProgramType.VERTEX = 1;
openfl_display3D_Context3DRenderMode.AUTO = 0;
openfl_display3D_Context3DRenderMode.SOFTWARE = 1;
openfl_display3D_Context3DStencilAction.DECREMENT_SATURATE = 0;
openfl_display3D_Context3DStencilAction.DECREMENT_WRAP = 1;
openfl_display3D_Context3DStencilAction.INCREMENT_SATURATE = 2;
openfl_display3D_Context3DStencilAction.INCREMENT_WRAP = 3;
openfl_display3D_Context3DStencilAction.INVERT = 4;
openfl_display3D_Context3DStencilAction.KEEP = 5;
openfl_display3D_Context3DStencilAction.SET = 6;
openfl_display3D_Context3DStencilAction.ZERO = 7;
openfl_display3D_Context3DTextureFilter.ANISOTROPIC16X = 0;
openfl_display3D_Context3DTextureFilter.ANISOTROPIC2X = 1;
openfl_display3D_Context3DTextureFilter.ANISOTROPIC4X = 2;
openfl_display3D_Context3DTextureFilter.ANISOTROPIC8X = 3;
openfl_display3D_Context3DTextureFilter.LINEAR = 4;
openfl_display3D_Context3DTextureFilter.NEAREST = 5;
openfl_display3D_Context3DTextureFormat.BGR_PACKED = 0;
openfl_display3D_Context3DTextureFormat.BGRA = 1;
openfl_display3D_Context3DTextureFormat.BGRA_PACKED = 2;
openfl_display3D_Context3DTextureFormat.COMPRESSED = 3;
openfl_display3D_Context3DTextureFormat.COMPRESSED_ALPHA = 4;
openfl_display3D_Context3DTextureFormat.RGBA_HALF_FLOAT = 5;
openfl_display3D_Context3DTriangleFace.BACK = 0;
openfl_display3D_Context3DTriangleFace.FRONT = 1;
openfl_display3D_Context3DTriangleFace.FRONT_AND_BACK = 2;
openfl_display3D_Context3DTriangleFace.NONE = 3;
openfl_display3D_Context3DVertexBufferFormat.BYTES_4 = 0;
openfl_display3D_Context3DVertexBufferFormat.FLOAT_1 = 1;
openfl_display3D_Context3DVertexBufferFormat.FLOAT_2 = 2;
openfl_display3D_Context3DVertexBufferFormat.FLOAT_3 = 3;
openfl_display3D_Context3DVertexBufferFormat.FLOAT_4 = 4;
openfl_display3D_Context3DWrapMode.CLAMP = 0;
openfl_display3D_Context3DWrapMode.CLAMP_U_REPEAT_V = 1;
openfl_display3D_Context3DWrapMode.REPEAT = 2;
openfl_display3D_Context3DWrapMode.REPEAT_U_CLAMP_V = 3;
openfl_display3D_Uniform.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D_UniformMap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D__$internal_Context3DState.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D__$internal_agal_AGALConverter.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D__$internal_agal_AGALConverter.limitedProfile = true;
openfl_display3D__$internal_agal__$AGALConverter_DestRegister.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D__$internal_agal_RegisterMap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D__$internal_agal__$AGALConverter_SamplerRegister.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D__$internal_agal__$AGALConverter_SourceRegister.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D__$internal_atf_ATFReader.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_display3D_textures_TextureBase.__meta__ = { fields : { __textureContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, __getGLFramebuffer : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_display3D_textures_TextureBase.__supportsBGRA = null;
openfl_display3D_textures_Texture.__lowMemoryMode = false;
openfl_errors_Error.DEFAULT_TO_STRING = "Error";
openfl_events_Event.ACTIVATE = "activate";
openfl_events_Event.ADDED = "added";
openfl_events_Event.ADDED_TO_STAGE = "addedToStage";
openfl_events_Event.CANCEL = "cancel";
openfl_events_Event.CHANGE = "change";
openfl_events_Event.CLEAR = "clear";
openfl_events_Event.CLOSE = "close";
openfl_events_Event.COMPLETE = "complete";
openfl_events_Event.CONNECT = "connect";
openfl_events_Event.CONTEXT3D_CREATE = "context3DCreate";
openfl_events_Event.COPY = "copy";
openfl_events_Event.CUT = "cut";
openfl_events_Event.DEACTIVATE = "deactivate";
openfl_events_Event.ENTER_FRAME = "enterFrame";
openfl_events_Event.EXIT_FRAME = "exitFrame";
openfl_events_Event.FRAME_CONSTRUCTED = "frameConstructed";
openfl_events_Event.FRAME_LABEL = "frameLabel";
openfl_events_Event.FULLSCREEN = "fullScreen";
openfl_events_Event.ID3 = "id3";
openfl_events_Event.INIT = "init";
openfl_events_Event.MOUSE_LEAVE = "mouseLeave";
openfl_events_Event.OPEN = "open";
openfl_events_Event.PASTE = "paste";
openfl_events_Event.REMOVED = "removed";
openfl_events_Event.REMOVED_FROM_STAGE = "removedFromStage";
openfl_events_Event.RENDER = "render";
openfl_events_Event.RESIZE = "resize";
openfl_events_Event.SCROLL = "scroll";
openfl_events_Event.SELECT = "select";
openfl_events_Event.SELECT_ALL = "selectAll";
openfl_events_Event.SOUND_COMPLETE = "soundComplete";
openfl_events_Event.TAB_CHILDREN_CHANGE = "tabChildrenChange";
openfl_events_Event.TAB_ENABLED_CHANGE = "tabEnabledChange";
openfl_events_Event.TAB_INDEX_CHANGE = "tabIndexChange";
openfl_events_Event.TEXTURE_READY = "textureReady";
openfl_events_Event.UNLOAD = "unload";
openfl_events_AccelerometerEvent.UPDATE = "update";
openfl_events_ActivityEvent.ACTIVITY = "activity";
openfl_events_TextEvent.LINK = "link";
openfl_events_TextEvent.TEXT_INPUT = "textInput";
openfl_events_ErrorEvent.ERROR = "error";
openfl_events__$EventDispatcher_DispatchIterator.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_events__$EventDispatcher_Listener.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_events_FocusEvent.FOCUS_IN = "focusIn";
openfl_events_FocusEvent.FOCUS_OUT = "focusOut";
openfl_events_FocusEvent.KEY_FOCUS_CHANGE = "keyFocusChange";
openfl_events_FocusEvent.MOUSE_FOCUS_CHANGE = "mouseFocusChange";
openfl_events_FullScreenEvent.FULL_SCREEN = "fullScreen";
openfl_events_FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED = "fullScreenInteractiveAccepted";
openfl_events_GameInputEvent.DEVICE_ADDED = "deviceAdded";
openfl_events_GameInputEvent.DEVICE_REMOVED = "deviceRemoved";
openfl_events_GameInputEvent.DEVICE_UNUSABLE = "deviceUnusable";
openfl_events_HTTPStatusEvent.HTTP_RESPONSE_STATUS = "httpResponseStatus";
openfl_events_HTTPStatusEvent.HTTP_STATUS = "httpStatus";
openfl_events_IOErrorEvent.IO_ERROR = "ioError";
openfl_events_KeyboardEvent.KEY_DOWN = "keyDown";
openfl_events_KeyboardEvent.KEY_UP = "keyUp";
openfl_events_MouseEvent.CLICK = "click";
openfl_events_MouseEvent.DOUBLE_CLICK = "doubleClick";
openfl_events_MouseEvent.MIDDLE_CLICK = "middleClick";
openfl_events_MouseEvent.MIDDLE_MOUSE_DOWN = "middleMouseDown";
openfl_events_MouseEvent.MIDDLE_MOUSE_UP = "middleMouseUp";
openfl_events_MouseEvent.MOUSE_DOWN = "mouseDown";
openfl_events_MouseEvent.MOUSE_MOVE = "mouseMove";
openfl_events_MouseEvent.MOUSE_OUT = "mouseOut";
openfl_events_MouseEvent.MOUSE_OVER = "mouseOver";
openfl_events_MouseEvent.MOUSE_UP = "mouseUp";
openfl_events_MouseEvent.MOUSE_WHEEL = "mouseWheel";
openfl_events_MouseEvent.RELEASE_OUTSIDE = "releaseOutside";
openfl_events_MouseEvent.RIGHT_CLICK = "rightClick";
openfl_events_MouseEvent.RIGHT_MOUSE_DOWN = "rightMouseDown";
openfl_events_MouseEvent.RIGHT_MOUSE_UP = "rightMouseUp";
openfl_events_MouseEvent.ROLL_OUT = "rollOut";
openfl_events_MouseEvent.ROLL_OVER = "rollOver";
openfl_events_NetStatusEvent.NET_STATUS = "netStatus";
openfl_events_ProgressEvent.PROGRESS = "progress";
openfl_events_ProgressEvent.SOCKET_DATA = "socketData";
openfl_events_RenderEvent.CLEAR_DOM = "clearDOM";
openfl_events_RenderEvent.RENDER_CAIRO = "renderCairo";
openfl_events_RenderEvent.RENDER_CANVAS = "renderCanvas";
openfl_events_RenderEvent.RENDER_DOM = "renderDOM";
openfl_events_RenderEvent.RENDER_OPENGL = "renderOpenGL";
openfl_events_SecurityErrorEvent.SECURITY_ERROR = "securityError";
openfl_events_TouchEvent.__meta__ = { fields : { delta : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_events_TouchEvent.TOUCH_BEGIN = "touchBegin";
openfl_events_TouchEvent.TOUCH_END = "touchEnd";
openfl_events_TouchEvent.TOUCH_MOVE = "touchMove";
openfl_events_TouchEvent.TOUCH_OUT = "touchOut";
openfl_events_TouchEvent.TOUCH_OVER = "touchOver";
openfl_events_TouchEvent.TOUCH_ROLL_OUT = "touchRollOut";
openfl_events_TouchEvent.TOUCH_ROLL_OVER = "touchRollOver";
openfl_events_TouchEvent.TOUCH_TAP = "touchTap";
openfl_events_UncaughtErrorEvent.UNCAUGHT_ERROR = "uncaughtError";
openfl_filters_ShaderFilter.__meta__ = { fields : { blendMode : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_geom_Matrix3D.__meta__ = { statics : { create2D : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, createABCD : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, createOrtho : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_geom_Orientation3D.AXIS_ANGLE = 0;
openfl_geom_Orientation3D.EULER_ANGLES = 1;
openfl_geom_Orientation3D.QUATERNION = 2;
openfl_media_SoundTransform.__meta__ = { fields : { clone : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_media_SoundMixer.MAX_ACTIVE_CHANNELS = 32;
openfl_media_SoundMixer.__soundChannels = [];
openfl_media_SoundMixer.__soundTransform = new openfl_media_SoundTransform();
openfl_net_NetConnection.__meta__ = { statics : { CONNECT_SUCCESS : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_net_NetConnection.CONNECT_SUCCESS = "NetConnection.Connect.Success";
openfl_net_NetStream.__meta__ = { fields : { audioCodec : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, decodedFrames : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, speed : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, requestVideoStatus : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_net_SharedObject.defaultObjectEncoding = 10;
openfl_net_SharedObjectFlushStatus.FLUSHED = 0;
openfl_net_SharedObjectFlushStatus.PENDING = 1;
openfl_net_URLLoaderDataFormat.BINARY = 0;
openfl_net_URLLoaderDataFormat.TEXT = 1;
openfl_net_URLLoaderDataFormat.VARIABLES = 2;
openfl_net_URLRequestDefaults.followRedirects = true;
openfl_net_URLRequestDefaults.idleTimeout = 0;
openfl_net_URLRequestDefaults.manageCookies = false;
openfl_sensors_Accelerometer.currentX = 0.0;
openfl_sensors_Accelerometer.currentY = 1.0;
openfl_sensors_Accelerometer.currentZ = 0.0;
openfl_sensors_Accelerometer.defaultInterval = 34;
openfl_sensors_Accelerometer.initialized = false;
openfl_sensors_Accelerometer.supported = false;
openfl_system_ApplicationDomain.currentDomain = new openfl_system_ApplicationDomain(null);
openfl_system_SecurityDomain.__meta__ = { obj : { SuppressWarnings : ["checkstyle:UnnecessaryConstructor"]}};
openfl_system_SecurityDomain.currentDomain = new openfl_system_SecurityDomain();
openfl_system_System.useCodePage = false;
openfl_text_AntiAliasType.ADVANCED = 0;
openfl_text_AntiAliasType.NORMAL = 1;
openfl_text_FontStyle.BOLD = 0;
openfl_text_FontStyle.BOLD_ITALIC = 1;
openfl_text_FontStyle.ITALIC = 2;
openfl_text_FontStyle.REGULAR = 3;
openfl_text_FontType.DEVICE = 0;
openfl_text_FontType.EMBEDDED = 1;
openfl_text_FontType.EMBEDDED_CFF = 2;
openfl_text_GridFitType.NONE = 0;
openfl_text_GridFitType.PIXEL = 1;
openfl_text_GridFitType.SUBPIXEL = 2;
openfl_text_TextFieldAutoSize.CENTER = 0;
openfl_text_TextFieldAutoSize.LEFT = 1;
openfl_text_TextFieldAutoSize.NONE = 2;
openfl_text_TextFieldAutoSize.RIGHT = 3;
openfl_text_TextFieldType.DYNAMIC = 0;
openfl_text_TextFieldType.INPUT = 1;
openfl_text_TextFormat.__meta__ = { fields : { clone : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_text_TextFormatAlign.CENTER = 0;
openfl_text_TextFormatAlign.END = 1;
openfl_text_TextFormatAlign.JUSTIFY = 2;
openfl_text_TextFormatAlign.LEFT = 3;
openfl_text_TextFormatAlign.RIGHT = 4;
openfl_text_TextFormatAlign.START = 5;
openfl_text__$internal_GlyphPosition.__meta__ = { obj : { SuppressWarnings : [["checkstyle:FieldDocComment","checkstyle:Dynamic"]]}};
openfl_text__$internal_TextEngine.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { __cairoFont : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_text__$internal_TextEngine.GUTTER = 2;
openfl_text__$internal_TextEngine.UTF8_TAB = 9;
openfl_text__$internal_TextEngine.UTF8_ENDLINE = 10;
openfl_text__$internal_TextEngine.UTF8_SPACE = 32;
openfl_text__$internal_TextEngine.UTF8_HYPHEN = 45;
openfl_text__$internal_TextEngine.__defaultFonts = new haxe_ds_StringMap();
openfl_text__$internal_TextLayout.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { glyphs : { SuppressWarnings : ["checkstyle:Dynamic"]}, __handle : { SuppressWarnings : ["checkstyle:Dynamic"]}, __hbBuffer : { SuppressWarnings : ["checkstyle:Dynamic"]}, __hbFont : { SuppressWarnings : ["checkstyle:Dynamic"]}, get_glyphs : { SuppressWarnings : ["checkstyle:Dynamic"]}}};
openfl_text__$internal_TextLayout.FT_LOAD_DEFAULT = 0;
openfl_text__$internal_TextLayout.FT_LOAD_NO_SCALE = 1;
openfl_text__$internal_TextLayout.FT_LOAD_NO_HINTING = 2;
openfl_text__$internal_TextLayout.FT_LOAD_RENDER = 4;
openfl_text__$internal_TextLayout.FT_LOAD_NO_BITMAP = 8;
openfl_text__$internal_TextLayout.FT_LOAD_VERTICAL_LAYOUT = 16;
openfl_text__$internal_TextLayout.FT_LOAD_FORCE_AUTOHINT = 32;
openfl_text__$internal_TextLayout.FT_LOAD_CROP_BITMAP = 64;
openfl_text__$internal_TextLayout.FT_LOAD_PEDANTIC = 128;
openfl_text__$internal_TextLayout.FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = 256;
openfl_text__$internal_TextLayout.FT_LOAD_NO_RECURSE = 512;
openfl_text__$internal_TextLayout.FT_LOAD_IGNORE_TRANSFORM = 1024;
openfl_text__$internal_TextLayout.FT_LOAD_MONOCHROME = 2048;
openfl_text__$internal_TextLayout.FT_LOAD_LINEAR_DESIGN = 4096;
openfl_text__$internal_TextLayout.FT_LOAD_NO_AUTOHINT = 8192;
openfl_text__$internal_TextLayout.FT_LOAD_COLOR = 16384;
openfl_text__$internal_TextLayout.FT_LOAD_COMPUTE_METRICS = 32768;
openfl_text__$internal_TextLayout.FT_LOAD_BITMAP_METRICS_ONLY = 65536;
openfl_text__$internal_TextLayout.FT_LOAD_TARGET_NORMAL = 0;
openfl_text__$internal_TextLayout.FT_LOAD_TARGET_LIGHT = 0;
openfl_text__$internal_TextDirection.INVALID = 0;
openfl_text__$internal_TextDirection.LEFT_TO_RIGHT = 4;
openfl_text__$internal_TextDirection.RIGHT_TO_LEFT = 5;
openfl_text__$internal_TextDirection.TOP_TO_BOTTOM = 6;
openfl_text__$internal_TextDirection.BOTTOM_TO_TOP = 7;
openfl_text__$internal_TextScript.COMMON = "Zyyy";
openfl_text__$internal_TextScript.INHERITED = "Zinh";
openfl_text__$internal_TextScript.UNKNOWN = "Zzzz";
openfl_text__$internal_TextScript.ARABIC = "Arab";
openfl_text__$internal_TextScript.ARMENIAN = "Armn";
openfl_text__$internal_TextScript.BENGALI = "Beng";
openfl_text__$internal_TextScript.CYRILLIC = "Cyrl";
openfl_text__$internal_TextScript.DEVANAGARI = "Deva";
openfl_text__$internal_TextScript.GEORGIAN = "Geor";
openfl_text__$internal_TextScript.GREEK = "Grek";
openfl_text__$internal_TextScript.GUJARATI = "Gujr";
openfl_text__$internal_TextScript.GURMUKHI = "Guru";
openfl_text__$internal_TextScript.HANGUL = "Hang";
openfl_text__$internal_TextScript.HAN = "Hani";
openfl_text__$internal_TextScript.HEBREW = "Hebr";
openfl_text__$internal_TextScript.HIRAGANA = "Hira";
openfl_text__$internal_TextScript.KANNADA = "Knda";
openfl_text__$internal_TextScript.KATAKANA = "Kana";
openfl_text__$internal_TextScript.LAO = "Laoo";
openfl_text__$internal_TextScript.LATIN = "Latn";
openfl_text__$internal_TextScript.MALAYALAM = "Mlym";
openfl_text__$internal_TextScript.ORIYA = "Orya";
openfl_text__$internal_TextScript.TAMIL = "Taml";
openfl_text__$internal_TextScript.TELUGA = "Telu";
openfl_text__$internal_TextScript.THAI = "Thai";
openfl_text__$internal_TextScript.TIBETAN = "Tibt";
openfl_text__$internal_TextScript.BOPOMOFO = "Bopo";
openfl_text__$internal_TextScript.BRAILLE = "Brai";
openfl_text__$internal_TextScript.CANADIAN_SYLLABICS = "Cans";
openfl_text__$internal_TextScript.CHEROKEE = "Cher";
openfl_text__$internal_TextScript.ETHIOPIC = "Ethi";
openfl_text__$internal_TextScript.KHMER = "Khmr";
openfl_text__$internal_TextScript.MONGOLIAN = "Mong";
openfl_text__$internal_TextScript.MYANMAR = "Mymr";
openfl_text__$internal_TextScript.OGHAM = "Ogam";
openfl_text__$internal_TextScript.RUNIC = "Runr";
openfl_text__$internal_TextScript.SINHALA = "Sinh";
openfl_text__$internal_TextScript.SYRIAC = "Syrc";
openfl_text__$internal_TextScript.THAANA = "Thaa";
openfl_text__$internal_TextScript.YI = "Yiii";
openfl_text__$internal_TextScript.DESERET = "Dsrt";
openfl_text__$internal_TextScript.GOTHIC = "Goth";
openfl_text__$internal_TextScript.OLD_ITALIC = "Ital";
openfl_text__$internal_TextScript.BUHID = "Buhd";
openfl_text__$internal_TextScript.HANUNOO = "Hano";
openfl_text__$internal_TextScript.TAGALOG = "Tglg";
openfl_text__$internal_TextScript.TAGBANWA = "Tagb";
openfl_text__$internal_TextScript.CYPRIOT = "Cprt";
openfl_text__$internal_TextScript.LIMBU = "Limb";
openfl_text__$internal_TextScript.LINEAR_B = "Linb";
openfl_text__$internal_TextScript.OSMANYA = "Osma";
openfl_text__$internal_TextScript.SHAVIAN = "Shaw";
openfl_text__$internal_TextScript.TAI_LE = "Tale";
openfl_text__$internal_TextScript.UGARITIC = "Ugar";
openfl_text__$internal_TextScript.BUGINESE = "Bugi";
openfl_text__$internal_TextScript.COPTIC = "Copt";
openfl_text__$internal_TextScript.GLAGOLITIC = "Glag";
openfl_text__$internal_TextScript.KHAROSHTHI = "Khar";
openfl_text__$internal_TextScript.NEW_TAI_LUE = "Talu";
openfl_text__$internal_TextScript.OLD_PERSIAN = "Xpeo";
openfl_text__$internal_TextScript.SYLOTI_NAGRI = "Sylo";
openfl_text__$internal_TextScript.TIFINAGH = "Tfng";
openfl_text__$internal_TextScript.BALINESE = "Bali";
openfl_text__$internal_TextScript.CUNEIFORM = "Xsux";
openfl_text__$internal_TextScript.NKO = "Nkoo";
openfl_text__$internal_TextScript.PHAGS_PA = "Phag";
openfl_text__$internal_TextScript.PHOENICIAN = "Phnx";
openfl_text__$internal_TextScript.CARIAN = "Cari";
openfl_text__$internal_TextScript.CHAM = "Cham";
openfl_text__$internal_TextScript.KAYAH_LI = "Kali";
openfl_text__$internal_TextScript.LEPCHA = "Lepc";
openfl_text__$internal_TextScript.LYCIAN = "Lyci";
openfl_text__$internal_TextScript.LYDIAN = "Lydi";
openfl_text__$internal_TextScript.OL_CHIKI = "Olck";
openfl_text__$internal_TextScript.REJANG = "Rjng";
openfl_text__$internal_TextScript.SAURASHTRA = "Saur";
openfl_text__$internal_TextScript.SUNDANESE = "Sund";
openfl_text__$internal_TextScript.VAI = "Vaii";
openfl_text__$internal_TextScript.AVESTAN = "Avst";
openfl_text__$internal_TextScript.BAMUM = "Bamu";
openfl_text__$internal_TextScript.EGYPTIAN_HIEROGLYPHS = "Egyp";
openfl_text__$internal_TextScript.IMPERIAL_ARAMAIC = "Armi";
openfl_text__$internal_TextScript.INSCRIPTIONAL_PAHLAVI = "Phli";
openfl_text__$internal_TextScript.INSCRIPTIONAL_PARTHIAN = "Prti";
openfl_text__$internal_TextScript.JAVANESE = "Java";
openfl_text__$internal_TextScript.KAITHI = "Kthi";
openfl_text__$internal_TextScript.LISU = "Lisu";
openfl_text__$internal_TextScript.MEETEI_MAYEK = "Mtei";
openfl_text__$internal_TextScript.OLD_SOUTH_ARABIAN = "Sarb";
openfl_text__$internal_TextScript.OLD_TURKIC = "Orkh";
openfl_text__$internal_TextScript.SAMARITAN = "Samr";
openfl_text__$internal_TextScript.TAI_THAM = "Lana";
openfl_text__$internal_TextScript.TAI_VIET = "Tavt";
openfl_text__$internal_TextScript.BATAK = "Batk";
openfl_text__$internal_TextScript.BRAHMI = "Brah";
openfl_text__$internal_TextScript.MANDAIC = "Mand";
openfl_text__$internal_TextScript.CHAKMA = "Cakm";
openfl_text__$internal_TextScript.MEROITIC_CURSIVE = "Merc";
openfl_text__$internal_TextScript.MEROITIC_HIEROGLYPHS = "Mero";
openfl_text__$internal_TextScript.MIAO = "Plrd";
openfl_text__$internal_TextScript.SHARADA = "Shrd";
openfl_text__$internal_TextScript.SORA_SOMPENG = "Sora";
openfl_text__$internal_TextScript.TAKRI = "Takr";
openfl_text__$internal_TextScript.BASSA_VAH = "Bass";
openfl_text__$internal_TextScript.CAUCASIAN_ALBANIAN = "Aghb";
openfl_text__$internal_TextScript.DUPLOYAN = "Dupl";
openfl_text__$internal_TextScript.ELBASAN = "Elba";
openfl_text__$internal_TextScript.GRANTHA = "Gran";
openfl_text__$internal_TextScript.KHOJKI = "Khoj";
openfl_text__$internal_TextScript.KHUDAWADI = "Sind";
openfl_text__$internal_TextScript.LINEAR_A = "Lina";
openfl_text__$internal_TextScript.MAHAJANI = "Mahj";
openfl_text__$internal_TextScript.MANICHAEAN = "Mani";
openfl_text__$internal_TextScript.MENDE_KIKAKUI = "Mend";
openfl_text__$internal_TextScript.MODI = "Modi";
openfl_text__$internal_TextScript.MRO = "Mroo";
openfl_text__$internal_TextScript.NABATAEAN = "Nbat";
openfl_text__$internal_TextScript.OLD_NORTH_ARABIAN = "Narb";
openfl_text__$internal_TextScript.OLD_PERMIC = "Perm";
openfl_text__$internal_TextScript.PAHAWH_HMONG = "Hmng";
openfl_text__$internal_TextScript.PALMYRENE = "Palm";
openfl_text__$internal_TextScript.PAU_CIN_HAU = "Pauc";
openfl_text__$internal_TextScript.PSALTER_PAHLAVI = "Phlp";
openfl_text__$internal_TextScript.SIDDHAM = "Sidd";
openfl_text__$internal_TextScript.TIRHUTA = "Tirh";
openfl_text__$internal_TextScript.WARANG_CITI = "Wara";
openfl_text__$internal_TextLayoutGroup.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_ui_GameInputDevice.MAX_BUFFER_SIZE = 32000;
openfl_ui_Keyboard.__meta__ = { statics : { BREAK : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, NUMLOCK : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
openfl_ui_Keyboard.NUMBER_0 = 48;
openfl_ui_Keyboard.NUMBER_1 = 49;
openfl_ui_Keyboard.NUMBER_2 = 50;
openfl_ui_Keyboard.NUMBER_3 = 51;
openfl_ui_Keyboard.NUMBER_4 = 52;
openfl_ui_Keyboard.NUMBER_5 = 53;
openfl_ui_Keyboard.NUMBER_6 = 54;
openfl_ui_Keyboard.NUMBER_7 = 55;
openfl_ui_Keyboard.NUMBER_8 = 56;
openfl_ui_Keyboard.NUMBER_9 = 57;
openfl_ui_Keyboard.A = 65;
openfl_ui_Keyboard.B = 66;
openfl_ui_Keyboard.C = 67;
openfl_ui_Keyboard.D = 68;
openfl_ui_Keyboard.E = 69;
openfl_ui_Keyboard.F = 70;
openfl_ui_Keyboard.G = 71;
openfl_ui_Keyboard.H = 72;
openfl_ui_Keyboard.I = 73;
openfl_ui_Keyboard.J = 74;
openfl_ui_Keyboard.K = 75;
openfl_ui_Keyboard.L = 76;
openfl_ui_Keyboard.M = 77;
openfl_ui_Keyboard.N = 78;
openfl_ui_Keyboard.O = 79;
openfl_ui_Keyboard.P = 80;
openfl_ui_Keyboard.Q = 81;
openfl_ui_Keyboard.R = 82;
openfl_ui_Keyboard.S = 83;
openfl_ui_Keyboard.T = 84;
openfl_ui_Keyboard.U = 85;
openfl_ui_Keyboard.V = 86;
openfl_ui_Keyboard.W = 87;
openfl_ui_Keyboard.X = 88;
openfl_ui_Keyboard.Y = 89;
openfl_ui_Keyboard.Z = 90;
openfl_ui_Keyboard.NUMPAD_0 = 96;
openfl_ui_Keyboard.NUMPAD_1 = 97;
openfl_ui_Keyboard.NUMPAD_2 = 98;
openfl_ui_Keyboard.NUMPAD_3 = 99;
openfl_ui_Keyboard.NUMPAD_4 = 100;
openfl_ui_Keyboard.NUMPAD_5 = 101;
openfl_ui_Keyboard.NUMPAD_6 = 102;
openfl_ui_Keyboard.NUMPAD_7 = 103;
openfl_ui_Keyboard.NUMPAD_8 = 104;
openfl_ui_Keyboard.NUMPAD_9 = 105;
openfl_ui_Keyboard.NUMPAD_MULTIPLY = 106;
openfl_ui_Keyboard.NUMPAD_ADD = 107;
openfl_ui_Keyboard.NUMPAD_ENTER = 108;
openfl_ui_Keyboard.NUMPAD_SUBTRACT = 109;
openfl_ui_Keyboard.NUMPAD_DECIMAL = 110;
openfl_ui_Keyboard.NUMPAD_DIVIDE = 111;
openfl_ui_Keyboard.F1 = 112;
openfl_ui_Keyboard.F2 = 113;
openfl_ui_Keyboard.F3 = 114;
openfl_ui_Keyboard.F4 = 115;
openfl_ui_Keyboard.F5 = 116;
openfl_ui_Keyboard.F6 = 117;
openfl_ui_Keyboard.F7 = 118;
openfl_ui_Keyboard.F8 = 119;
openfl_ui_Keyboard.F9 = 120;
openfl_ui_Keyboard.F10 = 121;
openfl_ui_Keyboard.F11 = 122;
openfl_ui_Keyboard.F12 = 123;
openfl_ui_Keyboard.F13 = 124;
openfl_ui_Keyboard.F14 = 125;
openfl_ui_Keyboard.F15 = 126;
openfl_ui_Keyboard.BACKSPACE = 8;
openfl_ui_Keyboard.TAB = 9;
openfl_ui_Keyboard.ALTERNATE = 18;
openfl_ui_Keyboard.ENTER = 13;
openfl_ui_Keyboard.COMMAND = 15;
openfl_ui_Keyboard.SHIFT = 16;
openfl_ui_Keyboard.CONTROL = 17;
openfl_ui_Keyboard.BREAK = 19;
openfl_ui_Keyboard.CAPS_LOCK = 20;
openfl_ui_Keyboard.NUMPAD = 21;
openfl_ui_Keyboard.ESCAPE = 27;
openfl_ui_Keyboard.SPACE = 32;
openfl_ui_Keyboard.PAGE_UP = 33;
openfl_ui_Keyboard.PAGE_DOWN = 34;
openfl_ui_Keyboard.END = 35;
openfl_ui_Keyboard.HOME = 36;
openfl_ui_Keyboard.LEFT = 37;
openfl_ui_Keyboard.RIGHT = 39;
openfl_ui_Keyboard.UP = 38;
openfl_ui_Keyboard.DOWN = 40;
openfl_ui_Keyboard.INSERT = 45;
openfl_ui_Keyboard.DELETE = 46;
openfl_ui_Keyboard.NUMLOCK = 144;
openfl_ui_Keyboard.SEMICOLON = 186;
openfl_ui_Keyboard.EQUAL = 187;
openfl_ui_Keyboard.COMMA = 188;
openfl_ui_Keyboard.MINUS = 189;
openfl_ui_Keyboard.PERIOD = 190;
openfl_ui_Keyboard.SLASH = 191;
openfl_ui_Keyboard.BACKQUOTE = 192;
openfl_ui_Keyboard.LEFTBRACKET = 219;
openfl_ui_Keyboard.BACKSLASH = 220;
openfl_ui_Keyboard.RIGHTBRACKET = 221;
openfl_ui_Keyboard.QUOTE = 222;
openfl_ui_Mouse.supportsCursor = true;
openfl_ui_Mouse.supportsNativeCursor = true;
openfl_ui_Mouse.__cursor = "auto";
openfl_ui_MouseCursor.ARROW = "arrow";
openfl_ui_MouseCursor.AUTO = "auto";
openfl_ui_MouseCursor.BUTTON = "button";
openfl_ui_MouseCursor.HAND = "hand";
openfl_ui_MouseCursor.IBEAM = "ibeam";
openfl_ui_MouseCursor.__CROSSHAIR = "crosshair";
openfl_ui_MouseCursor.__CUSTOM = "custom";
openfl_ui_MouseCursor.__MOVE = "move";
openfl_ui_MouseCursor.__RESIZE_NESW = "resize_nesw";
openfl_ui_MouseCursor.__RESIZE_NS = "resize_ns";
openfl_ui_MouseCursor.__RESIZE_NWSE = "resize_nwse";
openfl_ui_MouseCursor.__RESIZE_WE = "resize_we";
openfl_ui_MouseCursor.__WAIT = "wait";
openfl_ui_MouseCursor.__WAIT_ARROW = "waitarrow";
openfl_ui_MultitouchInputMode.GESTURE = 0;
openfl_ui_MultitouchInputMode.NONE = 1;
openfl_ui_MultitouchInputMode.TOUCH_POINT = 2;
openfl_utils_AGALMiniAssembler.__meta__ = { obj : { SuppressWarnings : [["checkstyle:ConstantName","checkstyle:FieldDocComment"]]}};
openfl_utils_AGALMiniAssembler.OPMAP = new haxe_ds_StringMap();
openfl_utils_AGALMiniAssembler.REGMAP = new haxe_ds_StringMap();
openfl_utils_AGALMiniAssembler.SAMPLEMAP = new haxe_ds_StringMap();
openfl_utils_AGALMiniAssembler.MAX_NESTING = 4;
openfl_utils_AGALMiniAssembler.MAX_OPCODES = 4096;
openfl_utils_AGALMiniAssembler.FRAGMENT = "fragment";
openfl_utils_AGALMiniAssembler.VERTEX = "vertex";
openfl_utils_AGALMiniAssembler.SAMPLER_TYPE_SHIFT = 8;
openfl_utils_AGALMiniAssembler.SAMPLER_DIM_SHIFT = 12;
openfl_utils_AGALMiniAssembler.SAMPLER_SPECIAL_SHIFT = 16;
openfl_utils_AGALMiniAssembler.SAMPLER_REPEAT_SHIFT = 20;
openfl_utils_AGALMiniAssembler.SAMPLER_MIPMAP_SHIFT = 24;
openfl_utils_AGALMiniAssembler.SAMPLER_FILTER_SHIFT = 28;
openfl_utils_AGALMiniAssembler.REG_WRITE = 1;
openfl_utils_AGALMiniAssembler.REG_READ = 2;
openfl_utils_AGALMiniAssembler.REG_FRAG = 32;
openfl_utils_AGALMiniAssembler.REG_VERT = 64;
openfl_utils_AGALMiniAssembler.OP_SCALAR = 1;
openfl_utils_AGALMiniAssembler.OP_SPECIAL_TEX = 8;
openfl_utils_AGALMiniAssembler.OP_SPECIAL_MATRIX = 16;
openfl_utils_AGALMiniAssembler.OP_FRAG_ONLY = 32;
openfl_utils_AGALMiniAssembler.OP_VERT_ONLY = 64;
openfl_utils_AGALMiniAssembler.OP_NO_DEST = 128;
openfl_utils_AGALMiniAssembler.OP_VERSION2 = 256;
openfl_utils_AGALMiniAssembler.OP_INCNEST = 512;
openfl_utils_AGALMiniAssembler.OP_DECNEST = 1024;
openfl_utils_AGALMiniAssembler.MOV = "mov";
openfl_utils_AGALMiniAssembler.ADD = "add";
openfl_utils_AGALMiniAssembler.SUB = "sub";
openfl_utils_AGALMiniAssembler.MUL = "mul";
openfl_utils_AGALMiniAssembler.DIV = "div";
openfl_utils_AGALMiniAssembler.RCP = "rcp";
openfl_utils_AGALMiniAssembler.MIN = "min";
openfl_utils_AGALMiniAssembler.MAX = "max";
openfl_utils_AGALMiniAssembler.FRC = "frc";
openfl_utils_AGALMiniAssembler.SQT = "sqt";
openfl_utils_AGALMiniAssembler.RSQ = "rsq";
openfl_utils_AGALMiniAssembler.POW = "pow";
openfl_utils_AGALMiniAssembler.LOG = "log";
openfl_utils_AGALMiniAssembler.EXP = "exp";
openfl_utils_AGALMiniAssembler.NRM = "nrm";
openfl_utils_AGALMiniAssembler.SIN = "sin";
openfl_utils_AGALMiniAssembler.COS = "cos";
openfl_utils_AGALMiniAssembler.CRS = "crs";
openfl_utils_AGALMiniAssembler.DP3 = "dp3";
openfl_utils_AGALMiniAssembler.DP4 = "dp4";
openfl_utils_AGALMiniAssembler.ABS = "abs";
openfl_utils_AGALMiniAssembler.NEG = "neg";
openfl_utils_AGALMiniAssembler.SAT = "sat";
openfl_utils_AGALMiniAssembler.M33 = "m33";
openfl_utils_AGALMiniAssembler.M44 = "m44";
openfl_utils_AGALMiniAssembler.M34 = "m34";
openfl_utils_AGALMiniAssembler.DDX = "ddx";
openfl_utils_AGALMiniAssembler.DDY = "ddy";
openfl_utils_AGALMiniAssembler.IFE = "ife";
openfl_utils_AGALMiniAssembler.INE = "ine";
openfl_utils_AGALMiniAssembler.IFG = "ifg";
openfl_utils_AGALMiniAssembler.IFL = "ifl";
openfl_utils_AGALMiniAssembler.IEG = "ieg";
openfl_utils_AGALMiniAssembler.IEL = "iel";
openfl_utils_AGALMiniAssembler.ELS = "els";
openfl_utils_AGALMiniAssembler.EIF = "eif";
openfl_utils_AGALMiniAssembler.TED = "ted";
openfl_utils_AGALMiniAssembler.KIL = "kil";
openfl_utils_AGALMiniAssembler.TEX = "tex";
openfl_utils_AGALMiniAssembler.SGE = "sge";
openfl_utils_AGALMiniAssembler.SLT = "slt";
openfl_utils_AGALMiniAssembler.SGN = "sgn";
openfl_utils_AGALMiniAssembler.SEQ = "seq";
openfl_utils_AGALMiniAssembler.SNE = "sne";
openfl_utils_AGALMiniAssembler.VA = "va";
openfl_utils_AGALMiniAssembler.VC = "vc";
openfl_utils_AGALMiniAssembler.VT = "vt";
openfl_utils_AGALMiniAssembler.VO = "vo";
openfl_utils_AGALMiniAssembler.VI = "vi";
openfl_utils_AGALMiniAssembler.FC = "fc";
openfl_utils_AGALMiniAssembler.FT = "ft";
openfl_utils_AGALMiniAssembler.FS = "fs";
openfl_utils_AGALMiniAssembler.FO = "fo";
openfl_utils_AGALMiniAssembler.FD = "fd";
openfl_utils_AGALMiniAssembler.IID = "iid";
openfl_utils_AGALMiniAssembler.D2 = "2d";
openfl_utils_AGALMiniAssembler.D3 = "3d";
openfl_utils_AGALMiniAssembler.CUBE = "cube";
openfl_utils_AGALMiniAssembler.MIPNEAREST = "mipnearest";
openfl_utils_AGALMiniAssembler.MIPLINEAR = "miplinear";
openfl_utils_AGALMiniAssembler.MIPNONE = "mipnone";
openfl_utils_AGALMiniAssembler.NOMIP = "nomip";
openfl_utils_AGALMiniAssembler.NEAREST = "nearest";
openfl_utils_AGALMiniAssembler.LINEAR = "linear";
openfl_utils_AGALMiniAssembler.ANISOTROPIC2X = "anisotropic2x";
openfl_utils_AGALMiniAssembler.ANISOTROPIC4X = "anisotropic4x";
openfl_utils_AGALMiniAssembler.ANISOTROPIC8X = "anisotropic8x";
openfl_utils_AGALMiniAssembler.ANISOTROPIC16X = "anisotropic16x";
openfl_utils_AGALMiniAssembler.CENTROID = "centroid";
openfl_utils_AGALMiniAssembler.SINGLE = "single";
openfl_utils_AGALMiniAssembler.IGNORESAMPLER = "ignoresampler";
openfl_utils_AGALMiniAssembler.REPEAT = "repeat";
openfl_utils_AGALMiniAssembler.WRAP = "wrap";
openfl_utils_AGALMiniAssembler.CLAMP = "clamp";
openfl_utils_AGALMiniAssembler.REPEAT_U_CLAMP_V = "repeat_u_clamp_v";
openfl_utils_AGALMiniAssembler.CLAMP_U_REPEAT_V = "clamp_u_repeat_v";
openfl_utils_AGALMiniAssembler.RGBA = "rgba";
openfl_utils_AGALMiniAssembler.COMPRESSED = "compressed";
openfl_utils_AGALMiniAssembler.COMPRESSEDALPHA = "compressedalpha";
openfl_utils_AGALMiniAssembler.DXT1 = "dxt1";
openfl_utils_AGALMiniAssembler.DXT5 = "dxt5";
openfl_utils_AGALMiniAssembler.VIDEO = "video";
openfl_utils_AGALMiniAssembler.initialized = false;
openfl_utils__$AGALMiniAssembler_OpCode.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_utils__$AGALMiniAssembler_Register.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_utils__$AGALMiniAssembler_Sampler.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
openfl_utils_Assets.cache = new openfl_utils_AssetCache();
openfl_utils_Assets.dispatcher = new openfl_events_EventDispatcher();
openfl_utils_ByteArray.__bytePointer = (function($this) {
var $r;
var this1 = new lime_utils_BytePointerData(null,0);
$r = this1;
return $r;
}(this));
openfl_utils_CompressionAlgorithm.DEFLATE = 0;
openfl_utils_CompressionAlgorithm.LZMA = 1;
openfl_utils_CompressionAlgorithm.ZLIB = 2;
openfl_utils_Endian.BIG_ENDIAN = 0;
openfl_utils_Endian.LITTLE_ENDIAN = 1;
openfl_utils_Object.__meta__ = { statics : { iterator : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, __get : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, __set : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}};
haxe_lang_Iterator.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
haxe_lang_Iterable.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}};
polymod_Polymod.onError = null;
polymod_Polymod.library = null;
polymod_backends_LimeBackend.defaultAssetLibrary = null;
polymod_backends_PolymodAssetType.BYTES = "BYTES";
polymod_backends_PolymodAssetType.TEXT = "TEXT";
polymod_backends_PolymodAssetType.IMAGE = "IMAGE";
polymod_backends_PolymodAssetType.VIDEO = "VIDEO";
polymod_backends_PolymodAssetType.FONT = "FONT";
polymod_backends_PolymodAssetType.AUDIO_GENERIC = "AUDIO_GENERIC";
polymod_backends_PolymodAssetType.AUDIO_MUSIC = "AUDIO_MUSIC";
polymod_backends_PolymodAssetType.AUDIO_SOUND = "AUDIO_SOUND";
polymod_backends_PolymodAssetType.MANIFEST = "MANIFEST";
polymod_backends_PolymodAssetType.TEMPLATE = "TEMPLATE";
polymod_backends_PolymodAssetType.UNKNOWN = "UNKNOWN";
ApplicationMain.main();
})(typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this, typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this);
});
$hx_exports.lime = $hx_exports.lime || {};
$hx_exports.lime.$scripts = $hx_exports.lime.$scripts || {};
$hx_exports.lime.$scripts["Funkin"] = $hx_script;
$hx_exports.lime.embed = function(projectName) { var exports = {};
var script = $hx_exports.lime.$scripts[projectName];
if (!script) throw Error("Cannot find project name \"" + projectName + "\"");
script(exports, $global);
for (var key in exports) $hx_exports[key] = $hx_exports[key] || exports[key];
var lime = exports.lime || window.lime;
if (lime && lime.embed && this != lime.embed) lime.embed.apply(lime, arguments);
return exports;
};
if(typeof define == "function" && define.amd) {
define([], function() { return $hx_exports.lime; });
define.__amd = define.amd;
define.amd = null;
}
})(typeof exports != "undefined" ? exports : typeof define == "function" && define.amd ? {} : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this, typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this);
/*! howler.js v2.1.1 | (c) 2013-2018, James Simpson of GoldFire Studios | MIT License | howlerjs.com */
!function(){"use strict";var e=function(){this.init()};e.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.volume=u._volume*e)}return o}return o._volume},mute:function(e){var o=this||n;o.ctx||_(),o._muted=e,o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e?0:o._volume,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.muted=!!e||u._muted)}return o},unload:function(){for(var e=this||n,o=e._howls.length-1;o>=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||n;if(e.state=e.ctx?e.ctx.state||"suspended":"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent="canplay")}catch(n){e.noAudio=!0}else e.noAudio=!0;try{var o=new Audio;o.muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,o=null;try{o="undefined"!=typeof Audio?new Audio:null}catch(n){return e}if(!o||"function"!=typeof o.canPlayType)return e;var t=o.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator&&e._navigator.userAgent.match(/OPR\/([0-6].)/g),a=r&&parseInt(r[0].split("/")[1],10)<33;return e._codecs={mp3:!(a||!t&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!o.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||n,o=/iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi|Chrome|Safari/i.test(e._navigator&&e._navigator.userAgent);if(!e._audioUnlocked&&e.ctx&&o){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var t=function(n){for(var o=0;o<e.html5PoolSize;o++){var r=new Audio;r._unlocked=!0,e._releaseHtml5Audio(r)}for(var o=0;o<e._howls.length;o++)if(!e._howls[o]._webAudio)for(var a=e._howls[o]._getSoundIds(),u=0;u<a.length;u++){var i=e._howls[o]._soundById(a[u]);i&&i._node&&!i._node._unlocked&&(i._node._unlocked=!0,i._node.load())}e._autoResume();var d=e.ctx.createBufferSource();d.buffer=e._scratchBuffer,d.connect(e.ctx.destination),void 0===d.start?d.noteOn(0):d.start(0),"function"==typeof e.ctx.resume&&e.ctx.resume(),d.onended=function(){d.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",t,!0),document.removeEventListener("touchend",t,!0),document.removeEventListener("click",t,!0);for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("unlock")}};return document.addEventListener("touchstart",t,!0),document.addEventListener("touchend",t,!0),document.addEventListener("click",t,!0),e}},_obtainHtml5Audio:function(){var e=this||n;if(e._html5AudioPool.length)return e._html5AudioPool.pop();var o=(new Audio).play();return o&&"undefined"!=typeof Promise&&(o instanceof Promise||"function"==typeof o.then)&&o.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(e){var o=this||n;return e._unlocked&&o._html5AudioPool.push(e),o},_autoSuspend:function(){var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&n.usingWebAudio){for(var o=0;o<e._howls.length;o++)if(e._howls[o]._webAudio)for(var t=0;t<e._howls[o]._sounds.length;t++)if(!e._howls[o]._sounds[t]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout(function(){e.autoSuspend&&(e._suspendTimer=null,e.state="suspending",e.ctx.suspend().then(function(){e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume())}))},3e4),e}},_autoResume:function(){var e=this;if(e.ctx&&void 0!==e.ctx.resume&&n.usingWebAudio)return"running"===e.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state?(e.ctx.resume().then(function(){e.state="running";for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("resume")}),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):"suspending"===e.state&&(e._resumeAfterSuspend=!0),e}};var n=new e,o=function(e){var n=this;if(!e.src||0===e.src.length)return void console.error("An array of source files must be passed with any new Howl.");n.init(e)};o.prototype={init:function(e){var o=this;return n.ctx||_(),o._autoplay=e.autoplay||!1,o._format="string"!=typeof e.format?e.format:[e.format],o._html5=e.html5||!1,o._muted=e.mute||!1,o._loop=e.loop||!1,o._pool=e.pool||5,o._preload="boolean"!=typeof e.preload||e.preload,o._rate=e.rate||1,o._sprite=e.sprite||{},o._src="string"!=typeof e.src?e.src:[e.src],o._volume=void 0!==e.volume?e.volume:1,o._xhrWithCredentials=e.xhrWithCredentials||!1,o._duration=0,o._state="unloaded",o._sounds=[],o._endTimers={},o._queue=[],o._playLock=!1,o._onend=e.onend?[{fn:e.onend}]:[],o._onfade=e.onfade?[{fn:e.onfade}]:[],o._onload=e.onload?[{fn:e.onload}]:[],o._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],o._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],o._onpause=e.onpause?[{fn:e.onpause}]:[],o._onplay=e.onplay?[{fn:e.onplay}]:[],o._onstop=e.onstop?[{fn:e.onstop}]:[],o._onmute=e.onmute?[{fn:e.onmute}]:[],o._onvolume=e.onvolume?[{fn:e.onvolume}]:[],o._onrate=e.onrate?[{fn:e.onrate}]:[],o._onseek=e.onseek?[{fn:e.onseek}]:[],o._onunlock=e.onunlock?[{fn:e.onunlock}]:[],o._onresume=[],o._webAudio=n.usingWebAudio&&!o._html5,void 0!==n.ctx&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(o),o._autoplay&&o._queue.push({event:"play",action:function(){o.play()}}),o._preload&&o.load(),o},load:function(){var e=this,o=null;if(n.noAudio)return void e._emit("loaderror",null,"No audio support.");"string"==typeof e._src&&(e._src=[e._src]);for(var r=0;r<e._src.length;r++){var u,i;if(e._format&&e._format[r])u=e._format[r];else{if("string"!=typeof(i=e._src[r])){e._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}u=/^data:audio\/([^;,]+);/i.exec(i),u||(u=/\.([^.]+)$/.exec(i.split("?",1)[0])),u&&(u=u[1].toLowerCase())}if(u||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),u&&n.codecs(u)){o=e._src[r];break}}return o?(e._src=o,e._state="loading","https:"===window.location.protocol&&"http:"===o.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new t(e),e._webAudio&&a(e),e):void e._emit("loaderror",null,"No codec support for selected audio sources.")},play:function(e,o){var t=this,r=null;if("number"==typeof e)r=e,e=null;else{if("string"==typeof e&&"loaded"===t._state&&!t._sprite[e])return null;if(void 0===e&&(e="__default",!t._playLock)){for(var a=0,u=0;u<t._sounds.length;u++)t._sounds[u]._paused&&!t._sounds[u]._ended&&(a++,r=t._sounds[u]._id);1===a?e=null:r=null}}var i=r?t._soundById(r):t._inactiveSound();if(!i)return null;if(r&&!e&&(e=i._sprite||"__default"),"loaded"!==t._state){i._sprite=e,i._ended=!1;var d=i._id;return t._queue.push({event:"play",action:function(){t.play(d)}}),d}if(r&&!i._paused)return o||t._loadQueue("play"),i._id;t._webAudio&&n._autoResume();var _=Math.max(0,i._seek>0?i._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(i._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3,p=!(!i._loop&&!t._sprite[e][2]);i._sprite=e,i._ended=!1;var m=function(){i._paused=!1,i._seek=_,i._start=c,i._stop=f,i._loop=p};if(_>=f)return void t._ended(i);var v=i._node;if(t._webAudio){var h=function(){t._playLock=!1,m(),t._refreshBuffer(i);var e=i._muted||t._muted?0:i._volume;v.gain.setValueAtTime(e,n.ctx.currentTime),i._playStart=n.ctx.currentTime,void 0===v.bufferSource.start?i._loop?v.bufferSource.noteGrainOn(0,_,86400):v.bufferSource.noteGrainOn(0,_,s):i._loop?v.bufferSource.start(0,_,86400):v.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l)),o||setTimeout(function(){t._emit("play",i._id),t._loadQueue()},0)};"running"===n.state?h():(t._playLock=!0,t.once("resume",h),t._clearTimer(i._id))}else{var y=function(){v.currentTime=_,v.muted=i._muted||t._muted||n._muted||v.muted,v.volume=i._volume*n.volume(),v.playbackRate=i._rate;try{var r=v.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(t._playLock=!0,m(),r.then(function(){t._playLock=!1,v._unlocked=!0,o||(t._emit("play",i._id),t._loadQueue())}).catch(function(){t._playLock=!1,t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),i._ended=!0,i._paused=!0})):o||(t._playLock=!1,m(),t._emit("play",i._id),t._loadQueue()),v.playbackRate=i._rate,v.paused)return void t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||i._loop?t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l):(t._endTimers[i._id]=function(){t._ended(i),v.removeEventListener("ended",t._endTimers[i._id],!1)},v.addEventListener("ended",t._endTimers[i._id],!1))}catch(e){t._emit("playerror",i._id,e)}},g=window&&window.ejecta||!v.readyState&&n._navigator.isCocoonJS;if(v.readyState>=3||g)y();else{t._playLock=!0;var b=function(){y(),v.removeEventListener(n._canPlayEvent,b,!1)};v.addEventListener(n._canPlayEvent,b,!1),t._clearTimer(i._id)}}return i._id},pause:function(e){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var o=n._getSoundIds(e),t=0;t<o.length;t++){n._clearTimer(o[t]);var r=n._soundById(o[t]);if(r&&!r._paused&&(r._seek=n.seek(o[t]),r._rateSeek=0,r._paused=!0,n._stopFade(o[t]),r._node))if(n._webAudio){if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),n._cleanBuffer(r._node)}else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||n._emit("pause",r?r._id:null)}return n},stop:function(e,n){var o=this;if("loaded"!==o._state||o._playLock)return o._queue.push({event:"stop",action:function(){o.stop(e)}}),o;for(var t=o._getSoundIds(e),r=0;r<t.length;r++){o._clearTimer(t[r]);var a=o._soundById(t[r]);a&&(a._seek=a._start||0,a._rateSeek=0,a._paused=!0,a._ended=!0,o._stopFade(t[r]),a._node&&(o._webAudio?a._node.bufferSource&&(void 0===a._node.bufferSource.stop?a._node.bufferSource.noteOff(0):a._node.bufferSource.stop(0),o._cleanBuffer(a._node)):isNaN(a._node.duration)&&a._node.duration!==1/0||(a._node.currentTime=a._start||0,a._node.pause())),n||o._emit("stop",a._id))}return o},mute:function(e,o){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"mute",action:function(){t.mute(e,o)}}),t;if(void 0===o){if("boolean"!=typeof e)return t._muted;t._muted=e}for(var r=t._getSoundIds(o),a=0;a<r.length;a++){var u=t._soundById(r[a]);u&&(u._muted=e,u._interval&&t._stopFade(u._id),t._webAudio&&u._node?u._node.gain.setValueAtTime(e?0:u._volume,n.ctx.currentTime):u._node&&(u._node.muted=!!n._muted||e),t._emit("mute",u._id))}return t},volume:function(){var e,o,t=this,r=arguments;if(0===r.length)return t._volume;if(1===r.length||2===r.length&&void 0===r[1]){t._getSoundIds().indexOf(r[0])>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"volume",action:function(){t.volume.apply(t,r)}}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u<o.length;u++)(a=t._soundById(o[u]))&&(a._volume=e,r[2]||t._stopFade(o[u]),t._webAudio&&a._node&&!a._muted?a._node.gain.setValueAtTime(e,n.ctx.currentTime):a._node&&!a._muted&&(a._node.volume=e*n.volume()),t._emit("volume",a._id));return t},fade:function(e,o,t,r){var a=this;if("loaded"!==a._state||a._playLock)return a._queue.push({event:"fade",action:function(){a.fade(e,o,t,r)}}),a;e=parseFloat(e),o=parseFloat(o),t=parseFloat(t),a.volume(e,r);for(var u=a._getSoundIds(r),i=0;i<u.length;i++){var d=a._soundById(u[i]);if(d){if(r||a._stopFade(u[i]),a._webAudio&&!d._muted){var _=n.ctx.currentTime,s=_+t/1e3;d._volume=e,d._node.gain.setValueAtTime(e,_),d._node.gain.linearRampToValueAtTime(o,s)}a._startFadeInterval(d,e,o,t,u[i],void 0===r)}}return a},_startFadeInterval:function(e,n,o,t,r,a){var u=this,i=n,d=o-n,_=Math.abs(d/.01),s=Math.max(4,_>0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var r=(Date.now()-l)/t;l=Date.now(),i+=d*r,i=Math.max(0,i),i=Math.min(1,i),i=Math.round(100*i)/100,u._webAudio?e._volume=i:u.volume(i,e._id,!0),a&&(u._volume=i),(o<n&&i<=o||o>n&&i>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit("fade",e._id))},s)},_stopFade:function(e){var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit("fade",e)),o},loop:function(){var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e}else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u<a.length;u++)(o=t._soundById(a[u]))&&(o._loop=e,t._webAudio&&o._node&&o._node.bufferSource&&(o._node.bufferSource.loop=e,e&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop)));return t},rate:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var i;if("number"!=typeof e)return i=t._soundById(o),i?i._rate:t._rate;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"rate",action:function(){t.rate.apply(t,r)}}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var d=0;d<o.length;d++)if(i=t._soundById(o[d])){t.playing(o[d])&&(i._rateSeek=t.seek(o[d]),i._playStart=t._webAudio?n.ctx.currentTime:i._playStart),i._rate=e,t._webAudio&&i._node&&i._node.bufferSource?i._node.bufferSource.playbackRate.setValueAtTime(e,n.ctx.currentTime):i._node&&(i._node.playbackRate=e);var _=t.seek(o[d]),s=(t._sprite[i._sprite][0]+t._sprite[i._sprite][1])/1e3-_,l=1e3*s/Math.abs(i._rate);!t._endTimers[o[d]]&&i._paused||(t._clearTimer(o[d]),t._endTimers[o[d]]=setTimeout(t._ended.bind(t,i),l)),t._emit("rate",i._id)}return t},seek:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return t;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"seek",action:function(){t.seek.apply(t,r)}}),t;var i=t._soundById(o);if(i){if(!("number"==typeof e&&e>=0)){if(t._webAudio){var d=t.playing(o)?n.ctx.currentTime-i._playStart:0,_=i._rateSeek?i._rateSeek-i._seek:0;return i._seek+(_+d*Math.abs(i._rate))}return i._node.currentTime}var s=t.playing(o);s&&t.pause(o,!0),i._seek=e,i._ended=!1,t._clearTimer(o),t._webAudio||!i._node||isNaN(i._node.duration)||(i._node.currentTime=e);var l=function(){t._emit("seek",o),s&&t.play(o,!0)};if(s&&!t._webAudio){var c=function(){t._playLock?setTimeout(c,0):l()};setTimeout(c,0)}else l()}return t},playing:function(e){var n=this;if("number"==typeof e){var o=n._soundById(e);return!!o&&!o._paused}for(var t=0;t<n._sounds.length;t++)if(!n._sounds[t]._paused)return!0;return!1},duration:function(e){var n=this,o=n._duration,t=n._soundById(e);return t&&(o=n._sprite[t._sprite][1]/1e3),o},state:function(){return this._state},unload:function(){for(var e=this,o=e._sounds,t=0;t<o.length;t++){if(o[t]._paused||e.stop(o[t]._id),!e._webAudio){/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(o[t]._node.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"),o[t]._node.removeEventListener("error",o[t]._errorFn,!1),o[t]._node.removeEventListener(n._canPlayEvent,o[t]._loadFn,!1),n._releaseHtml5Audio(o[t]._node)}delete o[t]._node,e._clearTimer(o[t]._id)}var a=n._howls.indexOf(e);a>=0&&n._howls.splice(a,1);var u=!0;for(t=0;t<n._howls.length;t++)if(n._howls[t]._src===e._src||e._src.indexOf(n._howls[t]._src)>=0){u=!1;break}return r&&u&&delete r[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,o,t){var r=this,a=r["_on"+e];return"function"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r},off:function(e,n,o){var t=this,r=t["_on"+e],a=0;if("number"==typeof n&&(o=n,n=null),n||o)for(a=0;a<r.length;a++){var u=o===r[a].id;if(n===r[a].fn&&u||!n&&u){r.splice(a,1);break}}else if(e)t["_on"+e]=[];else{var i=Object.keys(t);for(a=0;a<i.length;a++)0===i[a].indexOf("_on")&&Array.isArray(t[i[a]])&&(t[i[a]]=[])}return t},once:function(e,n,o){var t=this;return t.on(e,n,o,1),t},_emit:function(e,n,o){for(var t=this,r=t["_on"+e],a=r.length-1;a>=0;a--)r[a].id&&r[a].id!==n&&"load"!==e||(setTimeout(function(e){e.call(this,n,o)}.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t},_loadQueue:function(e){var n=this;if(n._queue.length>0){var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action()}return n},_ended:function(e){var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime<e._stop)return setTimeout(o._ended.bind(o,e),100),o;var r=!(!e._loop&&!o._sprite[t][2]);if(o._emit("end",e._id),!o._webAudio&&r&&o.stop(e._id,!0).play(e._id),o._webAudio&&r){o._emit("play",e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=n.ctx.currentTime;var a=1e3*(e._stop-e._start)/Math.abs(e._rate);o._endTimers[e._id]=setTimeout(o._ended.bind(o,e),a)}return o._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,o._clearTimer(e._id),o._cleanBuffer(e._node),n._autoSuspend()),o._webAudio||r||o.stop(e._id,!0),o},_clearTimer:function(e){var n=this;if(n._endTimers[e]){if("function"!=typeof n._endTimers[e])clearTimeout(n._endTimers[e]);else{var o=n._soundById(e);o&&o._node&&o._node.removeEventListener("ended",n._endTimers[e],!1)}delete n._endTimers[e]}return n},_soundById:function(e){for(var n=this,o=0;o<n._sounds.length;o++)if(e===n._sounds[o]._id)return n._sounds[o];return null},_inactiveSound:function(){var e=this;e._drain();for(var n=0;n<e._sounds.length;n++)if(e._sounds[n]._ended)return e._sounds[n].reset();return new t(e)},_drain:function(){var e=this,n=e._pool,o=0,t=0;if(!(e._sounds.length<n)){for(t=0;t<e._sounds.length;t++)e._sounds[t]._ended&&o++;for(t=e._sounds.length-1;t>=0;t--){if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--)}}},_getSoundIds:function(e){var n=this;if(void 0===e){for(var o=[],t=0;t<n._sounds.length;t++)o.push(n._sounds[t]._id);return o}return[e]},_refreshBuffer:function(e){var o=this;return e._node.bufferSource=n.ctx.createBufferSource(),e._node.bufferSource.buffer=r[o._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,n.ctx.currentTime),o},_cleanBuffer:function(e){var o=this,t=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}return e.bufferSource=null,o}};var t=function(e){this._parent=e,this.init()};t.prototype={init:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,o._sounds.push(e),e.create(),e},create:function(){var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._node.src=o._src,e._node.preload="auto",e._node.volume=t*n.volume(),e._node.load()),e},reset:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),"loaded"!==o._state&&(o._state="loaded",o._emit("load"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)}};var r={},a=function(e){var n=e._src;if(r[n])return e._duration=r[n].duration,void d(e);if(/^data:[^;]+;base64,/.test(n)){for(var o=atob(n.split(",")[1]),t=new Uint8Array(o.length),a=0;a<o.length;++a)t[a]=o.charCodeAt(a);i(t.buffer,e)}else{var _=new XMLHttpRequest;_.open("GET",n,!0),_.withCredentials=e._xhrWithCredentials,_.responseType="arraybuffer",_.onload=function(){var n=(_.status+"")[0];if("0"!==n&&"2"!==n&&"3"!==n)return void e._emit("loaderror",null,"Failed loading audio file with status: "+_.status+".");i(_.response,e)},_.onerror=function(){e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete r[n],e.load())},u(_)}},u=function(e){try{e.send()}catch(n){e.onerror()}},i=function(e,o){var t=function(){o._emit("loaderror",null,"Decoding audio data failed.")},a=function(e){e&&o._sounds.length>0?(r[o._src]=e,d(o,e)):t()};"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t)},d=function(e,n){n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},_=function(){if(n.usingWebAudio){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());(n._navigator&&n._navigator.standalone&&!r||n._navigator&&!n._navigator.standalone&&!r)&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:1,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};"function"==typeof define&&define.amd&&define([],function(){return{Howler:n,Howl:o}}),"undefined"!=typeof exports&&(exports.Howler=n,exports.Howl=o),"undefined"!=typeof window?(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t):"undefined"!=typeof global&&(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t)}();
/*! Spatial Plugin */
!function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var n=this;if(!n.ctx||!n.ctx.listener)return n;for(var t=n._howls.length-1;t>=0;t--)n._howls[t].stereo(e);return n},HowlerGlobal.prototype.pos=function(e,n,t){var r=this;return r.ctx&&r.ctx.listener?(n="number"!=typeof n?r._pos[1]:n,t="number"!=typeof t?r._pos[2]:t,"number"!=typeof e?r._pos:(r._pos=[e,n,t],void 0!==r.ctx.listener.positionX?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]),r)):r},HowlerGlobal.prototype.orientation=function(e,n,t,r,o,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return n="number"!=typeof n?s[1]:n,t="number"!=typeof t?s[2]:t,r="number"!=typeof r?s[3]:r,o="number"!=typeof o?s[4]:o,i="number"!=typeof i?s[5]:i,"number"!=typeof e?s:(a._orientation=[e,n,t,r,o,i],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(t,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,n,t,r,o,i),a)},Howl.prototype.init=function(e){return function(n){var t=this;return t._orientation=n.orientation||[1,0,0],t._stereo=n.stereo||null,t._pos=n.pos||null,t._pannerAttr={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:360,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:360,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:0,distanceModel:void 0!==n.distanceModel?n.distanceModel:"inverse",maxDistance:void 0!==n.maxDistance?n.maxDistance:1e4,panningModel:void 0!==n.panningModel?n.panningModel:"HRTF",refDistance:void 0!==n.refDistance?n.refDistance:1,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:1},t._onstereo=n.onstereo?[{fn:n.onstereo}]:[],t._onpos=n.onpos?[{fn:n.onpos}]:[],t._onorientation=n.onorientation?[{fn:n.onorientation}]:[],e.call(this,n)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,t){var r=this;if(!r._webAudio)return r;if("loaded"!==r._state)return r._queue.push({event:"stereo",action:function(){r.stereo(n,t)}}),r;var o=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===t){if("number"!=typeof n)return r._stereo;r._stereo=n,r._pos=[n,0,0]}for(var i=r._getSoundIds(t),a=0;a<i.length;a++){var s=r._soundById(i[a]);if(s){if("number"!=typeof n)return s._stereo;s._stereo=n,s._pos=[n,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",s._panner&&s._panner.pan||e(s,o),"spatial"===o?void 0!==s._panner.positionX?(s._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(n,0,0):s._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),r._emit("stereo",s._id)}}return r},Howl.prototype.pos=function(n,t,r,o){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"pos",action:function(){i.pos(n,t,r,o)}}),i;if(t="number"!=typeof t?0:t,r="number"!=typeof r?-.5:r,void 0===o){if("number"!=typeof n)return i._pos;i._pos=[n,t,r]}for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var p=i._soundById(a[s]);if(p){if("number"!=typeof n)return p._pos;p._pos=[n,t,r],p._node&&(p._panner&&!p._panner.pan||e(p,"spatial"),void 0!==p._panner.positionX?(p._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.positionY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setPosition(n,t,r)),i._emit("pos",p._id)}}return i},Howl.prototype.orientation=function(n,t,r,o){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"orientation",action:function(){i.orientation(n,t,r,o)}}),i;if(t="number"!=typeof t?i._orientation[1]:t,r="number"!=typeof r?i._orientation[2]:r,void 0===o){if("number"!=typeof n)return i._orientation;i._orientation=[n,t,r]}for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var p=i._soundById(a[s]);if(p){if("number"!=typeof n)return p._orientation;p._orientation=[n,t,r],p._node&&(p._panner||(p._pos||(p._pos=i._pos||[0,0,-.5]),e(p,"spatial")),void 0!==p._panner.orientationX?(p._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.orientationY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setOrientation(n,t,r)),i._emit("orientation",p._id)}}return i},Howl.prototype.pannerAttr=function(){var n,t,r,o=this,i=arguments;if(!o._webAudio)return o;if(0===i.length)return o._pannerAttr;if(1===i.length){if("object"!=typeof i[0])return r=o._soundById(parseInt(i[0],10)),r?r._pannerAttr:o._pannerAttr;n=i[0],void 0===t&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),o._pannerAttr={coneInnerAngle:void 0!==n.pannerAttr.coneInnerAngle?n.pannerAttr.coneInnerAngle:o._coneInnerAngle,coneOuterAngle:void 0!==n.pannerAttr.coneOuterAngle?n.pannerAttr.coneOuterAngle:o._coneOuterAngle,coneOuterGain:void 0!==n.pannerAttr.coneOuterGain?n.pannerAttr.coneOuterGain:o._coneOuterGain,distanceModel:void 0!==n.pannerAttr.distanceModel?n.pannerAttr.distanceModel:o._distanceModel,maxDistance:void 0!==n.pannerAttr.maxDistance?n.pannerAttr.maxDistance:o._maxDistance,refDistance:void 0!==n.pannerAttr.refDistance?n.pannerAttr.refDistance:o._refDistance,rolloffFactor:void 0!==n.pannerAttr.rolloffFactor?n.pannerAttr.rolloffFactor:o._rolloffFactor,panningModel:void 0!==n.pannerAttr.panningModel?n.pannerAttr.panningModel:o._panningModel})}else 2===i.length&&(n=i[0],t=parseInt(i[1],10));for(var a=o._getSoundIds(t),s=0;s<a.length;s++)if(r=o._soundById(a[s])){var p=r._pannerAttr;p={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:p.coneInnerAngle,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:p.coneOuterAngle,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:p.coneOuterGain,distanceModel:void 0!==n.distanceModel?n.distanceModel:p.distanceModel,maxDistance:void 0!==n.maxDistance?n.maxDistance:p.maxDistance,refDistance:void 0!==n.refDistance?n.refDistance:p.refDistance,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:p.rolloffFactor,panningModel:void 0!==n.panningModel?n.panningModel:p.panningModel};var c=r._panner;c?(c.coneInnerAngle=p.coneInnerAngle,c.coneOuterAngle=p.coneOuterAngle,c.coneOuterGain=p.coneOuterGain,c.distanceModel=p.distanceModel,c.maxDistance=p.maxDistance,c.refDistance=p.refDistance,c.rolloffFactor=p.rolloffFactor,c.panningModel=p.panningModel):(r._pos||(r._pos=o._pos||[0,0,-.5]),e(r,"spatial"))}return o},Sound.prototype.init=function(e){return function(){var n=this,t=n._parent;n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,e.call(this),n._stereo?t.stereo(n._stereo):n._pos&&t.pos(n._pos[0],n._pos[1],n._pos[2],n._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var n=this,t=n._parent;return n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,n._stereo?t.stereo(n._stereo):n._pos?t.pos(n._pos[0],n._pos[1],n._pos[2],n._id):n._panner&&(n._panner.disconnect(0),n._panner=void 0,t._refreshBuffer(n)),e.call(this)}}(Sound.prototype.reset);var e=function(e,n){n=n||"spatial","spatial"===n?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,void 0!==e._panner.positionX?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),void 0!==e._panner.orientationX?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}}();
/* pako 1.0.2 nodeca/pako */
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.pako=t()}}(function(){return function t(e,a,i){function n(s,o){if(!a[s]){if(!e[s]){var l="function"==typeof require&&require;if(!o&&l)return l(s,!0);if(r)return r(s,!0);var h=new Error("Cannot find module '"+s+"'");throw h.code="MODULE_NOT_FOUND",h}var d=a[s]={exports:{}};e[s][0].call(d.exports,function(t){var a=e[s][1][t];return n(a?a:t)},d,d.exports,t,e,a,i)}return a[s].exports}for(var r="function"==typeof require&&require,s=0;s<i.length;s++)n(i[s]);return n}({1:[function(t,e,a){"use strict";function i(t){if(!(this instanceof i))return new i(t);this.options=l.assign({level:w,method:v,chunkSize:16384,windowBits:15,memLevel:8,strategy:p,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f,this.strm.avail_out=0;var a=o.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==b)throw new Error(d[a]);if(e.header&&o.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(n="string"==typeof e.dictionary?h.string2buf(e.dictionary):"[object ArrayBuffer]"===_.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=o.deflateSetDictionary(this.strm,n),a!==b)throw new Error(d[a]);this._dict_set=!0}}function n(t,e){var a=new i(e);if(a.push(t,!0),a.err)throw a.msg;return a.result}function r(t,e){return e=e||{},e.raw=!0,n(t,e)}function s(t,e){return e=e||{},e.gzip=!0,n(t,e)}var o=t("./zlib/deflate"),l=t("./utils/common"),h=t("./utils/strings"),d=t("./zlib/messages"),f=t("./zlib/zstream"),_=Object.prototype.toString,u=0,c=4,b=0,g=1,m=2,w=-1,p=0,v=8;i.prototype.push=function(t,e){var a,i,n=this.strm,r=this.options.chunkSize;if(this.ended)return!1;i=e===~~e?e:e===!0?c:u,"string"==typeof t?n.input=h.string2buf(t):"[object ArrayBuffer]"===_.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(0===n.avail_out&&(n.output=new l.Buf8(r),n.next_out=0,n.avail_out=r),a=o.deflate(n,i),a!==g&&a!==b)return this.onEnd(a),this.ended=!0,!1;0!==n.avail_out&&(0!==n.avail_in||i!==c&&i!==m)||("string"===this.options.to?this.onData(h.buf2binstring(l.shrinkBuf(n.output,n.next_out))):this.onData(l.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||0===n.avail_out)&&a!==g);return i===c?(a=o.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===b):i!==m||(this.onEnd(b),n.avail_out=0,!0)},i.prototype.onData=function(t){this.chunks.push(t)},i.prototype.onEnd=function(t){t===b&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=l.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Deflate=i,a.deflate=n,a.deflateRaw=r,a.gzip=s},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(t,e,a){"use strict";function i(t){if(!(this instanceof i))return new i(t);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f,this.strm.avail_out=0;var a=s.inflateInit2(this.strm,e.windowBits);if(a!==h.Z_OK)throw new Error(d[a]);this.header=new _,s.inflateGetHeader(this.strm,this.header)}function n(t,e){var a=new i(e);if(a.push(t,!0),a.err)throw a.msg;return a.result}function r(t,e){return e=e||{},e.raw=!0,n(t,e)}var s=t("./zlib/inflate"),o=t("./utils/common"),l=t("./utils/strings"),h=t("./zlib/constants"),d=t("./zlib/messages"),f=t("./zlib/zstream"),_=t("./zlib/gzheader"),u=Object.prototype.toString;i.prototype.push=function(t,e){var a,i,n,r,d,f,_=this.strm,c=this.options.chunkSize,b=this.options.dictionary,g=!1;if(this.ended)return!1;i=e===~~e?e:e===!0?h.Z_FINISH:h.Z_NO_FLUSH,"string"==typeof t?_.input=l.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?_.input=new Uint8Array(t):_.input=t,_.next_in=0,_.avail_in=_.input.length;do{if(0===_.avail_out&&(_.output=new o.Buf8(c),_.next_out=0,_.avail_out=c),a=s.inflate(_,h.Z_NO_FLUSH),a===h.Z_NEED_DICT&&b&&(f="string"==typeof b?l.string2buf(b):"[object ArrayBuffer]"===u.call(b)?new Uint8Array(b):b,a=s.inflateSetDictionary(this.strm,f)),a===h.Z_BUF_ERROR&&g===!0&&(a=h.Z_OK,g=!1),a!==h.Z_STREAM_END&&a!==h.Z_OK)return this.onEnd(a),this.ended=!0,!1;_.next_out&&(0!==_.avail_out&&a!==h.Z_STREAM_END&&(0!==_.avail_in||i!==h.Z_FINISH&&i!==h.Z_SYNC_FLUSH)||("string"===this.options.to?(n=l.utf8border(_.output,_.next_out),r=_.next_out-n,d=l.buf2string(_.output,n),_.next_out=r,_.avail_out=c-r,r&&o.arraySet(_.output,_.output,n,r,0),this.onData(d)):this.onData(o.shrinkBuf(_.output,_.next_out)))),0===_.avail_in&&0===_.avail_out&&(g=!0)}while((_.avail_in>0||0===_.avail_out)&&a!==h.Z_STREAM_END);return a===h.Z_STREAM_END&&(i=h.Z_FINISH),i===h.Z_FINISH?(a=s.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===h.Z_OK):i!==h.Z_SYNC_FLUSH||(this.onEnd(h.Z_OK),_.avail_out=0,!0)},i.prototype.onData=function(t){this.chunks.push(t)},i.prototype.onEnd=function(t){t===h.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Inflate=i,a.inflate=n,a.inflateRaw=r,a.ungzip=n},{"./utils/common":3,"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(t,e,a){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;a.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(var i in a)a.hasOwnProperty(i)&&(t[i]=a[i])}}return t},a.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,a,i,n){if(e.subarray&&t.subarray)return void t.set(e.subarray(a,a+i),n);for(var r=0;r<i;r++)t[n+r]=e[a+r]},flattenChunks:function(t){var e,a,i,n,r,s;for(i=0,e=0,a=t.length;e<a;e++)i+=t[e].length;for(s=new Uint8Array(i),n=0,e=0,a=t.length;e<a;e++)r=t[e],s.set(r,n),n+=r.length;return s}},r={arraySet:function(t,e,a,i,n){for(var r=0;r<i;r++)t[n+r]=e[a+r]},flattenChunks:function(t){return[].concat.apply([],t)}};a.setTyped=function(t){t?(a.Buf8=Uint8Array,a.Buf16=Uint16Array,a.Buf32=Int32Array,a.assign(a,n)):(a.Buf8=Array,a.Buf16=Array,a.Buf32=Array,a.assign(a,r))},a.setTyped(i)},{}],4:[function(t,e,a){"use strict";function i(t,e){if(e<65537&&(t.subarray&&s||!t.subarray&&r))return String.fromCharCode.apply(null,n.shrinkBuf(t,e));for(var a="",i=0;i<e;i++)a+=String.fromCharCode(t[i]);return a}var n=t("./common"),r=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(t){r=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){s=!1}for(var o=new n.Buf8(256),l=0;l<256;l++)o[l]=l>=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1;o[254]=o[254]=1,a.string2buf=function(t){var e,a,i,r,s,o=t.length,l=0;for(r=0;r<o;r++)a=t.charCodeAt(r),55296===(64512&a)&&r+1<o&&(i=t.charCodeAt(r+1),56320===(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),r++)),l+=a<128?1:a<2048?2:a<65536?3:4;for(e=new n.Buf8(l),s=0,r=0;s<l;r++)a=t.charCodeAt(r),55296===(64512&a)&&r+1<o&&(i=t.charCodeAt(r+1),56320===(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),r++)),a<128?e[s++]=a:a<2048?(e[s++]=192|a>>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},a.buf2binstring=function(t){return i(t,t.length)},a.binstring2buf=function(t){for(var e=new n.Buf8(t.length),a=0,i=e.length;a<i;a++)e[a]=t.charCodeAt(a);return e},a.buf2string=function(t,e){var a,n,r,s,l=e||t.length,h=new Array(2*l);for(n=0,a=0;a<l;)if(r=t[a++],r<128)h[n++]=r;else if(s=o[r],s>4)h[n++]=65533,a+=s-1;else{for(r&=2===s?31:3===s?15:7;s>1&&a<l;)r=r<<6|63&t[a++],s--;s>1?h[n++]=65533:r<65536?h[n++]=r:(r-=65536,h[n++]=55296|r>>10&1023,h[n++]=56320|1023&r)}return i(h,n)},a.utf8border=function(t,e){var a;for(e=e||t.length,e>t.length&&(e=t.length),a=e-1;a>=0&&128===(192&t[a]);)a--;return a<0?e:0===a?e:a+o[t[a]]>e?a:e}},{"./common":3}],5:[function(t,e,a){"use strict";function i(t,e,a,i){for(var n=65535&t|0,r=t>>>16&65535|0,s=0;0!==a;){s=a>2e3?2e3:a,a-=s;do n=n+e[i++]|0,r=r+n|0;while(--s);n%=65521,r%=65521}return n|r<<16|0}e.exports=i},{}],6:[function(t,e,a){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(t,e,a){"use strict";function i(){for(var t,e=[],a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e}function n(t,e,a,i){var n=r,s=i+a;t^=-1;for(var o=i;o<s;o++)t=t>>>8^n[255&(t^e[o])];return t^-1}var r=i();e.exports=n},{}],8:[function(t,e,a){"use strict";function i(t,e){return t.msg=D[e],e}function n(t){return(t<<1)-(t>4?9:0)}function r(t){for(var e=t.length;--e>=0;)t[e]=0}function s(t){var e=t.state,a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(R.arraySet(t.output,e.pending_buf,e.pending_out,a,t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))}function o(t,e){C._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,s(t.strm)}function l(t,e){t.pending_buf[t.pending++]=e}function h(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function d(t,e,a,i){var n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,R.arraySet(e,t.input,t.next_in,n,a),1===t.state.wrap?t.adler=N(t.adler,e,n,a):2===t.state.wrap&&(t.adler=O(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)}function f(t,e){var a,i,n=t.max_chain_length,r=t.strstart,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-ft?t.strstart-(t.w_size-ft):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+dt,u=h[r+s-1],c=h[r+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do if(a=e,h[a+s]===c&&h[a+s-1]===u&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do;while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=dt-(_-r),r=_-dt,i>s){if(t.match_start=e,s=i,i>=o)break;u=h[r+s-1],c=h[r+s]}}while((e=f[e&d])>l&&0!==--n);return s<=t.lookahead?s:t.lookahead}function _(t){var e,a,i,n,r,s=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=s+(s-ft)){R.arraySet(t.window,t.window,s,s,0),t.match_start-=s,t.strstart-=s,t.block_start-=s,a=t.hash_size,e=a;do i=t.head[--e],t.head[e]=i>=s?i-s:0;while(--a);a=s,e=a;do i=t.prev[--e],t.prev[e]=i>=s?i-s:0;while(--a);n+=s}if(0===t.strm.avail_in)break;if(a=d(t.strm,t.window,t.strstart+t.lookahead,n),t.lookahead+=a,t.lookahead+t.insert>=ht)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=(t.ins_h<<t.hash_shift^t.window[r+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[r+ht-1])&t.hash_mask,t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<ht)););}while(t.lookahead<ft&&0!==t.strm.avail_in)}function u(t,e){var a=65535;for(a>t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(_(t),0===t.lookahead&&e===I)return vt;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+a;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,o(t,!1),0===t.strm.avail_out))return vt;if(t.strstart-t.block_start>=t.w_size-ft&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.strstart>t.block_start&&(o(t,!1),0===t.strm.avail_out)?vt:vt}function c(t,e){for(var a,i;;){if(t.lookahead<ft){if(_(t),t.lookahead<ft&&e===I)return vt;if(0===t.lookahead)break}if(a=0,t.lookahead>=ht&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+ht-1])&t.hash_mask,a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ft&&(t.match_length=f(t,a)),t.match_length>=ht)if(i=C._tr_tally(t,t.strstart-t.match_start,t.match_length-ht),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=ht){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+ht-1])&t.hash_mask,a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(0!==--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=t.strstart<ht-1?t.strstart:ht-1,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function b(t,e){for(var a,i,n;;){if(t.lookahead<ft){if(_(t),t.lookahead<ft&&e===I)return vt;if(0===t.lookahead)break}if(a=0,t.lookahead>=ht&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+ht-1])&t.hash_mask,a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=ht-1,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-ft&&(t.match_length=f(t,a),t.match_length<=5&&(t.strategy===q||t.match_length===ht&&t.strstart-t.match_start>4096)&&(t.match_length=ht-1)),t.prev_length>=ht&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-ht,i=C._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-ht),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=n&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+ht-1])&t.hash_mask,a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(0!==--t.prev_length);if(t.match_available=0,t.match_length=ht-1,t.strstart++,i&&(o(t,!1),0===t.strm.avail_out))return vt}else if(t.match_available){if(i=C._tr_tally(t,0,t.window[t.strstart-1]),i&&o(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return vt}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=C._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<ht-1?t.strstart:ht-1,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function g(t,e){for(var a,i,n,r,s=t.window;;){if(t.lookahead<=dt){if(_(t),t.lookahead<=dt&&e===I)return vt;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=ht&&t.strstart>0&&(n=t.strstart-1,i=s[n],i===s[++n]&&i===s[++n]&&i===s[++n])){r=t.strstart+dt;do;while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&n<r);t.match_length=dt-(r-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=ht?(a=C._tr_tally(t,1,t.match_length-ht),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function m(t,e){for(var a;;){if(0===t.lookahead&&(_(t),0===t.lookahead)){if(e===I)return vt;break}if(t.match_length=0,a=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function w(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}function p(t){t.window_size=2*t.w_size,r(t.head),t.max_lazy_match=Z[t.level].max_lazy,t.good_match=Z[t.level].good_length,t.nice_match=Z[t.level].nice_length,t.max_chain_length=Z[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=ht-1,t.match_available=0,t.ins_h=0}function v(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=V,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new R.Buf16(2*ot),this.dyn_dtree=new R.Buf16(2*(2*rt+1)),this.bl_tree=new R.Buf16(2*(2*st+1)),r(this.dyn_ltree),r(this.dyn_dtree),r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new R.Buf16(lt+1),this.heap=new R.Buf16(2*nt+1),r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new R.Buf16(2*nt+1),r(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function k(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Q,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ut:wt,t.adler=2===e.wrap?0:1,e.last_flush=I,C._tr_init(e),H):i(t,K)}function y(t){var e=k(t);return e===H&&p(t.state),e}function x(t,e){return t&&t.state?2!==t.state.wrap?K:(t.state.gzhead=e,H):K}function z(t,e,a,n,r,s){if(!t)return K;var o=1;if(e===Y&&(e=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>$||a!==V||n<8||n>15||e<0||e>9||s<0||s>W)return i(t,K);8===n&&(n=9);var l=new v;return t.state=l,l.strm=t,l.wrap=o,l.gzhead=null,l.w_bits=n,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=r+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+ht-1)/ht),l.window=new R.Buf8(2*l.w_size),l.head=new R.Buf16(l.hash_size),l.prev=new R.Buf16(l.w_size),l.lit_bufsize=1<<r+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new R.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=e,l.strategy=s,l.method=a,y(t)}function B(t,e){return z(t,e,V,tt,et,J)}function S(t,e){var a,o,d,f;if(!t||!t.state||e>L||e<0)return t?i(t,K):K;if(o=t.state,!t.output||!t.input&&0!==t.avail_in||o.status===pt&&e!==F)return i(t,0===t.avail_out?P:K);if(o.strm=t,a=o.last_flush,o.last_flush=e,o.status===ut)if(2===o.wrap)t.adler=0,l(o,31),l(o,139),l(o,8),o.gzhead?(l(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),l(o,255&o.gzhead.time),l(o,o.gzhead.time>>8&255),l(o,o.gzhead.time>>16&255),l(o,o.gzhead.time>>24&255),l(o,9===o.level?2:o.strategy>=G||o.level<2?4:0),l(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(l(o,255&o.gzhead.extra.length),l(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(t.adler=O(t.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=ct):(l(o,0),l(o,0),l(o,0),l(o,0),l(o,0),l(o,9===o.level?2:o.strategy>=G||o.level<2?4:0),l(o,zt),o.status=wt);else{var _=V+(o.w_bits-8<<4)<<8,u=-1;u=o.strategy>=G||o.level<2?0:o.level<6?1:6===o.level?2:3,_|=u<<6,0!==o.strstart&&(_|=_t),_+=31-_%31,o.status=wt,h(o,_),0!==o.strstart&&(h(o,t.adler>>>16),h(o,65535&t.adler)),t.adler=1}if(o.status===ct)if(o.gzhead.extra){for(d=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending!==o.pending_buf_size));)l(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=bt)}else o.status=bt;if(o.status===bt)if(o.gzhead.name){d=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending===o.pending_buf_size)){f=1;break}f=o.gzindex<o.gzhead.name.length?255&o.gzhead.name.charCodeAt(o.gzindex++):0,l(o,f)}while(0!==f);o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),0===f&&(o.gzindex=0,o.status=gt)}else o.status=gt;if(o.status===gt)if(o.gzhead.comment){d=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending===o.pending_buf_size)){f=1;break}f=o.gzindex<o.gzhead.comment.length?255&o.gzhead.comment.charCodeAt(o.gzindex++):0,l(o,f)}while(0!==f);o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),0===f&&(o.status=mt)}else o.status=mt;if(o.status===mt&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&s(t),o.pending+2<=o.pending_buf_size&&(l(o,255&t.adler),l(o,t.adler>>8&255),t.adler=0,o.status=wt)):o.status=wt),0!==o.pending){if(s(t),0===t.avail_out)return o.last_flush=-1,H}else if(0===t.avail_in&&n(e)<=n(a)&&e!==F)return i(t,P);if(o.status===pt&&0!==t.avail_in)return i(t,P);if(0!==t.avail_in||0!==o.lookahead||e!==I&&o.status!==pt){var c=o.strategy===G?m(o,e):o.strategy===X?g(o,e):Z[o.level].func(o,e);if(c!==yt&&c!==xt||(o.status=pt),c===vt||c===yt)return 0===t.avail_out&&(o.last_flush=-1),H;if(c===kt&&(e===U?C._tr_align(o):e!==L&&(C._tr_stored_block(o,0,0,!1),e===T&&(r(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),s(t),0===t.avail_out))return o.last_flush=-1,H}return e!==F?H:o.wrap<=0?j:(2===o.wrap?(l(o,255&t.adler),l(o,t.adler>>8&255),l(o,t.adler>>16&255),l(o,t.adler>>24&255),l(o,255&t.total_in),l(o,t.total_in>>8&255),l(o,t.total_in>>16&255),l(o,t.total_in>>24&255)):(h(o,t.adler>>>16),h(o,65535&t.adler)),s(t),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?H:j)}function E(t){var e;return t&&t.state?(e=t.state.status,e!==ut&&e!==ct&&e!==bt&&e!==gt&&e!==mt&&e!==wt&&e!==pt?i(t,K):(t.state=null,e===wt?i(t,M):H)):K}function A(t,e){var a,i,n,s,o,l,h,d,f=e.length;if(!t||!t.state)return K;if(a=t.state,s=a.wrap,2===s||1===s&&a.status!==ut||a.lookahead)return K;for(1===s&&(t.adler=N(t.adler,e,f,0)),a.wrap=0,f>=a.w_size&&(0===s&&(r(a.head),a.strstart=0,a.block_start=0,a.insert=0),d=new R.Buf8(a.w_size),R.arraySet(d,e,f-a.w_size,a.w_size,0),e=d,f=a.w_size),o=t.avail_in,l=t.next_in,h=t.input,t.avail_in=f,t.next_in=0,t.input=e,_(a);a.lookahead>=ht;){i=a.strstart,n=a.lookahead-(ht-1);do a.ins_h=(a.ins_h<<a.hash_shift^a.window[i+ht-1])&a.hash_mask,a.prev[i&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=i,i++;while(--n);a.strstart=i,a.lookahead=ht-1,_(a)}return a.strstart+=a.lookahead,a.block_start=a.strstart,a.insert=a.lookahead,a.lookahead=0,a.match_length=a.prev_length=ht-1,a.match_available=0,t.next_in=l,t.input=h,t.avail_in=o,a.wrap=s,H}var Z,R=t("../utils/common"),C=t("./trees"),N=t("./adler32"),O=t("./crc32"),D=t("./messages"),I=0,U=1,T=3,F=4,L=5,H=0,j=1,K=-2,M=-3,P=-5,Y=-1,q=1,G=2,X=3,W=4,J=0,Q=2,V=8,$=9,tt=15,et=8,at=29,it=256,nt=it+1+at,rt=30,st=19,ot=2*nt+1,lt=15,ht=3,dt=258,ft=dt+ht+1,_t=32,ut=42,ct=69,bt=73,gt=91,mt=103,wt=113,pt=666,vt=1,kt=2,yt=3,xt=4,zt=3;Z=[new w(0,0,0,0,u),new w(4,4,8,4,c),new w(4,5,16,8,c),new w(4,6,32,32,c),new w(4,4,16,16,b),new w(8,16,32,32,b),new w(8,16,128,128,b),new w(8,32,128,256,b),new w(32,128,258,1024,b),new w(32,258,258,4096,b)],a.deflateInit=B,a.deflateInit2=z,a.deflateReset=y,a.deflateResetKeep=k,a.deflateSetHeader=x,a.deflate=S,a.deflateEnd=E,a.deflateSetDictionary=A,a.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,"./crc32":7,"./messages":13,"./trees":14}],9:[function(t,e,a){"use strict";function i(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}e.exports=i},{}],10:[function(t,e,a){"use strict";var i=30,n=12;e.exports=function(t,e){var a,r,s,o,l,h,d,f,_,u,c,b,g,m,w,p,v,k,y,x,z,B,S,E,A;a=t.state,r=t.next_in,E=t.input,s=r+(t.avail_in-5),o=t.next_out,A=t.output,l=o-(e-t.avail_out),h=o+(t.avail_out-257),d=a.dmax,f=a.wsize,_=a.whave,u=a.wnext,c=a.window,b=a.hold,g=a.bits,m=a.lencode,w=a.distcode,p=(1<<a.lenbits)-1,v=(1<<a.distbits)-1;t:do{g<15&&(b+=E[r++]<<g,g+=8,b+=E[r++]<<g,g+=8),k=m[b&p];e:for(;;){if(y=k>>>24,b>>>=y,g-=y,y=k>>>16&255,0===y)A[o++]=65535&k;else{if(!(16&y)){if(0===(64&y)){k=m[(65535&k)+(b&(1<<y)-1)];continue e}if(32&y){a.mode=n;break t}t.msg="invalid literal/length code",a.mode=i;break t}x=65535&k,y&=15,y&&(g<y&&(b+=E[r++]<<g,g+=8),x+=b&(1<<y)-1,b>>>=y,g-=y),g<15&&(b+=E[r++]<<g,g+=8,b+=E[r++]<<g,g+=8),k=w[b&v];a:for(;;){if(y=k>>>24,b>>>=y,g-=y,y=k>>>16&255,!(16&y)){if(0===(64&y)){k=w[(65535&k)+(b&(1<<y)-1)];continue a}t.msg="invalid distance code",a.mode=i;break t}if(z=65535&k,y&=15,g<y&&(b+=E[r++]<<g,g+=8,g<y&&(b+=E[r++]<<g,g+=8)),z+=b&(1<<y)-1,z>d){t.msg="invalid distance too far back",a.mode=i;break t}if(b>>>=y,g-=y,y=o-l,z>y){if(y=z-y,y>_&&a.sane){t.msg="invalid distance too far back",a.mode=i;break t}if(B=0,S=c,0===u){if(B+=f-y,y<x){x-=y;do A[o++]=c[B++];while(--y);B=o-z,S=A}}else if(u<y){if(B+=f+u-y,y-=u,y<x){x-=y;do A[o++]=c[B++];while(--y);if(B=0,u<x){y=u,x-=y;do A[o++]=c[B++];while(--y);B=o-z,S=A}}}else if(B+=u-y,y<x){x-=y;do A[o++]=c[B++];while(--y);B=o-z,S=A}for(;x>2;)A[o++]=S[B++],A[o++]=S[B++],A[o++]=S[B++],x-=3;x&&(A[o++]=S[B++],x>1&&(A[o++]=S[B++]))}else{B=o-z;do A[o++]=A[B++],A[o++]=A[B++],A[o++]=A[B++],x-=3;while(x>2);x&&(A[o++]=A[B++],x>1&&(A[o++]=A[B++]))}break}}break}}while(r<s&&o<h);x=g>>3,r-=x,g-=x<<3,b&=(1<<g)-1,t.next_in=r,t.next_out=o,t.avail_in=r<s?5+(s-r):5-(r-s),t.avail_out=o<h?257+(h-o):257-(o-h),a.hold=b,a.bits=g}},{}],11:[function(t,e,a){"use strict";function i(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function n(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new w.Buf16(320),this.work=new w.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function r(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=T,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new w.Buf32(bt),e.distcode=e.distdyn=new w.Buf32(gt),e.sane=1,e.back=-1,Z):N}function s(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,r(t)):N}function o(t,e){var a,i;return t&&t.state?(i=t.state,e<0?(a=0,e=-e):(a=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15)?N:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,s(t))):N}function l(t,e){var a,i;return t?(i=new n,t.state=i,i.window=null,a=o(t,e),a!==Z&&(t.state=null),a):N}function h(t){return l(t,wt)}function d(t){if(pt){var e;for(g=new w.Buf32(512),m=new w.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(y(z,t.lens,0,288,g,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;y(B,t.lens,0,32,m,0,t.work,{bits:5}),pt=!1}t.lencode=g,t.lenbits=9,t.distcode=m,t.distbits=5}function f(t,e,a,i){var n,r=t.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new w.Buf8(r.wsize)),i>=r.wsize?(w.arraySet(r.window,e,a-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),w.arraySet(r.window,e,a-i,n,r.wnext),i-=n,i?(w.arraySet(r.window,e,a-i,i,0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=n))),0}function _(t,e){var a,n,r,s,o,l,h,_,u,c,b,g,m,bt,gt,mt,wt,pt,vt,kt,yt,xt,zt,Bt,St=0,Et=new w.Buf8(4),At=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return N;a=t.state,a.mode===X&&(a.mode=W),o=t.next_out,r=t.output,h=t.avail_out,s=t.next_in,n=t.input,l=t.avail_in,_=a.hold,u=a.bits,c=l,b=h,xt=Z;t:for(;;)switch(a.mode){case T:if(0===a.wrap){a.mode=W;break}for(;u<16;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if(2&a.wrap&&35615===_){a.check=0,Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0),_=0,u=0,a.mode=F;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&_)<<8)+(_>>8))%31){t.msg="incorrect header check",a.mode=_t;break}if((15&_)!==U){t.msg="unknown compression method",a.mode=_t;break}if(_>>>=4,u-=4,yt=(15&_)+8,0===a.wbits)a.wbits=yt;else if(yt>a.wbits){t.msg="invalid window size",a.mode=_t;break}a.dmax=1<<yt,t.adler=a.check=1,a.mode=512&_?q:X,_=0,u=0;break;case F:for(;u<16;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if(a.flags=_,(255&a.flags)!==U){t.msg="unknown compression method",a.mode=_t;break}if(57344&a.flags){t.msg="unknown header flags set",a.mode=_t;break}a.head&&(a.head.text=_>>8&1),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0,a.mode=L;case L:for(;u<32;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}a.head&&(a.head.time=_),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,Et[2]=_>>>16&255,Et[3]=_>>>24&255,a.check=v(a.check,Et,4,0)),_=0,u=0,a.mode=H;case H:for(;u<16;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}a.head&&(a.head.xflags=255&_,a.head.os=_>>8),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0,a.mode=j;case j:if(1024&a.flags){for(;u<16;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}a.length=_,a.head&&(a.head.extra_len=_),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0}else a.head&&(a.head.extra=null);a.mode=K;case K:if(1024&a.flags&&(g=a.length,g>l&&(g=l),g&&(a.head&&(yt=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Array(a.head.extra_len)),w.arraySet(a.head.extra,n,s,g,yt)),512&a.flags&&(a.check=v(a.check,n,g,s)),l-=g,s+=g,a.length-=g),a.length))break t;a.length=0,a.mode=M;case M:if(2048&a.flags){if(0===l)break t;g=0;do yt=n[s+g++],a.head&&yt&&a.length<65536&&(a.head.name+=String.fromCharCode(yt));while(yt&&g<l);if(512&a.flags&&(a.check=v(a.check,n,g,s)),l-=g,s+=g,yt)break t}else a.head&&(a.head.name=null);a.length=0,a.mode=P;case P:if(4096&a.flags){if(0===l)break t;g=0;do yt=n[s+g++],a.head&&yt&&a.length<65536&&(a.head.comment+=String.fromCharCode(yt));while(yt&&g<l);if(512&a.flags&&(a.check=v(a.check,n,g,s)),l-=g,s+=g,yt)break t}else a.head&&(a.head.comment=null);a.mode=Y;case Y:if(512&a.flags){for(;u<16;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if(_!==(65535&a.check)){t.msg="header crc mismatch",a.mode=_t;break}_=0,u=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=X;break;case q:for(;u<32;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}t.adler=a.check=i(_),_=0,u=0,a.mode=G;case G:if(0===a.havedict)return t.next_out=o,t.avail_out=h,t.next_in=s,t.avail_in=l,a.hold=_,a.bits=u,C;t.adler=a.check=1,a.mode=X;case X:if(e===E||e===A)break t;case W:if(a.last){_>>>=7&u,u-=7&u,a.mode=ht;break}for(;u<3;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}switch(a.last=1&_,_>>>=1,u-=1,3&_){case 0:a.mode=J;break;case 1:if(d(a),a.mode=at,e===A){_>>>=2,u-=2;break t}break;case 2:a.mode=$;break;case 3:t.msg="invalid block type",a.mode=_t}_>>>=2,u-=2;break;case J:for(_>>>=7&u,u-=7&u;u<32;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if((65535&_)!==(_>>>16^65535)){t.msg="invalid stored block lengths",a.mode=_t;break}if(a.length=65535&_,_=0,u=0,a.mode=Q,e===A)break t;case Q:a.mode=V;case V:if(g=a.length){if(g>l&&(g=l),g>h&&(g=h),0===g)break t;w.arraySet(r,n,s,g,o),l-=g,s+=g,h-=g,o+=g,a.length-=g;break}a.mode=X;break;case $:for(;u<14;){if(0===l)break t;
l--,_+=n[s++]<<u,u+=8}if(a.nlen=(31&_)+257,_>>>=5,u-=5,a.ndist=(31&_)+1,_>>>=5,u-=5,a.ncode=(15&_)+4,_>>>=4,u-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=_t;break}a.have=0,a.mode=tt;case tt:for(;a.have<a.ncode;){for(;u<3;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}a.lens[At[a.have++]]=7&_,_>>>=3,u-=3}for(;a.have<19;)a.lens[At[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,zt={bits:a.lenbits},xt=y(x,a.lens,0,19,a.lencode,0,a.work,zt),a.lenbits=zt.bits,xt){t.msg="invalid code lengths set",a.mode=_t;break}a.have=0,a.mode=et;case et:for(;a.have<a.nlen+a.ndist;){for(;St=a.lencode[_&(1<<a.lenbits)-1],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if(wt<16)_>>>=gt,u-=gt,a.lens[a.have++]=wt;else{if(16===wt){for(Bt=gt+2;u<Bt;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if(_>>>=gt,u-=gt,0===a.have){t.msg="invalid bit length repeat",a.mode=_t;break}yt=a.lens[a.have-1],g=3+(3&_),_>>>=2,u-=2}else if(17===wt){for(Bt=gt+3;u<Bt;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}_>>>=gt,u-=gt,yt=0,g=3+(7&_),_>>>=3,u-=3}else{for(Bt=gt+7;u<Bt;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}_>>>=gt,u-=gt,yt=0,g=11+(127&_),_>>>=7,u-=7}if(a.have+g>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=_t;break}for(;g--;)a.lens[a.have++]=yt}}if(a.mode===_t)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=_t;break}if(a.lenbits=9,zt={bits:a.lenbits},xt=y(z,a.lens,0,a.nlen,a.lencode,0,a.work,zt),a.lenbits=zt.bits,xt){t.msg="invalid literal/lengths set",a.mode=_t;break}if(a.distbits=6,a.distcode=a.distdyn,zt={bits:a.distbits},xt=y(B,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,zt),a.distbits=zt.bits,xt){t.msg="invalid distances set",a.mode=_t;break}if(a.mode=at,e===A)break t;case at:a.mode=it;case it:if(l>=6&&h>=258){t.next_out=o,t.avail_out=h,t.next_in=s,t.avail_in=l,a.hold=_,a.bits=u,k(t,b),o=t.next_out,r=t.output,h=t.avail_out,s=t.next_in,n=t.input,l=t.avail_in,_=a.hold,u=a.bits,a.mode===X&&(a.back=-1);break}for(a.back=0;St=a.lencode[_&(1<<a.lenbits)-1],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if(mt&&0===(240&mt)){for(pt=gt,vt=mt,kt=wt;St=a.lencode[kt+((_&(1<<pt+vt)-1)>>pt)],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(pt+gt<=u);){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}_>>>=pt,u-=pt,a.back+=pt}if(_>>>=gt,u-=gt,a.back+=gt,a.length=wt,0===mt){a.mode=lt;break}if(32&mt){a.back=-1,a.mode=X;break}if(64&mt){t.msg="invalid literal/length code",a.mode=_t;break}a.extra=15&mt,a.mode=nt;case nt:if(a.extra){for(Bt=a.extra;u<Bt;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}a.length+=_&(1<<a.extra)-1,_>>>=a.extra,u-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=rt;case rt:for(;St=a.distcode[_&(1<<a.distbits)-1],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if(0===(240&mt)){for(pt=gt,vt=mt,kt=wt;St=a.distcode[kt+((_&(1<<pt+vt)-1)>>pt)],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(pt+gt<=u);){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}_>>>=pt,u-=pt,a.back+=pt}if(_>>>=gt,u-=gt,a.back+=gt,64&mt){t.msg="invalid distance code",a.mode=_t;break}a.offset=wt,a.extra=15&mt,a.mode=st;case st:if(a.extra){for(Bt=a.extra;u<Bt;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}a.offset+=_&(1<<a.extra)-1,_>>>=a.extra,u-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=_t;break}a.mode=ot;case ot:if(0===h)break t;if(g=b-h,a.offset>g){if(g=a.offset-g,g>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=_t;break}g>a.wnext?(g-=a.wnext,m=a.wsize-g):m=a.wnext-g,g>a.length&&(g=a.length),bt=a.window}else bt=r,m=o-a.offset,g=a.length;g>h&&(g=h),h-=g,a.length-=g;do r[o++]=bt[m++];while(--g);0===a.length&&(a.mode=it);break;case lt:if(0===h)break t;r[o++]=a.length,h--,a.mode=it;break;case ht:if(a.wrap){for(;u<32;){if(0===l)break t;l--,_|=n[s++]<<u,u+=8}if(b-=h,t.total_out+=b,a.total+=b,b&&(t.adler=a.check=a.flags?v(a.check,r,b,o-b):p(a.check,r,b,o-b)),b=h,(a.flags?_:i(_))!==a.check){t.msg="incorrect data check",a.mode=_t;break}_=0,u=0}a.mode=dt;case dt:if(a.wrap&&a.flags){for(;u<32;){if(0===l)break t;l--,_+=n[s++]<<u,u+=8}if(_!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=_t;break}_=0,u=0}a.mode=ft;case ft:xt=R;break t;case _t:xt=O;break t;case ut:return D;case ct:default:return N}return t.next_out=o,t.avail_out=h,t.next_in=s,t.avail_in=l,a.hold=_,a.bits=u,(a.wsize||b!==t.avail_out&&a.mode<_t&&(a.mode<ht||e!==S))&&f(t,t.output,t.next_out,b-t.avail_out)?(a.mode=ut,D):(c-=t.avail_in,b-=t.avail_out,t.total_in+=c,t.total_out+=b,a.total+=b,a.wrap&&b&&(t.adler=a.check=a.flags?v(a.check,r,b,t.next_out-b):p(a.check,r,b,t.next_out-b)),t.data_type=a.bits+(a.last?64:0)+(a.mode===X?128:0)+(a.mode===at||a.mode===Q?256:0),(0===c&&0===b||e===S)&&xt===Z&&(xt=I),xt)}function u(t){if(!t||!t.state)return N;var e=t.state;return e.window&&(e.window=null),t.state=null,Z}function c(t,e){var a;return t&&t.state?(a=t.state,0===(2&a.wrap)?N:(a.head=e,e.done=!1,Z)):N}function b(t,e){var a,i,n,r=e.length;return t&&t.state?(a=t.state,0!==a.wrap&&a.mode!==G?N:a.mode===G&&(i=1,i=p(i,e,r,0),i!==a.check)?O:(n=f(t,e,r,r))?(a.mode=ut,D):(a.havedict=1,Z)):N}var g,m,w=t("../utils/common"),p=t("./adler32"),v=t("./crc32"),k=t("./inffast"),y=t("./inftrees"),x=0,z=1,B=2,S=4,E=5,A=6,Z=0,R=1,C=2,N=-2,O=-3,D=-4,I=-5,U=8,T=1,F=2,L=3,H=4,j=5,K=6,M=7,P=8,Y=9,q=10,G=11,X=12,W=13,J=14,Q=15,V=16,$=17,tt=18,et=19,at=20,it=21,nt=22,rt=23,st=24,ot=25,lt=26,ht=27,dt=28,ft=29,_t=30,ut=31,ct=32,bt=852,gt=592,mt=15,wt=mt,pt=!0;a.inflateReset=s,a.inflateReset2=o,a.inflateResetKeep=r,a.inflateInit=h,a.inflateInit2=l,a.inflate=_,a.inflateEnd=u,a.inflateGetHeader=c,a.inflateSetDictionary=b,a.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(t,e,a){"use strict";var i=t("../utils/common"),n=15,r=852,s=592,o=0,l=1,h=2,d=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],f=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],_=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],u=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,a,c,b,g,m,w){var p,v,k,y,x,z,B,S,E,A=w.bits,Z=0,R=0,C=0,N=0,O=0,D=0,I=0,U=0,T=0,F=0,L=null,H=0,j=new i.Buf16(n+1),K=new i.Buf16(n+1),M=null,P=0;for(Z=0;Z<=n;Z++)j[Z]=0;for(R=0;R<c;R++)j[e[a+R]]++;for(O=A,N=n;N>=1&&0===j[N];N--);if(O>N&&(O=N),0===N)return b[g++]=20971520,b[g++]=20971520,w.bits=1,0;for(C=1;C<N&&0===j[C];C++);for(O<C&&(O=C),U=1,Z=1;Z<=n;Z++)if(U<<=1,U-=j[Z],U<0)return-1;if(U>0&&(t===o||1!==N))return-1;for(K[1]=0,Z=1;Z<n;Z++)K[Z+1]=K[Z]+j[Z];for(R=0;R<c;R++)0!==e[a+R]&&(m[K[e[a+R]]++]=R);if(t===o?(L=M=m,z=19):t===l?(L=d,H-=257,M=f,P-=257,z=256):(L=_,M=u,z=-1),F=0,R=0,Z=C,x=g,D=O,I=0,k=-1,T=1<<O,y=T-1,t===l&&T>r||t===h&&T>s)return 1;for(var Y=0;;){Y++,B=Z-I,m[R]<z?(S=0,E=m[R]):m[R]>z?(S=M[P+m[R]],E=L[H+m[R]]):(S=96,E=0),p=1<<Z-I,v=1<<D,C=v;do v-=p,b[x+(F>>I)+v]=B<<24|S<<16|E|0;while(0!==v);for(p=1<<Z-1;F&p;)p>>=1;if(0!==p?(F&=p-1,F+=p):F=0,R++,0===--j[Z]){if(Z===N)break;Z=e[a+m[R]]}if(Z>O&&(F&y)!==k){for(0===I&&(I=O),x+=C,D=Z-I,U=1<<D;D+I<N&&(U-=j[D+I],!(U<=0));)D++,U<<=1;if(T+=1<<D,t===l&&T>r||t===h&&T>s)return 1;k=F&y,b[k]=O<<24|D<<16|x-g|0}}return 0!==F&&(b[x+F]=Z-I<<24|64<<16|0),w.bits=O,0}},{"../utils/common":3}],13:[function(t,e,a){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(t,e,a){"use strict";function i(t){for(var e=t.length;--e>=0;)t[e]=0}function n(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function r(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function s(t){return t<256?lt[t]:lt[256+(t>>>7)]}function o(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function l(t,e,a){t.bi_valid>W-a?(t.bi_buf|=e<<t.bi_valid&65535,o(t,t.bi_buf),t.bi_buf=e>>W-t.bi_valid,t.bi_valid+=a-W):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)}function h(t,e,a){l(t,a[2*e],a[2*e+1])}function d(t,e){var a=0;do a|=1&t,t>>>=1,a<<=1;while(--e>0);return a>>>1}function f(t){16===t.bi_valid?(o(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function _(t,e){var a,i,n,r,s,o,l=e.dyn_tree,h=e.max_code,d=e.stat_desc.static_tree,f=e.stat_desc.has_stree,_=e.stat_desc.extra_bits,u=e.stat_desc.extra_base,c=e.stat_desc.max_length,b=0;for(r=0;r<=X;r++)t.bl_count[r]=0;for(l[2*t.heap[t.heap_max]+1]=0,a=t.heap_max+1;a<G;a++)i=t.heap[a],r=l[2*l[2*i+1]+1]+1,r>c&&(r=c,b++),l[2*i+1]=r,i>h||(t.bl_count[r]++,s=0,i>=u&&(s=_[i-u]),o=l[2*i],t.opt_len+=o*(r+s),f&&(t.static_len+=o*(d[2*i+1]+s)));if(0!==b){do{for(r=c-1;0===t.bl_count[r];)r--;t.bl_count[r]--,t.bl_count[r+1]+=2,t.bl_count[c]--,b-=2}while(b>0);for(r=c;0!==r;r--)for(i=t.bl_count[r];0!==i;)n=t.heap[--a],n>h||(l[2*n+1]!==r&&(t.opt_len+=(r-l[2*n+1])*l[2*n],l[2*n+1]=r),i--)}}function u(t,e,a){var i,n,r=new Array(X+1),s=0;for(i=1;i<=X;i++)r[i]=s=s+a[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=d(r[o]++,o))}}function c(){var t,e,a,i,r,s=new Array(X+1);for(a=0,i=0;i<K-1;i++)for(dt[i]=a,t=0;t<1<<et[i];t++)ht[a++]=i;for(ht[a-1]=i,r=0,i=0;i<16;i++)for(ft[i]=r,t=0;t<1<<at[i];t++)lt[r++]=i;for(r>>=7;i<Y;i++)for(ft[i]=r<<7,t=0;t<1<<at[i]-7;t++)lt[256+r++]=i;for(e=0;e<=X;e++)s[e]=0;for(t=0;t<=143;)st[2*t+1]=8,t++,s[8]++;for(;t<=255;)st[2*t+1]=9,t++,s[9]++;for(;t<=279;)st[2*t+1]=7,t++,s[7]++;for(;t<=287;)st[2*t+1]=8,t++,s[8]++;for(u(st,P+1,s),t=0;t<Y;t++)ot[2*t+1]=5,ot[2*t]=d(t,5);_t=new n(st,et,M+1,P,X),ut=new n(ot,at,0,Y,X),ct=new n(new Array(0),it,0,q,J)}function b(t){var e;for(e=0;e<P;e++)t.dyn_ltree[2*e]=0;for(e=0;e<Y;e++)t.dyn_dtree[2*e]=0;for(e=0;e<q;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*Q]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function g(t){t.bi_valid>8?o(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function m(t,e,a,i){g(t),i&&(o(t,a),o(t,~a)),N.arraySet(t.pending_buf,t.window,e,a,t.pending),t.pending+=a}function w(t,e,a,i){var n=2*e,r=2*a;return t[n]<t[r]||t[n]===t[r]&&i[e]<=i[a]}function p(t,e,a){for(var i=t.heap[a],n=a<<1;n<=t.heap_len&&(n<t.heap_len&&w(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!w(e,i,t.heap[n],t.depth));)t.heap[a]=t.heap[n],a=n,n<<=1;t.heap[a]=i}function v(t,e,a){var i,n,r,o,d=0;if(0!==t.last_lit)do i=t.pending_buf[t.d_buf+2*d]<<8|t.pending_buf[t.d_buf+2*d+1],n=t.pending_buf[t.l_buf+d],d++,0===i?h(t,n,e):(r=ht[n],h(t,r+M+1,e),o=et[r],0!==o&&(n-=dt[r],l(t,n,o)),i--,r=s(i),h(t,r,a),o=at[r],0!==o&&(i-=ft[r],l(t,i,o)));while(d<t.last_lit);h(t,Q,e)}function k(t,e){var a,i,n,r=e.dyn_tree,s=e.stat_desc.static_tree,o=e.stat_desc.has_stree,l=e.stat_desc.elems,h=-1;for(t.heap_len=0,t.heap_max=G,a=0;a<l;a++)0!==r[2*a]?(t.heap[++t.heap_len]=h=a,t.depth[a]=0):r[2*a+1]=0;for(;t.heap_len<2;)n=t.heap[++t.heap_len]=h<2?++h:0,r[2*n]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=s[2*n+1]);for(e.max_code=h,a=t.heap_len>>1;a>=1;a--)p(t,r,a);n=l;do a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],p(t,r,1),i=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=i,r[2*n]=r[2*a]+r[2*i],t.depth[n]=(t.depth[a]>=t.depth[i]?t.depth[a]:t.depth[i])+1,r[2*a+1]=r[2*i+1]=n,t.heap[1]=n++,p(t,r,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],_(t,e),u(r,h,t.bl_count)}function y(t,e,a){var i,n,r=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=e[2*(i+1)+1],++o<l&&n===s||(o<h?t.bl_tree[2*n]+=o:0!==n?(n!==r&&t.bl_tree[2*n]++,t.bl_tree[2*V]++):o<=10?t.bl_tree[2*$]++:t.bl_tree[2*tt]++,o=0,r=n,0===s?(l=138,h=3):n===s?(l=6,h=3):(l=7,h=4))}function x(t,e,a){var i,n,r=-1,s=e[1],o=0,d=7,f=4;for(0===s&&(d=138,f=3),i=0;i<=a;i++)if(n=s,s=e[2*(i+1)+1],!(++o<d&&n===s)){if(o<f){do h(t,n,t.bl_tree);while(0!==--o)}else 0!==n?(n!==r&&(h(t,n,t.bl_tree),o--),h(t,V,t.bl_tree),l(t,o-3,2)):o<=10?(h(t,$,t.bl_tree),l(t,o-3,3)):(h(t,tt,t.bl_tree),l(t,o-11,7));o=0,r=n,0===s?(d=138,f=3):n===s?(d=6,f=3):(d=7,f=4)}}function z(t){var e;for(y(t,t.dyn_ltree,t.l_desc.max_code),y(t,t.dyn_dtree,t.d_desc.max_code),k(t,t.bl_desc),e=q-1;e>=3&&0===t.bl_tree[2*nt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}function B(t,e,a,i){var n;for(l(t,e-257,5),l(t,a-1,5),l(t,i-4,4),n=0;n<i;n++)l(t,t.bl_tree[2*nt[n]+1],3);x(t,t.dyn_ltree,e-1),x(t,t.dyn_dtree,a-1)}function S(t){var e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return D;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return I;for(e=32;e<M;e++)if(0!==t.dyn_ltree[2*e])return I;return D}function E(t){bt||(c(),bt=!0),t.l_desc=new r(t.dyn_ltree,_t),t.d_desc=new r(t.dyn_dtree,ut),t.bl_desc=new r(t.bl_tree,ct),t.bi_buf=0,t.bi_valid=0,b(t)}function A(t,e,a,i){l(t,(T<<1)+(i?1:0),3),m(t,e,a,!0)}function Z(t){l(t,F<<1,3),h(t,Q,st),f(t)}function R(t,e,a,i){var n,r,s=0;t.level>0?(t.strm.data_type===U&&(t.strm.data_type=S(t)),k(t,t.l_desc),k(t,t.d_desc),s=z(t),n=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=n&&(n=r)):n=r=a+5,a+4<=n&&e!==-1?A(t,e,a,i):t.strategy===O||r===n?(l(t,(F<<1)+(i?1:0),3),v(t,st,ot)):(l(t,(L<<1)+(i?1:0),3),B(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),v(t,t.dyn_ltree,t.dyn_dtree)),b(t),i&&g(t)}function C(t,e,a){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&a,t.last_lit++,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(ht[a]+M+1)]++,t.dyn_dtree[2*s(e)]++),t.last_lit===t.lit_bufsize-1}var N=t("../utils/common"),O=4,D=0,I=1,U=2,T=0,F=1,L=2,H=3,j=258,K=29,M=256,P=M+1+K,Y=30,q=19,G=2*P+1,X=15,W=16,J=7,Q=256,V=16,$=17,tt=18,et=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],at=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],it=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],nt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rt=512,st=new Array(2*(P+2));i(st);var ot=new Array(2*Y);i(ot);var lt=new Array(rt);i(lt);var ht=new Array(j-H+1);i(ht);var dt=new Array(K);i(dt);var ft=new Array(Y);i(ft);var _t,ut,ct,bt=!1;a._tr_init=E,a._tr_stored_block=A,a._tr_flush_block=R,a._tr_tally=C,a._tr_align=Z},{"../utils/common":3}],15:[function(t,e,a){"use strict";function i(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=i},{}],"/":[function(t,e,a){"use strict";var i=t("./lib/utils/common").assign,n=t("./lib/deflate"),r=t("./lib/inflate"),s=t("./lib/zlib/constants"),o={};i(o,n,r,s),e.exports=o},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")});
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
var saveAs=saveAs||function(e){"use strict";if(typeof e==="undefined"||typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in r,a=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},i=/constructor/i.test(e.HTMLElement)||e.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},s="application/octet-stream",d=1e3*40,c=function(e){var t=function(){if(typeof e==="string"){n().revokeObjectURL(e)}else{e.remove()}};setTimeout(t,d)},l=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var o=e["on"+t[r]];if(typeof o==="function"){try{o.call(e,n||e)}catch(a){u(a)}}}},p=function(e){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)){return new Blob([String.fromCharCode(65279),e],{type:e.type})}return e},v=function(t,u,d){if(!d){t=p(t)}var v=this,w=t.type,m=w===s,y,h=function(){l(v,"writestart progress write writeend".split(" "))},S=function(){if((f||m&&i)&&e.FileReader){var r=new FileReader;r.onloadend=function(){var t=f?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");var n=e.open(t,"_blank");if(!n)e.location.href=t;t=undefined;v.readyState=v.DONE;h()};r.readAsDataURL(t);v.readyState=v.INIT;return}if(!y){y=n().createObjectURL(t)}if(m){e.location.href=y}else{var o=e.open(y,"_blank");if(!o){e.location.href=y}}v.readyState=v.DONE;h();c(y)};v.readyState=v.INIT;if(o){y=n().createObjectURL(t);setTimeout(function(){r.href=y;r.download=u;a(r);h();c(y);v.readyState=v.DONE});return}S()},w=v.prototype,m=function(e,t,n){return new v(e,t||e.name||"download",n)};if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return function(e,t,n){t=t||e.name||"download";if(!n){e=p(e)}return navigator.msSaveOrOpenBlob(e,t)}}w.abort=function(){};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return m}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!==null){define("FileSaver.js",function(){return saveAs})}
if(typeof define == "function" && define.__amd) {
define.amd = define.__amd;
delete define.__amd;
}